KR101275829B1 - 비 네이티브 온톨로지 저장소에서의 owl 수준의 질의언어 처리장치 및 방법 - Google Patents

비 네이티브 온톨로지 저장소에서의 owl 수준의 질의언어 처리장치 및 방법 Download PDF

Info

Publication number
KR101275829B1
KR101275829B1 KR1020110137334A KR20110137334A KR101275829B1 KR 101275829 B1 KR101275829 B1 KR 101275829B1 KR 1020110137334 A KR1020110137334 A KR 1020110137334A KR 20110137334 A KR20110137334 A KR 20110137334A KR 101275829 B1 KR101275829 B1 KR 101275829B1
Authority
KR
South Korea
Prior art keywords
query
atom
processing
atoms
owl
Prior art date
Application number
KR1020110137334A
Other languages
English (en)
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 KR1020110137334A priority Critical patent/KR101275829B1/ko
Application granted granted Critical
Publication of KR101275829B1 publication Critical patent/KR101275829B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24524Access plan code generation and invalidation; Reuse of access plans

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리장치 및 방법이 개시된다. 스케줄링부는 시맨틱 웹 애플리케이션을 통해 입력받은 OWL 수준의 질의언어에 포함된 기본 실행 단위인 아톰(atom)의 실행순서 및 반복횟수를 결정한다. 질의처리부는 실행순서 및 반복횟수에 따라 스케줄링부로부터 전송되는 아톰을 ABox 아톰 및 TBox/RBox 아톰으로 구분하여 각각 처리한 결과데이터를 도출한다. 결과전송부는 결과데이터를 시맨틱 웹 애플리케이션으로 전송한다. 본 발명에 따르면, 관계형 데이터베이스와 같은 다양한 포맷의 데이터 소스를 포장하여 OWL 온톨로지처럼 동작하도록 하는 시스템과 같이 OWL 온톨로지가 물리적으로 존재하지 않고, 논리적 설정에 의해 가상으로 존재하는 경우에도 SPARQL-DL 질의를 처리할 수 있다.

Description

비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리장치 및 방법{Apparatus and method for processing OWL-level query language in the non-native ontology storage}
본 발명은 비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리장치 및 방법에 관한 것으로, 보다 상세하게는, OWL 온톨로지(Ontology)로 사용되는 것을 목적으로 하지 않고 구축된 기존의 일반적인 데이터 저장소에서 OWL 수준의 질의언어를 처리하기 위한 OWL 수준의 질의언어 처리장치 및 방법에 관한 것이다.
시맨틱 웹(semantic web)을 위한 온톨로지는 RDF(Resource Description Framework) 온톨로지와 OWL(Ontology Web Language) 온톨로지로 분류할 수 있다. OWL 온톨로지는 RDF 온톨로지에 비해 높은 수준의 시맨틱 서비스가 가능하다.
현재 SPARQL은 RDF 온톨로지를 위한 표준 질의 언어이다. 또한 OWL 온톨로지에 대한 표준 질의 언어는 아직 연구 단계에 있으나, SPARQL을 확장할 것으로 예상된다.
이러한 연구 방향의 흐름에 따라 개발된 SPARQL-DL은 OWL 온톨로지를 대상으로 논리 기반의 질의를 가능하게 함과 동시에, RDF를 위한 질의 언어인 SPARQL과의 신텍스(syntax) 변환이 용이하도록 설계된 질의 언어이다.
한편, SPARQL-DL 질의를 처리하는 엔진은 온톨로지 전용 저장소에서 동작하는 방식만 개발되고 있었다. 구체적으로 종래의 SPARQL-DL 질의 처리 방식은 OWL 온톨로지가 RDF 온톨로지 저장소에 실제로 저장되어 서비스되기 때문에(물리적으로 존재하기 때문에), 먼저 SPARQL-DL 질의문에서 요구하는 RDF 트리플 트리를 구성한다.
그 후, 저장소에 저장된 OWL 온톨로지를 RDF로 해석하여 질의문에서 구성한 RDF 트리플 트리와 패턴이 일치하는 부분을 결과로 반환하는 방식이다.
그러나 RDF 온톨로지 저장소가 아닌 저장소(예를 들면, 관계형 데이터베이스)에 저장되어 있는 OWL 온톨로지는 패턴 매칭을 수행할 트리플 트리가 물리적으로 존재하는 것이 아니기 때문에 특별한 처리가 요구된다.
한편, 최근에는 데이터베이스와 같이 온톨로지 전용 저장소가 아닌 데이터 저장소를 포장하여 온톨로지처럼 보이게 하여 서비스하는 방식이 연구되고 있다. 따라서 기존 SPARQL-DL 질의 엔진을 이러한 방식의 온톨로지에서 사용할 수 있기 위해서는 특별한 처리가 요구된다.
한국 공개특허 제2009-0044463호에는 최적화 변환 규칙을 적용하여 RDQL 질의를 SQL 질의로 변환하는 RDQL-TO-SQL 시스템 및 방법이 개시되어 있다. 개시된 방법에 따르면 RDQL 질의의 트리플 패턴을 이용하여 RDF 그래프를 결정하고, RDF 그래프에 최적화 변환 규칙을 적용함으로써 RDQL 질의에 대응하는 SQL 질의를 생성한다. 그러나 개시된 방법은 다양한 포맷의 데이터 소스를 OWL 온톨로지처럼 동작하도록 하는 시스템에는 적용될 수 없다.
본 발명이 이루고자 하는 기술적 과제는, 데이터베이스와 같은 온톨로지 전용 저장소가 아닌 다양한 포맷의 데이터 소스를 포장하여 온톨로지처럼 동작하는 경우에도 OWL 수준의 질의를 처리할 수 있게 해주는 비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리장치 및 방법을 제공함에 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 데이터베이스와 같은 온톨로지 전용 저장소가 아닌 다양한 포맷의 데이터 소스를 포장하여 온톨로지처럼 동작하는 경우에도 OWL 수준의 질의를 처리할 수 있게 해주는 비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공함에 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리장치는, 시맨틱 웹 애플리케이션을 통해 입력받은 OWL 수준의 질의언어에 포함된 기본 실행 단위인 아톰(atom)의 실행순서 및 반복횟수를 결정하는 스케줄링부; 상기 실행순서 및 반복횟수에 따라 상기 스케줄링부로부터 전송되는 아톰을 ABox 아톰 및 TBox/RBox 아톰으로 구분하여 각각 처리한 결과데이터를 도출하는 질의처리부; 및 상기 결과데이터를 상기 시맨틱 웹 애플리케이션으로 전송하는 결과전송부;를 구비한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리방법은, 시맨틱 웹 애플리케이션을 통해 입력받은 OWL 수준의 질의언어에 포함된 기본 실행 단위인 아톰(atom)의 실행순서 및 반복횟수를 결정하는 스케줄링단계; 상기 실행순서 및 반복횟수에 따라 상기 스케줄링단계에서 전송되는 아톰을 ABox 아톰 및 TBox/RBox 아톰으로 구분하여 각각 처리한 결과데이터를 도출하는 질의처리단계; 및 상기 결과데이터를 상기 시맨틱 웹 애플리케이션으로 전송하는 결과전송단계;를 갖는다.
본 발명에 따른 비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리장치 및 방법에 의하면, 관계형 데이터베이스와 같은 다양한 포맷의 데이터 소스를 포장하여 OWL 온톨로지처럼 동작하도록 하는 시스템과 같이 OWL 온톨로지가 물리적으로 존재하지 않고, 논리적 설정에 의해 가상으로 존재하는 경우에도 OWL 수준의 질의를 처리할 수 있다.
도 1은 SPARQL-DL 질의문의 최소 단위인 아톰(Atom)의 목록을 나타낸 도면,
도 2는 아톰 내에 존재하는 매개 변수 간의 관계를 나타낸 도면,
도 3은 본 발명에 따른 비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리장치가 포함된 전체 시스템의 구성을 도시한 도면,
도 4는 스케줄링부에 의해 질의문의 아톰들이 제1 실행 대기 큐 및 제2 실행 대기 큐로 삽입되는 과정을 의사코드(pseudocode)로 나타낸 도면,
도 5는 스케줄링부가 아톰들을 순차적으로 질의처리부에 전송하여 실행시키는 과정을 나타낸 의사코드,
도 6은 2 이상의 변수가 포함되어 동기화가 필요한 아톰들을 포함하는 질의문을 나타낸 도면,
도 7은 도 6의 질의문으로부터 생성된 제1 실행 대기 큐, 제2 실행 대기 큐 및 변수 상태 리스트의 구성을 나타낸 도면,
도 8은 도 7의 제2 실행 대기 큐로부터 생성된 트리 형태의 그래프를 나타낸 도면,
도 9는 도 7의 제2 실행 대기 큐에서 (r,w) 아톰을 시작점으로 하는 너비 우선 탐색 경로를 나타낸 도면,
도 10은 스케줄링부에 의한 동기화 과정의 수행 순서를 나타내는 의사코드,
도 11은 질의처리부의 구체적인 구성을 도시한 블록도,
도 12는 제2질의처리부의 구체적인 구성을 도시한 블록도, 그리고,
도 13은 본 발명에 따른 비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
이하에서 첨부된 도면들을 참조하여 본 발명에 따른 비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.
본 발명에 따른 OWL 수준의 질의언어 처리장치는 다양한 OWL 수준의 질의언어를 처리할 수 있으나, 이하에서는 OWL 수준의 질의언어 중에서 SPARQL-DL 질의언어를 대표적인 실시예로 하여 예를 들어 상세히 설명한다.
도 1은 SPARQL-DL 질의문의 최소 단위인 아톰(Atom)의 목록을 나타낸 도면이다.
SPARQL-DL은 OWL 온톨로지를 대상으로 논리 기반의 질의를 가능하게 함과 동시에 RDF를 위한 질의 언어인 SPARQL과의 신텍스(syntax) 변환이 용이하도록 설계된 질의 언어이다. 또한 SPARQL-DL은 결합(conjunctive) 언어로 SPARQL-DL 질의문은 아톰을 접속하여 사용함으로써 구성된다.
예를 들면, Type(?x, Student), Type(?x, ?C), SubClassOf(?C, Employee)의 질의문은 학생이면서 동시에 직원인 학생들 x와 그 조건을 만족하는 학생들의 직책 목록 C를 구하라는 의미이다.
도 2는 앞에서 예로 든 Type(?x, Student), Type(?x, ?C), SubClassOf(?C, Employee) 질의문의 아톰 내에 존재하는 매개 변수 간의 관계를 나타낸 도면이다.
단일 아톰 내에 존재하는 변수의 결과 셋(set)은 동일 아톰 내의 타 매개 변수와 아톰의 의미에 해당하는 함수적 관계가 존재하는 원소들로 구성된다. 복수의 아톰에 동일 변수가 출현하면 그 변수는 각각의 아톰에서 얻어진 결과 셋들의 교집합 원소에 해당하는 데이터를 갖게 된다. 변수가 출현하지 않는 아톰의 처리 결과는 참(True) 혹은 거짓(False)이다.
도 3은 본 발명에 따른 비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리장치가 포함된 전체 시스템의 구성을 도시한 도면이다.
도 3을 참조하면, 전체 시스템은 본 발명에 따른 질의언어 처리장치(100), 네이티브 추론기(200) 및 데이터베이스(300)로 구성된다. 또한 질의언어 처리장치(100)는 스케줄링부(110), 질의처리부(120) 및 결과전송부(130)로 구성된다.
스케줄링부(110)는 시맨틱 웹 애플리케이션을 통해 입력받은 OWL 수준의 질의언어에 포함된 기본 실행 단위인 아톰(atom)의 실행순서 및 반복횟수를 결정한다. 이후 스케줄링부(110)는 결정된 실행순서 및 반복횟수에 따라 입력받은 질의언어에 포함된 아톰들을 순차적으로 질의처리부(120)에 전송하여 처리하도록 한다.
구체적으로, 스케줄링부(110)는 입력받은 OWL 수준의 질의언어에 대하여 1개 이하의 변수를 포함하는 아톰들이 순차적으로 삽입되는 제1 실행 대기 큐 및 2개 이상의 변수를 포함하는 아톰들이 순차적으로 삽입되는 제2 실행 대기 큐를 생성한다.
도 4는 스케줄링부(110)에 의해 질의문의 아톰들이 제1 실행 대기 큐 및 제2 실행 대기 큐로 삽입되는 과정을 의사코드(pseudocode)로 나타낸 도면이다. 도 4에서 lt2 실행 대기 큐는 제1 실행 대기 큐를 의미하며, gt1 실행 대기 큐는 제2 실행 대기 큐를 의미한다.
도 4의 'adj_list' 는 제2 실행 대기 큐의 아톰들의 처리 순서를 결정하기 위해 만들어지는 트리 형태의 자료구조이며, '변수 상태 리스트'는 아톰이 처리됨으로써 변수의 값이 갱신되는 상태를 표시하기 위해 만들어지는 자료구조이다. 변수 상태 리스트에 포함된 모든 변수의 상태값은 제2 실행 대기 큐에 속하는 아톰들에 대한 처리가 개시될 때마다 'old'로 초기화된 후 아톰이 처리되어 변수의 값이 결정됨에 따라 상태값이 'new'로 갱신된다.
다음으로 스케줄링부(110)는 제1 실행 대기 큐에 삽입된 아톰들을 삽입된 순서대로 인출하여 질의처리부(120)에 전송한 후, 제2 실행 대기 큐에 삽입된 아톰들을 순차적으로 질의처리부(120)에 전송한다.
도 5는 스케줄링부(110)가 아톰들을 순차적으로 질의처리부(120)에 전송하여 실행시키는 과정을 나타낸 의사코드이다. 도 5를 참조하면, 제1 실행 대기 큐에 삽입된 아톰들은 질의처리부(120)에 의해 순차적으로 인출되어 처리됨으로써 처리가 완료되는 반면, 제2 실행 대기 큐에 삽입된 아톰들은 2개 이상의 변수를 포함하고 있어 다른 아톰이 처리됨에 따라 이전에 처리되었던 아톰에 포함된 변수의 값이 변동될 가능성이 있으므로 이를 고려한 처리과정을 필요로 한다.
구체적으로, 스케줄링부(110)는 제2 실행 대기 큐에 삽입된 아톰들 중 제1아톰을 질의처리부(120)로 전송하여 처리하도록 한 후, 질의처리부(120)에 의해 이미 처리된 제2 실행 대기 큐의 아톰인 제2아톰을 질의처리부(120)에 전송한다. 이하에서는 이러한 과정을 '동기화'로 정의하며, 도 5의 'synchronize_var()' 함수가 스케줄링부(110)에 의한 동기화 과정을 나타내는 함수에 해당한다. 즉, 동기화 함수인 'synchronize_var()' 함수를 호출하는 주체는 현재 처리 대상인 제1아톰이며, 'synchronize_var()' 함수에 의해 처리되는 동기화의 대상은 제2아톰이다.
도 6은 2 이상의 변수가 포함되어 동기화가 필요한 아톰들을 포함하는 질의문을 나타낸 도면이다.
도 6을 참조하면, PropertyValue(?r, subOrganizationOf, ?w)가 실행된 후 PropertyValue(?x, memberOf, ?r)이 실행되면 변수 r의 결과값은 변수 x에 의해 변경될 수 있으며, 그에 따라 변수 r과 관련된 변수 w의 결과값 역시 변경될 가능성이 있다.
따라서 스케줄링부(110)는 변수 w의 결과값을 변경된 변수 r의 결과값과 동기화시키기 위해 질의처리부(120)가 PropertyValue(?r, subOrganizationOf, ?w)를 다시 처리하도록 할 필요가 있다. 이를 위해 스케줄링부(110)는 제1아톰인 PropertyValue(?x, memberOf, ?r)을 처리하는 과정에서 도 5에 나타난 바와 같이 'synchronize_var()' 함수를 호출함으로써 제1아톰과 중복되는 변수를 포함하는 제2아톰인 PropertyValue(?r, subOrganizationOf, ?w)가 다시 처리되도록 한다.
구체적으로, 스케줄링부(110)는 동기화를 위해 트리 구조의 'adj_list'로부터 제1아톰, 즉 'cur_atom'을 시작점으로 하는 너비 우선 탐색 경로인 'bfs_path_q'를 생성한다. 이후 스케줄링부(110)는 'bfs_path_q'에 포함된 아톰들 중 질의처리부(120)에 의해 이미 처리된 적이 있는 아톰들인 제2아톰을 순차적으로 실행하면서 동기화 과정을 수행하게 된다.
도 7은 도 6의 질의문으로부터 생성된 제1 실행 대기 큐, 제2 실행 대기 큐 및 변수 상태 리스트의 구성을 나타낸 도면이고, 도 8은 도 7의 제2 실행 대기 큐로부터 생성된 트리 형태의 그래프를 나타낸 도면이다.
먼저 도 7을 참조하면, 도 7의 (a)는 하나의 변수 w를 포함하는 아톰이 삽입된 제1 실행 대기 큐를 나타내며, 도 7의 (b)는 두 개의 변수를 포함하는 아톰들이 삽입된 제2 실행 대기 큐를 나타낸다. 또한 도 7의 (c)는 변수 상태 리스트를 나타낸 것으로서, 제2 실행 대기 큐에 포함된 모든 아톰들의 변수가 포함되며, 각각의 변수의 상태값이 'old'로 초기화되어 있다.
도 8의 (a)는 도 7의 (b)와 같은 제2 실행 대기 큐에 삽입된 아톰들이 (r,w), (x,r), (x,b), (x,d), (x,z), (q,x), (q,a), (a,p), (a,r) 및 (a,z)의 정점으로 표현된 트리 구조로서, 각각의 정점들은 중복되는 변수 x, r, z, p 및 q를 가지는 경우에 서로 인접하도록 배열된다. 도 8의 (b)는 (a)와 같은 트리 형태를 표현하는 자료구조인 'adj_list'이다.
스케줄링부는 도 8의 (b)와 같은 'adj_list'로부터 현재 처리 대상인 제1아톰을 시작점으로 하는 너비 우선 탐색 경로인 'bfs_path_q'를 생성하여 동기화 과정을 수행한다. 도 9는 도 7의 제2 실행 대기 큐에서 (r,w) 아톰을 시작점으로 하는 너비 우선 탐색 경로를 나타낸 도면이다.
도 10은 스케줄링부(110)에 의한 동기화 과정의 수행 순서를 나타내는 의사코드이다. 도 10을 참조하면, 스케줄링부(110)는 제1아톰(cur_atom)에 대응하여 생성된 'bfs_path_q'의 아톰들을 순차적으로 'visited_atom' 변수에 할당하여 동기화 여부를 결정하며, 현재 'visited_atom' 변수에 할당된 아톰이 제2 실행 대기 큐(gt1 실행 대기 큐)에 존재하지 않으면 해당 아톰이 이미 질의처리부(120)에 의해 처리된 것으로 판단하여 동기화 대상인 제2아톰으로 결정한다.
예를 들면, 도 7의 (b)에서 (r,w) 아톰은 질의처리부(120)에 의해 가장 먼저 처리되는 아톰이므로 먼저 처리된 아톰이 존재하지 않는다. 따라서 도 9와 같이 (r,w) 아톰에 대응하여 생성된 'bfs_path_q'에서 (r,w) 아톰은 현재 처리 대상인 제1아톰이고, 다른 아톰들은 아직 질의처리부(120)에 의해 처리되지 않아 제2 실행 대기 큐에 남아 있으므로 동기화 대상이 되지 않는다.
만약 현재 처리 대상인 제1아톰이 (x,z) 아톰이라면, (x,z) 아톰을 시작점으로 하는 'bfs_path_q'에서 제1아톰인 (x,z) 아톰보다 먼저 처리된 (r,w), (x,r) 및 (a,r) 아톰이 동기화 대상인 제2아톰으로 결정된다.
현재의 'visited_atom'이 동기화 대상, 즉 제2아톰으로 결정되면, 스케줄링부(110)는 제2아톰에 포함된 변수들의 상태값을 기초로 이후의 구체적인 동기화 과정을 결정한다. 도 4에 나타난 바와 같이 스케줄링부(110)는 제1아톰에 대한 동기화 과정을 수행하기 전 변수 상태 리스트를 만들어 제2 실행 대기 큐(gt1 실행 대기 큐)에 포함된 모든 변수들의 상태값을 'old'로 초기화하며, 이후 동기화 과정에 의해 제2아톰들이 처리될 때마다 해당하는 변수들의 상태값을 'new'로 갱신한다.
만약 제2아톰에 포함된 모든 변수들의 상태값이 'new'가 아니면, 즉 제2아톰에 포함된 변수들 중 적어도 하나의 변수가 'old' 상태로 남아 있으면 스케줄링부(110)는 제2아톰을 질의처리부(120)로 전송하여 처리하도록 한 후 제2아톰에 포함된 모든 변수들의 상태값을 'new'로 갱신한다.
한편, 제2아톰에 포함된 모든 변수들의 상태값이 'new'로 갱신되어 있는 경우, 질의처리부(120)가 제2아톰을 처리하는 과정에서 이미 'new'로 갱신된 제2아톰의 변수들의 값이 바뀔 수 있다. 예를 들면, 도 8에서 제1아톰이 (a,z) 아톰인 경우, 동기화 대상인 제2아톰은 (r,w), (x,r), (a,r) 및 (x,z) 아톰이며, 그 처리순서는 (a,r), (x,z), (x,r) 및 (r,w)이다. 따라서 (x,r) 아톰의 처리 순서에서 (a,r)과 (x,z) 아톰이 이미 질의처리부(120)에 의해 처리되었으므로, 변수 상태 리스트에서 x와 r의 상태값은 'new'로 갱신되어 있는 상태이다. 그러나 (x,r) 아톰이 질의처리부(120)에 의해 다시 처리됨으로써 x 및 r 변수에 관련된 다른 변수들의 결과값이 변경될 수 있다.
이러한 경우를 처리하기 위해 스케줄링부(110)는 (x,r) 아톰과 같이 이미 변수들의 상태값이 모두 'new'로 갱신되어 있는 아톰을 처리하는 경우에는 해당 아톰을 중심으로 하는 동기화 과정을 다시 한 번 수행한다.
즉, 스케줄링부(110)는 'adj_list'로부터 제2아톰을 시작점으로 하는 너비 우선 탐색 경로인 'bfs_path_q' 및 제2아톰에 포함된 변수를 제외한 모든 변수들의 상태값이 'old'로 초기화된 변수 상태 리스트를 다시 생성하여 제2아톰에 대한 동기화 과정을 수행한다. 즉, 제2아톰을 입력으로 하는 'synchronize_var()' 함수를 호출함으로써 제1아톰에 대한 동기화 과정 내부에서 다시 제2아톰을 중심으로 하는 동기화 과정을 수행하게 되는 것이다.
또한 제2아톰에 대한 동기화 과정을 수행하는 도중, 즉 제2아톰을 시작점으로 하는 'bfs_path_q'에서 동기화 대상이 되는 아톰인 제3아톰을 처리하는 도중 제3아톰에 포함된 모든 변수들의 상태값이 이미 'new'로 갱신되어 있다면 제3아톰을 입력으로 하는 'synchronize_var()' 함수를 호출하게 된다.
이상에서 설명한 것과 같이 두 개 이상의 변수가 포함된 아톰들을 순차적으로 처리하는 과정에서 동기화 함수를 재귀적으로 호출함으로써 모든 변수의 값을 지속적으로 동기화시킬 수 있다. 현재의 제1아톰에 대하여 이상의 동기화 과정을 모두 완료한 후, 스케줄링부(110)는 제2 실행 대기 큐에서 다음 순서의 아톰을 새로운 제1아톰으로 하고, 제1아톰에 대응하는 변수 상태 리스트의 모든 상태값을 'old'로 초기화하여 다시 제1아톰의 처리 및 동기화 과정을 수행하게 된다.
질의처리부(120)는 스케줄링부(110)가 이상에서 설명한 바와 같이 아톰들의 실행순서 및 반복횟수를 결정하여 순차적으로 전송하면, 전송받은 아톰을 ABox 아톰 및 TBox/RBox 아톰으로 구분하여 각각 처리한 결과데이터를 도출한다.
마지막으로 결과전송부(130)는 결과데이터를 시맨틱 웹 애플리케이션으로 전송한다.
네이티브 추론기(200)는 질의처리부(120)의 요청에 따라 사전에 구축된 데이터베이스(300)로부터 생성된 OWL TBox/RBox 온톨로지를 추론하여 TBox/RBox 아톰을 처리한다. 즉, 네이티브 추론기(200)는 기존의 Tableaux 알고리즘 기반의 추론기이다.
이때 데이터베이스(300)로는 온톨로지 전용 저장소뿐만 아니라, 관계형 데이터베이스와 같은 온톨로지 전용 저장소가 아닌 기존의 다양한 저장소가 가능하다. 이하에서는 데이터베이스(300)가 관계형 데이터베이스인 경우를 본 발명의 대표적인 실시예로 하여 설명한다.
다음으로 스케줄링부(110)로부터 순차적으로 처리될 아톰을 전송받아 처리하는 질의처리부(120)의 동작을 상세하게 설명한다.
도 11은 질의처리부(120)의 구체적인 구성을 도시한 블록도이다.
도 11을 참조하면, 질의처리부(120)는 질의분석부(122), 제1질의처리부(124) 및 제2질의처리부(126)를 구비한다.
질의분석부(122)는 실행되는 아톰이 TBox/RBox 아톰 또는 ABox 아톰인지 여부를 구분하여 TBox/RBox 아톰은 제1질의처리부(124)로 전송하고, ABox 아톰은 제2질의처리부(126)로 전송한다. 이때 시맨틱 웹 애플리케이션으로부터 입력받은 질의언어에는 TBox/RBox 아톰만 포함되거나 ABox 아톰만 포함될 수 있으며, TBox/RBox 아톰과 ABox 아톰이 모두 포함될 수도 있다. 만약 입력받은 질의언어에 TBox/RBox 아톰만 포함된다면 모든 아톰은 제1질의처리부(124)로 전송되며, ABox 아톰만 포함된다면 모든 아톰은 제2질의처리부(126)로 전송된다.
제1질의처리부(124)는 사전에 구축된 데이터베이스(300)로부터 생성된 OWL TBox/RBox 온톨로지를 추론하여 TBox/RBox 아톰을 처리하는 네이티브 추론기(200)에 스케줄링부(110)로부터 전송받은 TBox/RBox 아톰의 처리를 요청하고, 네이티브 추론기(200)가 처리한 처리결과를 기초로 제1결과데이터를 도출한다.
구체적으로, 제1질의처리부(124)는 네이티브 추론기(200)로부터 복수의 TBox/RBox 아톰에 대응하는 처리결과가 입력되면 각각의 처리결과의 중복되는 부분을 병합하여 제1결과데이터를 생성한다.
한편, 제2질의처리부(126)는 ABox 아톰을 직접 처리하며, 구체적으로 스케줄링부(110)로부터 전송받은 ABox 아톰에 대한 결과데이터를 도출하기 위한 질의를 생성하여 데이터베이스(300)로부터 제2결과데이터를 도출한다. 이때 ABox 아톰을 처리하기 위해 TBox/RBox 아톰의 처리결과가 사용될 수 있다. 만약 입력받은 질의언어에 TBox/RBox 아톰이 포함되어 있지 않다면 제2질의처리부(126)는 ABox 아톰의 처리에 필요한 데이터를 획득하기 위해 새로운 TBox/RBox 질의를 생성하여 네이티브 추론기(200)에 처리를 요청하고, 그 처리결과를 사용하여 ABox 아톰을 처리할 수 있다.
스케줄링부(110)로부터 전송되는 모든 아톰에 대한 처리가 완료되면, 결과전송부(130)는 제1결과데이터 및 제2결과데이터를 시맨틱 웹 애플리케이션으로 전송한다. 앞에서 설명한 바와 같이 입력받은 질의언어에 항상 TBox/RBox 아톰과 ABox 아톰이 모두 포함된 것은 아니므로, 시맨틱 웹 애플리케이션으로 전송되는 결과데이터에는 제1결과데이터만 포함되거나 제2결과데이터만 포함될 수도 있다.
도 12는 제2질의처리부(126)의 구체적인 구성을 도시한 블록도이다.
도 12를 참조하면, 제2질의처리부(126)는 질의어 생성부(126-1), 질의어 수정부(126-2) 및 결과생성부(126-3)로 구성된다.
질의어 생성부(126-1)는 ABox 아톰에 포함된 변수를 처리하는 데 사용하기 위하여 데이터베이스(300)에 대응하는 질의어를 생성한다. 이때 데이터베이스(300)가 관계형 데이터베이스 형태이면, 데이터베이스(300)에 저장되어 있는 OWL ABox 요소를 얻기 위한 SQL 포맷의 질의를 생성한다.
ABox 아톰의 경우 물리적으로 ABox 요소가 존재하지 않기 때문에, 데이터베이스(300)에 저장되어 있는 ABox 요소를 얻기 위해서는 SQL을 생성해야 한다. 질의어 생성부(126-1)는 사전에 설정되어 있는 SQL 포맷의 질의어와 OWL 수준의 질의어 사이에서 매핑되는 요소를 찾는 연산을 수행하여 SQL 포맷의 질의를 생성한다.
제1질의처리부(124)에서 네이티브 추론기(200)에 의한 TBox/Rbox 아톰의 처리결과를 병합하여 제1결과데이터를 생성하였던 것과 마찬가지로, 질의어 수정부(126-2)는 복수의 ABox 아톰에 대하여 각각 생성된 SQL 포맷의 질의에서 중복되는 부분을 병합하여 최종 SQL 질의를 생성한다.
ABox 아톰에 포함된 모든 변수에 대한 SQL이 생성되면, 결과생성부(126-3)는 최종 SQL 질의를 사용하여 데이터베이스(300)로부터 도출된 데이터를 OWL ABox 요소 형태로 가공함으로써 제2결과데이터를 생성한다.
결과전송부(130)는 제1질의처리부(124)에 의해 얻어진 제1결과데이터 및 제2질의처리부(126)에 의해 얻어진 제2결과데이터를 시맨틱 웹 애플리케이션으로 전달함으로써 입력된 질의문에 대한 처리 과정을 완료하게 된다.
이상에서 설명한 바와 같이 본 발명에서는 입력받은 OWL 수준의 질의언어에 포함된 각각의 아톰의 실행순서 및 재실행 여부를 결정하여 순차적으로 처리함으로써, 관계형 데이터베이스와 같은 다양한 포맷의 데이터베이스를 포장하여 OWL 온톨로지처럼 동작하도록 하는 시스템과 같이 OWL 온톨로지가 물리적으로 존재하지 않고 논리적 설정에 의해 가상으로 존재하는 경우에도 OWL 수준의 질의를 처리할 수 있게 된다.
도 13은 본 발명에 따른 비 네이티브 온톨로지 저장소에서의 OWL 수준의 질의언어 처리방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
도 13을 참조하면, 스케줄링부(110)는 시맨틱 웹 애플리케이션을 통해 OWL 수준의 질의언어를 입력받고(S1010), 입력받은 OWL 수준의 질의에 포함된 각각의 아톰에 포함된 변수의 개수를 판단한다(S1015).
다음으로 스케줄링부(110)는 1개 이하의 변수를 포함하는 아톰을 제1 실행 대기 큐로 삽입하고(S1030), 2개 이상의 변수를 포함하는 아톰을 제2 실행 대기 큐로 삽입한다(S1020).
한편, 제2 실행 대기 큐에 삽입된 아톰들의 동기화를 위하여, 스케줄링부(110)는 제2 실행 대기 큐로 삽입된 각각의 아톰을 정점으로 하며 중복되는 변수가 존재하는 아톰끼리 서로 인접하도록 아톰을 배열시킨 그래프를 생성한다(S1025).
다음으로 스케줄링부(110)는 질의문에 포함된 복수의 아톰이 모두 제1 실행 대기 큐 및 제2 실행 대기 큐로 분류되었는지 여부를 판단한다. 즉, 모든 아톰이 변수의 개수에 따라 분류된 후 스케줄링부(110)는 각각의 아톰의 실행순서를 결정하여 순차적으로 질의처리부(120)로 전송함으로써 각각의 아톰에 대한 질의처리가 개시된다.
질의처리부(120)는 먼저 제1 실행 대기 큐에 삽입된 아톰이 남아 있는 동안(S1060) 제1 실행 대기 큐에 삽입된 아톰을 삽입된 순서에 따라 스케줄링부(110)로부터 전송받아 순차적으로 처리한다(S1055). 그 후, 질의처리부(120)는 제2 실행 대기 큐에 삽입된 아톰이 남아 있는 동안(S1035) 제2 실행 대기 큐에 삽입된 아톰을 스케줄링부(110)로부터 전송받아 순차적으로 처리한다(S1040). 이때 스케줄링부(110)는 제2 실행 대기 큐에 삽입된 아톰들이 순차적으로 처리되는 과정에서 중복된 변수를 가지는 아톰들을 질의처리부(120)로 재전송하는 동기화 과정을 수행하며, 동기화 과정의 구체적인 수행 방법에 관하여는 앞에서 설명한 바 있으므로 상세한 설명을 생략한다.
질의처리부(120)는 스케줄링부(110)로부터 순차적으로 전송되는 아톰들을 TBox/Rbox 아톰과 ABox 아톰으로 구분하여 그에 따라 서로 다른 방식에 의해 처리하고, ABox 아톰에 대하여는 데이터베이스(300) 내지 저장소에 대응하는 고유의 질의어를 생성한다(S1060). 생성된 질의어를 사용하여 얻어진 결과 데이터는 시맨틱 웹 애플리케이션으로 전송되기 위한 형식으로 변환되고(S1065), 결과전송부(130)는 TBox/RBox 아톰과 ABox 아톰의 처리에 의해 생성된 결과데이터를 시맨틱 웹 애플리케이션으로 전송한다(S1070).
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.

Claims (19)

  1. 시맨틱 웹 애플리케이션을 통해 입력받은 OWL 수준의 질의언어에 포함된 기본 실행 단위인 아톰(atom)의 실행순서 및 반복횟수를 결정하는 스케줄링부;
    상기 실행순서 및 반복횟수에 따라 상기 스케줄링부로부터 전송되는 아톰을 ABox 아톰 및 TBox/RBox 아톰으로 구분하여 각각 처리한 결과데이터를 도출하는 질의처리부; 및
    상기 결과데이터를 상기 시맨틱 웹 애플리케이션으로 전송하는 결과전송부;를 포함하는 것을 특징으로 하는 OWL 수준의 질의언어 처리장치.
  2. 제 1항에 있어서,
    상기 스케줄링부는 상기 입력받은 OWL 수준의 질의언어에 대하여 1개 이하의 변수를 포함하는 아톰들이 순차적으로 삽입되는 제1 실행 대기 큐 및 2개 이상의 변수를 포함하는 아톰들이 순차적으로 삽입되는 제2 실행 대기 큐를 생성하고, 상기 제1 실행 대기 큐에 삽입된 아톰들을 삽입된 순서대로 인출하여 상기 질의처리부에 전송한 후, 상기 제2 실행 대기 큐에 삽입된 아톰들을 순차적으로 인출하여 상기 질의처리부에 전송하는 것을 특징으로 하는 OWL 수준의 질의언어 처리장치.
  3. 제 2항에 있어서,
    상기 스케줄링부는 상기 제2 실행 대기 큐에 삽입된 아톰들 중 제1아톰을 상기 질의처리부로 전송한 후 상기 제1아톰 이전에 상기 질의처리부로 전송되어 처리된 제2아톰을 상기 질의처리부로 재전송하는 것을 특징으로 하는 OWL 수준의 질의언어 처리장치.
  4. 청구항 4은(는) 설정등록료 납부시 포기되었습니다.
    제 3항에 있어서,
    상기 스케줄링부는 상기 제2 실행 대기 큐에 삽입된 각각의 아톰을 정점으로 하며 중복되는 변수가 존재하는 아톰끼리 서로 인접하도록 상기 아톰들을 배열시킨 그래프를 생성하고, 상기 그래프에서 상기 제1아톰을 시작점으로 하는 너비 우선 탐색에 의하여 복수의 제2아톰을 순차적으로 상기 질의처리부로 전송하는 것을 특징으로 하는 OWL 수준의 질의언어 처리장치.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
    제 4항에 있어서,
    상기 스케줄링부는 상기 제2 실행 대기 큐에 삽입된 모든 아톰의 변수들을 포함하며 각각의 변수의 처리 상태를 나타내는 변수 상태 리스트를 생성하고, 상기 제1아톰을 상기 질의처리부로 전송하기 이전에 상기 변수 상태 리스트의 상기 변수들의 처리 상태를 초기화하며, 상기 제1아톰 및 상기 제2아톰을 상기 질의처리부로 전송하여 처리할 때마다 대응하는 변수의 처리 상태를 갱신하는 것을 특징으로 하는 OWL 수준의 질의언어 처리장치.
  6. 청구항 6은(는) 설정등록료 납부시 포기되었습니다.
    제 5항에 있어서,
    상기 스케줄링부는 상기 제2아톰에 포함된 모든 변수의 처리 상태가 이미 갱신되어 있는 경우에 상기 그래프에서 상기 제2아톰을 시작점으로 하는 너비 우선 탐색에 의하여 상기 제2아톰의 이전에 상기 질의처리부에 의해 처리된 제3아톰을 상기 질의처리부로 전송하는 것을 특징으로 하는 OWL 수준의 질의언어 처리장치.
  7. 제 1항에 있어서,
    상기 질의처리부는,
    상기 실행되는 아톰이 TBox/RBox 아톰인 경우 사전에 구축된 데이터베이스로부터 생성된 OWL TBox/RBox 온톨로지를 추론하여 TBox/RBox 아톰을 처리하는 네이티브 추론기로 처리를 요청하고, 상기 네이티브 추론기가 처리한 처리결과를 기초로 제1결과데이터를 도출하는 제1질의처리부;
    상기 실행되는 아톰이 ABox 아톰인 경우 결과데이터의 도출을 위한 질의를 생성하여 상기 데이터베이스로부터 제2결과데이터를 도출하는 제2질의처리부; 및
    상기 실행되는 아톰이 TBox/RBox 아톰 또는 ABox 아톰인지 여부를 구분하여, 상기 TBox/RBox 아톰은 상기 제1질의처리부로 전송하고, 상기 ABox 아톰은 상기 제2질의처리부로 전송하는 질의분석부;를 포함하며,
    상기 결과전송부는 상기 제1결과데이터 및 상기 제2결과데이터를 상기 시맨틱 웹 애플리케이션으로 전송하는 것을 특징으로 하는 OWL 수준의 질의언어 처리장치.
  8. 제 7항에 있어서,
    상기 제1질의처리부는 상기 네이티브 추론기로부터 복수의 TBox/RBox 아톰에 대응하는 처리결과가 입력되면 상기 각각의 처리결과의 중복되는 부분을 병합하여 상기 제1결과데이터를 생성하는 것을 특징으로 하는 OWL 수준의 질의언어 처리장치.
  9. 제 7항에 있어서,
    상기 제2질의처리부는,
    상기 ABox 아톰에 포함된 변수를 처리하기 위해 상기 데이터베이스에 대응하는 고유의 질의어를 생성하는 질의어 생성부;
    복수의 ABox 아톰에 대하여 각각 생성된 질의어에서 중복되는 부분을 병합하여 최종 질의어를 생성하는 질의어 수정부; 및
    상기 최종 질의어를 사용하여 상기 데이터베이스로부터 도출된 데이터를 OWL ABox 요소 형태로 가공하여 상기 제2결과데이터를 생성하는 결과생성부;를 포함하는 것을 특징으로 하는 OWL 수준의 질의언어 처리장치.
  10. OWL 수준의 질의언어 처리장치에 의해 수행되는 질의언어 처리방법에 있어서,
    시맨틱 웹 애플리케이션을 통해 입력받은 OWL 수준의 질의언어에 포함된 기본 실행 단위인 아톰(atom)의 실행순서 및 반복횟수를 결정하는 스케줄링단계;
    상기 스케줄링단계에서 결정된 상기 실행순서 및 반복횟수에 따라 상기 아톰들을 ABox 아톰 및 TBox/RBox 아톰으로 구분하여 각각 처리한 결과데이터를 도출하는 질의처리단계; 및
    상기 결과데이터를 상기 시맨틱 웹 애플리케이션으로 전송하는 결과전송단계;를 포함하는 것을 특징으로 하는 OWL 수준의 질의언어 처리방법.
  11. 제 10항에 있어서,
    상기 스케줄링단계에서, 상기 입력받은 OWL 수준의 질의언어에 대하여 1개 이하의 변수를 포함하는 아톰들이 순차적으로 삽입되는 제1 실행 대기 큐 및 2개 이상의 변수를 포함하는 아톰들이 순차적으로 삽입되는 제2 실행 대기 큐를 생성하고,
    상기 질의처리단계에서, 상기 제1 실행 대기 큐에 삽입된 아톰들을 삽입된 순서대로 인출하여 처리한 후, 상기 제2 실행 대기 큐에 삽입된 아톰들을 순차적으로 인출하여 처리하는 것을 특징으로 하는 OWL 수준의 질의언어 처리방법.
  12. 제 11항에 있어서,
    상기 질의처리단계에서, 상기 제2 실행 대기 큐에 삽입된 아톰들 중 제1아톰을 처리한 후 상기 제1아톰 이전에 처리된 제2아톰을 다시 처리하는 것을 특징으로 하는 OWL 수준의 질의언어 처리방법.
  13. 청구항 13은(는) 설정등록료 납부시 포기되었습니다.
    제 12항에 있어서,
    상기 스케줄링단계에서, 상기 제2 실행 대기 큐에 삽입된 각각의 아톰을 정점으로 하며 중복되는 변수가 존재하는 아톰끼리 서로 인접하도록 상기 아톰들을 배열시킨 그래프를 생성하고,
    상기 질의처리단계에서, 상기 그래프에서 상기 제1아톰을 시작점으로 하는 너비 우선 탐색에 의하여 복수의 제2아톰을 순차적으로 처리하는 것을 특징으로 하는 OWL 수준의 질의언어 처리방법.
  14. 청구항 14은(는) 설정등록료 납부시 포기되었습니다.
    제 13항에 있어서,
    상기 스케줄링단계에서, 상기 제2 실행 대기 큐에 삽입된 모든 아톰의 변수들을 포함하며 각각의 변수의 처리 상태를 나타내는 변수 상태 리스트를 생성하고,
    상기 질의처리단계에서, 상기 제1아톰을 처리하기 이전에 상기 변수 상태 리스트의 상기 변수들의 처리 상태를 초기화하며, 상기 제1아톰 및 상기 제2아톰을 처리할 때마다 대응하는 변수의 처리 상태를 갱신하는 것을 특징으로 하는 OWL 수준의 질의언어 처리방법.
  15. 청구항 15은(는) 설정등록료 납부시 포기되었습니다.
    제 14항에 있어서,
    상기 질의처리단계에서, 상기 제2아톰에 포함된 모든 변수의 처리 상태가 이미 갱신되어 있는 경우에 상기 그래프에서 상기 제2아톰을 시작점으로 하는 너비 우선 탐색에 의하여 상기 제2아톰의 이전에 처리된 제3아톰을 다시 처리하는 것을 특징으로 하는 OWL 수준의 질의언어 처리방법.
  16. 제 10항에 있어서,
    상기 질의처리단계는,
    상기 아톰이 TBox/RBox 아톰인 경우 사전에 구축된 데이터베이스로부터 생성된 OWL TBox/RBox 온톨로지를 추론하여 TBox/RBox 아톰을 처리하는 네이티브 추론기로 처리를 요청하고, 상기 네이티브 추론기가 처리한 처리결과를 기초로 제1결과데이터를 도출하는 제1질의처리단계; 및
    상기 아톰이 ABox 아톰인 경우 결과데이터의 도출을 위한 질의를 생성하여 상기 데이터베이스로부터 제2결과데이터를 도출하는 제2질의처리단계;를 포함하며,
    상기 결과전송단계에서, 상기 제1결과데이터 및 상기 제2결과데이터를 상기 시맨틱 웹 애플리케이션으로 전송하는 것을 특징으로 하는 OWL 수준의 질의언어 처리방법.
  17. 제 16항에 있어서,
    상기 제1질의처리단계에서, 상기 네이티브 추론기로부터 복수의 TBox/RBox 아톰에 대응하는 처리결과가 입력되면 상기 각각의 처리결과의 중복되는 부분을 병합하여 상기 제1결과데이터를 생성하는 것을 특징으로 하는 OWL 수준의 질의언어 처리방법.
  18. 제 16항에 있어서,
    상기 제2질의처리단계는,
    상기 ABox 아톰에 포함된 변수를 처리하기 위해 상기 데이터베이스에 대응하는 고유의 질의어를 생성하는 질의어 생성단계;
    복수의 ABox 아톰에 대하여 각각 생성된 질의어에서 중복되는 부분을 병합하여 최종 질의어를 생성하는 질의어 수정단계; 및
    상기 최종 질의어를 사용하여 상기 데이터베이스로부터 도출된 데이터를 OWL ABox 요소 형태로 가공하여 상기 제2결과데이터를 생성하는 결과생성단계;를 포함하는 것을 특징으로 하는 OWL 수준의 질의언어 처리방법.
  19. 제 10항 내지 제 18항 중 어느 한 항에 기재된 OWL 수준의 질의언어 처리방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020110137334A 2011-12-19 2011-12-19 비 네이티브 온톨로지 저장소에서의 owl 수준의 질의언어 처리장치 및 방법 KR101275829B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110137334A KR101275829B1 (ko) 2011-12-19 2011-12-19 비 네이티브 온톨로지 저장소에서의 owl 수준의 질의언어 처리장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110137334A KR101275829B1 (ko) 2011-12-19 2011-12-19 비 네이티브 온톨로지 저장소에서의 owl 수준의 질의언어 처리장치 및 방법

Publications (1)

Publication Number Publication Date
KR101275829B1 true KR101275829B1 (ko) 2013-06-18

Family

ID=48867179

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110137334A KR101275829B1 (ko) 2011-12-19 2011-12-19 비 네이티브 온톨로지 저장소에서의 owl 수준의 질의언어 처리장치 및 방법

Country Status (1)

Country Link
KR (1) KR101275829B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572767A (zh) * 2013-10-25 2015-04-29 北大方正集团有限公司 一种站点语种分类的方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090022790A (ko) * 2007-08-31 2009-03-04 주식회사 온토테크 메타 모델링 기반의 대용량 온톨로지 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090022790A (ko) * 2007-08-31 2009-03-04 주식회사 온토테크 메타 모델링 기반의 대용량 온톨로지 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572767A (zh) * 2013-10-25 2015-04-29 北大方正集团有限公司 一种站点语种分类的方法和系统

Similar Documents

Publication Publication Date Title
US11763175B2 (en) Systems and methods for semantic inference and reasoning
US10733055B1 (en) Methods and apparatus related to graph transformation and synchronization
US11429586B2 (en) Expression update validation
US8352459B2 (en) SQL queries for simple network management protocol management information base tables
US10380143B2 (en) Merging of distributed datasets
US7426503B2 (en) System and method for an improved type inference
Pynadath et al. Generalized queries on probabilistic context-free grammars
US20140280068A1 (en) Adaptive learning of effective troubleshooting patterns
US20130006966A1 (en) Relational Query Planning for Non-Relational Data Sources
US20140310690A1 (en) System and Method for Generating Automated Test Cases for Command Line Based Applications
CN109408591B (zh) 支持sql驱动的ai与特征工程的决策型分布式数据库系统
Yuan et al. Keyword search over distributed graphs with compressed signature
Leonov et al. Architecture and self-learning concept of knowledge-based systems by use monitoring of internet network
CN107818181A (zh) 基于Plcient交互式引擎的索引方法及其系统
CN108932225B (zh) 用于将自然语言需求转换成为语义建模语言语句的方法和系统
US20090063399A1 (en) Index selection for xml database systems
KR102491753B1 (ko) 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법
KR101275829B1 (ko) 비 네이티브 온톨로지 저장소에서의 owl 수준의 질의언어 처리장치 및 방법
KR100912190B1 (ko) 최적화 변환 규칙을 적용하여 rdql 질의를 sql질의로 변환하는 rdql-to-sql 시스템 및 방법
Akili et al. MuSE graphs for flexible distribution of event stream processing in networks
Reger Better Proof Output for Vampire.
US11023674B2 (en) Generation and application of object notation deltas
CN115470355A (zh) 轨道交通信息查询方法、装置、电子设备和存储介质
Freund et al. FlexRML: A Flexible and Memory Efficient Knowledge Graph Materializer
Rebele et al. Bash datalog: answering datalog queries with unix shell commands

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: 20170410

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180409

Year of fee payment: 6