(Transitive)
한 번도 입력 안 함
→ DB는 적은 만큼만 답하지만, 온톨로지는 적은 것 + 규칙으로 따라오는 모든 것까지 답합니다.
OWL과 추론 엔진 (HermiT, Pellet)
OWL이 제공하는 6가지 표현력
각 표현력은 "이런 관계가 성립한다"를 공리로 선언하는 도구이며, 선언된 공리는 추론기가 자동으로 새 사실을 도출하는 근거가 됩니다.
subClassOf (⊑)
의미. "X는 Y의 일종이다" — X의 모든 인스턴스는 자동으로 Y의 인스턴스로도 분류됩니다.
예시. Mammal ⊑ Animal
→ "포유류(Mammal)는 동물(Animal)의 일종이다."
효과. :Tom a :Mammal만 입력해도 추론기가 :Tom a :Animal을 자동 도출.
equivalentClass (≡)
의미. "X와 Y는 동일한 클래스" — 어느 한쪽 멤버는 자동으로 다른 쪽 멤버.
예시. Author ≡ Person ⊓ ∃wrote.Book
→ "Author는 Person이면서 동시에 책을 쓴 적이 있는 개체와 같다."
효과. 책을 쓴 Person이 들어오면 추론기가 자동으로 Author로 분류.
disjointWith (⊓ = ∅)
의미. "X와 Y는 절대 겹칠 수 없다" — 교집합이 공집합.
예시. Male ⊓ Female = ∅
→ "남자(Male)와 여자(Female)는 동시에 될 수 없다."
효과. 같은 인스턴스가 두 클래스에 모두 속하면 추론기가 모순으로 자동 감지.
TransitiveProperty
의미. "A → B이고 B → C이면 A → C도 성립" — 전이성 관계.
예시. hasAncestor, :파급
→ "X의 조상의 조상도 X의 조상이다" / "영향의 영향도 영향이다."
효과. 1홉 관계만 입력하면 추론기가 모든 다단계 관계를 자동 도출.
FunctionalProperty
의미. "한 개체에 대해 이 관계는 단 하나의 값만 가능" — cardinality 1 제약.
예시. biologicalMother, :근본원인
→ "한 사람의 생물학적 어머니는 정확히 한 명" / "한 진단의 근본원인은 하나."
효과. 두 다른 값이 입력되면 추론기가 둘을 동일 개체로 추론하거나 일관성 오류로 보고.
InverseOf (↔)
의미. "X 관계의 반대 방향이 Y 관계" — 양방향 자동 매핑.
예시. :hasPart ↔ :partOf
→ "기어박스가 풍력터빈의 부품이면, 반대로 풍력터빈은 기어박스를 부품으로 가진다."
효과. 한쪽 트리플만 입력해도 추론기가 반대 방향 트리플을 자동 추가.