OWL
OWL이란 무엇입니까
OWL(Web Ontology Language)은 RDF 기반 온톨로지를 더 엄밀하게 표현하기 위한 표준입니다. RDFS는 기본적인 클래스 계층과 속성 의미를 제공하고, OWL은 동치, 배타성, 속성 특성, 클래스 제약 같은 논리적 표현을 추가합니다.
OWL을 사용하면 그래프에 직접 적혀 있지 않은 사실을 더 풍부하게 추론할 수 있습니다.
OWL은 RDF 사실 위에 논리적 의미를 얹고, 추론기가 그 의미를 적용해 새 사실이나 모순을 찾도록 합니다.
flowchart TB
facts["RDF 사실"]
ontology["OWL 온톨로지"]
equivalence["동치와 배타성"]
propertyFeatures["속성 특성<br/>대칭, 역, 전이"]
restrictions["클래스 제약<br/>someValuesFrom"]
reasoner["OWL 추론기"]
output["새 타입/관계<br/>또는 모순 발견"]
facts --> reasoner
ontology --> equivalence --> reasoner
ontology --> propertyFeatures --> reasoner
ontology --> restrictions --> reasoner
reasoner --> output
클래스 동치와 구분
두 클래스가 같은 의미라면 owl:equivalentClass로 표현할 수 있습니다.
@prefix ex: <http://example.org/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
ex:Buyer owl:equivalentClass ex:Customer .
이 정의가 있으면 어떤 개체가 구매자이면 고객으로도 해석할 수 있고, 반대로 고객이면 구매자로도 해석할 수 있습니다.
서로 겹치면 안 되는 클래스는 owl:disjointWith로 표현합니다.
ex:Person owl:disjointWith ex:Product .
이 정의는 같은 개체가 동시에 사람과 상품이면 온톨로지에 모순이 생긴다는 뜻입니다.
속성 특성
OWL은 속성의 논리적 성질을 표현할 수 있습니다. 예를 들어 배우자 관계는 대칭 관계입니다. A가 B의 배우자이면 B도 A의 배우자입니다.
ex:spouse a owl:SymmetricProperty .
ex:Alice ex:spouse ex:Bob .
추론기는 다음 사실을 만들 수 있습니다.
ex:Bob ex:spouse ex:Alice .
부모 관계의 역관계도 정의할 수 있습니다.
ex:parentOf owl:inverseOf ex:childOf .
ex:Alice ex:parentOf ex:Chris .
이 정의가 있으면 크리스가 앨리스의 자식이라는 사실을 추론할 수 있습니다.
전이 관계
전이 관계(transitive property)는 A가 B와 관계가 있고 B가 C와 관계가 있으면 A도 C와 관계가 있는 속성입니다.
ex:ancestorOf a owl:TransitiveProperty .
ex:Alice ex:ancestorOf ex:Bob .
ex:Bob ex:ancestorOf ex:Chris .
위 데이터에서 앨리스가 크리스의 조상이라는 사실을 추론할 수 있습니다.
클래스 제약
OWL은 어떤 클래스에 속하기 위한 조건을 표현할 수 있습니다. 예를 들어 "부모는 자녀가 적어도 한 명 있는 사람입니다"라는 정의는 다음처럼 표현할 수 있습니다.
ex:Parent owl:equivalentClass [
a owl:Restriction ;
owl:onProperty ex:parentOf ;
owl:someValuesFrom ex:Person
] .
이 정의는 ex:parentOf 관계로 사람을 적어도 한 명 가리키는 개체를 부모로 볼 수 있다는 뜻입니다.
열린 세계 가정
OWL은 열린 세계 가정(open world assumption)을 따릅니다. 그래프에 어떤 사실이 없다고 해서 그 사실이 거짓이라고 판단하지 않습니다. 단지 아직 모르는 것으로 봅니다.
예를 들어 어떤 사람의 전화번호가 그래프에 없다고 해서 "전화번호가 없다"고 결론 내리지 않습니다. 이 관점은 웹처럼 불완전한 데이터가 많은 환경에 적합합니다.
OWL과 SHACL의 차이
OWL은 의미와 추론을 위한 언어입니다. SHACL은 데이터가 정해진 모양과 제약을 만족하는지 검증하기 위한 언어입니다. 둘 다 제약처럼 보이는 표현을 다루지만 목적이 다릅니다.
예를 들어 OWL의 정의역과 치역은 새로운 타입을 추론하는 데 사용될 수 있습니다. 반면 SHACL의 제약은 데이터 오류를 찾는 데 사용됩니다.
정리
OWL은 온톨로지에 논리적 의미를 추가하는 표준입니다. 동치, 배타성, 역관계, 전이 관계, 클래스 제약을 표현할 수 있으며, 이를 바탕으로 풍부한 추론을 수행할 수 있습니다.