OWL Reasoner(HermiT, Pellet 등)는 Description Logic이라는 형식 논리를 기반으로 4가지 핵심 작업을 자동으로 수행합니다 — 사람이 알고리즘을 짤 필요 없이, 논리 공리만 정의하면 다음을 결과로 받습니다:
- Subsumption (포함 관계 추론) — "Father ⊑ Parent ⊑ Person" 같은 클래스 계층을 입력받아 어떤 클래스가 어떤 클래스의 부분집합인지 자동 계산.
- Classification (클래스 분류) — 모든 클래스 사이의 관계를 정리해 완성된 클래스 계층 트리를 만듭니다. 정의로부터 도출되는 클래스 동치성·서로소 관계도 함께 발견.
- Consistency Check (일관성 검증) — 공리들이 서로 모순되는지 확인. 예:
X ⊑ Y와 X ⊑ ¬Y가 동시에 선언되면 모순으로 보고. 실무에서는 "오타·잘못된 모델링"을 잡아내는 안전장치 역할.
- Realization (개체 분류 추론) — 개별 인스턴스가 어떤 클래스에 속하는지 자동 도출. 예:
:John :hasFather :Tom + hasFather ⊑ hasParent에서 :John :hasParent :Tom을 유도하고, 더 나아가 :Tom a :Parent까지 도출.
이 4가지 작업 모두 "사람이 코드로 짜지 않아도 형식 논리가 보장하는 결과"로 도출됩니다 — 이것이 OWL이 단순한 데이터 모델이 아니라 "추론 가능한 지식 표현 언어"로 분류되는 이유입니다.
실무 함정. OWL 2 DL은 결정 가능(decidable)하지만 최악의 경우 지수 시간 복잡도를 가집니다. 수십만 개 이상의 공리·인스턴스 규모에서는 추론 시간이 폭증할 수 있어, 보통 OWL 2 EL/QL 프로파일처럼 표현력을 제한한 서브셋을 사용합니다.