OWL 2 웹 온톨로지 언어의 새로운 특성과 원리 (OWL 2 Web Ontology Language New Features and Rationale)
검증 날짜 (Validation date): 2010-11-15
기술어(Descriptors): 온톨로지(ontology), 시맨틱 웹(Semantic Web), OWL, 웹 온톨로지 언어(Web Ontology Language) 문서는 W3C의 OWL 2 웹 온톨로지 언어의 새로운 특성과 원리 권고안에 대한 번역본이다 (This documented is a translated copy of the W3C's OWL 2 Web Ontology Language New Features and Rationale Recommendation). 이 문서는 변역상의 오류를 포함할 수 있다 (This document may contain tanslation errors). 영문으로 된 규범적 문서는 다음에서 찾을 수 있다 (The normative, English language, copy can be found at):
|
이 문서에 대해 형식적인 문서 형태로 일부 수정내용을 포함하고 있는 정오표(errata)를 참조하시오.
이 문서는 또한 비형식적 문서로도 볼 수 있다: PDF version.
또한 번역문(translations)을 참조하시오.
Copyright © 2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
간단하게 OWL 2라 불리는 OWL 2 웹 온톨로지 언어(OWL 2 Web Ontology Language)는 형식적으로 정의된 의미(formally defined meaning)와 함께 시맨틱 웹을 위한 온톨로지 언어이다. OWL 2 온톨로지는 클래스(class)와 속성(property), 개체(individual), 그리고 데이터 값(data value)을 지원하고 있으며, 시맨틱 웹 문서 형태로 저장된다. OWL 2 온톨로지는 RDF로 작성된 정보들과 함께 사용될 수 있으며, 주로 RDF 문서 형태로 교환된다. OWL 2 문서 요약(Document Overview)는 OWL 2의 전반적인 설명을 포함하고 있으며, 다른 OWL 2 문서를 읽기 전에 반드시 읽어보아야 한다.
이 문서는 OWL의 초기 버전과 OWL 2 사이의 차이점에 대한 설명을 포함하여 OWL 2 웹 온톨로지 언어의 새로운 특성들에 대한 설명을 담고 있다. 또한 새로운 주요 특성(features)들을 만드는데 있어 기초가 되었던 요구사항들과 구현 관점과 이론적 관점에서의 특성들에 대한 근거를 나타내고 있다.
이 부분은 출판 당시 이 문서의 상태를 기술한다. 다른 문서가 이 문서를 대체할 있다. 현재 W3C 출판의 목록과 이 기술 문서의 최근 개정본은 W3C 기술 보고서 색인(technical reports index)에서 찾을 수 있다.
OWL 2는 XML Schema Definition Language (XSD)에서 정의된 데이터타입을 사용하여 정의될 수 있다. 이 글이 작성되는 지금 XSD의 가장 최근 W3C 권고안은 1.0 버전이며, 1.1 버전은 권고안을 위해 진행 중에 있다. OWL 2는 XSD 1.1에서 가능한 새로운 데이터타입의 장점과 이를 작성하는데 있어서 명확하고 쉽다는 장점을 갖도록 설계되었지만, 이러한 장점들은 현재 일부 반영되지 않고 있다. XSD 1.1이 W3C 권고안이 될때까지 Conformance, section 2.3에서 설명된 것처럼 OWL 2의 요소(elements)들은 선택적(optional)으로 사용될 수 있다. XSD 1.1이 W3C 권고안으로써 발표되면, 이러한 요소들은 선택적 요소로 취급되지 않을 것이며, 명확히 지정된 다른 것들과 같이 필수적인 요소로 다루어질 것이다.
현재의 개발자나 사용자는 XSD 1.1 Candidate Recommendation을 따르기를 제안한다. 스키마와 OWL 활동 단체(OWL Working Groups) 사이의 논의를 기초로 하여, XSD 1.1이 권고안으로 되더라도 어떠한 구현상의 변경사항도 필요하지 않기를 기대한다.
public-owl-comments@w3.org (public archive)로 어떤 의견이라도 보내주세요. 비록 OWL Working Group에 의해 이 문서의 작업이 완료되었지만, 당신의 의견은 향후 버전이나 정오표(errata)에 반영될 수 있습니다. 개발자들 사이의 열린 토론은 public-owl-dev@w3.org (public archive)에서 환영합니다..
이 문서는 W3C 회원과 소프트웨어 개발자, 그리고 다른 W3C 그룹과 모임에 흥미를 가진 회원들에 의해 검토되었으며, W3C 권고안으로써 책임자에 의해 승인되었다. 이것은 안정된(stable) 문서이며, 참고 자료나 다른 문서들로부터 참조되어질 수 있다. 권고안을 만드는데 있어서 W3C의 역할은 스펙에 대한 관심을 모으고 넓은 범위의 전개를 추진하는 것이다. 이것은 웹의 기능성과 상호운용성을 향상시킨다.
이 문서는 2004년 2월 5일 W3C 특허 정책(5 February 2004 W3C Patent Policy)에 따른 그룹 운영에 의해 제작되었다. 이 문서는 단순히 정보를 제공하고 있다. W3C는 그룹의 산출물과 관련하여 만들어진 특허 공개를 위한 공공 목록(public list of any patent disclosures)을 가지고 있다; 또한 여기에는 특허 공개를 위한 지침을 포함하고 있다.
이 문서는 OWL 2에 새롭게 추가된 특성(features)과 그 특성들이 추가된 이론적 근거(new features of OWL 2 and their rationale)에 대한 개요를 논하고 있다. 실제로 이러한 특성들은 개발자와 사용자, 도구 개발자의 경험을 기반으로 만들어졌으며, 이러한 특성의 일부는 OWLED 워크샵 시리즈(OWLED Workshop Series)에서 문서화 되었다. 이러한 특성에 대한 실제적 적용은 W3C OWL 활동 단체가 제공하는 사용사례에 의해 지원되고 있으며, 7절(Section 7)에 그 일부가 정리되어 있다. 또한 이 문서는 OWL 2의 개발 과정이나 목적에 따라 OWL 웹 온톨로지 언어 OWL 1(OWL Web Ontology Language)을 계속적으로 사용하고자 하는 과정에서 겪게되는 디자인 결정사항, OWL 2를 위한 다양한 구체적인 문법, 그리고 RDF와 OWL 2의 관계 (Section 4)에 대해 기술하고 그 이유를 설명하고 있다. OWL 2는 OWL을 확장하였으며 언어적 특성, 디자인 결정사항, 그리고 OWL 1을 위한 사용 사례를 그대로 이용하고 있다. 따라서 이 문서는 OWL 1 [OWL Use Cases and Requirements]의 기초가 되는 사용 사례와 요구사항(the Use Cases and Requirements)의 확장된 형태이다.
OWL 2는 속성(property)을 위한 확장된 표현력, 확장된 데이터타입(datatype)의 지원, 단순한 메타모델링(metamodeling) 능력, 확장된 주석 기능, 그리고 키(key) (Section 2)를 포함하여, OWL 1으로부터 새로운 특성들이 추가되었다. OWL 2는 또한 명확한 성능적 요구사항이나 구현을 보다 쉽게 하기위한 OWL 2 언어의 서브셋인 프로파일(profile)을 정의하고 있다.
이곳에서는 OWL 2의 새로운 특성들을 보여주고 있으며, 다음의 범주로 정리되어 진다:
각 특성은 다음의 공통된 형태로 기술되어 있다:
구독자들은 아래의 버튼을 누름으로써 선택적으로 예제(Example)와 기능적 문법(Functional Syntax (FSS)) 혹은 RDF 문법(RDF Syntax)에 대한 예제를 보거나 숨길 수 있다.
OWL 2에는 몇몇 공통적 패턴을 더 쉽게 기술하기 위한 문법적 요소가 추가되었다. 이러한 모든 구조는 단순히 이전에 비해 보다 간략한 표현법일뿐 표현력과 의미(semantics), 그리고 언어 복잡도에서의 변화는 없다. 그러나 구현할 때에는 더욱 효과적인 처리를 위해 이러한 구조에 특별한 주의를 취하는 것이 좋다.
OWL 1은 공통의 원소를 갖지 않는(disjoint) 하위 클래스(subclass) 집합을 정의하고 그러한 공리(axiom)로 이루어진 상위 클래스(superclass)를 만들기 위한 수단을 제공하지만, 이러한 문법을 간결하게 표현할 수는 없었다.
DisjointUnion은 모든 클래스들이 공통의 원소를 갖지 않는 합집합(union)을 정의한다. 이것은 모든 클래스들이 공통의 원소를 갖지 않음을 선언하고 이것들의 집합 클래스를 만들기 위한 공리들의 단축표현이다. Normative Syntax Direct Semantics RDF-Based Semantics
DisjointUnion ({ A } C CE1 ... CEn )에서 C는 클래스이며, CEi, 1 ≤ i ≤ n는 클래스의 표현이고, 그리고 { A }는 0개 이상의 주석을 나타낸다.
| DisjointUnion(:BrainHemisphere :LeftHemisphere :RightHemisphere) (UC#2) | :BrainHemisphere은 :LeftHemisphere와 :RightHemisphere에 상호 배타적이며, 둘 모두에 속할 수 없다. |
| DisjointUnion(:Lobe :FrontalLobe :ParietalLobe :TemporalLobe :OccipitalLobe :LimbicLobe) (UC#1) |
:Lobe는 :FrontalLobe, :ParietalLobe, :TemporalLobe, :OccipitalLobe, 혹은 :LimbicLobe에 상호 배타적이며, 이들 중 하나 이상에 속할 수 없다. |
| DisjointUnion(:AmineGroup :PrimaryAmineGroup :SecondaryAmineGroup :TertiaryAmineGroup )(UC#3) |
:AmineGroup은 :PrimaryAmineGroup, :SecondaryAmineGroup, 혹은 :TertiaryAmineGroup에 상호 배타적이며, 이들 중 하나 이상이 될 수 없다. |
| DisjointUnion(:CarDoor :FrontDoor :RearDoor :TrunkDoor) (UC#4) | :CarDoor는 :FrontDoor, :RearDoor, 혹은 :TrunkDoor에 상호 배타적이며, 이들 중 하나 이상이 될 수 없다. |
Use Case #1 Use Case #2 Use Case #3 Use Case #4
OWL 1은 두 개의 하위 클래스가 공통의 원소를 갖지 않음(disjoint)을 기술하기 위한 수단을 제공하지만, 여러 개 하위 클래스의 쌍들이 모두 공통의 원소를 갖지 않음을 기술하는 것은 간결하게 표현되지 않는다.
DisjointClasses는 집합의 모든 클래스들이 공통의 원소를 갖지 않음을 나타낸다. 이것은 클래스들 사이의 공통의 원소를 갖지 않는 공리에 대한 단축표현이다. Normative Syntax Direct Semantics RDF-Based Semantics
DisjointClasses ({ A } CE1 ... CEn )에서 CEi, 1 ≤ i ≤ n은 클래스를 나타내며, { A }는 0개 이상의 주석을 의미한다.
| DisjointClasses( :UpperLobeOfLung :MiddleLobeOfLung :LowerLobeOfLung ) (UC#2) | :UpperLobeOfLung와 :MiddleLobeOfLung, :LowerLobeOfLung는 상호 배타적이다. |
| DisjointClasses( :LeftLung :RightLung ) (UC#2) | 어떠한 것도 :LeftLung와 :RightLung 동시에 속할 수 없다. |
OWL 1은 개체(individual)가 갖는 속성(property)의 값을 선언하기 위한 방법을 제공하지만, 개체가 해당 값을 직접적으로 갖지 않는다는 것을 선언하는 방법은 제공하지 않는다 (부정 사실 (negative facts)).
NegativeObjectPropertyAssertion (resp. NegativeDataPropertyAssertion)은 해당 속성이 그 개체(값)을 갖지 않음을 의미한다. Normative Syntax Direct Semantics RDF-Based Semantics
NegativeObjectPropertyAssertion( { A } OPE a1 a2 )에서 OPE는 객체 속성(object property)을 나타내며, a1과 a2는 개체를 의미하고, { A }는 0개 이상의 주석을 나타낸다.
NegativeDataPropertyAssertion( { A } DPE a lt )에서 DPE는 값을 갖는 속성(data property)을 나타내며, a는 개체, lt는 문자 값, 그리고 { A }는 0개 이상의 주석을 나타낸다.
| NegativeObjectPropertyAssertion( :livesIn :ThisPatient :IleDeFrance ) (UC#9) | :ThisPatient는 :IleDeFrance 지역에 살지 않는다. |
| NegativeDataPropertyAssertion( :hasAge :ThisPatient 5^^xsd:integer ) (UC#9) | :ThisPatient는 다섯 살이 아니다. |
OWL 1은 주로 클래스(classes)와 개체(individuals)의 정보를 표현하기 위한 구조에 초점을 맞추고 있으며, 속성을 위한 표현력에 있어서는 약한 모습을 보이고 있다. OWL 2는 속성에 추가적인 제약과 속성의 새로운 특징, 속성의 상반된 특성(incompatibility), 속성 체인(chain), 그리고 키(key)를 기술하기 위한 새로운 구조를 제공하고 있다.
OWL 1은 주어진 속성에 의해 자기 자신과 연결된 객체들의 클래스를 정의하는, 예를 들어 자기 자신을 조절하는 처리 과정의 클래스, 구조를 제공하지 않는다. 이러한 "지역적 재귀(local reflexivity)"는 특히 일부 객체의 클래스들을 위해서 지역적 재귀가 도출될 수 있지만 속성을 위한 전역적 재귀가 도출될 수 없을 때 많은 응용 프로그램에서 유용하다. OWL 2의 ObjectHasSelf는 클래스를 기술하는데 사용되는 지역적 재귀용법을 나타낸다. 자기참조 제약(self restrictions)은 사용자들이 요청한 추가 기능(additions)들을 제공하기 위해 설계된 OWL-DL (SHOIN) 기반 기술논리(description logic)의 확장인 SROIQ [SROIQ]의 일부에 속한다. 이는 결정 가능성(decidability)과 실행 가능성(practicability)에 영향을 미치지 않는다. SROIQ는 FaCT++, HermiT, 그리고 Pellet을 포함하여 여러 추론기(reasoner)에서 지원되고 있다 [TOOLS].
ObjectHasSelf 제약을 사용하여 정의된 클래스 표현은 주어진 객체 속성(object property)을 통해 모든 객체들이 자기 자신과 연결되어 있는 클래스를 나타낸다. Normative Syntax Direct Semantics RDF-Based Semantics
ObjectHasSelf (OPE)에서 OPE는 객체 속성을 나타낸다.
| SubClassOf( :AutoRegulatingProcess ObjectHasSelf( :regulate ) ) | Auto-regulating processes는 자기 자신을 조절한다. |
| SubClassOf( :Auto-Phosphorylating-Kinase ObjectHasSelf( :phosphorylate )) (UC#20) | Auto-Phosphorylating-Kinases는 자기 자신을 인산화한다. |
OWL 1은 최소한 세 명의 자녀를 갖는 사람들을 정의하는 것과 같이 속성이 갖는 개체의 수를 제한하기 위한 문법은 허용하지만, 최소한 세 명의 여자 자녀를 갖는 사람 클래스를 지정하는 것과 같이 개체의 클래스나 데이터의 범위를 제한(제한적 횟수 제약, qualified cardinality restrictions)하기 위한 방법은 제공하지 않는다. OWL 2에서는 제한적 횟수 제약과 비제한적 횟수 제약이 모두 가능하다. 제한적 객체나 데이터의 횟수 제약은 SROIQ의 표현력을 가지며, 현재 잘 구현되어져 있다. 이러한 구조는 이미 다양한 툴과 추론기(예를 들어; Protégé 4, FACT++, HermiT, KAON2, PELLET와 RACER)에서 지원되고 있다. [TOOLS] [OWL API].
ObjectMinCardinality, ObjectMaxCardinality, 그리고 ObjectExactCardinality (더불어, DataMinCardinality, DataMaxCardinality, 그리고 DataExactCardinality)는 객체 (더불어, 데이터) 속성의 최소, 최대 혹은 정확한 횟수를 지정하는 제한적 횟수 제약을 선언하는데 사용된다. Normative Syntax Direct Semantics RDF-Based Semantics
객체 속성 횟수 제약(Object Property Cardinality Restrictions)
ObjectMinCardinality ( n OPE [ CE ] )에서 n은 양의 정수를 나타내며, OPE는 객체 속성, 그리고 [ CE ]는 0개나 하나의 클래스를 나타낸다.
ObjectMaxCardinality ( n OPE [ CE ] )에서 n은 양의 정수를 나타내며, OPE는 객체 속성, 그리고 [ CE ]는 0개나 하나의 클래스를 나타낸다.
ObjectExactCardinality ( n OPE [ CE ] )에서 n은 양의 정수를 나타내며, OPE는 객체 속성, 그리고 [ CE ]는 0개나 하나의 클래스를 나타낸다.
| ObjectMinCardinality( 5 :hasDirectPart owl:Thing ) | 최소한 다섯 개의 직접적인 부분을 갖는 객체의 클래스 |
| ObjectExactCardinality( 1 :hasDirectPart :FrontalLobe ) (UC#1) | 정확히 한 개의 전두엽 유형의 직접적인 부분을 갖는 객체의 클래스 |
OWL 1에서는 뇌 반구(Brain Hemisphere)가 최소한 5 개의 직접적인 부분을 가지고 있다는 것을 표현하는 것이 가능하다. 하지만 UC#1에서 필요한 것처럼 각 특정 부분, 전두엽(frontal), 두정엽(parietal), 측두엽(temporal), 후두엽(occipital), 변연엽(limbic lobe)을 정확히 하나씩 가지고 있다는 것을 표현할 수는 없다. OWL 2에서는 위의 예제에서 보여준 것과 같이 이러한 두 개의 표현이 모두 가능하다.
| ObjectMaxCardinality( 3 :boundTo :Hydrogen) (UC#3) | 최대 세 개의 다른 :Hydrogen을 갖는 객체들의 클래스 |
| ObjectMaxCardinality( 5 :hasPart :Door ) (UC#4) | 최대 다섯 개의 :Door를 갖는 객체들의 클래스 |
| ObjectExactCardinality( 2 :hasPart :RearDoor ) (UC#4) | 정확히 두 개의 :RearDoor를 갖는 객체들의 클래스 |
데이터 속성 횟수 제약(Data Property Cardinality Restrictions)
DataMinCardinality ( n DPE [ DR ] )에서 n은 양의 정수를 나타내며, DPE는 데이터 속성, 그리고 [ DR ]는 0개나 하나의 데이터 범위를 나타낸다.
DataMaxCardinality ( n DPE [ DR ] )에서 n은 양의 정수를 나타내며, DPE는 데이터 속성, 그리고 [ DR ]는 0개나 하나의 데이터 범위를 나타낸다.
DataExactCardinality ( n DPE [ DR ] )에서 n은 양의 정수를 나타내며, DPE는 데이터 속성, 그리고 [ DR ]는 0개나 하나의 데이터 범위를 나타낸다.
| DataMaxCardinality( 1 :hasSSN ) | 최대 하나의 사회보장번호를 갖는 각 개체 |
Use Case #1 Use Case #2 Use Case #3, Use Case #4 Use Case #8
OWL 1에서는 대칭(symmetric) 혹은 이행(transitive)의 성질을 갖는 객체 속성에 대한 선언을 제공하지만, 재귀(reflexive), 비재귀(irreflexive), 혹은 비대칭(asymmetric)의 특성을 갖는 속성을 정의하는 것이 불가능하다.
OWL 2에서의 ReflexiveObjectProperty는 객체 속성이 온톨로지 전체에서 즉, 해당 속성을 갖는 모든 개체는 재귀적 특성을 갖음을 선언한다. Normative Syntax Direct Semantics RDF-Based_Semantics
ReflexiveObjectProperty ( { A } OPE )에서 OPE는 객체 속성을 나타내며, 그리고 { A }는 0개 이상의 주석을 의미한다.
| ReflexiveObjectProperty( :sameBloodGroup ) (UC#9) | 모든 것들은 자기 자신을 동일한 혈액 그룹으로 갖는다. |
| ReflexiveObjectProperty( :part_of ) (UC#2) | 모든 것들은 자기 자신의 :part_of이다. |
주석: 여기에는 부분-전체(mereological) 관계의 다른 해석이 존재한다. 예를 들어 OBO (Use Case #5)에서 :part_of는 재귀적으로 사용되는 반면, 해부학(anatomical) 개체들 사이에서의 anatomicalPartOf 부분-전체 관계는 Use Case #1에서 비재귀 속성으로 선언되었다.
OWL 2의 IrreflexiveObjectProperty는 객체 속성이 비재귀적임을 선언하기 위해 사용된다. 즉, 해당 속성을 갖는 어떤 개체도 자기 자신을 갖을 수 없다. Normative Syntax Direct Semantics RDF-Based_Semantics
IrreflexiveObjectProperty ( { A } OPE )에서 OPE는 객체 속성을 나타내며, { A }는 0개 이상의 주석을 의미한다.
| IrreflexiveObjectProperty( :proper_part_of ) (UC#5) | 어떤 것도 엄밀한 의미에서 자기 자신의 부분일 수 없다. |
| IrreflexiveObjectProperty( :boundBy ) (UC#1) | 어떤 것도 자기 자신에 의해 결속될 수 없다. |
| IrreflexiveObjectProperty( :flowsInto )(UC#6) | 어떠한 것도 자기 자신으로 흘러갈 수 없다. |
주석: 주어진 예제들은 Use Case #1과 같은 사용사례에서 부분-전체(mereological)와 위상(topological)의 속성인 anatomicalPartOf :boundBy에 대한 문장과 일치한다. 그러나 다른 응용 프로그램에서는 다른 특성을 가진 속성에 대한 용어로 사용될 것이다.
OWL 2의 AsymmetricObjectProperty는 객체 속성이 비대칭임을 선언하기 위해 사용된다. 즉, 속성 OPE가 개체 x와 y 사이의 관계를 나타낼 경우, 이는 y와 x 사이의 관계를 내포할 수 없다. 참고로 비대칭 속성에 대한 선언은 단순히 대칭이 아니다라는 선언보다 엄격(stronger)하다. Normative Syntax Direct Semantics RDF-Based_Semantics
AsymmetricObjectProperty ( { A } OPE )에서 OPE는 객체 속성을 나타내며, { A }는 0개 이상의 주석을 의미한다.
| AsymmetricObjectProperty( :proper_part_of )(UC#8) | 속성 :proper_part_of는 비대칭이다. |
이러한 문법적 구조들은 SROIQ의 일부이며, FaCT++, HermiT와 Pellet과 같은 추론기에 구현되어 있다.
Use Case #5 Use Case #6 Use Case #8
주석: 많은 사용 사례(use cases)들이 재귀(Reflexivity), 비재귀(Irreflexivity), 비대칭(Asymmetry), 혹은 지역적 재귀(Local Relexivity)에 대한 적절한 예를 보여주고 있다. 이러한 기능들의 유용성은 Health Care and Life Sciences 관심 단체(interest group)의 last call comment에서 명확하게 다루어지고 있다. 또한 Semantic Web Deployment Working Group (SWD)은 SKOS 의미 관계(semantic relation)의 명시적 응용 프로그램-명확한 전문 영역(specifying application-specific specializations)과 같은 (comment from the SWD 참고) 재귀와 비대칭의 잠재적 유용성에 대해 명확하게 언급하였다. 예를 들어, 부분-전체 관계에서 partOf 관계는 이행(transitive)적이며, 재귀(reflexive)적이며, 반대칭(antisymmetric)적이다. 생명 과학이나 시스템 공학과 같이 복잡한 구조를 설명하는 많은 응용 프로그램에서는 이러한 형태로 기술되어진 부분-전체 관계가 광범위하게 사용된다. [OBO] [RO]와 같이 온톨로지 모델링에서 접하게 되는 다른 관계들 또한 다른 선언들과 함께 이러한 공리를 만드는 과정을 필요로 한다. 이러한 예제들로써 적절한 부분(part)과 위치(location)를 나타내는 관계(일반적으로 이행과 비재귀), 인과 관계(일반적으로 이행과 비재귀), 그리고 회원 관계(일반적으로 비재귀)가 있다. 또 다른 예제는 skos:broader 관계이다. SKOS 명세서 [SKOS]는 두 가지 해석을 모두 허용하기 위한 skos:broader의 재귀적 혹은 비재귀적임에 대한 구문을 선언하지 않는다. 예를 들어, 추론 과정을 통한 OWL의 하위 클래스에 대한 직접적 해석은 재귀적(reflexive)으로 여겨지지만, 대부분의 용어사전(thesauri)이나 분류 체계(classification schemes)에서는 비재귀적(irreflexive)으로 사용된다. OWL 2의 재귀/비재귀는 필요에 의해 추가될 경우 두 개의 특성 중 하나만을 사용해야 한다. 자기 제약(self restrictions)은 (SubClassOf 공리를 통해) 주어진 skos:Concept처럼 skos:broader가 지역적 재귀나 비재귀를 만들수 있도록 보다 세분화(fine grained)되어 있다.
OWL 1은 클래스의 상호배타(disjoint)적 특성을 기술하는 방법을 제공하지만, 속성이 상호배타적임을 선언하는 것은 불가능하다.
OWL 2의 DisjointObjectProperties는 각각의 객체 속성이 각 쌍에 대해 양립될 수 없음(incompatible, 논리적으로 배타적(exclusive))을 선언하기 위해 사용된다. 즉, 두 개의 개체는 상호배타적 속성으로 선언된 두 개의 다른 속성에 의해 연결될 수 없다. 이러한 구문은 SROIQ의 일부이며, SROIQ 추론기에 의해 지원되고 있다. Normative Syntax Direct Semantics RDF-Based Semantics
DisjointObjectProperties( { A } OPE1 ... OPEn )에서 OPEi, 1 ≤ i ≤ n은 객체 속성을 나타내며, { A }는 0개 이상의 주석을 의미한다.
| DisjointObjectProperties( :connectedTo :contiguousWith ) (UC#1) | :connectedTo와 :contiguousWith는 상호배타적 속성이다. |
주석: Use Case #1은 어떤 것들이 인접(adjacent)해 있을 때 그것들은 연속적(contiguous)이다라고 이야기 하지만 connected를 따라 세번째 해부학적 개체에 의해 관계되어진 두개의 해부학적 개체를 정의하고 있다.
DisjointDataProperties는 각각의 데이터 속성이 각 쌍에 대해 양립될 수 없음(incompatible, 논리적으로 배타적(exclusive))을 선언하기 위해 사용된다. Normative Syntax Direct Semantics RDF-Based Semantics
DisjointDataProperties( { A } DPE1 ... DPEn )에서 DPEi, 1 ≤ i ≤ n은 데이터 속성을 나타내며, { A }은 0개 이상의 주석을 의미한다.
| DisjointDataProperties( :startTime :endTime ) | 수술과 같은 어떤 것의 시작 시간은 반드시 그것의 종료 시간과 달라야 한다. |
Use Case #1 Use Case #2 Use Case #3
OWL 1은 삼촌의 정의와 같이 다른 속성의 조합으로 만들어지는 속성을 정의하기 위한 방법을 제공하지 않는다. 이러한 이유로 다른 속성(예; partOf)을 따라 속성(예; locatedIn)을 전파하는 것이 불가능하다. OWL 2의 SubObjectPropertyOf 공리에서 ObjectPropertyChain은 여러 개 속성의 조합으로써 또 다른 속성을 정의하기 위해 사용된다. 이러한 공리들은 SROIQ에서 결정성(decidability)을 위해 필요한 규칙적 조건을 정의하는 복합 규칙 관계(complex role inclusions)로 알려져 있으며, SROIQ 추론기에서 지원되고 있다. Normative Syntax Direct Semantics RDF-Based Semantics
SubObjectPropertyOf ( ObjectPropertyChain( OPE1 ... OPEn ) OPE) 공리는 객체 속성 OPE1, ..., OPEn의 조합에 의해 개체 y에 연결되어 있는 개체 x는 객체 속성 OPE에 의해 y와 필연적으로 연결되어 있음을 나타낸다.
SubObjectPropertyOf ( { A } ObjectPropertyChain( OPE1 ... OPEn ) OPE )에서 OPEi, 1 ≤ i ≤ n은 객체 송석을 나타내며, { A }는 0개 이상의 주석을 의미한다.
| SubPropertyOf( ObjectPropertyChain( :locatedIn :partOf ) :locatedIn ) (UC#7) | 만약 x가 y에 위치하고 있으며 y가 z의 일부라면, x는 z에 위치하고 있다. 예를 들어, 어떤 부분에 속한 질병은 전체에 속해있다. |
Use Case #1 Use Case #5 Use Case #7 Use Case #8
OWL 1은 키를 정의하기 위한 수단을 제공하지 않는다. 그러나 키는 키 속성(속성의 집합)에 의해 주어진 클래스의 개체를 유일하게 식별하기 위한 용도로 많은 응용 프로그램에서 반드시 필요한 중요성을 갖고 있다. OWL 2의 HasKey는 주어진 클래스를 위한 키를 정의하는데 사용된다. OWL 2에서 키 속성이 기능적이거나 전체 속성들이 키 속성이 될 필요는 없지만, 필요한 경우 키 속성이 기능적이라고 별도로 명시하는 것이 언제나 가능하다. OWL 2에서 키는 DL을 따르는 규칙(DL Safe rule)의 형태이다 [DL-Safe]. 이러한 기능은 HermiT, KAON2과 Pellet에서 지원하고 있으며, 다른 추론기에 추가될 수 있다.
HasKey 공리는 클래스에서이름을 가진 각각의 개체가 (데이터나 객체) 속성이나 속성의 집합에 의해 유일하게 식별됨을 나타낸다. 즉, 만약 클래스에 두 개의 다른 이름을 가진 개체가 키 속성의 값이 일치한다면, 이 두 개체는 동일한 것이다. Normative Syntax Direct Semantics RDF-Based Semantics
HasKey( { A } CE ( OPE1 ... OPEm ) ( DPE1 ... DPEn ) )에서 CE는 클래스이며, OPEi , 1 ≤ i ≤ m은 객체 속성, DPEj, 1 ≤ j ≤ n는 데이터 속성, 그리고 { A }는 0개 이상의 주석을 나타낸다.
| HasKey( :RegisteredPatient :hasWaitingListN ) | [ABM 국가 장기 대기자 목록에서] 각각의 등록된 환자는 유일한 값을 갖는 대기목록 번호에 의해 식별된다 (UC#9). |
| ClassAssertion( :RegisteredPatient :ThisPatient ) | :ThisPatient는 :RegisteredPatient이다. |
| DataPropertyAssertion( :hasWaitingListN :ThisPatient "123-45-6789" ) | :ThisPatient는 대기목록 번호 "123-45-6789"를 갖는다. |
이 예제에서 :hasWaitingListN는 :RegisteredPatient 클래스를 위한 키 속성이기 때문에, "123-45-6789" 값은 :ThisPatient를 유일하게 구분하는 값이 된다. HasKey( :RegisteredPatient :hasWaitingListN ) 공리는 값이 할당된 두 명의 다른 환자는 대기목록에서 동일한 번호를 갖을 수 없음을 나타낸다. 만약 :RegisteredPatient 클래스에서 이름을 가진 다른 두 개체의 :hasWaitingListN 값이 동일하다면, 이 두 개체는 동일한 것이다. HasKey 공리는 단지 명확하게 이름이 부여된 개체에 적용된다는 가장 큰 차이점을 빼면 InverseFunctionalProperty 공리와 유사하다. 이것은 각 등록된 환자가 최소 혹은 최대 하나의 :hasWaitingListN의 값을 갖는다는 것을 나타내지는 않는다. 각 환자들이 :hasWaitingListN를 갖는다 할지라도 :RegisteredPatient 클래스에 속한다는 추론은 도출될 수 없다.
| HasKey( :Transplantation :donorId :recipientId :ofOrgan ) | 각각의 이식수술(Transplantation)은 기증자, 환자, 그리고 장기에 의해 유일하게 식별된다 (UC#9) . |
이식 수술을 식별하기 위해서는 여러 속성들의 집합이 필요하다. 실제로 기증자는 한 사람을 위해 신장과 간 같은 여러 개의 장기를 기증하거나 신장과 같이 두명의 환자에게 동일한 장기를, 혹은 다른 환자에게 다른 장기를 기증한다.
Use Case #2 Use Case #7 Use Case #9
OWL 1은 데이터타입으로써 단지 정수형과 문자열 만을 지원할 뿐 이러한 데이터타입의 하위 셋(subset)을 지원하지는 않는다. 예를 들어, 모든 사람은 정수값 형태의 나이를 갖는다는 구문은 기술할 수 있지만, 어른은 나이가 18살 이상이다를 기술하는 것과 같이 데이터타입의 범위를 제한할 수는 없다. OWL 2는 XML 스키마(XML Schema)에서 사용되는 데이터타입 제약의 형태(패싯, facet)를 이용해서 데이터타입의 제약과 보다 풍부한 데이터타입을 위한 새로운 기능을 제공한다.
OWL 2 데이터타입은 a) XML 스키마 데이터타입(double, float, decimal, positiveInteger등과 같은)의 보다 확장된 지원과 owl:real과 같이 자체의 데이터타입을 제공하는 다양한 숫자형; b) (rdf:PlainLiteral 데이터타입을 사용하는) 언어태그(Language Tag)를 포함하는(혹은 포함하지 않는) 문자열; 그리고 c) 불 방식(boolean)의 값, 이진 데이터(binary data), IRI(Internationalized Resource Identifier), 시간 등을 포함한다.
DatatypeRestriction은 또한 주어진 데이터타입을 위해 허용된 값의 범위를 제한하는 minInclusive, maxInclusive와 같은 제약 구조(facet)의 방법이나 minLength, maxLength, 최소/최대 값과 같이 (문자열을 위한) 길이에 대한 제약을 통해 데이터타입에 대한 제한을 하는 것이 가능하다. 확장된 데이터타입은 많은 기술논리(description logic)에서 허용되고 있으며, 몇몇 추론기에 의해 지원되고 있다. Normative Syntax Direct Semantics RDF-Based Semantics
DatatypeRestriction( DT F1 lt1 ... Fn ltn )에서 DT는 단항의 데이터타입을 나타내며, ⟨Fi lti ⟩, 1 ≤ i ≤ n는 제약 구조(constraining facet)와 문자(literal)의 쌍을 의미한다.
| DatatypeRestriction(xsd:integer minInclusive 18) (UC#9) | XML 스키마의 xsd:integer 데이터타입으로써 18 이하의 값을 갖는 새로운 데이터타입 |
이 데이터타입은 18살 초과(어른)된 사람은 어른을 위한 서비스를 받는 반면 병원의 소아과 서비스를 받을 수 있는 18살 이하(어린이)의 환자를 정의하기 위해 필요하다.
Use Case #9 Use Case #11 Use Case #12 Use Case #18 Use Case #19
OWL 1에서는 길이가 넓이와 같은 사각형을 정사각형으로 정의하는 것과 같이 하나의 객체를 위해 두 값 사이의 관계를 나타내는 것이 불가능하다. N항(N-ary) 데이터타입에 대한 지원이 추가가 되어야하는지에 대한 논의가 있었기 때문에 현재 OWL 2에 포함되지는 않았다. 그러나 OWL 2는 확장을 위해 공통적인 기반을 제공하는 N항 데이터타입의 문법적 구조를 포함하고 있다. 데이터 범위 확장: 선형 방정식(Data Range Extension: Linear Equations) 관련 내용은 유리계수(rational coefficients)와 함께 선형 방정식(부등식)(linear (in)equations)의 관점에서 데이터 범위를 정의하기 위해 OWL 2에 대한 추가를 제안하고 있다.
| DataAllValuesFrom ( :admissionTemperature :currentTemperature DataComparison(Arguments(x y) leq( x y )))) (UC#11) |
개체의 :admissionTemperature가 해당 개체의 :currentTemperature와 작거나 같은 개체 |
OWL 1은 클래스 기술(description)에 의해 정의되는 새로운 클래스를 허용하지만, 명확하게 새로운 데이터타입을 정의하기 위한 수단은 제공하지 않는다. 온톨로지 작성, 사용 및 유지의 용이성을 위해 OWL 2는 데이터타입을 정의하기 위한 새로운 구조를 제공한다. 이것은 온톨로지에서 동일한 데이터타입이 여러 번에 걸쳐 사용될 경우 특히 유용한다.
DatatypeDefinition은 명시적으로 새로운 데이터 타입의 이름을 지정한다. Normative Syntax Direct Semantics RDF-Based Semantics
DatatypeDefinition ( { A } DT DR )에서 DT는 데이터타입을 나타내며, DR은 데이터 범위, { A }는 0개 이상의 주석을 의미한다.
| DatatypeDefinition( :adultAge DatatypeRestriction(xsd:integer minInclusive 18)(UC#9) |
어른의 나이는 XML 스키마의 xsd:integer 데이터타입과 함께 18의 하계(lower bound)를 사용해서 정의되어 진다. |
OWL 1은 클래스의 조합에 의해 새로운 클래스를 생성하는 것을 허용하지만, 데이터타입의 조합에 의해 새로운 데이터타입을 생성하는 구조를 제공하지는 않는다. OWL 2에서는 이러한 방법으로 새로운 데이터타입을 정의하는 것이 가능하다.
OWL 2에서는 데이터 범위의 조합을 데이터 범위의 교집합(DataIntersectionOf), 합집합(DataUnionOf), 그리고 여집합(DataComplementOf)을 사용해서 생성하는 것이 가능하다.
DataIntersectionOf ( { A } DR1 ... DRn )에서 DRi, 1 ≤ i ≤ n은 데이터범위를 나타내며, { A }은 0개 이상의 주석을 의미한다.
DataUnionOf ( { A } DR1 ... DRn )에서 DRi, 1 ≤ i ≤ n은 데이터범위를 나타내며, { A }은 0개 이상의 주석을 의미한다.
DataComplementOf ( { A } DR)에서 DRi, 1 ≤ i ≤ n은 데이터범위를 나타내며, { A }은 0개 이상의 주석을 의미한다.
| DataComplementOf( :adultAge ) | 이 데이터의 범위는 18보다 크거나 같은 양의 정수가 아닌 모든 문자를 포함한다. |
OWL 1 DL은 클래스와 개체 사이에서와 같이 이름에 대한 엄격한 구분을 필요로 했다. OWL 2 DL은 동일한 용어를 다르게 사용하는 것을 어느 정도 허용한다. 예를 들어, Eagle이란 용어는 모든 Eagle의 클래스를 나타내는 클래스와 모든 식물과 동물의 (메타)클래스에 속하는 종 Eagle을 의미하는 개체로써 둘 모두를 위해 사용될 수 있다. 그러나 OWL 2 DL에서 이름은 클래스와 데이터타입을 위해 중복되어 사용될 수 없으며, 이름은 반드시 하나의 속성을 위해 사용되어야 하는 것과 같이 일부 제한을 가지고 있다. OWL 2 Direct Semantics는 DL 추론기에서 요구되어지는 것처럼 완전히 다르지만 동일한 이름의 서로 다른 사용에 대해 다루고 있다.
| Declaration( Class( :Person ) ) (UC#13) (1) | :Person은 클래스로 선언되었다. |
| ClassAssertion( :Service :s1 ) (2) | :s1은 :Service의 개체이다. |
| ObjectPropertyAssertion( :hasInput :s1 :Person )(3) | 개체 :s1 은 개체 :Person과 :hasInput에 의해 연결되어 있다. |
동일한 용어인 ':Person'은 (1)에서는 클래스로 (3)에서는 개체를 나타낸다. 이것은 OWL 2에서 동음이의어(클래스 ↔ 개체)의 사용으로 가능하다.
| Declaration( Class( :Deprecated_Properties ) ) (UC#14)(1) | :Deprecated_Properties 은 클래스로 선언되었다. |
| Declaration( ObjectProperty( :is_located_in ) ) (2) | :is_located_in은 객체 속성(ObjectProperty)으로 선언되었다. |
| ClassAssertion( :Deprecated_Properties :is_located_in ) (3) | :is_located_in은 :Deprecated_Properties의 개체이다. |
동일한 용어인 'is_located_in'은 속성 (2)과 개체 (3)를 나타낸다. 이것은 OWL 2에서 동음이의어(속성↔ 개체)의 사용으로 가능하다.
Use Case #14는 또한 보다 직관적이거나 좋은 모델링일 수 있는 :is_located_in 속성에 deprecated property 주석을 사용해서 표현될 수 있다.
| Declaration( Class( :Person ) ) Declaration( Class( :Company ) ) (UC#15) (1) | :Person과 :Company는 클래스로 선언되었다. |
| SubClassOf ( :PersonCompany :Association) (2) | :PersonCompany는 :Person과 Company 클래스 사이의 관계를 만들기 위해 사용된 :Association의 하위 클래스를 나타낸다. |
| ObjectPropertyDomain( :PersonCompany :Person )(3) | :PersonCompany 속성의 도메인(domain)은 :Person이다. |
| ObjectPropertyRange( :PersonCompany :Company )(4) | :PersonCompany 속성의 범위(range)는 :Company이다. |
동일한 용언인 :PersonCompany는 클래스 (2)와 객체속성(3, 4)을 나타낸다. 이것은 OWL 2에서 동음이의어(클래스↔ 객체속성)의 사용으로 가능하다.
Use Case #12 Use Case #13 Use Case #14 Use Case #15
OWL 1은 각 온톨로지 개체에 대해 이름표(label)나 설명(comment)과 같은 추가논리적(extralogical) 주석을 추가하는 것을 허용하지만, 공리를 누가 혹은 언제 선언했는지에 대한 정보를 주는 것과 같이 공리 자체에 대한 주석은 허용하지 않는다. OWL 2는 온톨로지, 개체, 익명 개체(anonymous individuals), 공리, 그리고 주석 자체에 대한 주석을 추가할 수 있다.
온톨로지 개체와 익명 개체에 대한 주석 (Annotations on ontology entities and anonymous individuals) OWL 2는 (클래스나 속성 같은) 온톨로지 개체와 익명 개체의 주석을 위한 AnnotationAssertion 구문을 제공한다. 이러한 주석은 DL 추론기의 직접적인 사용과 관련하여 OWL 2 Direct Semantics에서 아무런 의미도 갖지 않는다.
AnnotationAssertion( { A } AP s v )에서 AP는 주석 속성을 나타내며, s는 IRI 혹은 익명 개체, v는 문자값, IRI, 혹은 익명 개체를 의미하고, {A}는 (주석 선언의) 0개 이상의 주석을 나타낸다.
| AnnotationAssertion (rdfs:label CARO:0000003 "anatomical structure" ) (UC#5) | CARO 온톨로지의 CARO:0000003 IRI는 rdfs:label 주석 속성의 값으로써 사람이 읽고 이해하는데 필요한 설명문인 "해부학적 구조(anatomical structure)" 주석이 달려졌다. |
| AnnotationAssertion (FMA:UWDAID FMA:Heart 7088 ) (UC#2) | FMA의 FMA:Heart IRI는 FMA:UWDAID 주석 속성의 값으로 숫자값 7088 (그것의 FMA 아이디)이 주석으로 달려있다. |
공리, 주석, 온톨로지에 대한 주석 (Annotations on Axioms, Annotations, Ontologies) OWL 2는 공리와 온톨로지의 주석을 위한 Annotation 구문을 제공한다. 이것은 주석 자체의 주석을 위해서도 사용될 수 있다. 이러한 주석은 DL 추론기의 직접적인 사용과 관련하여 OWL 2 Direct Semantics에서 아무런 의미도 갖지 않는다.
Annotation( {A} AP v )에서 AP는 주석 속성을 나타내며, v는 문자값, IRI, 혹은 익명 개체를 의미하고, {A}는 0개 이상의 주석을 나타낸다.
| SubClassOf( Annotation( rdfs:comment "Middle lobes of lungs are necessarily right lobes since left lungs do not have middle lobe.") :MiddleLobe :RightLobe ) (UC#2) | "페중엽은 반드시 우측엽이다(Middle lobes of lungs are necessarily right lobes)"라는 설명은 왜:MiddleLobe가 :RightLobe의 하위 클래스인지를 설명하는 하위 클래스 공리에 대한 주석문이다. |
Use Case #2 Use Case #5 Use Case #12 Use Case #19
주석 속성은 도메인(AnnotationPropertyDomain)과 범위(AnnotationPropertyRange)가 주어질 수 있으며, 주석 속성의 계층구조(SubAnnotationPropertyOf)를 가질 수 있다. 이러한 특별한 공리는 OWL 2 Direct Semantics에서 아무런 의미론적 뜻(semantic meaning)을 가지고 있지 않지만, RDF-based Semantics에서는 (RDF 어휘에 대한 사상을 통해) 표준(standard) RDF 의미(RDF Semantics)를 갖는다.
주석 속성의 하위 속성 (Subproperty of Annotation Property)
SubAnnotationPropertyOf( { A } AP1 AP2 )에서 AP 1과 AP2는 주석 속성을 나타내며, {A}는 0개 이상의 주석문을 의미한다.
| SubAnnotationPropertyOf (:narrow_synonym :synonym ) (UC#5) | :narrow_synonym 속성은 :synonym의 하위 속성이다.
특히 유전자 온톨로지에서 OBO 온톨로지는 동의어의 서로 다른 종류들: 정확한 동의어, 협의의 동의어, 광의의 동의어를 구분한다. |
주석 속성의 도메인 (Domain of Annotation Property)
| AnnotationPropertyDomain ( FMA:UWDAID FMA:AnatomicalEntity )(UC#2) | 단지 FMA: AnatomicalEntity만 (FMA 아이디인) FMA:UWDAID를 가질 수 있다. |
주석 속성의 범위 (Range of Annotation Property)
| AnnotationPropertyRange ( FMA:UWDAID xsd:positiveInteger ) (UC#2) | FMA: AnatomicalEntity의 아이디는 양의 정수이다. |
OWL 1에서는 클래스나 객체 속성과 같은 개체들이 앞서 선언이 되지 않더라도 온톨로지에서 사용될 수 있다. 따라서 개체의 이름이 다른 공리와 일치된다는 것을 보장할 수 있는 방법이 없다. 실제로 만약 개체 이름이 공리에서 잘못 입력되었다면, 에러를 잡아낼 수 있는 방법이 없다. OWL 2에서 선언문은 개체가 온톨로지 어휘의 일부임을 나타낸다. 또한 선언문을 이용해서 선언된 개체와 함께 개체의 범주(클래스, 데이터타입, 객체 속성, 데이터 속성, 주석 속성, 혹은 개체)를 연결할 수 있다. 선언문은 항상 필수적 사항은 아니다(Syntax를 참조하라). 선언문은 OWL 2 온토롤지의 의미에 영향을 미치지 않으며, 따라서 추론에 영향을 미치지 않는다. 구현에 있어서 필요할 경우 모든 이름이 선언되었는지에 대한 검사는 선택적으로 처리될 수 있다.
Declaration( A E )에서 A는 주석을 나타내며, E는 개체를 의미한다.
아래의 선언문은 :Person IRI가 클래스로써 사용되고 있으며, :Peter IRI는 개체로 사용되고 있음을 보여준다.
| Declaration( Class( :Person ) ) (UC#17) | :Person은 클래스로 선언되어 졌다. |
| Declaration( NamedIndividual( :Peter ) ) | :Peter는 개체로 선언되어 졌다. |
| Declaration( Class( CARO:0000003 ) ) (UC#5) | CARO:0000003은 클래스로 선언되어 졌다. |
OWL 1에서는 클래스들은 위해 owl:Thing과 owl:Nothing에 해당하는 최상과 최하의 미리 정의된 개체만을 가지고 있는 반면, OWL 2는 owl:topObjectProperty, owl:bottomObjectProperty, owl:topDataProperty, 그리고 owl:bottomDataProperty을 이용하여 최상과 최하 객체와 데이터 속성을 지원한다.
Uniform Resource Locators (URIs)은 클래스, 온톨로지, 그리고 다른 온톨로지 요소를 식별하기 위해 OWL 1에서 사용되어 졌다. URI는 ASCII의 부분집합을 사용해서 문자열을 표현한다. 이것은 ASCII가 영어 알파벳의 문자를 포함하고 있기 때문에 특히 비영어권 언어의 이름을 사용하는데 있어서 매우 제한적이다. 국제적 필요를 지원하기 위해, OWL 2는 온톨로지와 그들의 요소를 식별하기 위해 Internationalized Resource Identifiers (IRIs) [RFC3987]를 사용한다.
OWL 1에서 온톨로지는 시맨틱 웹 문서로 저장되어질 수 있으며, 온톨로지는 다른 온톨로지에 내포(import)될 수 있다. OWL 2는 온톨로지 문서의 위치에 의해 이러한 내포 작업을 명확하게 만들어 준다.
OWL 2는 또한 다양한 요청을 응답하는데 있어 필요한 온톨로지 이름 (IRI)과 위치 사이의 관계를 명확하게 해주며, 버전의 이름(IRIs)을 이용해서 단순한 버전 관리의 방법을 제공한다. 각 OWL 2 온톨로지는 온톨로지를 식별하기 위해 사용되는 온톨로지 IRI를 가질 수 있다. OWL 2 온톨로지는 또한 온톨로지의 특정 버전을 식별하기 위해 사용되는 버전 IRI를 가질 수도 있다.
OWL 2 온톨로지는 그것의 버전 IRI에 저장될 뿐만 아니라 온톨로지 IRI를 갖는 온톨로지들 중 하나는 온톨로지 IRI에 저장되어 진다. 만약 요청된 온톨로지의 버전을 상관하지 않는다면 내포작업(importing)은 온톨로지 IRI를 통해 처리될 수 있지만, 만약 특정 버전이 요구된다면 버전 IRI를 사용해야 된다.
Ontology ( [O [ V ]] { Import ( O' ) } { A } { AX } )에서 [O]와 [V]는 0개나 하나의 온톨로지와 버전 IRI를 의미하며, {Import(O')}는 0개 이상의 내포를, O'은 온톨로지 IRI, {A}는 0개 이상의 주석, 그리고 {AX} 는 0개 이상의 공리를 나타낸다.
온톨로지는 버전 IRI V에 저장된다. 또한 온톨로지 IRI O를 사용하는 버전들 중 하나는 O에 저장되어 지고; 이것이 온톨로지의 현재 버전으로 간주되어 진다.
다른 변경사항들은 OWL 2 구문에서 도입되었지만, OWL 1과 관련하여 표현력에서는 변하지 않았다.
OWL 1에서 익명 개체는 식별자 없는 개체로써 사용되었다.
| Individual(value( :city :Paris ) value( :region :IleDeFrance )) | 이 공리는 :city와 :region 트리플(triple)의 주어를 위한 개체 이름을 포함하고 있지 않다. 이러한 개체를 익명 개체라고 한다. |
반대로, OWL 2에서 익명 개체는 노드(node) 아이디를 사용해서 식별되어 진다.
| ObjectPropertyAssertion( :city _:a1 :Paris ) (UC#9) | 이 공리는 파리의 도시에서 알 수 없는 주소를 위해 명확한 익명 개체 _:a1을 다루고 있다. |
| ObjectPropertyAssertion( :region _:a1 :IleDeFrance ) | 그리고 IleDeFrance의 알 수 없는 지역을 위해 명확한 익명 개체 _:a1을 다루고 있다. |
이러한 변화는 새로운 기능적 문법과 관련된 요구 사항이 원인이 되었다. 공백 노드를 사용하는 형식은 추상적 구문(Abstract syntax)을 생성하는 (중첩된) 프레임(frame) 구조 때문에 노드 아이디 없이 지정될 수 있지만, 이러한 형태는 기능적 구문에서 사용될 수 없다. 표현 능력에서 변화된 것은 없다. RDF 측면에서 아무것도 바뀌지 않았으며, OWL 2에서 익명 개체에 대한 처리는 OWL 1과 완전하게 호환된다. 위 예제에서 "_:a1"은 단순히 RDF 그래프에서 공백노드를 나타낸다.
OWL 1에서 모든 속성은 원자형(atomic)이지만, 어떤 객체 속성이 다른 속성과 역관계라는 것을 선언하는 것이 가능하다. OWL 2에서 ObjectInverseOf( P )와 같은 속성 표현은 클래스 표현에서 직접적으로 사용될 수 있다. 이것은 역관계의 이름에 대한 필요성을 피함으로써 보다 쉽게 온톨로지를 작성하도록 만들어 준다.
만약 객체 속성 P가 개체 a2와 a1를 연결하고 있을 때, ObjectInverseOf( P ) 역관계 객체 속성 표현은 개체 a1과a2를 연결한다.
ObjectInverseOf( P )에서 P는 객체 속성을 나타낸다.
| ObjectInverseOf( :partOf ) | 이 표현은 :partOf의 역관계 속성을 나타낸다. |
역관계 객체 속성 공리 InverseObjectProperties( OPE1 OPE2 )는 두 속성이 역관계임을 나타낸다.
InverseObjectProperties( OPE1 OPE2 )에서 OPE1와 OPE2는 객체 속성을 나타낸다.
다음은 OWL 1의 역관계 속성 공리의 예제이다.
| ObjectProperty( :hasPart inverse :partOf ) | :hasPart는 :partOf 이름을 가진 역관계 속성을 갖는다. |
이것은 :hasPart가 :partOf의 역관계임을 나타내는 다음과 같은 공리에 의해 OWL 2에서 표현될 수 있다.
| EquivalentProperties( :hasPart ObjectInverseOf( :partOf ) ) | :partOf는 :hasPart의 역관계 속성과 동일하다. |
이러한 공리가 매우 일반적인 것이기 때문에 OWL 2는 다음과 같은 문법적 축약구문을 제공한다.
| InverseObjectProperties( :hasPart :partOf ) | :hasPart와 :partOf는 역관계 속성이다. |
OWL 1은 두 개의 주요 표현방식인 OWL DL과 OWL Full, 그리고 문법적 하위집합(OWL Lite)으로 구분되었다. 하지만 이러한 구분이 OWL 온톨로지의 구축을 위해 도출된 요구사항들을 해결하기에는 충분하지 않다는 것이 그 후에 밝혀졌다.
위에 기술한 요구사항을 만족하기 위해서, OWL 2는 세가지 다른 프로파일: OWL 2 EL, OWL 2QL, 그리고 OWL 2 RL — 유용한 계산상(computational) 속성 (예, PTIME까지 LOGSPACE의 범위에서 추론 복잡도) 혹은 구현 가능성(예, RDB를 사용하여 구현가능한 부분)에 대한 OWL 2의 하위 언어 (문법적 하위집합) — 을 정의한다. 이들에 대해서 아래에 간략하게 기술되어 있다. 자세한 내용은 Profiles [OWL 2 Profiles]를 참조하라.
OWL 2 EL은 SNOMED CT와 NCI 용어사전(thesaurus)과 같이 대부분의 대규모 온톨로지가 사용하는 표현력을 담고 있다.
OWL 2 EL은 언어에 있어서 다음과 같은 몇몇 구문적 제한을 가지고 있다:
이러한 제약의 결과로 CEL [CEL]과 같은 OWL 2 EL 추론기는 복잡도가 최악인 경우의 다항시간(polynomial) 질의 응답 알고리즘을 포함하여 추론 알고리즘을 개발할 수 있다 (OWL 2 Profiles [OWL 2 Profiles]에서 Computational Properties를 참조하라). EL의 약어는 기술 논리의 EL 요소 [EL++] [EL++ Update]에서 존재 한정자(existential quantification)만을 제공하는 로직에 대한 프로파일에 기초하고 있다.
OWL 2 QL은 용어 사전(thesauri)과 같은 단순한 온톨로지에서 사용되는 전형적인 표현력과 ER/UML 스키마의 (대부분의) 표현력을 담고 있다.
OWL 2 QL는 언어에 있어서 다음과 같은 몇몇 구문적 제약을 가지고 있다:
이러한 제약은 RDBMS와 밀접한 통합을 가능하게 하며, 추론기는 표준 관계형 데이터베이스의 상위 계층으로 구현될 수 있다. 게다가 이러한 프로파일은 매우 많은 수의 개체가 아닌 비교적으로 경량의 온톨로지를 필요로하는 응용 프로그램과 SQL과 같이 관계형 질의를 통해 직접적으로 데이터를 처리하는 것이 유용하거나 필수인 곳에 특히 적합한다. 질의응답(query answering)을 포함하여 추론은 질의 재작성(query rewriting) 기술을 사용하여 효과적으로 구현될 있으며, 이것의 복잡도는 최악의 경우 NLogSpace이다 (OWL 2 Profiles [OWL 2 Profiles]에서 Computational Properties을 참조하라 ). QL의 약어는 질의 응답이 표준 관계형 질의 언어에 대한 재작성 질의에 의해 구현되어 질 수 있다는 사실을 나타내고 있다.
OWL 2 RL은 효율성을 위해 언어의 완전한 표현력을 맞바꿀 수 있는 OWL 2 응용 프로그램과 OWL 2로부터 일부 추가된 표현력을 필요로하는 RDF(S) 응용 프로그램 모두를 수용하도록 설계되었다. 이것은 규칙기반 기술을 사용하여 구현될 수 있는 OWL 2의 구문적 하위 집합을 정의함으로써 얻어질 수 있다.
OWL 2 RL은 언어에 있어서 다음과 같은 몇몇 구문적 제약을 가지고 있다:
이러한 제약은 OWL 2 RL이 질의 응답을 포함하여 추론의 복잡도가 최악의 경우 다항시간(polynomial)인 확장된 DBMS 규칙과 같은 규칙 기반 기술을 사용하여 구현되는 것을 가능하게 한다 (OWL 2 Profiles [OWL 2 Profiles]에서 Computational Properties을 참조하라). 규칙 기반 구현은 오라클(Oracle)의 OWL Prime [OWL Prime]과 같이 RDF 트리플을 직접적으로 운용할 있게 하며, 따라서 어떤 OWL 2 온톨로지라도 RDF 그래프를 적용할 수 있다. 이 경우, 질의에 대한 올바른 응답이 계산되어 질 수 있지만(추론이 타당(sound)할 것이다), 항상 올바른 정답을 얻는다는 것을 보장할 수 없다 (완전(complete)하지 않을 수 있다). 이 프로파일은 DLP [DLP]와 pD* [pD*]에 의해 영향을 받았으며, RL 약어는 추론이 표준 규칙언어(Rule Language)를 사용하여 구현되어질 수 있다는 사실을 나타내고 있다.
Use Case #2 Use Case #3 Use Case #4 Use Case #8 Use Case #16
응용 프로그램 개발자는 그들의 필요에 어떤 프로파일이 가장 적합한지 자신에게 되물어 봐야할 것이다. 서로 다른 프로파일 사이의 어떤 선택을 할 것인지에 대한 문제는 주로 응용 프로그램, 클래스나 데이터에서 추론에 대한 중요도, 데이터셋의 크기, 그리고 확장성(scalability)의 중요도 등에 따라 달라지게 된다. 다음의 제안들이 유용할 수 있다:
참고로 OWL 2 QL과 OWL 2 RL은 비교적 경량의 온톨로지가 아주 큰 데이터 셋과 함께 사용되는 응용 프로그램에 아주 적합하다. 어떤 것을 사용할 것인가에 대한 선택은 처리되어지는 데이터 셋의 형태에 따른다: 만약 관계형 질의(예, SQL)를 통해 직접적으로 데이를 처리하는 것이 유용하거나 필수적인 경우에는 OWL 2 QL이 유용할 것이다; 만약 RDF 트리플의 형태로 데이터를 직접 운영하는 것이 유용하거나 필수적인 경우 OWL 2 RL이 유용할 것이다.
OWL 2가 OWL 1과 완벽하게 호환(backwards compatible)되지만, 개념적 디자인 방법은 특히 OWL 2 문법과 관련하여 약간 다르다.
OWL 2 온톨로지를 직렬화(serialize)하고 교환(exchange)하기 위한 다양한 문법이 존재한다. OWL 2를 주고 받기 위한 주요 구문은 구현시 반드시 지원되어야 하는 유일한 구문인 RDF/XML 구문 [RDF/XML]이다. 다음의 설명처럼 기능적 구문(Functional Syntax) [OWL 2 Specification]의 주요 목적은 언어의 구조를 기술하기 위한 것이다. OWL/XML [OWL 2 XML]은 XML 기반 도구 및 XML 기반 언어와의 더 나은 상호운용성을 위한 요구에 의해 만들어진 XML 직렬화(serialization) 구문이다.
규범적 구문 (Normative syntax)
적합(Conformance) 문서 [OWL 2 Conformance]의 2.1 절(Section 2.1)에 자세하게 기술된 것처럼 OWL 2 온톨로지를 위해 요구되는 교환 구문은 RDF/XML이다:
"OWL 2 온톨로지 문서를 위해 여러 구문이 정의되어 있으며, 전체나 일부의 문서를 서로 교환하기 위해 OWL 2 도구에 의해 사용되어 질 수 있다. 그러나 입력으로 온톨로지 문서를 처리할 수 있는 적합한 OWL 2 도구는 RDF/XML 직렬화 [OWL 2 RDF Mapping]를 사용하여 온톨로지 문서를 수용해야만 하고, 온톨로지 문서를 작성(publish)할 수 있는 적합한 OWL 2 도구는 그러한 작업이 요청될 (예, HTTP 내용협상(HTTP content negotiation)을 통해) 경우 그것들을 RDF/XML 직렬화 형태로 작성해야만 한다."
기능적 구문 (Functional Syntax)
OWL 1의 문법은 추상적 구문(Abstract Syntax (AS))에 의해 정의되었다. 기능적 구문(Functional Syntax (FS))은 OWL 2에서 유사한 기능을 한다: 이는 언어의 문법을 정의하고 있다. 그러나 OWL 2에는 문법적 용어뿐만 아니라 구조 또한 정의되어 있다. 추가로 기능적 구문에 더해서 OWL 2 온톨로지의 개념적 구조를 정확하게 기술하기 위한 구조 명세서(structural specification)를 소개하였다. 구조 명세서는 Unified Modeling Language (UML)를 사용하여 정의되어 있다. 객체지향 시스템에 친숙한 사용자(readers)가 쉽게 이해할 수 있도록 UML 그림(diagrams)의 매우 간단한 형태를 사용한다. 구조 명세서는 규범적이든 비규범적이든 OWL 2의 모든 구문들은 위한 표준적인 추상 모델을 제공한다. 이는 OWL 2 온톨로지를 위한 교환 구문들에 독립적(independent)이다. 기능적 구문은 구조 명세서를 정확하게 따르고 있다. 이 구문의 명확성과 가독성은 기능적 구문의 설계에 있어서 중요한 요소이다. 이 기능적 방식의 구문은 OWL 2 공리의 쉬운 작성을 위한 방법으로 소개되었다. OWL 2 기능적 구문의 또 다른 장점은 일반적 문헌에 보다 쉽게 OWL 2 구문(construcs)을 연관시키는 것 뿐만 아니라 다양한 명세서의 논의를 만드는 1차 술어 논리(first order logic)에 사용되는 구문과 가깝다는 것이다. 이것은 OWL 2를 위한 여러 구문(예, RDF/XML, Manchester 구문) 중 하나이다.
OWL 1은 단일 공리에서 클래스, 속성, 혹은 개체의 여러 특성을 한번에 정의할 수 있는 프레임 형태(frame-like) 구문을 제공한다. 실제로 이러한 방법은 문제들을 야기할 수 있다. 첫째로, 이것은 단일 공리 안에서 주어진 개체를 서로 다른 많은 형태로 담아낸다. 이러한 사실은 온톨로지를 디자인할 때는 편리하지만, 그것들을 프로그램적으로 조작할 때는 불편하다. 사실 대부분의 OWL 1 구현 프로그램들은 이러한 공리들을 개체에서 단 하나의 특성을 각각 다루고 있는 여러 개의 "원자(atomic)" 공리로 분리한다. 그러나 이러한 방법은 처리과정에서 온톨로지의 구조가 파괴될 수 있기 때문에 순환과오(round-tripping)에 관한 문제들을 야기할 수 있다. 두번째로, 공리의 이러한 형태는 주어진 개체의 선언과 유일한 "정의"를 종종 잘못 해석한다. OWL 1에서 개체들은 그러한 공리의 주어를 갖지 않고 사용될 수 있으며, 동일한 개체에 관련된 그러한 많은 공리들이 있을 수 있다. OWL 2는 여러 방법으로 이러한 문제들을 다루고 있다. 첫번째로, 프레임 같은 표현은 공리의 보다 세부적으로 정의된(fine-grained) 구조의 형태를 위해 금지되었다: 각 공리는 주어진 개체의 단 한가지 특성만을 기술한다. 두번째로, OWL 2는 명확한 선언과 구조적 일관성에 대한 개념의 명확한 정의를 제공한다. 비록 OWL 2가 더 자세한(verbose) 형태이지만, 대부분의 OWL 온톨로지들이 온톨로지 공정 도구를 사용해서 만들어지는데 있어서 문제가 발생할 것으로 예상되지 않는다.
다음은 OWL 1에서 프레임 같은 공리의 예이다.
| ObjectProperty( :partOf ObjectInverseOf( :containedIn ) inverseFunctional transitive
Annotation( rdfs:comment "an object is a part of another object.")) |
:partOf 속성은 역함수적(inverse functional)이고 이행(trasitive)적 속성인containedIn 이름의 역관계(inverse) 속성을 갖으며, "객체는 또 다른 객체의 일부이다"라는 사람을 위한 주석을 갖는다. |
이것은 OWL 2에서 다음의 공리를 사용하여 재표현될 수 있다.
| Declaration( ObjectProperty( :partOf ) ) |
:partOf 객체 속성의 선언 |
| AnnotationAssertion( rdfs:comment :partOf "partOf means that an object is a part of another object." ) | 이 선언은 "partOf가 객체는 또 다른 객체의 일부임을 의미한다"라는 :partOf 속성에 대한 주석을 제공한다. |
| InverseObjectProperties( :partOf :containedIn ) | :partOf와:containedIn는 역관계 속성이다. |
| InverseFunctionalObjectProperty( :partOf ) | :partOf는 역함수적 속성이다. |
| TransitiveObjectProperty( :partOf ) | :partOf는 이행적 속성이다. |
OWL 2에서 추상적 구문(abstract syntax (AS))에 관하여, 만약 AS가 문서의 교환을 위한 구문으로 사용된다면 AS로 쓰여진 OWL 1 온톨로지는 OWL 2 도구에 입력될 수 있으며 여전히 유효한 온톨로지로 다루어질 것이다. 그러나 OWL 2 온톨로지를 위해 단 하나의 필수적 교환 구문인 RDF/XML을 필요로 할 뿐, AS (혹은 FS, 그런 문제에 대해) 형태로 직렬화된 온톨로지를 수용할 것인지 아닌지를 결정하는 것은 도구에 따른 결정사항이며: 이것은 도구 제공자와 관련된 문제임이 설명되어져야 한다.
OWL/XML 구문 (OWL/XML Syntax)
OWL 활동 단체(OWL Working Group)는 OWL 2를 위해 XML 직렬화(XML_Serialization)라 불리는 XML 스키마 [XML Schema] 기반의 XML 구문을 정의하였다. 이러한 구문은 OWL 2의 구조적 명세서 [OWL 2 Specification]를 반영한다. XML 구문은 예를 들어 WSDL, XSLT/XQuery/XPath, 혹은 스키마를 위한 편집기와 같은 XML 기반 도구와 언어에 대해 더 나은 상호운용성을 원하는 사용자들을 지원하기 위한 방안으로 만들어지게 되었다. 이것은 OWL 도구 공급자들이 XML 스키마를 위해 가능한 대규모의 연결 도구(tool chain)에 접근을 제공하는 것을 선택적으로 지원할 수 있도록 하는 표준 형식이다. 따라서 이러한 제공자들의 도구를 사용하는 OWL 도구 개발자와 사용자는 OWL과 함께 사용하기 위해 XPath, XSLT, XQuery와 CSS를 작성하는 것이 가능할 것이다. 이것은 OWL 1을 위해 단지 XML 형식만 가능했던 RDF/XML를 사용해서는 아주 어려운 것이였다. 추가적인 장점은 XML 데이터가 GRDDL을 사용해서 RDF/OWL 응용 프로그램에
노출되어질 수 있다는 것이다. 또한 OWL/XML의 소개에서 OWL을 이해하기 위해 XML에 대한 지식을 가지고 있는 사용자를 위해 보다 편안한 방법을 제공하며, XML 생성과 훈련에 있어서 상당히 많은 투자를 하는 단체나 개인에게 OWL을 더욱 매력적으로 만들어 준다. 오픈 소스 도구(open source toolkit)에서는 이러한 형식과 교환에 필요한 RDF/XML 형태 사이의 변환이 이미 가능하다. 따라서 OWL/XML은 도구 사이의 상호운용성을 깨트리지 않으면서도 현재의 OWL 1 도구와 데이터를 함께 통합할 수 있다.
OWL 2의 전체적 구조는 OWL 1과 비교해서 변하지 않았다. OWL 2 대부분의 생성 단위는 비록 다른 이름을 사용했을 지라도 OWL 1에서 이미 소개되었다.
OWL 2 도구와 직접적 그리고 RDF 기반 의미론 사이의 관계(예, 상응원리(correspondence theorem))를 위한 단 하나의 필수 교환 구문인 RDF/XML의 중요 역할은 변하지 않았다. 더욱 중요한 것은 OWL 1과의 하위 호환성이 문법적(syntactically), 그리고 의미론적(semantically)으로 완전하다는 것이다.
이 표는 각 예제와 함께 새로운 주요 특성들에 대한 요약문이다. 이것은 사용 사례(Use Cases) (첫번째 칸), 특성(Features) (두번째 칸), 그리고 예제(Example) (세번째 칸) 사이의 관계는 보여준다. 각 사용사례를 위해 이름이 굵은 글씨로 표기된 하나의 특성이 설명되어 있다. 그에 해당하는 예제가 세번째 칸에 나타나 있으며, 네번째 칸에는 그것이 논의되었던 참조들을 보여준다. 사용사례와 관련된 다른 특성들은 F1부터 F15까지 기록되어 있다 (선택된 예제들은 각 특성을 위해 이해하기 쉬운 실례와 다양한 도메인, 온라인에서 가능한 문서로부터의 실제 예제들을 만족시키는 것을 목적으로 한다).
| 사용 사례 | 특성(들) | 예제 | 참조들 |
|---|---|---|---|
| UC#1 | 비접합적 합집합 (DisjointUnion) F2 F5 F7 F8 F11 | DisjointUnion(:Lobe :FrontalLobe :ParietalLobe :TemporalLobe :OccipitalLobe :LimbicLobe)
:Lobe는 :FrontalLobe :FrontalLobe :ParietalLob :TemporalLobe :OccipitalLobe :LimbicLobe들의 비접합적 합집합(disjoint union)이다. | [MEDICAL REQ] |
| UC#2 | 비접합적 클래스 (DisjointClasses) F1 F2 F5 F7 F9 | DisjointClasses( :LeftLung :RightLung )
:Lung는 :LeftLung와 :RightLung이 동시에 될 수 없다. | [FMA] |
| UC#20 | 지역적 재귀 (Local reflexivity) | ObjectHasSelf( :phosphorylates)
:phosphorylates 자기 자신을 갖는 모든 개체의 클래스 | [BIO] |
| UC#4 | 횟수 제한 (Qualified Cardinality) F1 F15 | ExactCardinality( 2 :hasPart :RearDoor )
정확히 두 개의 :RearDoor를 갖는 객체들의 클래스 | [Auto] |
| UC#5 | 비대칭 속성 (Asymmetric property) F6 F8 F13 | AsymmetricProperty( :proper_part_of)
만약 p가 q의 적절한 부분이라면, q는 p의 적절한 부분이 될 수 없다. | [OBO] |
| UC#6 | 비재귀적 속성 (Irreflexive property) | IrreflexiveProperty( :flowsInto )
어떤 것도 자신을 :flowsInto하지 않음 | [Ordnance] |
| UC#7 | 속성 연결 (Property chain) F9 | SubPropertyOf( ObjectPropertyChain( :locatedIn :partOf ) :locatedIn )
부분에 :locatedIn 되는 무엇이라도 전체에 :locatedIn 된다, 예, 질병. | [SNOMED REQ] |
| UC#8 | 재귀적 속성 (Reflexive property) F5 F8 | ReflexiveProperty( :partOf )
[Part Whole]은 재귀적 속성에 따라 partOf에 대해 보여준다, 예, "자동차는 자동차의 부분이다." | [Part Whole] |
| UC#9 | 부정 속성 (Negative property) F9 F10 | NegativePropertyAssertion( :hasAge :ThisPatient 5^^xsd:integer ) This patient는 5살이 아니다. | [Transplant Ontology] |
| UC#10 | N항 (N-ary) | AllValuesFrom( :testDate :enrollmentDate x > y + 30)
:testDate가 그들의 :enrollmentdate + 30보다 높은 개체들. | [N-ary] |
| UC#11 | N항 (N-ary) F10 | AllValuesFrom( :admissionTemperature :currentTemperature x < y)
:admissionTemperature가 :currentTemperature보다 아래인 개체들. | [N-ary] |
| UC#12 | 데이터타입 제약 (Datatype restriction) F5 F12 F13 | DatatypeRestriction(xsd:integer minInclusive 18)
XML 스키마 데이터타입인 xsd:integer의 18보다 아래인 새로운 데이터 타입, 예, Adult 클래스를 기술 | [Protege] |
| UC#13 | 메타모델링 (metamodeling) | Declaration( Class( :Person ) )
:Person은 클래스로 선언되었다. |
[Web Service]
[Punning] |
| UC#14 | 메타모델링 (metamodeling) | Declaration( ObjectProperty( :is_located_in ) ) :is_located_in은 ObjectProperty으로 선언되었다. |
[Wiki]
[Punning] |
| UC#15 | 메타모델링 (metamodeling) | Declaration( Class( :Person ) ) Declaration( Class( :Company ) ) :Person과 :Company는 클래스로 선언되었다. |
[UML Association Class]
[Punning] |
| UC#16 | 프로파일 (Profiles) | 이 사용 사례는 결합 질의 응답(conjunctive query answering)이 전통적인 관계형 데이터베이스 시스템을 사용하여 구현된 OWL QL과 같은 프로파일에 동기를 부여한다. | [Who reads?] |
| UC#17 | 선언 (Declaration) | Declaration( Class( :Person ) ) :Person은 클래스로 선언되었다. | [Syntax Problem] |
| UC#18 | 데이터타입 (Datatype) F5 | DatatypeRestriction( xsd:integer minInclusive "18000"^^xsd:integer maxExclusive "19600"^^xsd:integer ) atmosphere를 위한 데이터 범위는 1800 [피트] 이상 19600 [피트] 이하이다. | [VSTO] |
| UC#19 | 주석 (Annotation) F10 | SubClassOf( rdfs:comment ("data generated by the LogParser using the ObserverLog") :LogInformation :Information) 이것은 공리에 대한 주석의 예제이다. | [NCAR] |
범례(Legend):
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | F13 | F14 | F15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 비접합적 합집합 (Disjoint Union) | 비접합적 클래스 (Disjoint Classes) | 부정 속성 선언 (Negative Property Assertion) | 지역적 재귀 (Local reflexivity) | 횟수 제한 (Qualified Cardinality) | 재귀, 비재귀, 비대칭 (Reflexive, Irreflexive, Asymmetric) | 비접합적 속성 (Disjoint properties) | 속성 연결 관계 (Property chain inclusion) | 키 (Keys) | 데이터타입 제약 (Datatype restriction) | N항 데이터타입 (N-ary datatype) | 단순 메타모델링 능력 (Simple metamodeling capabilities) | 확장된 주석 (Extended annotations) | 선언 (Declarations) | 프로파일 (Profiles) |
| 사용 사례 | 비접합적 합집합 (Disjoint Union) | 비접합적 클래스 (Disjoint Classes) | 부정 속성 (Negative property) | 지역적 재귀 (Local reflexivity) | 횟수 제한 (Qualified Cardinality) | 재귀, 비재귀, 비대칭 (Reflex., Irrefl., Asymm.) | 비접합적 속성 (Disjoint properties) | 속성 연결 (Property chain) | 키 (Keys) | 데이터타입 제약 (Datatype restriction) | N항 데이터타입 (N-ary datatype) | 메타모델링 (Meta- modeling) |
확장된 주석 (Extend. annot.) | 선언문 (Declarations) | 프로파일 (Profiles) | 익명 개체 (Anonym. Individual) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| UC#1 | ||||||||||||||||
| UC#2 | ||||||||||||||||
| UC#3 | ||||||||||||||||
| UC#4 | ||||||||||||||||
| UC#5 | ||||||||||||||||
| UC#6 | ||||||||||||||||
| UC#7 | ||||||||||||||||
| UC#8 | ||||||||||||||||
| UC#9 | ||||||||||||||||
| UC#10 | ||||||||||||||||
| UC#11 | ||||||||||||||||
| UC#12 | ||||||||||||||||
| UC#13 | ||||||||||||||||
| UC#14 | ||||||||||||||||
| UC#15 | ||||||||||||||||
| UC#16 | ||||||||||||||||
| UC#17 | ||||||||||||||||
| UC#18 | ||||||||||||||||
| UC#19 |
사용 사례의 다음 목록은 하나도 빠진 것이 없는 완전한 형태는 아니다. 이 목록에 포함된 사용 사례는 - 사용자/구현/이론적인 어떤 이유에서든지 - OWL 2의 활동 단체에 의해 수용된 OWL 2 새로운 특성들의 원인된 많은 것들 중 일부일 뿐이다. (규칙, 기본값 등과 같이) 아마도 향후에 필요한 일부 다른 확장된 기능들은 이 문서에서 빠져있다.
모든 사용 사례는 다음과 같은 형식으로 기술되어 있다: 개요(Overview), 특성(Features), 예제(Example for), 참조(References). 개요(Overview)는 사용 사례의 일반적인 내용을 보여준다. 특성들(Features)은 사용 사례에 의해 요구되는 여러 특성들을 나열하고 있다. 예제(Example)는 OWL 2의 새로운 특성을 기술하기 위해 선택된 짧은 예제와 특성을 나타낸다. 이와 동일한 정보는 표 3.2의 단축된 형태(abbreviated form)에서 볼 수 있다. 쉬운 접근을 위해 참조(References)는 부록의 참고문헌(bibliography)에서 제공되는 URL로 온라인에서 가능한 관련된 문서로의 연결을 담고있다.
개요: 이 시스템은 신경외과 수술(neurosurgery)에서 수술 절차(surgical procedures)의 준비에 관련된 것이다. 특별히 이 시스템의 목적은 병변(lesion)을 둘러싸고 있는 부분에 대뇌 피질(cortical) 뇌회(gyri)와 열구(sulci)에서 절제술(resection)을 기본 목표로 하는 사용자를 지원하기 위한 것이다. 이는 해부학적(anatomical)으로 획기적인 사건을 제공하는 것은, 특히 언어적 대뇌피질(eloquent cortex), 수술에 있어서 아주 중요한 것이다. 또한 뇌 영상 설명(Brain image annotation)은 향후 수술에 있어 의사결정을 하기 위해 유사한 사례를 검색할 수 있 는 임상 사례의 문서화를 위해 유용한다. 뇌 해부학(brain anatomy)의 공유된 온톨로지는 해부학적 특성들에 의해 색인된 다중 분산 영상(multiple distributed image sources)을 통합하기 위해 필요한다. 이것은 주요 뇌 병리학(brain pathologies)의 뇌 영상에 대한 통계적 분석을 위한 대용량의 통합된 시스템을 위해 유용한다.
특성들: 비접합적 합집합(Disjoint Union), 비접합적 클래스(Disjoint Classes), 제한된 횟수 제약(Qualified Cardinality Restrictions), 비접합적 속성(Disjoint Properties), 속성 연결 관계 공리(Property chain inclusion axioms), [N항(N-ary)], [규칙(Rules)]
참조: [MEDICAL REQ] [Ontology with rules] [Brain Imaging ]
개요: 해부학의 기초 모형은 '기준이 되는' 해부학의 가장 포괄적이고 종합적인 온톨로지이다. 해부학은 생체의학(biomedicine)에서 중요한 역할을 하며, 많은 생체의학적 온톨로지와 응용 프로그램이 해부학적 개체를 참조한다. FMA는 생체의학 영역에 있어서 해부학 지식을 사용하는 응용 프로그램들 사이에 정보의 공유를 가능하게 하는 엄청난 자원이다. 작성자에 따르면, FMA는 "생체의학에 있어서 기존의 온톨로지와 최근의 온톨로지를 조절하는, 해부학의 다른 관점들에 대한 연관관계를 위한 생체의학 정보과학에서 참조 온톨로지이다." 유전자(Gene)와 질병(Disease) 참조 온톨로지와 함께 해부학 온톨로지는 미래의 생명과학(Life Sciences)을 위한 시맨틱 웹의 근간이 되는 것이다. 그러나 FMA는 일부 속성이 배타적(exclusive)임을 (예; proper-part와 boundBy) 기술하기 위해 OWL의 새로운 특성들로부터 장점을 갖을 것이다. 많은 생체의학 온톨로지와 응용 프로그램들이 상호참조(cross-references)를 통해 FMA 해부학 개체들을 참조하므로, 키(keys)가 유용하게 사용될 수 있다.
특성들: 비접합적 합집합(Disjoint Union), 비접합적 클래스(Disjoint Classes), 제한된 횟수 제약(Qualified Cardinality Restrictions), 비접합적 속성(Disjoint Properties), 키(Keys), 확장된 주석(Extended annotations), 프로파일(Profiles)
예제: 비접합적 클래스(Disjoint Classes)
참조: [FMA]
개요: 기능적 집합은 원자와 원자들의 연결에 대해 화합물에서 나타나는 특유의 화학적 반응을 보여주는 화학적 반응성의 의미론을 기술하고 있다. 이 사용 사례에서 저자들은 회학적 화합물의 분류를 위한 기능적 집합의 OWL-DL 온톨로지 설계를 향해 첫 걸음을 내딛었으며, 해당 분야에서 필요조건들에 대해 OWL 1과 OWL 1.1의 능력과 한계를 강조하고 있다. 또한 그들은 기본적인 관계에 대한 온톨로지의 설계에서 나타나는 특성의 적용과 상위 온톨로지(upper-level ontology)가 생명과학 지식의 명확한 표현을 설명하는데 어떻게 사용될 수 있는지에 대해 기술하고 있다. 그들은 지식의 표현과 질의응답을 가능하게 하기 위해 기존 온톨로지를 향상시키는 것에 대한 경험을 다루고 있다.
"단환(monocyclic)과 다환(polycyclic) 고리 구조는 화학적 반응의 여러가지 종류에 관여되는 분자의 중요한 부분이다." 제한된 횟수 제약과 같이 새로운 OWL 언어 특성은 기능적 집합의 수와 형태를 기술하는데 있어 유용할 것이다.
특성들: 비접합적 합집합(Disjoint Union), 비접합적 클래스(Disjoint Classes), 제한된 횟수 제약(Qualified Cardinality Restrictions), 프로파일(Profiles)
예제: 제한된 횟수 제약(Qualified Cardinality Restrictions)
참조: [Chemistry]
개요: 큰 회사들은 종종 다양한 모형과 형식들을 사용해서 다수의 정보 시스템에 정보와 지식을 저장한다. 이러한 사용 사례에서 주된 목적은 거대한 자동차 회사를 위해 다수의 데이터와 지식 정보로부터 관련된 정보를 검색하는 것이다. 이러한 응용 분야를 위해 다수의 데이터베이스에 대한 질의와 특히 e-비즈니스 카탈로그를 위해 사용되는 제품의 Parts Library ISO 13584 Standard (PLIB) 온톨로지의 쉬운 표현을 가능하게 하는 프로파일을 포함하는 언어가 도움이 될 것이다.
특성들: 비접합적 합집합(Disjoint Union), 제한된 횟수 제약(Qualified Cardinality Restrictions), 프로파일(Profiles) (OWL 2 QL)
예제: 제한된 횟수 제약(Qualified Cardinality Restrictions)
참조: [Auto]
개요: 공개 생체의학 온톨로지(Open Biomedical Ontologies) (OBO) 협력단(consortium)은 공통의 관리된 온톨로지를 사용하는 주석을 통해 생체의학 데이터의 통합을 가능하게 하기 위한 계획을 수립하는 중이다. 유전자 온톨로지(Gene Ontology)를 포함하는 기존 OBO 온톨로지는 공동 작용할 수 있는 개선 중이며, 새로운 온톨로지는 온톨로지 개발을 조절하는 공유 원칙의 진화된 집합을 기준으로 만들어지고 있는 중이다. 결과는 생체학적 실제 내용의 정확한 표현을 포함하고 확장 가능하도록 설계된 OBO 온톨로지의 확장된 형태이다. 이러한 노력 내에 관계의 OBO 온톨로지는 그들의 의미론에 따라 기본 관계의 집합을 정의하기 위해 설계되었다. OBO는 이행(transitive), 대칭(symmetric), 재귀(reflexive), 반대칭(anti-symmetric)의 특성들을 이용하여 각 관계를 제한하고 있다. OBO 형식은 OBO 온톨로지에서 사용되는 is_reflexive, is_symmetric, is_cyclic, is_anti_symmetric 등과 같은 더 일반적인 구조를 제공한다. OBO 온톨로지의 변환은 상응하는 OBO 구조를 도출하기 위해 새로운 OWL 2 속성 공리 재귀(reflexive), 비재귀(irreflexive), 비대칭(asymmetric)을 필요로 하며, 그렇지 않을 경우 이것들은 주석 형태로 변환되어 질 것이다.
특성들: 지역적 재귀(Local reflexivity), 재귀(Reflexive), 비재귀(Irreflexive), 비대칭(Asymmetric), 속성 연결 관계 공리(Property chain inclusion axioms), 선언문(Declaration) [반대칭(Antisymmetric)]
예제: 비대칭(Asymmetric)
개요: 지형 측량국(Ordnance Survey)은 영국의 국가 지도국(National Mapping Agency)이다. 현재 거대한 영국의 지형학에 대한 데이터베이스를 계속적으로 갱신하며 운영하고 있다. 데이터베이스는 대략 4억 4천만개의 인공적인 특성과 자연 지형적 특성을 포함하고 있다. 이러한 특성들은 숲, 길, 그리고 강에서부터 개인의 집, 정원의 터, 심지어 우체통까지 모든 것을 포함하고 있다. 이러한 지형도에 추가로, 정확히 지도에 대응되는 항공 사진 이미지; 모든 속성들의 주소를 제공하는 데이터; 그리고 통합된 운송 정보와 같이 완전히 새로운 정보의 층(layer)이 데이터베이스에 계속해서 추가되고 있는 중이다. 이러한 위상과 공간과의 관계를 위해, “우리는 우리 공리의 정확한 의미를 담아내기 위해 속성이 재귀(reflexive), 비재귀(irreflexive), 비대칭(asymmetric) 혹은 반대칭(antisymmetric)인지 아닌지에 대한 설명을 가능하게 해주는 것이 필요하다”.
특성들: 재귀(Reflexive), 비재귀(Irreflexive), 비대칭(Asymmetric), [반대칭(Antisymmetric)]
예제: 비재귀(Irreflexive)
참조: [Ordnance]
개요: 약의 체계화된 명명법(Systematized Nomenclature of Medicine), 임상의 용어(Clinical Terms) (SNOMED CT)는 건강관리 영역의 넓은 범위내에 임상 전문용어의 작업이며, 이것은 미국, 영국, 캐나다, 호주, 덴마크, 그리고 다른 여러 나라를 포함 많은 나라에서 전자 의료 응용 프로그램에 사용되는 국가 표준에 따라 선택되어져 왔다. SNOMED은 원래 1976년에 공표되었지만, SNOMED CT는 영국의 임상 용어 버젼 3와 함께 SNOMED RT의 합병의 주요 결과로써 2002년에 가능하게 되었다. 이것이 이전의 형태와 다른 주요 구별되는 특성은 코드와 용어를 정의하고 체계화하기 위한 기술 논리(description logic) (DL)의 사용이다. 또 다른 SNOMED의 주요 구별되는 특성은 그것의 크기와 복잡도이다. 서로 다른 클래스를 각각 나타내는 350,000 이상의 개념 코드와 함께 이것은 규모의 순서로 우리가 알고 있는 다음으로 큰 DL 기반의 온톨로지보다 더 크다.
속성 연결 관계 공리(property chain inclusion axioms)없이 SNOMED 공동체에 의한 OWL의 선택은 그것들에 수반되는 문제들과 복잡도와 함께 다른 적합하지 않은 해결책을 필요로 한다 - 그 변화에 움직임을 죽이는. [이것들과] 함께, 우리는 다른 생체의학 온톨로지에 대한 향후 개발과 통합을 위해 OWL 2를 사용함으로 명확한 방향을 가지고 있다. 필요한 속성 연결 관계 공리는, 예, 해부학에서 최고로 중요한 part-of, 다른 속성을 따라 속성의 상속을 표현하기 위해 허용된다. 예를 들어, has-location ◦ proper-part-of < has-location와 같은 공리에 따라, 손가락의 부산은 손의 부상으로 추론되어질 수 있다. 이러한 방법으로 다시 제작된 SNOMED-CT에 의해 보고된 [SNOMED EL+]에 따라, 해부(anatomical) 클래스의 숫자는 54,380에서 18,125로 떨어졌으며, CEL 추론기 [CEL] (버전 0.94)에 의해 추론되는 시간도 900.15초에서 18.99초로 떨어졌다.
FMA 처럼, SNOMED와 다른 생체의학 온톨로지 사이에 상호 참조의 일반적인 사용을 감안할 때, 키(keys)는 매우 유용할 것이다.
특성들: 속성 연결 관계 공리(Property chain inclusion axioms), 키(Keys), 프로파일(Profiles) (OWL 2 EL)
참조: [SNOMED REQ]
개요: 부분-전체 관계를 표현하는 것은 시맨틱 웹을 위한 온톨로지를 개발하는데 있어서 아주 일반적인 사항이다. OWL은 부분-전체 관계를 위해 (하위 클래스 관계를 위한 그런 것들처럼) 어떤 내장된(built-in) 기본 형태(primitives)를 제공하지 않지만, 일반적인 경우의, 모두는 아닌, 대부분을 담아내기 위해 충분한 표현력을 포함하고 있다. 부분-전체 관계의 연구는 그 자체가 - "전체부분론(mereology)" - 전체 영역이다. 이 설명은 부분-전체 관계를 포함하는 클래스들을 정의하기 위한 간단한 사례를 다루는 것을 다루고 있다. 부분-전체를 위해 필요한 전체의 몇몇 확장은 즉, 제한된 횟수 제약, 재귀, 부분에서 전체로 확상의 필요성, 이 연구에서 논의되고 있다.
특성들: 제한된 횟수 제약(Qualified cardinality restriction), 재귀(Reflexivity), 속성 연결 관계(Property chain inclusion)
예제: 재귀(Reflexive)
참고: OBO에서 제공된 정의에 따라, 전체는 부분으로 간주되고 있지만 'part of'가 재귀가 아니라는 논란에 대한 의견 주장이 있다.
참조: [Part Whole]
개요: 프랑스에서 이식(allocation)은 생의학청(Agence de la biomedicine)의 책임 아래 있다. 이것은 기증자-수혈자 ABO 혈액 그룹의 본질, 국가 대기 목록에서의 고유한 등록 (대기 목록에서 유일하게 식별될 수 있는 등록 번호는 대기 목록에 등록함으로 할당되어 진다), 그리고 일부 특수 장기의 국가-외부 이식 우선순위에 대한 정의와 같은 일반적인 규칙을 포함한다. 각 신장 수여자를 위해 최소한의 HLA가 일치하고 금지된 항원을 지정할 수 있다. 소아 수여자는 소아 기능자를 위해 우선순위를 갖는다. 신장은 우선순위의 순서에 따라 (1) 긴급한 환자, (2) 특정 수용 가능한 항체 프로토콜이나 기증자와 =1 HLA의 불일치에 포함되는 반응성 항체 패널 수준(panel reactive antibodies level) = 80%인 환자 (3) 0의 불일치율을 가진 환자, 그리고 (4) 낮은 이식 접근성(transplantation accessibility)을 가진 환자에게 제공되어 진다. 지리적 기준(geographic criteria)도 관련되어 있다: 각 지역(이식 지도(transplant map)의)은, 예, Ile de France, 그 지역에 있는 환자에 대한 책임을 갖도록 되어있다. 이러한 실생활 응용 프로그램과 이식 시스템은 어른과 어린이 사이에 구별되는 특징들이 건강 관리 영역에 있어 얼마나 많은 영향을 미치는지를 보여준다: 18살 이하(어린이)의 환자는 소아과 서비스를 받지만 18살 이상(어른)의 환자는 성인 서비스는 받는다; 이식을 기다리는 16살 이하의 어린이는 대기목록에서 우선순위를 갖는다.
특성들: 부정 속성 선언(Negative Property Assertion), 데이터타입 제약(Datatypes restriction), 키(Keys)
예제: 부정 속성 선언(NegativePropertyAssertion)
참조: [Agence Biomedecine] [Transplant Ontology]
개요: 이 사용 사례는 임상 실험(Clinical Trials) 단계에서 의료 전달(healthcare delivery) 중 만들어지는 임상 데이터의 재사용과 공유를 목적으로 하는 현재 진행중인 임상 관측 상호운용성(Clinical Observations Interoperability)의 W3C 대책 위원회(W3C task force)에 기반하고 있다. 특히 상호운용성적인 접근의 가능성을 보여주기 위해 선택된 첫번째 응용 프로그램은 환자 보충을 위한 것이다. 이 사례에서 http://www.clinicaltrials.gov로부터 가능한 임상실험 규약(clinical trial protocols)의 표본 집합 각각은 적합 목록(자격의 포함과 제외)에 포함된다. 이러한 자격 요건은 SPARQL에서 적합한 환자와 가능성이 있는 형태의 조건을 식별하기 위해 사용되거나 OWL 클래스로 표현될 수 있다. 또한 이것들은 위 사용 사례에서 다루어진 토론에 대응된다. 이러한 임상실험 규약의 분석에 기반한 요구사항의 목록은 http://esw.w3.org/topic/HCLS/ClinicalObservationsInteroperability?action=AttachFile&do=get&target=FunctionalRequirements_v1.xls에서 접근가능하다.
특히, 임상실험 중 어떤 것은 임상실험 참여자의 등록 날짜가 특정 치료(therapy)를 시작한 후 30일 이내인 것을 필요로 한다. 이것은 부등 표현의 N항(N-ary) 데이터타입을 필요로하는 동기가 되었다.
특성들: [N항(N-Ary)]
개요: [N항(N-ary)]은 다양한 데이터타입 표현으로부터 장점을 가질 수 있는 많은 사용 사례를 나타낸다.
특성들: 데이터타입 제약(Datatypes restriction), [N항(N-Ary)]
참조: [N-ary]
개요: [Protege]는 OWL 지원의 개발에 따른 Protégé 경험, 그리고 그 때 OWL의 사용자 모임의 경험들을 바탕으로 2005년에 보고하였다. 공동체()로부터의 종합적인 반응은 긍정적이였지만, 그들의 경험은 사용자의 요구사항, OWL의 표현능력, 그리고 OWL에 대한 사용자의 이해도들 사이에 상당히 많은 차이가 있었다고 건의되었다. 그들의 경험을 바탕으로 요약하면, Protégé 개발자들은 OWL의 향후 버전에 다수의 확장된 기능을 즉, (특히. 숫자의 범위를 위한) 사용자 정의 데이터타입의 통합, 제한횟 횟수 제약(Qualified Cardinality Restrictions), 비접합성(disjointness)의 관리 (owl:AllDisjoint), (최소한 우수 사례에 따라) 더욱 유연한 주석 속성을 제안하였다. 이러한 보고서는 OWL 언어에 있어서 사용자들이 아주 자주 불평하는 누락된 것중 하나가 숫자 표현의 좋지 못한 표현이라는 것을 강조하고 있다. 전통적인 의료 전문용어를 개발하는 것을 제외하고 대부분의 모든 그룹은 양적인 정보(quantitative information)를 표현하기 위한 기능을 몹시 필요로 한다. 1mm와 2mm 사이의 길이, 18살 이상의 나이, 1030mb와 1035mb 범위에서의 압력과 같은 것이 전형적인 예제이다. 그러한 범위 선언은 개체를 분류하고 Adult와 같은 클래스 선언을 위해 필요하며, 또한 추론기에 의해 처리될 수 있다. 인정받은 사용자 모임(User base)은 현재 OWL 데이터타입에 대한 형식론(formalism)이 대부분 실세계의 응용 프로그램을 지원하기에 매우 불충분하며 또한 많은 잠재적 사용자들이 OWL을 채택할 수 없다는 것을 지적한다. "사용자 공동체는 xsd:minInclusive와 같은 XML 스키마 제약형태(XML Schema facets)를 사용해서 사용자 정의 데이터타입을 표현하기 위한 OWL 표준의 확장을 열망적으로 기다리고 있다." 또한 구현자의 관점에서 주석이나 메타모델링과 관련된 몇몇 제약들을 지적하고 있다: "주석 속성의 값에도 불구하고 OWL DL에서 주석 속성으로 선언되어진 속성들은 범위(range)나 도메인(domain) 제약을 가질 수도 없고, 하위 속성 형태의 계층구조로 정렬될 수도 없다는 큰 한계를 가지고 있다. 속성에 대한 정보의 이러한 형태는 주석 속성을 가질수 있는 가치를 제어하기 도구를 가능하게 한다. 범위의 제약 없이 적절한 입력 도구를 사용자에게 제공하는 것은 어렵다. 비슷한 의미로 클래스가 형태(types)와 각 형태를 위해 제공될 수 있는 서로 다른 인터페이스로 분류될수 있도록 메타-클래스(meta-classes)를 선언하는 것은 종종 도움이 된다. 현재 이러한 특성의 사용은 온톨로지가 OWL Full로 강요되어 진다는 것을 의미한다."
특성들: 제한된 횟수 제약(Qualified cardinality restriction), 데이터타입 제약(Datatypes restriction), 주석(Annotations), 메타모델링(metamodeling)
예제: 추가의 데이터타입(Extra Datatypes)
참조: [Protege]
개요: 사람들은 종종 일부 속성의 값을 지정하기 위해 클래스를 사용하기를 원한다. 카를스루에 대학(University of Karlsruhe)에서 비롯된 예제 [Web Service]는 서비스 모델링이다. 서비스는 :Service 클래스의 개체로 만들어 진다. 각 구체적인 서비스를 위해(:Service의 각 개체를 위해), 사용자는 서비스로의 입력이 무엇인지 나타내기를 원했다. 여기 서비스 기술에 대한 예제가 있다:
(1) :Service rdf:type owl:Class
(2) :Person rdf:type owl:Class
(3) s1 rdf:type :Service
(4) s1 :input :Person
s1은 (1)과 (3)에 기인하여 :Service 클래스의 개체이고, :Person은 (2)에 기인하여 클래스이다; (4)와 같은 이유로 개체와 클래스 사이에 :input 관계를 갖는다. 이런 이유로 이러한 문제를 해결하기 위한 메타모델링의 형태가 필요하다. 한가지 방법은 'Person' 이름이 전체(클래스 ↔ 개체)에서 클래스와 Person을 지칭하는 개체로써 Person을 모두 참조할 수 있다는 것이다.
특성들: 메타모델링(metamodeling)
예제: 단순한 메타모델링(Simple metamodeling)
참조: [Web Service] [Punning]
개요: 스키마 요소 사이에 실용적 관계를 담아내기 위해서 스키마 요소 (클래스/속성)을 서로 관련시켜 주는 것이 유용할 수 있다. 시맨틱 미디어위키(Semantic MediaWiki)의 (가벼운(light-weight) 표현력을 가진 단순하지만 널리 사용되는 OWL 기반의 시맨틱 내용 관리 시스템(semantic content management system)) [OWL1.1 Wiki] 응용 프로그램에서 나타난 예제는 사용자들이 온톨로지 어휘를 체계화하기 위해 도메인에 종속적인(domain-specific) 관계와 일반적인 관계를 나타내기 위한 스키마 요소를 연관짓는 것을 원한다는 것이다. 예제는 다음과 같이 구문이다:
이것들은 단지 실용적인 기술이며, 스키마 레벨(schema-level)에서 아무런 논리적 관계를 의미하지 않는다. 그러나, 협업적 어휘 생성에 있어서, 이것은 사용자들이 이러한 의도된 관계들을 표현할수 있는 것과 관련이 있다. 시맨틱 미디어위키의 중요한 측면은 사용자가 또한 시맨틱 정보를 위해 질의를 할 수 있다는 것이며, 이것은 현재 의도된 동음이어에 따라 실체화되어 진다. 시맨틱 미디어위키는 이전(off-the-shelf) OWL 추론기의 사용에 의해 이미 확장되어 졌으며, 만약 이러한 시스템이 단순한 사례에서 동음이어의 처리를 다룰 수 있다면 가치있는 일일 것이다; (클래스/속성 ↔ 개체)
특성들: 메타모델링(metamodeling)
예제: 단순한 메타모델링(Simple metamodeling)
개요: Unified Modeling Language (UML)는 UML 클래스와 UML 연관관계(UML Association) (클래스 관계에 클래스를 정의하기 위한 UML의 구조 Association)의 특성을 조합하는 잘 알려진 연관 클래스(Association Class)에 따른 모델링 요소를 포함하고 있다. Person과 Company 클래스 사이의 관계와 같은 연관 클래스는 연관에 따른 관계를 정의하기 위한 모형생성(modeler)이 가능하며, 그것을 동시에 구체화할 수 있다. 이것은 그것들 자체의 관계에 대한 속성을 생성하기 원할 때 편리하다. 이러한 사례를 지원하기 위한 한가지 방법은 Class와 ObjectProperty가 동음이어로 되는 것이다 (클래스 ↔ 객체 속성).
특성들: 메타모델링(metamodeling)
예제: 단순한 메타모델링(Simple metamodeling)
참조: [UML Association Class] [Punning]
개요: 일부 생명 과학 응용 프로그램 설계자는 데이터베이스 연합 설계(database federation shceme)를 만들어 오고 있다. 이 설계는 다양한 데이터베이스에서 필드(fields)와 값(values)을 기술하는 XML 스키마를 설계하는 것을 포함하며, 질의 인터페이스로부터 관련된 질의 도구로 관련된 정보를 갖는 데이터베이스에 질의(몇몇 이형의 SQL에서)를 작성할 수 있다. 이러한 결과는 단일 통합된 관점(view)에 따라 나타내어 진다. 그는 OWL과 시맨틱 웹 기술이 동일한 기능을 구현하고 웹 표준을 사용해서 그것을 가능하게 하기 위해 적합한 기술이 될 것이라고 들었지만 어디서 시작할지 알지 못한다. 이 응용 프로그램은 그들의 데이터베이스를 사용하기 좋아하는 다양한 사용자 단체의 일반적인 요구사항을 보여주며, 선호하는 방법(convivial way)에 따라 그것들을 쉽게 질의할 수 있도록 한다. 이것은 연결된 질의 응답(conjunctive query answering)이 전통적인 관계형 데이터베이스 시스템을 사용해서 구현되어지는 프로파일의 원인이 된다.
특성들: 프로파일(Profiles) (OWL 2 QL)
예제: 프로파일(Profiles)
참조: [Who reads?]
개요: 사용자는 온톨로지에 선언을 추가한다; 그러나 그는 잘못하여 개체의 IRI를 잘 못 입력하였다. 이것은 공리에서의 개체의 IRI와 온톨로지의 일부분에서 명확하게 선언된 IRI를 비교함으로써 이러한 오류를 검출하는 것이 가능하다: 만약 IRI 개체가 온톨로지에서 명확하게 선언되지 않았다면, 사용자는 그의 에러를 정정하기 위한 기회를 가져야 한다. Protégé-OWL의 도구집합(toolset) 아키텍쳐(architecture) [TOOLS]에서 관련된 그러한 것들처럼 도구 개발자는 선언의 부족에 기인한 API [OWL API]들을 위해 제기된 문제들을 종종 이야기해 왔다. "첫번째 문제는 OWL이 온톨로지에 존재하는 정확한 클래스, 속성이나 개체의 명확한 선언(declarations)—주장(assertions)을 허용하지 않는다는 것이다. OWL 표준의 이러한 형태는 종종 OWL API에서 설계 오류의 원인이 되는 잘못된 해석을 하게 된다" [Syntax Problem].
특성들: 선언(Declaration)
예제: 선언(Declaration)
참조: [Syntax Problem]
개요: 다수의 단일 분야(single discipline) 그리고 다분야(multi-discipline) 가상 천문대(virtual observatories) (예, http://vsto.org , http://vmo.nasa.gov/)는 데이터 처리와 통합을 제공하기 위해 의미 기술(semantic technologies)을 사용하기 시작했다. 가상 천문대는 분산된 결과 저장소(distributed product repositories)와 서비스 제공자(service providers)로부터 자원들(데이터, 소프트웨어, 문서, 그리고 이러한 것들을 사용하는 이미지 제품과 서비스)을 균일하게 찾고, 처리하고 사용하기 위해 사용자에게 허용된 컴퓨터 집합의 소프트웨어 응용 프로그램 묶음이다. VO는 http://lwsde.gsfc.nasa.gov/VO_Framework_7_Jan_05.doc로부터 서비스 그리고 / 혹은 다양한 저장소를 통합하는 서비스이다. 일부 가상 천문대는 시간을 낭비하는 작업인 데이터 출처에서 데이터를 인코딩하는데 아주 심하게 초점을 맞추고 있다 (예, http://spcdis.hao.ucar.edu/ ). 가상 태양 지구 천문대 (VSTO)는 태양과 태양-지구 데이터를 찾기 위한 연구자들의 노력을 지원하는 국립 과학 재단(National Science Foundation)과 국립 기상 연구소(National Center for Atmospheric Research)이다. 이것은 다수의 과학 데이터 온라인 저장소에 대한 처리를 돕는 향상된 의미적 웹 서비스(semantically-enhanced web services)를 위한 향상된 온톨로지(ontology-enhanced) 인터페이스를 제공한다. OWL 온톨로지의 배경은 장비, 관측소, 매개변수 등을 포함하는 과학 용어를 위한 용어에 대한 기술(term descriptions)을 포함한다. 사용자는 특정 장비 클래스나 그 클래스의 기술, 데이터가 취하는 데이터의 범위, 그리고 매개변수를 포함하여 검색하고자 하는 데이터의 기술을 나타내는 것을 근본적으로 필요로 한다. 관련된 과학 용어에서 그것을 나타내기 위해, 과학자들은 OWL 1의 숫자적 지원을 넘어가는 숫자적 범위와 비교를 나타낼 수 있도록 하는 것을 필요로 한다. 또한 응용 프로그램은 공간(spatial) 기술을 포함하여 확장하는 것을 필요로 한다. 만약 공간(spatial)/지리적(geographic) 억제(containment)를 위해 제공된다면 표현력(representational power)을 사용할 있다.
필요조건: 제한된 횟수(Qualified Cardinality), 데이터타입 제약(Datatype restriction), [기본값(Defaults)]
예제: 데이터타입 제약(Datatype restriction)
참조: [VSTO]
개요: 과학 데이터에서 메타 정보에 대한 더 나은 검색 능력을 제공하기 위해, SPCDIS 활동은 많은 시간을 잡아먹는 데이터에 대한 과학적 출처의 선언적 기술(declarative descriptions)을 담아내기 위한 기반구조를 제공하고 있다. 이 활동의 초기 도메인은 태양 코로나 물리학(solar coronal physics)이다. 이러한 활동은 데이터타입 제약처럼 확장된 주석을 필요로 한다.
특성들: 데이터타입 제약(Datatype restriction), 확장된 주석(Extended Annotations)
예제: 주석을 달기위한 확장된 주석(Extended annotation)
참조: [NCAR]
개요: 생화학(Biochemistry)에서 일부 생체분자(biomolecules)는 생물학적으로 중요한 결과를 갖는 방법으로 그들 자신을 화학적으로 변화시킨다. i) 단백질 키니아제(protein kinases)는 대상 단백질 내에서 발견된 특정 아미노산(amino acids)에 인산(phosphate) 그룹을 추가할 수 있는 효소이다. 자동 인산화 키니아제(Auto-Phosphorylating Kinases)로 알려진 일부 키니아제는 자기 자신의 일부인 특정 대상 아미노산에 인산 그룹을 추가할 것이다. ii) 리보자임(ribozymes)은 그들 자신의 RNA 순서로 쪼개진 것으로 알려진 7개의 자연적 유형들이 촉매작용으로(catalytically) 활동적인 RNA 분자(RNA molecules)이다. 이러한 분열(cleavage)은 바이러스 증식(viral replication), 유전자 발현(gene expression), 그리고 다른 단백질 전사(protein transcripts)의 생성(generation)에 중요한 변화가 발생할 수 있다. 이러한 촉매 작용적 활동처럼 자기-절단(self-cleaving) RNA는 Self-Cleaving Ribozymes라고 불리는 리보자임의 하위 클래스로 구성된다. 이러한 생화학적 자아상호작용은 속성의 지역적 재귀 선언에 의해 표현되어 질 수 있다.
특성들: 지역적 재귀(Local Reflexivity)
참조: [BIO]
이 부분은 Proposed Recommendation of 22 September, 2009 때부터 이 문서에 대한 변경을 요약하고 있다.
이 부분은 Candidate Recommendation of 11 June, 2009 때부터 이 문서에 대한 변경을 요약하고 있다.
OWL 2의 개발을 위한 시작점은 OWL1.1 member submission, 사용자와 개발자의 반응(feedback), 그리고 특히 OWL Experiences and Directions (OWLED) Workshop series에서 수집된 정보이다. 또한 활동 단체(working group)는 WebOnt Working Group로부터 미루어진 사항(postponed issues)을 고려하였다.
이 문서는 (아래에 있는) OWL 활동 단체(OWL Working Group)에 의해 작성되어 졌으며, 이것의 내용은 전체에 걸쳐 활동 그룹내의 광범위한 토론을 반영하고 있다. 편집자들인 Elisa Kendall (Sandpiper Software), Peter F. Patel-Schneider (Bell Labs Research, Alcatel-Lucent) 그리고 Alan Ruttenberg (Science Commons)에게 그들의 꼼꼼한 검토에 대해 감사드린다.
이 문서를 출판할 당시 OWL 활동 단체의 모임에서 정규 참석자들은 다음과 같다: Jie Bao (RPI), Diego Calvanese (Free University of Bozen-Bolzano), Bernardo Cuenca Grau (Oxford University Computing Laboratory), Martin Dzbor (Open University), Achille Fokoue (IBM Corporation), Christine Golbreich (Université de Versailles St-Quentin and LIRMM), Sandro Hawke (W3C/MIT), Ivan Herman (W3C/ERCIM), Rinke Hoekstra (University of Amsterdam), Ian Horrocks (Oxford University Computing Laboratory), Elisa Kendall (Sandpiper Software), Markus Krötzsch (FZI), Carsten Lutz (Universität Bremen), Deborah L. McGuinness (RPI), Boris Motik (Oxford University Computing Laboratory), Jeff Pan (University of Aberdeen), Bijan Parsia (University of Manchester), Peter F. Patel-Schneider (Bell Labs Research, Alcatel-Lucent), Sebastian Rudolph (FZI), Alan Ruttenberg (Science Commons), Uli Sattler (University of Manchester), Michael Schneider (FZI), Mike Smith (Clark & Parsia), Evan Wallace (NIST), Zhe Wu (Oracle Corporation), 그리고 Antoine Zimmermann (DERI Galway). 또한 우리는 활동 단체의 이전 회원들에게 감사를 전한다: Jeremy Carroll, Jim Hendler, Vipul Kashyap.