KR101318250B1 - 하이퍼 큐브를 사용한 추론 검색 방법 - Google Patents

하이퍼 큐브를 사용한 추론 검색 방법 Download PDF

Info

Publication number
KR101318250B1
KR101318250B1 KR20120013861A KR20120013861A KR101318250B1 KR 101318250 B1 KR101318250 B1 KR 101318250B1 KR 20120013861 A KR20120013861 A KR 20120013861A KR 20120013861 A KR20120013861 A KR 20120013861A KR 101318250 B1 KR101318250 B1 KR 101318250B1
Authority
KR
South Korea
Prior art keywords
class
property
box
inference
bit
Prior art date
Application number
KR20120013861A
Other languages
English (en)
Other versions
KR20130092242A (ko
Inventor
전종훈
김인성
Original Assignee
(주)프람트테크놀로지
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)프람트테크놀로지 filed Critical (주)프람트테크놀로지
Priority to KR20120013861A priority Critical patent/KR101318250B1/ko
Publication of KR20130092242A publication Critical patent/KR20130092242A/ko
Application granted granted Critical
Publication of KR101318250B1 publication Critical patent/KR101318250B1/ko

Links

Images

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)

Abstract

본 발명은 하이퍼 큐브를 사용한 추론 검색 방법에 관한 것으로, 보다 상세하게는 대상(subject), 속성(predicate) 및 목적(object)형태로 이루어진 트리플(Triple) 구조의 온톨로지를 이용하며, 상기 온톨로지는 대상 또는 목적인 클래스, 속성 및 상기 클래스와 클래스 사이의 속성을 정의하는 티-박스(T-Box) 및 상기 티-박스에서 정의된 개념에 기반한 인스턴스로 정의되는 에이-박스(A-box)의 영역으로 나누어 저장되는 추론 검색 방법에 있어서, 상기 티-박스의 추론검색은 ⅰ)상기 n 개의 속성에 대해 n 개의 속성 식별자(identifier)를 부여하고 상기 각각의 식별자에 대응하는 n개의 비트로 구성된 n 개의 프로퍼티 벡터( property vector)를 생성하는 단계,; ⅱ)상기 클래스에 대해 m 개의 클래스 식별자를 부여하는 단계,; ⅲ) 상기 클래스와 속성간의 트리플 구조를 각각의 클래스에 대해 상기 프로퍼티 벡터로 구성된 m개의 비트 큐브로 표현하는 단계 및 ⅳ)상기 인스턴스 검색이 요청되었을 때 상기 인스턴스 및 상기 인스턴스가 속한 클래스를 상기 비트 큐브에 저장된 프로퍼티 벡터를 조회하여 연관된 클래스와 속성을 획득하여 상기 에이-박스에서 연관된 결과를 추출하는 단계를 포함한 하이퍼 큐브를 사용한 추론 검색 방법에 관한 것으로, 본 발명의 하이퍼 큐브를 사용한 추론 검색 방법은 대용량의 T-box에서도 효율적인 추론 검색이 가능하다.

Description

하이퍼 큐브를 사용한 추론 검색 방법{INFERENCE QUERY PROCESSING USING HYPER CUBE}
본 발명은 하이퍼 큐브를 사용한 추론 검색 방법에 관한 것으로, 보다 상세하게는 대상(subject), 속성(predicate) 및 목적(object)형태로 이루어진 트리플(Triple) 구조의 온톨로지를 이용하며, 상기 온톨로지는 대상 또는 목적인 클래스, 속성 및 상기 클래스와 클래스 사이의 속성을 정의하는 티-박스(T-Box) 및 상기 티-박스에서 정의된 개념에 기반한 인스턴스로 정의되는 에이-박스(A-box)의 영역으로 나누어 저장되는 추론 검색 방법에 있어서, 상기 티-박스의 추론검색은 ⅰ)상기 n 개의 속성에 대해 n 개의 속성 식별자(identifier)를 부여하고 상기 각각의 식별자에 대응하는 n개의 비트로 구성된 n 개의 프로퍼티 벡터( property vector)를 생성하는 단계,; ⅱ)상기 클래스에 대해 m 개의 클래스 식별자를 부여하는 단계,; ⅲ) 상기 클래스와 속성간의 트리플 구조를 각각의 클래스에 대해 상기 프로퍼티 벡터로 구성된 m개의 비트 큐브로 표현하는 단계 및 ⅳ)상기 인스턴스 검색이 요청되었을 때 상기 인스턴스 및 상기 인스턴스가 속한 클래스를 상기 비트 큐브에 저장된 프로퍼티 벡터를 조회하여 연관된 클래스와 속성을 획득하여 상기 에이-박스에서 연관된 결과를 추출하는 단계를 포함한 하이퍼 큐브를 사용한 추론 검색 방법에 관한 것이다.
월드와이드웹(World Wide Web)의 차세대 기술로써 컴퓨터가 스스로 의미를 이해할 수 있고, 정의된 사실들을 기반으로 새로운 사실을 추론해낼 수 있는 Semantic Web이 등장하였다. Semantic Web은 온톨로지(Specification of a conceptualization)를 활용하여 구현되며, 온톨로지는 XML을 기반으로한 OWL로 정의하는 것이 표준이다. 온톨로지에 관하여 주로 인용되는 정의는 어떤 관심의 대상이 되는 분야의 개념화를 하기 위해 명시적이고 정형화한 상세 내역이다. 인간이 이해하는 사물과 사건들의 개념을 누구나 동의하는 정의로써 정형화하여 만든 것이 온톨로지이고, 기계가 이러한 온톨로지를 이해하고 적절한 규칙 및 관계를 기반으로 추론을 수행하면, 마치 사람이 사고하는 것과 유사한 결론을 도출시킬 수 있다. 온톨로지 모델링 기법은 웹과 결합되면서, 이전에는 자체 보유 자료에만 제한되었던 추론을 웹에 통해 접근 가능한 모든 전자적 리소스까지 확장할 수 있게 되었다. 나아가 유비쿼터스 시대에 들어서면서, 상황 인식 지식기반 서비스도 가능하게 되었다. 온톨로지는 개념과 개념들 그리고 그들 사이에 존재하는 프로퍼티를 정의함으로써 표현된다. 근래에 들어와서 각광받고 있는 시맨틱 웹과 관련기술의 부상으로 온톨로지에 대한 관심이 증대되었으며, 그중에서도 고난이도의 추론을 요구하는 의미기반 시맨틱 검색을 위해서 온톨로지를 효율적으로 저장하고 검색하는 다양한 기법들이 활발히 연구되어왔다. W3C에서의 표준권고안은 RDF/S, OWL을 활용하도록 하고 있으나, 메모리 기반으로 구현되어 있는 에디터나 추론엔진들, 온톨로지의 원형을 그대로 유지하여 저장하는 트리플 저장소를 이용하여 대용량 온톨로지를 처리하기에는 성능상의 한계가 있다. 따라서 이를 해결하기위해 성능이 기 검증된 관계형 데이터베이스 엔진을 이용하여, 온톨로지를 저장하고 효율적으로 활용하기 위한 다양한 방식의 추론엔진과 질의처리 알고리즘들이 제안되어왔다. 그러나 이 역시 온톨로지 프로퍼티의 다섯 가지 핵심특성에 따른 추론 결과를 완전하게 획득하지는 못하고 있는 실정이다. 관계형 데이터베이스를 사용하여 온톨로지를 저장하는 것은 저장 데이터의 크기를 축소할 수 있으며, 관계형 데이터베이스에서 기본적으로 제공하는 무결성 제약조건을 활용함으로써 데이터의 무결성 또한 보장할 수 있으므로 장점이 있다 하겠다. 관계형 데이터베이스에서 질의처리의 성능을 좌지우지하는 핵심은 인덱스이다. 대용량 데이터를 다루는 경우 일수록, 인덱스의 역할이 중요해지는 것은 자명한 사실이다. 관계형 데이터베이스 엔진들은 질의의 특성과 검색 조건에 부합하는 다양한 형태의 인덱스를 제공하며 있으며, 이는 기존의 관계형 데이터베이스 검색에 최적화되어 있어 보편적인 SQL 질의를 처리하는데 우수한 성능을 발휘한다. 그러나 온톨로지 기반의 시맨틱 검색에서 요구하는 추론질의를 처리하는데 적합한 인덱스는 존재하지 않으며, 대용량 온톨로지를 관계형 데이터베이스에 저장하는 순간 이의 처리를 위한 인덱스 존재 유무는 가장 중요한 문제로 떠오르게 된다.
클래스와 클래스 사이의 계층을 표현하는 관계 속성으로 설명될 수 있으며, 이러한 관계 속성을 "isA"라고 표현한다. 또한 이러한 포함 관계는 여러 계층으로 형성될 수 있다. OWL에서는 DL(Description Logic)에 기반하여 추론이 수행되며, 클래스간의 계층(hierarchy) 구조 및 속성의 특성에 따른 추론들이 가능하다. 대용량의 온톨로지를 XML의 형태인 OWL로 저장하기에는 데이터의 저장관리에 관한 안전성, 접근성, 인덱스를 활용하지 못하는 질의처리 방식 등 제약사항의 발생할 수 있다. 이에 RDBMS에 온톨로지를 저장하고 효율적인 추론을 위한 스키마들이 연구되고 있지만, 대부분의 RDBMS를 활용한 추론은 A-Box의 인스턴스만을 대상으로 수행되며 OWL 속성의 특성에 따른 추론을 완전하게 수행하지 못한다. 뿐만 아니라 UMLS와 같이 T-Box에 대용량의 concept을 다루어야 되는 경우 셀프-조인연산 문제로 인하여 질의처리 비용이 기하급수적으로 증가하는 단점이 있어 추론 검색에 소비되는 시간 및 비용이 늘어나게 된다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 대용량의 T-box 및 A-box에서도 효율적인 추론 검색이 가능하도록 비트로 구성된 하이퍼 큐브를 사용한 추론 검색 방법을 제공하는 것이다.
상기 기술적 과제를 달성하기 위하여, 본 발명은 대상(subject), 속성(predicate) 및 목적(object)형태로 이루어진 트리플(Triple) 구조의 온톨로지를 이용하며, 상기 온톨로지는 대상 또는 목적인 클래스, 속성 및 상기 클래스와 클래스 사이의 속성을 정의하는 티-박스(T-Box) 및 상기 티-박스에서 정의된 개념에 기반한 인스턴스로 정의되는 에이-박스(A-box)의 영역으로 나누어 저장되는 추론 검색 방법에 있어서, 상기 티-박스의 추론검색은 ⅰ)상기 n 개의 속성에 대해 n 개의 속성 식별자(identifier)를 부여하고 상기 각각의 식별자에 대응하는 n개의 비트로 구성된 n 개의 프로퍼티 벡터( property vector)를 생성하는 단계,; ⅱ)상기 클래스에 대해 m 개의 클래스 식별자를 부여하는 단계,; ⅲ) 상기 클래스와 속성간의 트리플 구조를 각각의 클래스에 대해 상기 프로퍼티 벡터로 구성된 m개의 비트 큐브로 표현하는 단계 및 ⅳ)상기 인스턴스 검색이 요청되었을 때 상기 인스턴스 및 상기 인스턴스가 속한 클래스를 상기 비트 큐브에 저장된 프로퍼티 벡터를 조회하여 연관된 클래스와 속성을 획득하여 상기 에이-박스에서 연관된 결과를 추출하는 단계를 포함한 하이퍼 큐브를 사용한 추론 검색 방법을 제공한다.
또한, 본 발명은 상기 트리플 구조가 이행적(transive), 대칭적(symmetric), 역(inverse), 함수적 및 역함수적 성질의 5가지 중 하나에 해당하는 것을 특징으로 하는 하이퍼 큐브를 사용한 추론 검색 방법을 제공한다.
또한, 본 발명은 상기 에이-박스의 추론검색이 인스턴스에 대해 인스턴스들간에 존재하는 프로퍼티와 프로퍼티의 특성에 따른 트리플 구조의 추론 결과를 2차원 비트 매트릭스 형태의 비트로 표현하여 저장하고, 상기 인스턴스 검색이 요청되었을 때 프로퍼티의 특성에 따라 비트 매트릭스를 조회하여 상기 에이-박스에서 연관된 결과를 추출하는 단계를 포함한 하이퍼 큐브를 사용한 추론 검색 방법을 제공한다.
또한, 본 발명은 상기 트리플 구조가 이행적(transitive), 대칭적(symmetric), 도치적(inverse), 함수적(functional), 역함수적(inverse functional) 특성을 지닌 것을 특징으로 하는 하이퍼 큐브를 사용한 추론 검색 방법을 제공한다.
본 발명의 하이퍼 큐브를 사용한 추론 검색 방법은 대용량의 T-box 및 A-box에서도 성능적인 측면에서 종래의 검색방법에 비해 월등히 우수함은 물론, 추론질의 결과의 완전성(completeness)도 보장한다.
도 1은 본 발명의 하이퍼 큐브를 이용한 추론 검색방법의 일실시예에 있어서 대상(subject), 속성(predicate) 및 목적(object)형태로 이루어진 트리플(Triple) 구조를 티-박스와 에이-박스로 나누어진 이해도
도 2는 본 발명의 하이퍼 큐브를 이용한 추론 검색방법에 있어서, 티-박스 전체의 온톨로지를 비트를 이용하여 3차원의 공간으로 표현한 비트 큐브 구조를 설명하기 위한 이해도
도 3은 비트 큐브와 비트 매트릭스가 결합된 하이퍼 큐브의 형태를 표현한 것
도 4는 본 발명의 하이퍼큐브를 이용한 추론 검색방법의 순서도
도 5는 본 발명의 하이퍼 큐브를 이용한 추론 검색방법에 있어서 오브젝트 프로퍼티가 가질 수 있는 다섯 가지의 특성을 설명한 이해도
도 6은 종래의 추론검색방법 및 본 발명의 하이퍼 큐브를 이용한 추론 검색방법에 있어서 질의에 대한 완전성을 대비한 결과를 도시한 것
도 7은 본 발명의 하이퍼 큐브를 이용한 추론 검색방법에 대한 효율성을 종래 추론 검색 엔진과 대비하여 검증한 결과를 나타낸 그래프
이하, 본 명세서에 첨부된 도면을 참조하여 본 발명에 대해 보다 상세히 설명한다.
본 발명의 하이퍼 큐브를 사용한 추론검색 방법은 대상(subject), 속성(predicate) 및 목적(object)형태로 이루어진 트리플(Triple) 구조의 온톨로지를 이용하며, 상기 온톨로지는 대상 또는 목적인 클래스, 속성 및 상기 클래스와 클래스 사이의 속성을 정의하는 티-박스(T-Box) 및 상기 티-박스에서 정의된 개념에 기반한 인스턴스로 정의되는 에이-박스(A-box)의 영역으로 나누어 저장되는 추론 검색 방법에 있어서, 상기 티-박스의 추론검색은 ⅰ)상기 n 개의 속성에 대해 n 개의 속성 식별자(identifier)를 부여하고 상기 각각의 식별자에 대응하는 n개의 비트로 구성된 n 개의 프로퍼티 벡터( property vector)를 생성하는 단계,; ⅱ)상기 클래스에 대해 m 개의 클래스 식별자를 부여하는 단계,; ⅲ) 상기 클래스와 속성간의 트리플 구조를 각각의 클래스에 대해 상기 프로퍼티 벡터로 구성된 m개의 비트 큐브로 표현하는 단계 및 ⅳ)상기 인스턴스 검색이 요청되었을 때 상기 인스턴스 및 상기 인스턴스가 속한 클래스를 상기 비트 큐브에 저장된 프로퍼티 벡터를 조회하여 연관된 클래스와 속성을 획득하여 상기 에이-박스에서 연관된 결과를 추출하는 단계를 포함한다.
이하에서 적절한 예를 통해 본 발명을 상세히 설명한다.
도 1은 본 발명의 하이퍼 큐브를 이용한 추론 검색방법의 일실시예에 있어서 T-Box와 A-Box의 예를 도식적으로 표현한 것이다. 그림의 예제는 대학 온톨로지의 일부를 표현한 것으로써 T-Box에서는 학생(Student), 교수(Professor) 및 강좌에 관한 프로퍼티 및 사람(Person)과 학생, 교수 사이의 계층 관계(subClassOf)를 정의하고 있으며, 학생과 과목(Course) 사이에서는 수강(takesCourse)이라는 프로퍼티 및 과목과 교수 사이에는 가르치다(isTaughtBy) 라는 프로퍼티를 정의하고 있다. 또한 A-Box에서는 각 클래스들에 기반한 인스턴스들을 정의 하고 있다. 학생의 클래스로부터 서로 다른 학생 인스턴스들을 정의하였고, 과목 클래스로부터 서로 다른 과목 인스턴스 들을 정의 하였다. 또한, 학생 인스턴스들과 과목 인스턴스들 사이에는 T-Box에서 정의된 수강이라는 프로퍼티를 정의 하고 있다.
T-Box에서는 클래스의 형태로 개념을 정의하고, 프로퍼티를 통해 클래스와 클래스 사이에 존재하는 관계를 정의한다. A-Box에서는 T-Box에서 정의된 각각의 클래스에 속하는 인스턴스를 생성한다. T-Box와 A-Box에서 정의 되는 온톨로지는 주어(Subject)-술어(Predicate)-목적어(Object) 형태의 트리플로 기술되며 도 1과 같이 방향성을 가지는 그래프 형태로 트리플을 표현할 수 있다.
W3C에서는 RDF(Resource Description Framework), RDFS(RDF Schema) 및 OWL(Web Ontology Language)를 통해 온톨로지를 정의할 것을 표준 권고안으로 채택하였다. RDF는 리소스를 정의하며, 리소스와 리소스 사이의 관계를 정의하기 위해 W3C에 의해 개발된 규격이다. 리소스는 URI(Uniform Resource Locator)를 통해 정의되며 각각의 리소스는 고유의 URI를 통해 구분할 수 있으며, RDF를 통해서 A-Box에 해당하는 인스턴스를 정의할 수 있다. RDF를 이용하여 정의되는 인스턴스는 RDFS 또는 OWL로 정의 된 T-Box의 클래스에 매핑되어 정의 된다. RDFS는 T-Box에서 정의되는 클래스와 프로퍼티를 정의하며, 클래스간의 계층구조 및 프로퍼티간의 계층구조를 정의한다. 그러나 RDFS가 지닌 표현력의 한계로 인해, W3C에서는 OWL을 사용하여 T-Box를 정의하는 것을 권고하고 있다. OWL은 RDFS의 상위집합의 개념으로 완벽하게 호환을 이루고 있으며, RDFS보다 표현력이 풍부하여 폭넓게 지식을 표현할 수 있다. OWL을 사용하게 되면 RDFS에서 정의하지 못했던 프로퍼티의 카디날리티 제약사항이나 클래스 간의 동치구조에 대해 표현하는 것이 가능하다. OWL은 두 가지 형태의 프로퍼티 형태를 제공한다. 첫 번째는 데이터 타입 프로퍼티이며, 이는 클래스와 관계된 데이터 타입에 대해 정의를 하는 프로퍼티이다. 두 번째는 오브젝트 프로퍼티이며, 이는 클래스와 클래스 사이의 관계에 대한 프로퍼티이다. OWL에서는 오브젝트 프로퍼티가 가질 수 있는 다섯 가지의 특성을 정의하고 있으며 이 다섯 가지 특성을 활용하면 명시적으로 기술된 온톨로지 이외의 새로운 정보를 추출해 내는, 즉 추론이 가능하게 된다. OWL에서는 오브젝트 프로퍼티에 이행적, 대칭적, 도치적, 함수적 및 역함수적의 다섯 가지 특성을 부여 할 수 있다
T-Box에서 새로운 concept이 추가 되면 각 속성의 특성에 따라 다음과 같이 5가지 방식으로 추론한다.
정의1 이행적(Transitive) 특성 : 프로퍼티 P의 특성이 이행적이라면, P(x, y), P(y,z)에 대해서 P(x, z)가 성립한다. 정의2 대칭적(Symmetric) 특성 : 프로퍼티 P의 특성이 대칭적이라면, P(x, y)에 대해서 P(y, z)가 성립한다. 정의3 도치적(InverseOf) 특성 : 프로퍼티 P가 또 다른 프로퍼티 P'과 도치적 관계에 있다면, P(x, y)에 대해서 P'(y, x)가 성립한다. 정의4 함수적(Functional) 특성 : 프로퍼티 P의 특성이 함수적이라면, P(x, y), P(x,z)가 정의 된다면 y와 z가 동일한 인스턴스임을 만족한다. 정의5 역함수적(Inverse Functional) 특성 : 프로퍼티 P의 특성이 역함수적 이라면, P(y, x), P(z, x)가 정의 된다면 y와 z가 동일한 인스턴스임을 만족한다. 정의 1,2,3에서의 x, y, z는 클래스 또는 인스턴스이며, 정의 4, 5에서의 x, y, z는 인스턴스 이다. 이러한 정의는 도 5에 정리하였다.
정의된 온톨로지가 오브젝트 프로퍼티를 포함하고 있고, 오브젝트 프로퍼티가 지닌 특성이 위 다섯 가지 특성 중의 한 가지 이상을 만족한다면, 각각의 특성에 따라 초기 온톨로지에서 명시적으로 주어지지 않았던 정보, 즉 오브젝트나 인스턴스 간에 프로퍼티가 추가적으로 성립할 수 있음을 추론해 낼 수 있다. 온톨로지에서 프로퍼티가 가지는 특성에 따라 추론을 수행해야 한다. 이행적 특성에서는 P(x, y), P(y, z)로부터 P(x, z)를 추론해야 한다. 대칭적 특성에서는 P(x, y)로부터 P(y, x)를 추론해야 한다. P와 P'이 도치적 관계가 있을 때 P(x, y)로부터 P'(y,x)를 추론한다. 기능적 특성에서는 P(x, y), P(x, z)로부터 y와 z가 동일함을 추론해야 하며, 역함수적 특성에서는 P(y, x), P(z, x)로부터 y와 z가 동일함을 추론해야 한다.
하이퍼 큐브는 온톨로지의 효율적인 검색과 추론을 위하여 다차원의 비트 형태로 이루어진 인덱스 구조이다. 하이퍼 큐브는 티-박스의 온톨로지를 표현하는 3차원의 비트 큐브와 에이-박스의 온톨로지를 표현하는 2차원의 비트 매트릭스가 결합한 형태로 구성 되어 다차원의 형태로 표현되며, 이를 이용하여 프로퍼티의 특성에 따른 추론을 수행하는 것이 가능해진다. T-Box에서 정의되는 온톨로지는 하이퍼 큐브의 비트 큐브로 표현하며, T-Box 정의를 통해 생성되는 A-Box 영역의 인스턴스들에 대해서는 비트 매트릭스로 표현한다. 따라서 전체 온톨로지는 도 3과 같이 비트 큐브와 비트 매트릭스가 결합 된 하이퍼 큐브의 형태가 된다. 비트 큐브는 온톨로지의 T-Box와 T-Box에서 정의 된 프로퍼티의 특성에 따른 추론 결과를 저장하기 위한 인덱스 구조이다.
비트 큐브를 통해 T-Box에서 정의 되는 클래스 및 클래스간의 프로퍼티는 비트를 이용하여 3차원의 공간으로 표현한다. 도 2는 본 발명의 하이퍼 큐브를 이용한 추론 검색방법에 있어서, 티-박스 전체의 온톨로지를 비트를 이용하여 3차원의 공간으로 표현한 비트 큐브 구조를 설명하기 위한 이해도이다. 도2 및 도 3에 나타난 바와 같이, 비트큐브의 두 개의 축은 클래스와 클래스의 사이의 관계를 표현하기 위한 비트맵(bitmap)과 다수의 프로퍼티들을 표현하기 위한 비트 벡터(bit vector)로 구성된다. 비트맵의 가로축과 세로축은 모두 클래스에 대해 나타내며 클래스의 개수가 n일 때 n ㅧ n으로 구성되며 비트맵의 행과 열을 통해 클래스와 클래스 사이의 관계를 정의할 수 있다. 또한 비트 벡터는 프로퍼티를 표현하는 것으로써, 프로퍼티의 개수가 m개 일 경우 m개의 비트 배열로 표현되며, 클래스와 클래스 사이에 존재하는 프로퍼티 관계를 표현하기 위하여 n ㅧ n개의 비트 벡터가 존재한다. 비트 벡터는 특정 클래스와 특정 클래스 간의 프로퍼티 존재 유무를 표현하기 위한 bit의 배열이다. T-Box에 정의된 프로퍼티의 개수가 m개일 경우 하나의 비트 벡터는 m개의 bit 배열로 표현된다. m개의 프로퍼티에 대해 0부터 m-1사이의 식별자를 각 프로퍼티에 할당하고 비트 벡터로부터 프로퍼티의 식별자의 위치에 해당하는 값이 1이면 프로퍼티 관계가 존재한다는 것을 의미한다. 프로퍼티 관계가 없을 경우에는 0으로 표현하여 프로퍼티 관계의 유무를 표현할 수 있다. 또한 비트 벡터는 n개의 클래스에 대해 (C0, C0), ... (Cn-1, Cn-1)별로 존재한다. 따라서 비트 벡터는 클래스의 개수가 n일 경우 n ㅧ n의 수만큼 존재하게 되며, 하나의 비트 벡터는 두 개의 클래스 사이에 존재하는 프로퍼티 관계를 표현하는 것이 된다. 비트 벡터를 통해 클래스 사이에 존재하는 프로퍼티 관계를 표현하기 위해서는 각 프로퍼티에 대한 고유 벡터를 생성하여야 한다. 고유 벡터는 전체 프로퍼티로부터 하나의 프로퍼티를 구분할 수 있게 한다. m개의 프로퍼티에 대해 0부터 m-1사이의 식별자를 부여하고 m개의 비트 배열에서 프로퍼티의 식별자의 위치에 해당하는 값을 1로 설정하고 나머지 값들은 0으로 설정하여 고유 벡터를 생성한다. 표 1과 같이 다섯개의 프로퍼티가 존재할 경우 다섯 개의 고유한 식별자(0에서 4 사이의 정수)를 부여하고 식별자(identifier)위치에 해당하는 bit의 값을 1로 설정하여 각각의 프로퍼티 벡터(property vector)를 통해 속성을 식별할 수 있게 하였다. 하기 표 1은 각각의 속성에 대해 속성 식별자와 프로퍼티 벡터를 정해놓은 예를 정리한 것이다.
Figure 112012011028504-pat00001
또한, 상기 m 개의 클래스에 대해 m 개의 클래스 식별자를 부여하게 된다. m개의 클래스가 존재할 경우 0부터 m-1사이의 값으로 클래스를 식별하기 위한 식별자(identifier)를 부여하고, m ㅧ m으로 구성 된 비트 큐브를 생성하고 클래스와 클래스간에는 프로퍼티 벡터(property vector)를 통해 관계를 표현하여 비트 큐브 인덱스를 생성한다. T-Box에 정의 된 relationship이 Pk(Ci,Cj)라면 비트 큐브 인덱스의 ith 행(row)와 jth 열(column)에 Pk에 해당하는 프로퍼티 벡터를 추가함으로써 관계를 표현할 수 있다. 또한, 특정 클래스와 클래스 사이에 프로퍼티가 추가 될 경우 비트 벡터와 해당 프로퍼티의 고유 벡터와의 OR 연산을 통해 추가 된 정보를 반영할 수 있다. 예를 들어 프로퍼티들의 정보가 표 1와 같이 정의 되어있고, 클래스 C0과 C1사이에 존재하는 프로퍼티가 ISA와 hasMember라면 (C0, C1)에 해당하는 비트 벡터는 11000이 된다. 추가로 C0과 C1사이에 hasAdvisor라는 프로퍼티가 추가 된다면 (C0, C1)의 비트 벡터 11000과 hasAdvisor의 비트벡터 00100의 OR 결과 값인 11100을 (C0, C1)의 비트 벡터 값으로 설정하여 추가 된 프로퍼티를 반영할 수 있게 된다.
하기 표 2에서는 클래스에 대한 식별자(identifier) 및 T-Box에 정의된 concept에 대해 표현하였다.
Figure 112012011028504-pat00002
상기 표 1 및 표 2에서 정의 된 속성과 클래스를 통해 비트 큐브를 생성하면 표 3과 같이 표현된다. 비트맵은 단일 프로퍼티에 대한 클래스와 클래스 사이의 관계를 정의한다. 비트맵은 n개의 클래스에 대해 n ㅧ n 의 2차원 행렬로 구성한다. 도 3에서의 비트맵은 비트 큐브에서 클래스와 클래스의 축으로 이뤄진 하나의 단면이 되며, 프로퍼티의 개수가 m일 경우에 비트 큐브는 m개의 비트맵으로 구성 된다. n개의 클래스가 존재할 때,각 클래스에 0에서 n-1 사이의 정수 값의 식별자를 부여하고 비트맵에서 식별자에 해당하는 행과 열의 위치를 통해 클래스와 클래스 사이의 관계를 정의할 수 있다. Pk(Ci, Cj)는 Pk에 해당하는 비트맵의 i번째 행과 j번째 열의 비트 값을 1로 설정함으로써 표현할 수 있다. 예를 들어 표 2와 같이 4개의 클래스가 존재할 경우 0에서 3에 사이의 식별자를 할당하고, 표 3과 같이 트리플들이 존재할 때 ISA 프로퍼티에 대한 2개의 트리플 ISA(Professor, Person), ISA(Student, Person)은 비트맵에서 Professor의 식별자에 해당하는 1번째 행과 Person에 해당하는 0번째 열의 위치의 bit값을 1로, Student에 해당하는 2번째 행과 Person에 해당하는 0번째 열의 위치의 bit값을 1로 설정하여 그림 9와 같이 표현할 수 있다. 각각의 프로퍼티에 대해서 동일한 방법으로 그림 하기 표 3과 같은 비트맵을 생성한다.
Figure 112012011028504-pat00003
비트 큐브는 T-Box 전체의 온톨로지를 비트를 이용하여 3차원의 공간으로 표현한 구조이며 전체 프로퍼티에 대한 비트맵의 집합 또는 전체 비트 벡터들의 집합으로 구성 되어있다. 도 2에서는 비트 큐브의 구조를 나타내고 있다. 각 프로퍼티에 대해 비트맵들이 존재하며 특정 클래스와 클래스 사이에 대해서는 비트 벡터가 존재하는 구조이다. 비트 큐브를 이용하여 T-Box에서 정의 된 온톨로지로부터 프로퍼티의 특성에 기반한 추론을 수행하며, 추론은 각 비트맵과 비트 벡터를 이용하여 수행 된다.특정 클래스 Ci에 대해 Px(Ci,Cy)를 만족하는 Px,와 Cy들은 비트 큐브에서 Ci에 해당하는 row를 조회하여 확인 된다. 또한 Ci에 대해 Px(Cy,Ci)를 만족하는 Px와 Cy들은 비트 큐브에서 Ci에 해당하는 column을 조회하여 확인된다. 클래스를 통해 비트 큐브 인덱스의 row와 column으로부터 클래스들을 조회하는 방법은 Algorithm 1 과 Algorithm 2 에 각각 기술되어 있다.
Algorithm1 FindClassesFromRow
-------------------------------------
Input : class C, property P
Output : class list L
-------------------------------------
L ← NULL
for(i=0; i<bitCube.columnCount; i++){
if bitCube[C][i] ∧ P is true then
L ← i th class
end if
}
Algorithm2 FindClassesFromColumn
------------------------------------
Input : class C, property P
Output : class list L
------------------------------------
L ← NULL
for(i=0; i<bitCube.columnCount; i++){
if bitCube[i][C] ∧ P is true then
L ← i th class
end if
}
새로운 속성 관계가 추가 되었을 경우 비트 큐브 인덱스를 이용하여 추론을 수행하는 방법은 다음과 같다. symmetric한 속성 P에 대해 P(Ci,Cj)가 추가 되었을 경우 P(Cj,Ci)를 추가한다. 이후 Ci와 Cj에 대해 비트 큐브로부터 각각 P(Ci,Cx),P(Cj,Cy)를 만족하는 Cx과 Cy들을 비트 큐브의 row를 통해 확인할 수 있다. Cx와 Cy에 해당하는 클래스들을 획득한 후 P(Cx,Cy),P(Cy,Cx)에 대해 추론 후 비트 큐브에 결과를 반영한다. 해당 알고리즘은 알고리즘3에 정의 되어 있다.
Algorithm3 AddTransitiveProperty
--------------------------------------------------------
Input : subject class Cs, object class Co, property P
Output : Inference Bit Cube
--------------------------------------------------------
subject class list S ← NULL
object class list O ← NULL
S ← Cs + FindClassesFromColumn(Cs, P)
O ← Co + FindClassesFromRow(Co, P)
for(i = 0; i < S.length; i++){
for(j = 0; j < O.length; j++){
Add Inference Bit Cube (Si, P, Oj)
}
}
이러한 속성 관계를 정리하여 보면, 도 1과 같이 정리될 수 있다.
인스턴스검색이 요청되었을 때 비트 큐브 인덱스를 통해 추론 결과를 획득하기 위해서는 해당 인스턴스가 속한 클래스를 확인해야 한다. 따라서 Inverted index를 이용하여 각 검색어에 해당하는 인스턴스와 클래스를 저장하고 검색 요청이 발생하면 inverted index를 통해 해당 인스턴스가 포함된 클래스를 검색하고, 검색된 클래스를 통해 비트 큐브 인덱스를 조회한다. 비트 큐브 인덱스의 row를 통해 해당 클래스와 연관된 클래스들과 속성들을 획득할 수 있기 때문에 전체 클래스와 속성들 중에서 검색 대상을 좁힘으로써 검색 속도를 향상 할 수 있다. 검색을 수행하는 알고리즘은 알고리즘 6에 정의 되어 있다.
Algorithm6 FindInferenceInstances
--------------------------------------------------------------
Input : SearchKey value
Output : ResultInstance values
--------------------------------------------------------------
Classes and id List Set L<C, id> ← NULL
Property List P ← NULL
Value List V ← NULL
L<C, id> ← find classes and instances in inverted index(value)
for(i = 0; i < L.length; i++){
Pi ← find property in Bit Cube (Li)
V ← V + select values from Li<C>, Pi where id=Li<id>
}
return V
추론질의의 최종 결과로 인스턴스를 요구하는 경우가 대부분이다. 그러나 비트 큐브는 T-Box 즉, 클래스에 해당하는 인덱스 이므로 비트 큐브만을 사용하여 인스턴스를 추론질의의 결과로 반환하는 것은 불가능 하다. 따라서 인스턴스를 추론질의 결과로 요구하는 경우에 부합하기 위하여 추가적인 인덱스 구조가 필요하게 된다. 비트 매트릭스는 A-Box의 인스턴스들간에 존재하는 프로퍼티와 프로퍼티의 특성에 따른 추론 결과를 저장하는 인덱스 구조이다. 비트 매트릭스는 2차원의 비트 배열로 구성되며, 각 비트 매트릭스는 하나의 프로퍼티에 대한 추론 결과를 저장한다. 비트 매트릭스의 생성 방법은 비트 큐브에서의 비트맵을 생성하는 방법과 동일하지만, 비트맵에서 각각의 축이 클래스였던 것에 반해 비트 매트릭스에서의 각각의 축은 인스턴스로 이루어 진다는 점이 다른 점이다. 가로축과 세로축을 구성하는 인스턴스들은 T-Box에서 행과 열에 해당하는 클래스에 포함 된 모든 인스턴스들로 구성되어 있다. 그로 인해 동일한 행과 열에 접근하여 추론을 수행할 수 있다. 비트 매트릭스는 인스턴스에 대해 이행적, 도치적, 함수적, 역함수적 특성을 지닌 프로퍼티에 대한 추론 결과를 저장한다. 따라서 A-Box에 대한 추론 검색 시 프로퍼티의 특성에 따라 비트 매트릭스를 조회하여 추론 결과를 획득할 수 있게 한다. 하기 표 4는 비트 매트릭스를 이용하여 A-Box의 트리플을 표현한 예제이다.
Figure 112012011028504-pat00004
도 4는 본 발명의 하이퍼큐브를 이용한 추론 검색방법의 순서도이다. 추론 질의는 한 개 이상의 키워드를 입력받는 것으로 가정하며, 클래스나 프로퍼티, 인스턴스에 해당하는 검색어를 포함하는 것으로 가정한다. 검색 키워드가 특성을 가지고 있는 프로퍼티와 클래스인 경우에는 각각의 식별자를 조회하고, 이를 통해 비트 큐브를 조회하여 T-Box 추론 결과를 획득한다. 검색 키워드가 인스턴스일 경우에는 인스턴스의 식별자를 조회하여 프로퍼티의 식별자와 함께 비트 매트릭스를 검색하여 A-Box의 인스턴스에 대한 추론 결과를 획득한다. 비트 큐브와 비트 매트릭스를 통한 추론 결과는 각각에 대한 식별자만을 반환한다. 그렇기 때문에 해당 식별자에 해당하는 클래스, 프로퍼티 및 인스턴스를 조회하기 위해 역 인덱스(inverted index)를 조회하여 관계형 데이터베이스에서 접근해야 할 테이블과 튜플에 대한 결과를 SQL로 생성한다. 최종적으로 생성 된 SQL을 통해 관계형 데이터베이스에 SQL문을 수행하여 추론 결과를 획득한다.
본 발명의 하이퍼 큐브를 이용한 추론 검색방법에 대한 효율성을 종래 추론 검색 엔진과 대비하여 검증하였다. 실험에서는 하이퍼 큐브를 이용한 추론질의 처리의 성능을 평가하기 위해 LUBM(Lehigh University Benchmark)에서 제시한 성능 평가 기준을 따라 각 항목별로 측정 하였다. 각 항목은 온톨로지의 적재 시간, 저장 공간의 크기, 질의결과에 대한 완전성, 질의 처리 시간으로 구분된다. 실험에 사용된 시스템의 사양은 표 5과 같다. 실험의 공정성을 위해 LUBM에서 제공하는 데이터 집합을 이용하였다. LUBM에서는 대학 온톨로지의 T-Box를 OWL형태로 제공하고 있으며, 주어진 T-Box에 기반하여 A-Box 데이터를 생성하는 API(Application Program Interface)를 제공한다. A-Box 데이터는 대학 수를 기준으로 하여 생성된다. 예를 들어 대학 수 N에 따른 A-Box 데이터 집합은 LUBM(N, 0)으로 표현한다. 데이터의 크기는 1, 10, 20, 50개의 대학 수 별로 증가시켜 가며 A-Box 데이터 집합을 생성하여 실험을 수행하였다.
실시예 1. 데이터 적재 시간
LUBM에서 추론 엔진의 첫 번째 성능 평가 항목인 데이터 적재 시간은 RDF/S와 OWL을 통해 정의 된 온톨로지를 관계형 데이터베이스에 저장하는 시간을 의미한다. 따라서 본 실험에서는 LUBM에서 OWL형태로 제공하는 데이터 집합을 관계형 데이터베이스에 적재하는 시간을 측정하였으며, 추가로 하이퍼 큐브의 생성 시간을 측정하였다. 실험을 통해 측정 된 적재 시간은 표 5와 같다. 데이터 적재 시간은 DLDB(http://swat.cse.lehigh.edu/downloads/dldb.html)의 API를 이용하여 OWL로부터 관계형 데이터베이스에 온톨로지를 저장하는 시간이다. 하이퍼 큐브 인덱스는 생성 시간에 비용이 들더라도, 초기 생성 후 추론을 위해서는 부분적으로 수정이 발생하며 그 시간은 크지 않기 때문에 초기 인덱스의 생성 시간이 전체 시스템의 성능에 영향을 미치지는 않는다고 할 수 있다. 하기 표는 데이터 집합 데이터 적재 시간 인덱스(하이퍼 큐브) 생성 시간을 정리한 것이다.
데이터 집합 Triple 인스턴스
LUBM(1, 0) 103,397 17,174
LUBM(10, 0) 1,316,993 207,426
LUBM(20, 0) 2,782,419 437,555
LUBM(50, 0) 6,890,933 1,082,818
OWL파일로 제공되는 데이터를 관계형 데이터베이스에 저장하기 위해 DLDB에서 제공하는 API를 이용하여 MySQL에 저장하였으며, T-Box에 대한 비트 큐브와 특정 프로퍼티에 대한 A-Box는 비트 매트릭스를 통해 추론 결과를 저장하였다. 따라서 본 실험에서는 OWL 파일의 크기, MySQL에 저장된 저장소의 크기, 비트 큐브와 비트 매트릭스의 크기를 각각 측정하였으며, 측정결과는 표 6와 같다.
데이터 집합 OWL 크기 저장소 크기 하이퍼큐브 인덱스 크기
LUBM(1, 0) 8.02 30 11
LUBM(10, 0) 102 278 97
LUBM(20, 0) 219 570 186
LUBM(50, 0) 543 1390 463
DLDB에서는 하이브리드 스키마 구조를 통해 온톨로지를 저장하는 것을 제안한다. 하이브리드 스키마 구조는 수직적 스키마 구조와 바이너리 스키마 구조를 혼합한 형태로 각 프로퍼티에 대해 트리플을 저장하는 방식을 이용하며, 클래스별로 테이블을 생성하여 데이터를 저장하는 방식을 취한다. 또한 서브 클래스를 위한 계층 관계(hierarchical relationship)는 뷰를 통해 정의함으로써 별도의 테이블을 사용하여 저장하지 않는다. 그러므로 바이너리 스키마 저장 방식에 비해 테이블의 수를 줄일 수 있다는 장점이 있다. 하이브리드 스키마를 이용하여 온톨로지를 저장할 경우 클래스의 개수를 Cn, 프로퍼티의 개수를 OPn, 데이터타입의 개수를 DPn 및 트리플의 수를 Tn이라고 할 때, 실제 각 테이블에 저장 되는 데이터의 건수 Rn은 Tn / ((Cn ㅧ DPn)+ OPn)이 된다. 따라서 대용량의 트리플 개수가 관계형 데이터베이스를 이용하여 저장할 경우 효율적으로 저장됨을 알 수 있다. 예를 들어 100만 건의 트리플에 대해 본 문에서 사용하는 하이브리드 스키마를 이용하여 클래스의 수가 10개, 프로퍼티의 수가 10개, 클래스별 데이터 타입의 수가 4개의 컬럼으로 구성되었을 경우, Tn은 100만이 되며, Cn은 10, OPn은 10, DPn은 4가 된다. 따라서 각 테이블 별로 저장되는 데이터의 수는 이블에는 2만건의 데이터씩 저장되며 20개의 테이블에 총 40만건의 튜플이 저장된다.
표 6에서 데이터 집합 LUBM(50,0)은 트리플 600만개를 단순 OWL파일 형태로 저장했을 때 543MB 정도의 저장장소를 사용하며, 이를 관계형 데이터베이스의 하이브리드 스키마로 매핑하여 저장하는 경우 LUBM(50, 0)의 데이터 집합은 테이블 약 80개, 컬럼 약 2.7개, 총 튜플 약 352만개로 변환 되어 저장공간은 1390MB를 사용한다. 또한, 추론 질의처리의 효율을 기하기 위하여 본 발명에서 제시한 하이퍼 큐브 인덱스를 저장하기 위한 별도의 저장공간 463MB가 추가로 필요하게 되므로 총 1853MB 즉, 1.9GB 정도의 공간이 필요하다는 의미이다. 실질적으로 600만개의 트리플이라고 하면 대용량의 정보를 포함하고 있는 것처럼 느껴지나 관계형 데이터베이스의 관점에서는 동일한 데이터를 테이블 약 80개, 컬럼 약 2.7개, 총 튜플 약 352만개로 표현할 수 있음을 알 수 있고, 이는 우리가 현업에서 언제라도 접할 수 있는 데이터 크기에 불과하다. 그러므로 이정도 용량의 데이터베이스에서 합리적인 시간안에 추론질의를 처리하는 접근 방식에 대한 요구사항이 있을 수 있고, 앞으로도 그 중요성은 날로 더해갈 것이다. 하이퍼 큐브 인덱스의 크기는 위의 표에서 알 수 있듯이 평균적으로 전체 데이터의 약 33% 만을 차지하며 이를 이용하여 완전성이 보장되는 효율적 추론 질의처리 알고리즘을 제공할 수 있다면 상당히 의미 있는 일이라 하겠다. 질의 결과의 완전성에 대해서는 다음에 설명한다.
LUBM에서는 추론엔진의 성능 평가를 위해 14가지의 질의를 제공하고 있다. 질의는 SPARQL 형태로 제공이 되며, 각 질의에 대한 결과 값 또한 제공한다. LUBM에서는 질의에 대한 완전성을 질의결과 ÷ LUBM에서 제공하는 결과 × 100의 방식으로 측정하도록 정의 하였으며, 측정 결과는 도 6에 정리 하였으며, 표 7 에서는 하이퍼 큐브의 성능을 입증하기 위해 사용한 질의 1, 2, 3번(LUBM의 11, 12, 13번 질의)과 질의 내용을 정리하였다. 도 6에서 보듯이 DLDB를 이용할 경우 1, 2, 3번 질의에 대한 결과 집합을 획득하지 못한다. 그 이유는 1, 2번의 질의에 내포 된 subOrganization의 프로퍼티가 이행적 특성을 가지고 있으며, 그에 따라 도출되어야 하는 http://www.University0.edu 과 subOrganization 관계에 있는 기관뿐만 아니라 검색 된 기관들과 subOrganization 관계에 있는 기관들을 반복적으로 검색해야 하는 추론 결과를 획득하지 못하였으나, 본 발명에서 제안하는 하이퍼 큐브 인덱스 구조를 이용하는 경우 질의 완전성 100%를 달성할 수 있다. 뿐만 아니라 3번 질의에 포함된 hasAlumnus 프로퍼티는 degreeFrom 프로퍼티와 도치적 관계에 대한 추론결과를 획득해야 하나, DLDB 방식으로는 정답 집합을 획득하지 못하지만 하이퍼큐브 인덱스 구조를 활용하여 모든 정답 집합을 획득하는 것을 확인할 수 있다.
질의 번호 질의 질의 내용
1 (type ResearchGroup ?X)
(subOrganizationOf ?X
http://www.University0.edu)
타입이 ResearchGroup이며
http://www.University0.edu 와
subOrganizationOf 관계에 있는 기관에 대해 검색하시오
2 (type Chair ?X)
(type Department ?Y)
(worksFor ?X ?Y)
(subOrganizationOf ?Y
http://www.University0.edu)
http://www.University0.edu 와
subOrganizationOf 관계에 있는 부서와 그 부서에서 일하는(worksFor) Chair를 검색하시오.
3 (type Person ?X)
(hasAlumnus
http://www.University0.edu ?X)
http://www.University0.edu와 hasAlumnus 관계에 있는 사람을 검색하시오.
실시예 2. 질의 처리에 따른 응답 시간
본 실험에서는 인덱스를 이용한 질의응답 시간을 측정하기 위해 DLDB에서의 SQL을 수정하였다. DLDB는 완전성 100%의 질의를 제공하지 못하기 때문에 1, 2, 3번 질의에 대한 SQL을 변경하여 완전성 100%를 만족하게 한 후 응답시간을 측정하였다. 그렇게 하지 않을 경우 전체 결과를 제대로 획득하지 못하는 질의가 상대적으로 빠른 응답시간을 보여줄 수밖에 없기 때문이다. 따라서 DLDB에서 제공되는 SQL을 수정하였을 경우와 인덱스를 이용하였을 경우에 대해 각각 응답시간을 측정 하여 비교를 수행 하였다. 변경된 SQL은 1, 2번 질의와 같이 이행적 특성에 대한 추론을 수행해야 할 경우 셀프 조인을 통해 정답 집합을 획득 할 수 있게 하였으며, 3번 질의와 같이 inverseOf에 대한 추론을 수행해야 할 경우 도치적 관계에 대한 질의를 추가하여 유니온(Union) 연산을 수행하여 결과를 획득하였다. 그 결과를 하기 표 8 및 도 7에 정리하였다. 하기 표 8 및 도 7에서 볼 수 있는 바와 같이, 본 발명의 하이퍼 큐브를 이용한 추론 검색방법은 종래의 추론 검색방법에 비해 속도가 빠르고, 특히 검색 용량이 커질수록 그 효율의 증대가 지수함수적으로 증가하여 대용량의 추론 검색에 매우 효율적임을 알 수 있다.
질의 LUBM(1,0) LUBM(10,0) LUBM(20,0) LUBM(50,0)
DLDB 하이퍼큐브 DLDB 하이퍼큐브 DLDB 하이퍼큐브 DLDB 하이퍼큐브
1 2 3 18 5 33 7 92 13
2 47 110 2560 680 3560 1874 7803 4311
3 62 37 3766 379 5772 1007 29409 3523
앞에서 설명된 본 발명의 일실시예는 본 발명의 기술적 사상을 한정하는 것으로 해석되어서는 안 된다. 본 발명의 보호범위는 청구범위에 기재된 사항에 의하여만 제한되고, 본 발명의 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상을 다양한 형태로 개량 변경하는 것이 가능하다. 따라서 이러한 개량 및 변경은 통상의 지식을 가진 자에게 자명한 것인 한 본 발명의 보호범위에 속하게 될 것이다.

Claims (4)

  1. 대상(subject), 속성(predicate) 및 목적(object)형태로 이루어진 트리플(Triple) 구조의 온톨로지를 이용하며, 상기 온톨로지는 대상 또는 목적인 클래스, 속성 및 상기 클래스와 클래스 사이의 속성을 정의하는 티-박스(T-Box) 및 상기 티-박스에서 정의된 개념에 기반한 인스턴스로 정의되는 에이-박스(A-box)의 영역으로 나누어 저장되는 추론 검색 방법에 있어서,
    상기 티-박스의 추론검색은 상기 온톨로지를 적재한 컴퓨터 또는 상기 온톨로지를 이용할 수 있도록 네트워크를 통해 연결된 컴퓨터에서 수행되며,
    ⅰ)상기 n 개의 속성에 대해 n 개의 속성 식별자(identifier)를 부여하고 상기 각각의 식별자에 대응하는 n개의 비트로 구성된 n 개의 프로퍼티 벡터( property vector)를 생성하는 단계,;
    ⅱ)상기 클래스에 대해 m 개의 클래스 식별자를 부여하는 단계,;
    ⅲ) 상기 클래스와 속성간의 트리플 구조를 각각의 클래스에 대해 상기 프로퍼티 벡터로 구성된 m개의 비트 큐브로 표현하는 단계 및
    ⅳ)상기 인스턴스 검색이 요청되었을 때 상기 인스턴스 및 상기 인스턴스가 속한 클래스를 상기 비트 큐브에 저장된 프로퍼티 벡터를 조회하여 연관된 클래스와 속성을 획득하여 상기 에이-박스에서 연관된 결과를 추출하는 단계를 포함한 하이퍼 큐브를 사용한 추론 검색 방법.
  2. 제1항에 있어서,
    상기 트리플 구조는 이행적(transive), 대칭적(symmetric), 역(inverse), 함수적 및 역함수적 성질의 5가지 중 하나에 해당하는 것을 특징으로 하는 하이퍼 큐브를 사용한 추론 검색 방법.
  3. 제1항에 있어서,
    상기 에이-박스의 추론검색은 인스턴스에 대해 인스턴스들간에 존재하는 프로퍼티와 프로퍼티의 특성에 따른 트리플 구조의 추론 결과를 2차원 비트 매트릭스 형태의 비트로 표현하여 저장하고, 상기 인스턴스 검색이 요청되었을 때 프로퍼티의 특성에 따라 비트 매트릭스를 조회하여 상기 에이-박스에서 연관된 결과를 추출하는 단계를 포함한 하이퍼 큐브를 사용한 추론 검색 방법.
  4. 제3항에 있어서,
    상기 트리플 구조는 이행적, 대칭적, 도치적, 함수적, 역함수적 특성을 지닌 것을 특징으로 하는 하이퍼 큐브를 사용한 추론 검색 방법.
KR20120013861A 2012-02-10 2012-02-10 하이퍼 큐브를 사용한 추론 검색 방법 KR101318250B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20120013861A KR101318250B1 (ko) 2012-02-10 2012-02-10 하이퍼 큐브를 사용한 추론 검색 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20120013861A KR101318250B1 (ko) 2012-02-10 2012-02-10 하이퍼 큐브를 사용한 추론 검색 방법

Publications (2)

Publication Number Publication Date
KR20130092242A KR20130092242A (ko) 2013-08-20
KR101318250B1 true KR101318250B1 (ko) 2013-10-15

Family

ID=49217130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20120013861A KR101318250B1 (ko) 2012-02-10 2012-02-10 하이퍼 큐브를 사용한 추론 검색 방법

Country Status (1)

Country Link
KR (1) KR101318250B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105956085B (zh) * 2016-04-29 2019-08-27 优酷网络技术(北京)有限公司 一种倒排索引的构建方法和装置、检索方法和装置
CN110826145B (zh) * 2019-09-09 2020-08-28 西安工业大学 基于超启发式马氏链进化的汽车多参数运行工况设计方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100003087A (ko) * 2008-06-30 2010-01-07 주식회사 케이티 온톨로지 프로퍼티를 이용한 온톨로지 인스턴스 추출시스템 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100003087A (ko) * 2008-06-30 2010-01-07 주식회사 케이티 온톨로지 프로퍼티를 이용한 온톨로지 인스턴스 추출시스템 및 그 방법

Also Published As

Publication number Publication date
KR20130092242A (ko) 2013-08-20

Similar Documents

Publication Publication Date Title
Faye et al. A survey of RDF storage approaches
Wood et al. Kowari: A platform for semantic web storage and analysis
Das et al. A Tale of Two Graphs: Property Graphs as RDF in Oracle.
Pan et al. Ontosearch2: Searching and querying web ontologies
Kellou-Menouer et al. A survey on semantic schema discovery
JP2015099586A (ja) データ集約のためのシステム、装置、プログラム、及び方法
Hertel et al. RDF storage and retrieval systems
Pan et al. A survey of RDF management technologies and benchmark datasets
Ait-Ameur et al. Ontologies in engineering: the OntoDB/OntoQL platform
Khouri et al. A methodology and tool for conceptual designing a data warehouse from ontology-based sources
Bergamaschi et al. Keyword search over relational databases: Issues, approaches and open challenges
El Idrissi et al. RDF/OWL storage and management in relational database management systems: A comparative study
Stefanidis et al. A context‐aware preference database system
Santana et al. An analysis of mapping strategies for storing rdf data into nosql databases
Yan et al. RDF approximate queries based on semantic similarity
Ma et al. Modeling and querying temporal RDF knowledge graphs with relational databases
Benítez‐Hidalgo et al. NORA: Scalable OWL reasoner based on NoSQL databases and Apache Spark
KR101318250B1 (ko) 하이퍼 큐브를 사용한 추론 검색 방법
Li et al. Research on storage method for fuzzy RDF graph based on Neo4j
Abbas et al. Selectivity estimation for SPARQL triple patterns with shape expressions
Hauswirth et al. Linked data management
Kim et al. A semantics-aware storage framework for scalable processing of knowledge graphs on Hadoop
Zhang et al. Storing fuzzy description logic ontology knowledge bases in fuzzy relational databases
Litvinov et al. Paradigm of controls concept for global information systems
Zou et al. Achieving effective and efficient attributed graph data management using lucene

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161007

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170905

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180905

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190826

Year of fee payment: 7