Ontology Languages

고려대학교 대학원 전산학과

지능정보시스템 연구실

손 종 수

2007.10.1 (목)

1. 온톨로지 개요

1.1 개념

온톨로지란 분산 컴퓨팅 환경에서 공유되는 데이터들을 개념화한 형식적으로 명백한 규정이다. 다시 말해, 특정 분야에서 사용되는 표준 어휘의 모임이라고도 할 수 있다. 어느 도메인에서 에이전트의 수행을 위한 문장을 만들고, 질의어를 이용한 정보검색을 위해서는 도메인의 개념화를 사용해야하는데 여기서의 도메인의 개념화를 위해 도메인에 관한 지식을 표현하고 의사소통하기 위한 단어를 제공한다.

온톨로지가 처음 제기될 때에는 단순히 지식의 공유와 재사용을 위해서 개발되었다. 최근, 온톨로지의 개념이 지능적인 정보시스템의 통합, 지능형 정보검색 분야로 확대되면서 시맨틱 웹, 시맨틱 웹서비스의 핵심 구성 요소로 각광 받고 있다. 또한 유비쿼터스 컴퓨팅 환경이 인류의 실생활과 점차 가까워지면서 쏟아지는 방대한 양의 자료를 자동적으로 처리하기 위한 대안 기술로 주목되고 있다.

1.2 시맨틱 웹 과의 관련성

복잡하고 다양한 사용자의 요구사항을 처리 및 통합하는 서비스가 불가능한 이유 중에서 가장 중요한 점은 현재의 웹이 컴퓨터에 의해 처리될 수 있도록 설계되어있지 않다는 점이다. 저옵를 어떤 형식으로 표현할 지에 대한 것만 컴퓨터에게 제공할 뿐 그 정보의 의미가 무엇이고 관계된 속성이 무엇인지에 대한 정보는 제공하지 않는다. 따라서 웹에 산재되어있는 자료들을 자동적으로 처리하기 위해서는 컴퓨터가 정보자원의 의미를 이해할 수 있어야한다. 그러나 컴퓨터가 자연어를 이해하고 처리하게 한다는 것은 풀기 힘든 숙제이다.

인터넷 사용자들은 원하는 정보를 찾기 위하여 인터넷 검색엔진을 주로 이용한다. 최근 검색엔진들에서 지식검색 등의 서비스를 실시하고 있지만 웹이 처음 대두되었을 때와 마찬가지로 여전히 웹 검색은 키워드 매칭 방법을 이용하고 있다. 키워드 매칭 방식의 정보검색은 해당 키워드가 들어있는 페이지를 찾아줄 수는 있지만 그 페이지에 들어있는 내용을 파악하지는 못하기 때문에 사용자들은 검색엔진에 의해 찾아진 방대한 자료 중에서 필요한 것을 찾아내야하는 수동적으로 이차적인 가공을 할 수 밖에 없다. 예를 들어 Tree를 검색했을 때 식물 Tree를 의미하는지 전산학에서 자료를 저장하는 기법 중의 하나를 말하는 Tree인지 구분이 불가능 하다. 이와 같은 검색방법은 두 개의 문제점이 있는데 첫째는, 서로다른 의미를 가지는 객체를 구분하지 못한다는 것이며 둘째는 사용자의 요구사항을 정확하게 표현할 수 없다는 것이다.

위와 같은 문제점을 해결하기 위하여 컴퓨터가 이해할 수 있는 데이터를 기반으로 하는 시맨틱 웹이 등장하였다. 시맨틱 웹에서 가장 중요한 문제는 컴퓨터가 이해할 수 있는 데이터의 표현, 즉 지식의 표현이다. 그러나 같은 지식의 표현이라 할 지라도 서로 다른 언어를 사용하는 사람 간에는 지식이 공유될 수 없는 것처럼 시맨틱 웹에서도 표준적으로 사용할 수 있는 지식표현 언어가 있어야 한다. 이러한 관점에서 볼 때 온톨로지는 시맨틱 웹의 요소 중 하나로서 매우 중요하다. 온톨로지는 공유하고자 하는 개념을 형식적이며 명시적으로 표현함으로써 기계가 이해할 수 있도록 해준다. 또한 각 정보간의 상속이나 관계를 표현해준다.

2. Before XML

2.1 SGML

SGML(Standard Generalized Markup Language)은 전자 문서를 구조화시키기 위하여 만들어진 생성언어이다. 전자문서의 논리적 구조를 정의하고 분석하기 위하여 태그를 마크업 함으로써 시스템이 문서의 구조를 해석 할 수 있도록 한다. SGML은 ISO에서 전자 문서들을 서로 다른 시스템들 사이에서 정보의 손실 없이 효율적으로 처리하는 기능을 수행하기 위하여 만든 표준 언어이다.

SGML은 미국출판협회에서 문서의 전자화를 시키기 위하여 개발하였는데 이는 문서의 구조 뿐 아니라 문장 내의 요소를 판별하고 정형화된 표현으로 문서를 작성할 수 있도록 설계되었다. 1986년에 국제 표준으로 규정되었으며 공개되었다. SGML은 문서의 구조에 초점을 두고 만들어졌기 때문에 SGML 컴파일러가 해당 문서의 DTD를 통해 어떤 문서라도 해석과 다른 형태의 출력에 용이하며 이식성이 뛰어나다. 이런 특징 덕택에 만들어진 문서들이 컴퓨터 화면 등과 같은 다른 매체에서 쉽게 다시 제작될 수 있다는 장점이 있다.

그러나 SGML 문법체계가 복잡하고 방대한 양의 태그와 사용이 어려워 널리 사용되지는 못했다. 비록 SGML은 널리 활용되지는 못했지만 태그의 생성과 활용하는 방법을 제공한 점에서 현재 많이 쓰고 있는 HTML, XML 등의 생성언어의 개발 근간이 되었다.

2.2 HTML

1990년대 중반에 이르러 인터넷이 광범위하게 사용됨에 따라 인터넷은 정보의 바다라 불리며 무한에 가까운 자료의 저장공간으로 각광받게 되었다. 인터넷이 연결된 모든 컴퓨터는 누구에게라도 자료를 전송할 수 있으며 또한 원하는 정보를 취득할 수 있다. 이런 인터넷의 특징은 분산된 구조 덕택인데 이는 각각의 문서가 다른 컴퓨터에 있는 문서들을 가리킬 수 있어서 (Hyper link) 지리적으로 떨어져 있지만 웹 페이지 링크를 통해 쉽게 접근할 수 있음을 의미한다.

인터넷의 발달은 사용하기에 쉽고 표현이 단순한 HTML이라는 생성언어의 개발에서 비롯되었다. HTML은 웹 브라우저가 하이퍼텍스트 문서를 전송 받았을 때 그 문서가 참조하는 데이터들과 그 구성을 알려준다. 또한 그 문서가 어떤 모습으로 사용자에게 보여지는 것을 지정하는 역할을 한다. HTML 문서는 웹 브라우저에서 보여질 문자열과 이를 감싸는 일종의 해석 기호인 태그로 이뤄져 브라우저에서 보여질 화면의 모양을 정의한다. 그리고 동시에 하이퍼링크를 지원함에 따라 일반적인 문서처럼 평면적인 것이 아니라 문서 내의 하이퍼링크를 통하여 다른 문서나 멀티미디어 데이터 파일을 참조 할 수 있다.

기능적인 측면으로 보았을 때 HTML은 화면상에 보여지는 형태만을 정의하였기 때문에 웹 브라우저가 지원하는 태그만을 사용하도록 제한되어있고 문서 내의 내용들은 태그와 함께 뒤섞여있기 때문에 문서의 레이아웃 형태를 임의로 지정할 수 없고 그 수정이 어려운 단점이 있다. 또한 고정된 태그들만 사용해야한다는 점과 문서의 구조적인 정보를 표현할 수 없다는 단점이 존재한다.

3. After XML

3.1 XML

XML(eXtensible Markup Language)은 SGML의 사용하기 어려운 문제를 개선하기 위해 W3C에서 제안된 표준 생성언어이다. 1998년 W3C에서 XML 1.0을 권고안으로 소개하였다. XML은 SGML의 부분집합으로서 SGML과 유사한 형태의 문법체계를 지니고 있으며 SGML과의 호환도 가능하다. XML은 웹상에서 정보를 교환하기 위해 단일화된 구조로서 문서와 정보를 표현하기 위한 포맷으로 엄밀히 XML은 생성언어가 아니라 새 생성언어를 만들기 위한 규칙들의 집합이라고 할 수 있다.

XML이 이전까지의 다른 생성언어와 다른 점은 정보와 표현을 분리시킴으로서 정보의 재사용성을 증가시켰다는 것이다.

XML에 대한 관심이 증가된 이유는 XML 데이터의 생성, 편집 등의 작업을 위하여 특정 응용프로그램에 종속되지 않고 손쉽게 응용프로그램에서 활용할 수 있기 때문이다. 이 XML의 특징은 이기종 응용프로그램간의 상호 작용을 증대시키고, 조직 간에 정보 공유를 향상시킨다.

그 외에도 도메인 이해 증진과 데이터를 생성 언어로 체계화함으로서 응용프로그램들은 이러한 데이터들을 서로 다른 형태로 사용하는 것이 가능하고, 작성된 데이터를 웹에 저장함으로서 적절한 정보를 찾는 능력이 향상된다. 문서에 대한 현재의 검색 방법은 내용에 따라 키워드 일치를 사용하지만 XML 호환 생성언어에 대한 검색은 그 내용뿐 아니라 메타데이터에 대한 검색을 같이 수행하므로 보다 정확하고 지능적이다.

그러나 XML은 객체들의 관계를 표현하기에 부족하고 의미가 상속되지 못하는 점과, 단지 문법을 기술한 것에 한정되고, XML자체는 DTD의 표현 능력을 넘어서는 풍부한 용어들을 정의할 수 있는 기능을 갖추고 있지 못하다는 단점을 지니고 있다. 다시 말해, XML은 문서에 나타난 데이터 구조를 정의하는 문법을 제공하지만 표준 데이터 구조를 제공하지 못할 뿐 아니라 비즈니스 프로세서나 정보교환 등을 위한 용어를 제공하지는 못한다.

3.2 RDF

RDF는 XML기반으로 만들어진 생성 언어로써 웹상의 분산된 다양한 자원들을 기술함과 동시에 그 의미를 표현하기 위해 개발된 언어이다. 웹 상의 자원을 메타 데이터로써 표현하고 이를 위한 표준화된 방법을 제공하며 웹 자원의 효율적인 관리와 상호운영성을 위해 W3C에서 제안한 것이다. RDF는 웹 자원을 검색하고 참조하며 이를 위한 정보를 효율적으로 교환하고 공유할 수 있고 동시에 기계가 그 자원을 이해함으로써 자원에 대한 연산, 처리가 가능토록 하기 위한 의미기반의 생성 언어이다. 이는 시맨틱 웹의 근간을 이루는 언어로써 추후에 OIL과 DAML과 같은 인공지능 기반의 생성 언어 개발의 기본 언어로써 사용된다. W3C는 RDF 모델 과 문법적 명세서를 1999년에 권고안(Recommendation)으로 발표하였고 이어 RDFS를 2000년에 임시 권고안(Candidate Recommendation)으로 발표하였다.

RDF는 XML의 자유로운 태그사용으로 인한 의미가 불확실한 단점을 보완하기 위해 개발되었다. RDF는 지식표현을 위한 생성 언어로써 시맨틱 네트워크에 기반하여 정보 자원의 의미를 표현하고 이를 컴퓨터가 자동적으로 이해 및 처리, 실행할 수 있는 환경을 제공하고자 설계되었다. 현재의 웹은 HTML로 만들어져 구조화되어 있지 않고 표현과 정보가 뒤섞여 있기 때문에 컴퓨터가 단순 텍스트 정보 추출만이 가능하고 의미를 표현하고 있지 않기 때문에 컴퓨터가 웹 자원의 정보를 인식과 동시에 그를 이해할 수 있도록 자원과 정보의 의미를 표현할 수 있는 환경을 만들고 자하는 목적에서 개발되었다. 또한 RDF는 웹 자원 탐색의 한계를 해결하고자 한다. 현재 웹에서 사용되고 있는 많은 요소는 텍스트 형태이외에 이미지, 동영상등과 같은 여러 종류의 멀티미디어 데이터도 포함되어있다. 현재의 텍스트 정보 위주의 검색방법은 이러한 여러 종류의 자원들에 적용이 불가능하다. 이에 여러 자원에 대한 정보를 규칙적인 메타 데이터 프레임워크를 통해 기술함으로써 효과적인 자원검색을 위한 방법을 제공한다. 그 외에 RDF는 이기종간의 상호운영성을 제공하고 정보의 재사용성을 향상시킨다.

RDF 문서에 나오는 자원들은 URI(Universal Resource Identifier)로 나타낸다. 즉 RDF문서에서는 웹 문서, 문서의 일부, 문서를 이루는 요소들을 직접적으로 나타내지 않고 URI를 통해 나타낸다. RDF에서 나타난 데이터 모델은 객체(object)-속성(attribute)-값(value)로써 표현을 한다. 이는 방향성과 라벨이 있는 그래프(directed/labeled graph)로써 모델의 인스턴스(instance)를 표현한다. 이는 객체 위주의 관점에서 프레임 시스템 형태로써 지식을 표현한 것이다. RDF에서 자원들을 표기하는 방법은 한 개의 자원으로 제한할 수도 있고 여러 개를 합쳐서 자원을 나타낼 수 있다. 즉, 자원의 속성들을 문자열을 사용하여 값을 지정할 경우와 여러 개의 자원들이 서로 연관성이 있어 속성의 값으로써 다른 자원이 되는 경우를 나타내는 것이다. URI는 자원의 특성을 규정하는 것으로써 자원의 특성에 지정된 값은 무엇이고, 어떤 종류의 자원을 나타내며, 다른 특성들 간에는 어떠한 관계를 맺고 있는가를 나타내고 있는 것이다. RDF에 나타나는 의미(meaning)는 URI로 정의되고 명명된 용어와 개념으로써 나타낸다. URI가 유일하게 존재하므로 시스템에서는 개념을 정의하고 충돌을 피하기 위해 서로 다른 URI를 사용한다. 즉 URI가 같다는 것은 서로 다른 시스템이라 할지라도 시스템간에 공통된 이해를 가지고 있고 그 의미를 공유하고 있다는 것을 의미한다.

RDF의 문법적 특성은 XML과 유사하다. RDF는 데이터 모델링에 초점을 둔 것으로써 XML을 대신하는 언어가 아니다. 대신 XML의 레이어 위에 존재하는 것으로 XML과의 통합이 가능할 뿐만 아니라 XML문서를 이용할 수 있다는 장점을 지니고 있다. RDF는 원시데이터 타입인 정수형, 실수형 등과 같은 데이터 타입을 지원하지 않고 문자열로써 대신한다.

RDF와 XML은 그 문법적 특성이 유사하고 XML을 기저로 하여 만들어졌지만 RDF는 XML과 다음과 같은 점에서 다르다. XML의 모델은 트리 형태로써 그 스키마는 문법적 해석과 문서의 구조에 초점을 둔 것이다. 그러나 RDF의 모델은 객체지향 방식의 모델로써 RDFS는 문서에 나타난 자원들의 의미해석에 그 초점을 두고 있다. 즉, XML의 데이터 모델은 객체의 배열된 순서가 중요한 트리 형태의 모델을 위한 텍스트 마크업이고 RDF 데이터 모델은 객체와 객체 사이의 관계를 정의하는 데이터 모델이다. XML은 트리 형태의 문서로 고정되게 설계되어 문서를 이루는 자원들이 문서에 포함되어 인덱스 되기 때문에 메타 데이터를 표현하기 위한 유연성이 부족하다. 반면 RDF에서의 트리 형태로 문서를 구성하지 않고 URI를 갖는 자원이기 때문에 메타 데이터를 표현하기에 유연성을 지니고 있다.

RDFS는 자원의 특성을 기술하기 위해 사용될 수 있는 자원들의 집합을 나타내고 웹 자원을 기술하기 위해 이용된 메타 데이터의 구조를 해당 어플리케이션에서 사용되는 특정한 어휘로 정의한다. 또한 RDFS는 데이터의 메타 데이터의 무결성을 보증하기 위해 구문에 관계없는 메타 데이터의 자원과 특성에 대한 유효성을 검증하는 역할도 한다.

RDFS는 RDF가 XML과 유사한 것처럼 XML 스키마와 유사하다. RDF 스키마의 range 제약조건과 XML 스키마의 타입 제약 조건, RDFS의 도메인 제약 조건과 XML 스키마의 타입과 요소(element)의 내용(contents) 모델정의, 특정 도메인을 위한 목록 리스트나 통제화된 어휘값의 정의, RDFS의 comment와 XML 스키마의 annotation 등의 유사점을 찾아볼 수 있다. 그러나 그 외의 다른 특성은 매우 상이 하다. XML 스키마는 데이터의 구조, 타입 제약 사항을 규정하지만 메타 데이터의 도메인 사이의 의미를 표현하기 위한 유연성이 부족한 반면 RDFS는 계층, 클래스와 특성간의 관계 등을 제시하기 위한 풍부한 의미를 제시하고 있다. 그러나 데이터 구조의 제약이나, 데이터의 타입 제약은 제공하지 않는다.

RDF Example

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://iis.korea.ac.kr/schema/">

<rdf:Description about="http://iis.korea.ac.kr/Home/Sohn">

<s:Creator>

<rdf:Description about="http://iis.korea.ac.kr/stdId/2005020626">

<rdf:type resource="http://iis.korea.ac.kr/schema/Person"/>

<v:Name>Sohn JongSoo</v:Name>

<v:Email>mis026@korea.ac.kr</v:Email>

</rdf:Description>

</s:Creator>

</rdf:Description>

</rdf:RDF>

3.3 OIL

OIL은 웹에 관한 정보를 기계도 접근하기 쉬운 의미로 정확하게 표현하는 것에 목표를 두고 있으며, 시맨틱 웹을 위한 일반적인 목적을 가진 마크업 언어의 제공을 목적으로 OIL이 제안되었다. 또한, OIL은 다음과 같은 특징을 가지고 있다.

OIL은 기술 로직들에 의해 제공되어지는 추론 서비스들과 형식적인 의미들을 가지는 프레임에 기반 된 언어들로부터 사용되어지는 프리미티브들을 모델링을 결합하기 위한 온톨로지들을 위한 추론 계층과 웹에 기반한 표현이 있다.

OIL을 구성하는 기반기술로 프레임로직, 기술 로직 그리고 웹 표준 언어가 있는데 이 세 가지의 기반기술을 이용하여 OIL의 출현 이전까지 해결하지 못하던 직관성, 잘 정의된 의미 보장, 상호운용성의 문제를 해결 할 수 있었다.

OIL은 계층적인 구조를 가지고 있는데 계층적 구조의 부분집합 관계에 의하여 Core OIL, Standard OIL, Instance OIL, Heavy OIL로 나눌 수 있다.

그림  OIL의 계층적 구조 (출처 : w3c.org)

(1) Core OIL은 RDFS를 확장한 것이다. 이것은 RDFS 에이전트들이 제한된 수용력을 가지고 가능한 그들의 의미를 가져올 수 있고, OIL 온톨로지를 처리할 수 있다는 의미이다.

(2) Standard OIL은 없어서는 안될 프리미티브들의 모델링을 획득하기 위한 것이다. 프리미티브들의 모델링이란 잘 이해되어질 수 있고 적절한 표현 능력을 제공하고, 더구나 간결하게 시맨틱을 명세하고 성장할 수 있는 완전한 추론을 만드는 것이다.

(3) Instance OIL은 개별적인 통합을 통한 것을 포함한다. Standard OIL은 용어의 정의 내에서 명세 되어지기 위하여 개별적인 필터들을 허락하는 모델링 구성을 포함하는 것에 반하여, Instance OIL은 충분한 데이터베이스 가능성을 포함한다.
(Instance OIL은 Standard OIL과 같은 스키마를 가지고 있고, 그 인스턴스들은 RDF에 기술되어져 있다.)

(4) Heavy OIL은 더해지는 표현적(추론) 가능성을 포함해야 한다.

OIL은 XML 스키마, RDFS와 같은 웹 언어에 기반 되었기 때문에 계층적인 확장을 제공한다. 또한 내부 계층은 FaCT에 기반된 효과적인 추론지원을 할 수 있다. 그리고 잘 정의된(well-defined) 일반적인 의미를 가진다. OIL은 기술 로직 언어와 프레임 시스템에 기반하였기 때문에 기술 로직 및 프레임 시스템에서 사용되던 문법을 활용하는 것이 가능하다.

그러나 OIL은 몇 가지의 제한점을 갖는다. 첫 번째 제한점으로는 Default reasoning이 있다. OIL은 상위 클래스들로부터 상속된 값들을 위한 기법을 제공함에도 불구하고, 값들이 E덮어 쓰여 지지 못한다. 결과적으로, 이러한 값은 디폴트 값들을 모델링하는 목적으로는 사용될 수 없다. 만약, 상속되어진 속성 값이 덮어 쓰여지면(Overwirte) 되어지면, 일치되지 않는 클래스 정의가 예상되어 질 수 있다. 두 번째 제한점은 Rules/Axioms(disjoint, covered, disjoint-covered, equivalent)의 문제이다. axioms은 임의의 포섭관계(rules) 기술하기 위하여 효과적이다. 그러나, 온톨로지내의 모든 아이템들을 위하여 가져야 한다는 제한점을 가지고 있다. 그리고 그 외에 OIL은  meta-classes 또는 individuals를 제공하지 못하며 OIL은 명확한 도메인을 지원하지 못한다. 이것은 OIL의 확장과 현실적인 온톨로지 변환 언어에 대하여 심각한 제한점이다.

3.4 DAML

DAML(DARPA Agent Markup Language)는 미국 국방 과학 연구소(DARPA)가 주관하는 DARPA 프로젝트의 한 부분인 소프웨어 에이전트를 이용한 군사용 에이전트 기반제어 시스템(Control of Agent-Based System, COABS)의 일부분으로 개발되었다. DAML의 에이전트와 에이전트간의 통신을 위한 언어로 에이전트가 웹 상에서 기능을 수행을 하도록 하는데 목적을 두었다. 즉, DAML의 개발은 시맨틱 웹을 위하여 W3C에서 제안하여 개발된 언어가 아니라 군사용 목적으로 개발된 에이전트간의 통신을 위한 언어로써 개발되었다.

RDF와 XML이 시맨틱 웹을 포함하기 위하여 확장을 시도하면서, RDF와 XML로는 의미(semantics)를 표현하기에는 한계에 도달하게 되었다. 이에 시맨틱 웹에서 컴퓨터가 읽고 이해할 수 있도록 하기 위하여, XML과 RDF를 기반으로 하여 고안된 DAML을 대안으로써 제안을 하게 되었다. DAML 프로젝트의 리더인 Jim Handler 박사는 DAML을 문맥정의 언어라고 정의하고, 평범한 메타 태그와 구별되는 점은 서로 관련 있는 웹 페이지라도 서로 다른 의미를 사용하기 때문에 발생하는 의미론적 장벽을 해결하기 위한 수단으로 온톨로지와의 결합을 제공한다는 점이다.

DAML이 미국에서 개발되기 이전에 유럽 연합에서 온톨로지를 정의하기 위한 언어로 OIL(Ontology Inference Layer)이 개발되어져 있었으나, W3C와 DARPA 프로젝트에 속한 많은 연구원들은 OIL만으로는 온톨로지를 표현하기에 제약 사항을 발견하게 되었다. 즉, OIL만으로는 온톨로지를 표현하는 것이 부족하였으며, 새로운 언어의 필요성을 제기하였다. 이로 인하여, OIL의 근간을 이루고 있는 RDF나 RDFS보다 더욱 의미론적으로 밀적하게 결한된 DAML+OIL이라는 새로운 언어가 탄생하게 되었으며, 문법과 사양을 RDF 문서로 작성을 하게 되었다.

DAML의 온톨로지는 RDF로 작성을 한다. 즉, DAML 마크업은 RDF 마크업의 한 종류이다. RDF는 XML로 작성되어 있으며, XML은 역시 XML 네임 스페이스와 URI로 작성된다. DAML에서 온톨로지는 다음과 같이 표현한다.

<?xml version=”1.0”?>

<rdf:RDF xmlns:rdf=”http://www.w3.org/1999/02/22/-rdf-syntzs-ns#”

xmlns:rdfs=”http://www.w3.org/TR/1999/PR-rdf-schema-19990303#”

xmlns:daml=”http://www.daml.org/2001/03/daml+oil#”

xmlns = “http://www.daml.org/2001/03/daml+oil#”>

<daml:Ontology rdf:about=””>

<daml:versionInfo>1.0</daml:versionInfo>

<daml:import rdf:resource=”http://schema.org/base# “/>

</daml:Ontology>

<daml:Class rdf:ID=”boy-friend”>

<rdfs:subClassof rdf:resource=”#Male” />

<rdfs:subClassOf>

<daml:onProperty rdf:resource=”@has” />

<daml:hasClass redf:resource=”#girl-friend” />

</rdfs:subClassOf>

</daml:Class>

<daml:Class rdf:ID=”Animal”>

<rdfs:label>Animal</rdfs:label>

</daml:Class>

<daml:Class rdf:ID=”girl-friend”>

<rdfs:subClassOf rdf:resource=”#Female”/>

</daml:Class>

<daml:Class rdf:ID=”Male”>

<rdfs:subClassOf rdf:resource=”#Animal”/>

<daml:disjointWith rdf:resource=”#Female”/>

</daml:Class>

<daml:Class rdf:ID=”Female”>

<rdfs:subClassOf rdf:resource=”#Animal”/>

<daml:disjointWith rdf:resource=”#Male”/>

</daml:Class>

</rdf:RDF>

DAML 온톨로지에서는 온톨로지를 표현하기 위해 RDF를 사용을 하고 있다. 이 문서에서 rdf:라는 접두어가 붙은 것은 앞으로 이를 ”http://www.w3.org/1999/02/22/-rdf-syntzs-ns#” 네임 스페이스를 참조하겠다는 것을 의미한다.

이는 기존의 RDF 문서의 앞부분에 붙어있던 xmlns:rdf와 같은 전통적인 표기방식을 사용하는 것이며, 두 번째 선언과 세 번째 선언은 RDF 스키마와 DAML 사용 시 네임 스페이스를 지정한 URL을 참조하겠다는 것이다. 그리고, 마지막 선언에서와 같이 접두어를 가지고 있는 않는 경우에 대해서는 기본적으로 DAML의 네임 스페이스를 참조한다는 의미이다.

또한, 네임 스페이스를 선언하는 부분 외에 DAML 온톨로지를 구성하는데 있어서, 헤더(Header), 클래스(Class), 속성(Property) 그리고 인스턴스(Instance) 이렇게 4개의 구성요소를 가지고 있다.

3.5 OWL

OWL은 DAML+OIL과 매우 유사한 언어이다. 실제로, OWL을 위한 구문은 DAML+OIL로부터 약간 수정, 보완되었고, OWL의 추상 구문은 DAML+OIL에서의 추상 구문으로써 보여 질 수도 있다. DAML+OIL과 OWL의 변경 사항을 간략하게 설명하면 다음과 같다.

• 약간의 제약사항들을 WebOnt의 결정에 의하여 제거되었다.

• WebOnt의 결정에 따라 속성들은 대칭성을 가질 수 있다.

• 몇몇 불규칙적인 DAML+OIL의 구조, 특별한 컴포넌트를 가지는 부분적인 제한의 추상 구문을 제거하였다.

또한 온톨로지 언어로써 필요로 되는 세 가지 필수 요소를 만족해야 하는데 OWL의 표준화와 관련하여 그 요소를 살펴보면 다음과 같다.

• 보편적인 표현(Universal Expressivity) : 데이터 형식은 어떠한 데이터의 폼도 충분히 표현할 수 있어야 한다.

• 구문론적 상호작용(Syntactic Interoperability) : 데이터는 어플리케이션 또는 파서에 의하여 쉽게 판독될 수 있어야 하고, 데이터의 표현은 쉽게 할 수 있어야 한다.

• 의미론적 상호작용(Semantic Interoperability) : 기계가 데이터의 의미를 이해할 수 있어야 하고, 정의되어지지 않은 용어들은 정의된 용어들에 의하여 표현될 수 있어야 한다.

OWL은 웹 환경에서 온톨로지 언어를 구현하기 위하여 많은 수의 요구 사항을 제시하였다. 이에 따른 요구사항들에 대한 정의와 위에서 언급한 RDF(S)의 디자인 목적을 따르고 DAML+OIL을 확장하였다는 것에 기반한다. 요구되는 제약 사항들은 아래와 같다.

(1) 별개의 객체들로써의 온톨로지들(Ontologies as distinct objects)
온톨로지들은 URI 참조와 같이 유일한 자신의 ID를 가져야 한다.
동기 : 온톨로지 공유

(2) URI를 가지고 참조되는 명백한 용어(Unambiguous term referencing with URIs)
다른 온톨로지에 있는 두 개의 용어는 명확하게 구별되어야 한다.
동기 : 온톨로지 공유, 온톨로지 상호운용

(3) 명백한 온톨로지 확장(Explicit ontology extension)
온톨로지는 새로운 클래스나 속성들을 통한 용어의 재사용을 위하여 다른 온톨로지들이 명시적으로 확장할 수 있어야 한다.
동기 : 온톨로지 공유

(4) 온톨로지의 방침(Commitment to ontologies)
자원은 명확한 온톨로지에 의하여 나타내고, 만들어진 가설이나 정의의 집합을 간결하게 나타낼 수 있어야 한다.
동기 : 온톨로지 공유

(5) 온톨로지 메타데이터(Ontology metadata)
각각의 온톨로지에 대하여 메타데이터를 제공할 수 있어야 한다.
동기 : 온톨로지 공유

(6) 정보의 변형(Versioning information)
같은 온톨로지의 다른 버전과 관계와 비교를 위한 특징을 제공해야 한다.
동기 : 온톨로지 발전

(7) 클래스 정의 원시 데이터타입(Class definition primitives)
클래스의 복잡한 정의들을 표현할 수 있어야 한다.
동기 : 확장과 표현의 조화, 온톨로지 상호운용, 불일치 탐지

(8) 속성정의 데이터타입(Property definition primitives)
속성들의 정의를 표현할 수 있어야 한다.
동기 : 확장과 표현의 조화, 온톨로지 상호운용, 불일치 탐지

(9) 데이터 타입들(Data types)
표준화된 데이터 타입의 집합을 제공할 수 있어야 한다.
동기 : 다른 기준들과의 호환, 사용의 쉬움

(10)클래스와 속성 동치성(Class and property equivalence)
클래스 또는 속성의 동치관계의 표현을 위한 특징을 포함해야 한다.
동기 : 온톨로지 상호운용

(11)개인적인 동치성(Individual equivalence)
개인적으로 표현되는 구분자의 상태를 구별할 수 있는 특징을 포함해야 한다. 이 문제는 표준 URL의 사용에 의하여 풀릴 수 없다. 왜냐하면, 몇몇의 개인들은 다수의 URL을 가지고 있을 수 있기 때문이다.
동기 : 온톨로지 상호운용

(12)지역의 유일한 이름들의 가정(Local unique names assumptions)
특정 네임스페이스 또는 문서를 가지는 이름을 구별되는 객체들을 위하여 제공되어야 한다.
동기 : 불일치 탐지

(13)명세서에 관한 정보 삽입(Attaching information to statements)
부가적인 정보들을 넣을 수 있는 방법을 제공해야 한다.동기 : 온톨로지 공유, 온톨로지 상호운용

(14)인스턴스들로써 클래스(Classes as instances)
인스턴스로써 클래스를 다룰 수 있도록 해야 한다.
동기 : 온톨로지 상호운용

(15)복잡한 데이터 타입들(Complex data types)
복합적이거나 구조화된 데이터 타입들의 사용과 정의를 제공해야 한다.
동기 : 다른 기준들과의 호환, 사용의 쉬움

(16)카디널리티 제약(Cardinality constraints)
속성들의 기본적인 제한들의 명세를 제공해야 한다.
동기 : 확장과 표현의 조화, 불일치 탐지

(17)XML 문법(XML syntax)
XML 구문을 가져야 한다.
동기 : 다른 기준들과의 호환

(18)사용자가 보여줄 수 있는 레이블들(User-displayable labels)
온톨로지내의 객체들에 대하여 다중 선택적인 사용자에게 보여줄 수 있는 레이블들의 명세를 지원해야 한다.
동기 : 범용화, 사용의 쉬움

(19)문자 모델 지원(Supporting a character model)
다국어 문자 집합들의 사용을 지원해야 한다.
동기 : 범용화, 다른 기준들과의 호환

(20)유니코드 문자의 유일한 지원(Supporting a uniqueness of Unicode strings)
유니코드 형식의 인코딩을 지원한다.
동기 : 범용화, 다른 기준들과의 호환

시맨틱 웹을 구현하기 위한 계층적인 구성은 RDF(S), XML등이 시맨틱 웹 언어의 하부구조를 이루고 있고 추론을 기반으로 하는 높은 시맨틱을 갖는 웹 온톨로지 언어들은 RDF(S), XML등을 하부 구조로 이용하여 확장하여야 한다는 사실에 근거하여, 하부 구조의 표준화가 먼저 선행되어야 한다.

현재 OWL은 W3C에서 표준 온톨로지 언어로 지정한 상태이다. 이에 따라 OWL을 기반으로 수 많은 연구가 진행중이며 OWL을 확장하여 OWL이 표현하지 못하는 지식을 표현하는 프로젝트가 제시되고 있다.

Example 1)

<owl:Ontology rdf:about="#soju">

<rdfs:comment>soju is one of the delicious drink</rdfs:comment>

<owl:priorVersion rdf:resource="http://iis.korea.ac.kr/goods/soju"/>

</owl:Ontology>

<owl:DeprecatedClass rdf:ID="Lemon soju">

<rdfs:comment>it will give you a nice smell</rdfs:comment>

<owl:equivalentClass rdf:resource="#Lemon taste soju"/>

</owl:DeprecatedClass>

<owl:DeprecatedProperty rdf:ID="hasCap">

<rdfs:comment>lemon soju has a cap</rdfs:comment>

</owl:DeprecatedProperty>

Example 2)

<owl:Class>

<owl:intersectionOf rdf:parseType=" collection">

<owl:Class rdf:about="#Person"/>

<owl:Restriction>

<owl:onProperty rdf:resource="#hasChild"/>

<owl:toClass>

<owl:unionOf rdf:parseType=" collection">

<owl:Class rdf:about="#Doctor"/>

<owl:Restriction>

<owl:onProperty rdf:resource="#hasChild"/>

<owl:hasClass rdf:resource="#Doctor"/>

</owl:Restriction>

</owl:unionOf>

</owl:toClass>

</owl:Restriction>

</owl:intersectionOf>

</owl:Class>