KR20170021227A - 온톨로지 매핑 방법 및 장치 - Google Patents

온톨로지 매핑 방법 및 장치 Download PDF

Info

Publication number
KR20170021227A
KR20170021227A KR1020167030643A KR20167030643A KR20170021227A KR 20170021227 A KR20170021227 A KR 20170021227A KR 1020167030643 A KR1020167030643 A KR 1020167030643A KR 20167030643 A KR20167030643 A KR 20167030643A KR 20170021227 A KR20170021227 A KR 20170021227A
Authority
KR
South Korea
Prior art keywords
ontology
terms
ontologies
data
term
Prior art date
Application number
KR1020167030643A
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 시맨틱 테크놀로지스 프로프라이어터리 리미티드
Publication of KR20170021227A publication Critical patent/KR20170021227A/ko

Links

Images

Classifications

    • G06F17/30734
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/328Management therefor

Landscapes

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

Abstract

온톨로지를 이용하여 매핑을 생성하는 데 이용하기 위한 장치로서, 이 장치는 적어도 하나의 전자 처리 디바이스를 포함하고, 전자 처리 디바이스는, 온톨로지 용어들을 각각 갖는 온톨로지들을 결정하고, 온톨로지들 중 적어도 하나로부터 온톨로지 용어들의 그룹을 결정하고, 온톨로지 용어들의 그룹 중 적어도 일부에 대하여 온톨로지들의 온톨로지 용어들 간의 정렬을 결정하고, 정렬에 따라 매핑을 생성하고, 정렬은 온톨로지 용어들의 온톨로지 용어 의미에 따라 적어도 부분적으로 결정된다.

Description

온톨로지 매핑 방법 및 장치{ONTOLOGY MAPPING METHOD AND APPARATUS}
본 발명은 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 방법 및 장치에 관한 것이다.
본원에서 임의의 종래 간행물(또는 해당 간행물로부터 도출된 정보) 또는 알려져 있는 임의의 상황을 참조하는 것은, 종래의 간행물(또는 해당 간행물로부터 도출된 정보) 또는 알려져 있는 임의의 상황이 본 명세서에 관한 분야의 공통적인 일반적 지식의 일부를 형성함을 승인 또는 허가 또는 제안의 임의의 형태가 아니며, 이러한 승인 또는 허가 또는 제안의 임의의 형태로서 취급해서도 안 된다.
과학 세계, 엔지니어링 세계, 및 비즈니스 세계의 모든 양태를 기술하는 수천 개의 공개 및 개인 온톨로지들이 존재한다. 본 발명은, 이러한 진보된 온톨로지들의 지식과 메타데이터가 데이터 구조에 상관없이 또는 구조 없이 임의의 데이터의 관리에 적용될 수 있게 하는 프로세스들의 세트를 설명한다.
폭발적으로 성장하는 지식과 데이터는, 통상적인 정보 관리 기구가 관리하는 능력 또는 심지어 기술하는 능력을 넘어서고 있다. 온톨로지 등의 시맨틱 웹 기술들 및 웹 온톨로지 언어(OWL)와 리소스 디스크립션 프레임워크(RDF) 등의 새로운 언어들은, 이전에는 불가능하였던 상세로 또한 인간과 기계 모두가 이해 가능한 방식으로, 건강, 의료, 또는 엔지니어링 등의 링크된 개념들의 설명을 설명할 수 있게 한다. 이러한 온톨로지들은, 통상적으로, 주제 전문가들(온톨로지스트)의 팀에 의해 생성되며, 빈번하게 공개적으로 이용가능하다.
현재, 링크된 개념들을 정의하는 온톨로지의 조작은 학문 및 전문 온톨로지스트로 대략 한정된다. 이러한 온톨로지들은 수천 개의 링크된 개념을 포함할 수 있다. 심지어 하나의 개념, 공리, 또는 데이터 특성을 제거함으로써 많은 관계들이 무효로 될 수 있다. 효과를 수동으로 결정하는 것은 길고도 지루한 프로세스이다.
이러한 프로젝트에 의해 다루어지는 비즈니스 요구들 중에는, 온톨로지 전문 지식이 없거나 거의 없는 사람이 온톨로지의 모든 상세에 간단하고도 이해 가능한 방식으로 접근할 수 있게 하는 것이 있다. 게다가, 그 사람은, 간략화된 질의 구조 기구를 이용하여 온톨로지에 의해 기술되는 데이터를 선택 및 검사할 수 있다. 그 사람은, 여전히 시행되고 있는 초기 온톨로지에 존재하는 모든 제약 및 추론과 함께 레코드를 데이터에 추가할 수 있다. 마지막으로, 그 사람은, 코드와 스크린을 프론트-오피스 직원이 사용하는 데 적합한 독립형 애플리케이션들로서 생성 및 효율적으로 사용(deploy)할 수 있다.
구체적인 비즈니스 또는 연구 요구는, 다수의 온톨로지들로부터의, 가능하게는 이질적인 규율들로부터의 개념들을 필요로 할 수 있다. 이러한 경우, 두 개의 온톨로지의 개념들 간의 정렬이 필요할 수 있다. 이렇게 정렬된 온톨로지들은, 비즈니스 또는 조직의 구체적인 요구에 특정된 타겟 온톨로지를 제공하도록 간결화(prune)될 수 있다.
본 발명은, 비즈니스 컨텍스트에 특정된 동의어와 동음어를 이용하여, 요구되는 정렬 및 간결화 방법들을 제공할 뿐만 아니라 개념들과 넓은 순수 인덱스들(naive indexes)의 시맨틱 매칭을 수행하기 위한 기술적 도구들도 제공한다.
이러한 툴세트에 의하면, 사용자는, 이질적 데이터 소스들에 접근할 수 있고, 이러한 데이터 소스들을 컨텍스트 특정 온톨로지들에 매핑할 수 있고, 이질적 온톨로지들을 정밀한 후 정렬된 온톨로지들을 간결화하여 관련 정보만을 포함할 수 있다. 이어서, 사용자는, 데이터를 자신이 선택한 포맷으로 추출하여, 기저 온톨로지들의 공리와 추론을 이해하고 이들을 타겟 데이터베이스에 대한 프로그램 코드를 통해 구현하는 생성된 애플리케이션을 통해 접근할 수 있다.
예를 들어, 의사는, 접근되는 다양한 레코드 레이아웃에 대한 우려 없이 다수의 업무 관리 시스템들, 병원 및 건강 시스템들 및 진단 및 이미징 시스템들로부터 환자 레코드에 접근할 수 있다. 의료 연구원은 이러한 데이터를 게놈 분석, 약 개발 및 테스트 등의 연구실 연구 데이터에 연결할 수 있다.
교통 엔지니어들은, 신호 데이터를 기압 데이터, CCTV 피드, 트위터 및 이벤드 달력에 연결할 수 있다. 원격통신 회사들은, 해당 범위의 각 모델마다 각 제조사에 의해 생성되는 각각의 새로운 전화 특징부에 대한 특정 코드를 기입할 필요 없이 새로운 호출 데이터 레코드 구조의 99%를 허용할 수 있다.
마지막으로, 비즈니스 영역에서, 비즈니스 문제점을 설명하고 이어서 설명된 비즈니스 규칙을 실행하기 위한 코드를 실행하도록 적절히 맞춤화된 온톨로지를 사용함으로써, 새로운 IT 소프트웨어의 시장으로의 시간이 크게 감소된다. 이러한 비즈니스 규칙들은 종래의 데이터뿐만 아니라 빅 데이터의 모든 양태들도 접근할 수 있다.
미국 특허 제7,464,099호는 파일과 데이터베이스로부터 콘텐츠를 전달하는 방법을 제공한다. 이 경우, 파일은 콘텐츠 인스턴스들을 포함하고, 각 콘텐츠 인스턴스는 각 필드에 연관되며, 각 필드는 각 유형을 갖는다. 전달은, 각 필드의 유형을 결정하고 이어서 연관된 필드의 결정된 필드 유형에 따라 각 콘텐츠 인스턴스를 저장소에 저장함으로써 달성된다. 이어서, 각 콘텐츠 인스턴스는 결정된 필드 유형에 따라 데이터베이스에 전달될 수 있다. 데이터베이스 내의 콘텐츠에 기초하여 XML 파일들을 생성하기 위한 유사한 절차가 제공된다.
제1 양태에서, 본 발명은 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치를 제공하며, 이 장치는 적어도 하나의 전자 처리 디바이스를 포함하고, 전자 처리 디바이스는, 온톨로지 용어들을 각각 갖는 온톨로지들을 결정하고, 온톨로지들 중 적어도 하나로부터 온톨로지 용어들의 그룹을 결정하고, 온톨로지 용어들의 그룹 중 적어도 일부에 대하여 온톨로지들의 온톨로지 용어들 간의 정렬을 결정하고, 정렬에 따라 매핑을 생성하고, 정렬은 온톨로지 용어들의 온톨로지 용어 의미에 따라 적어도 부분적으로 결정된다.
바람직하게, 매핑은 병합된 온톨로지와 정렬 인덱스 중 적어도 하나일 수 있다.
바람직하게, 온톨로지들은 추정 온톨로지 및 정형화(formalised) 온톨로지를 포함할 수 있다.
바람직하게, 전자 처리 디바이스는 추정 온톨로지를 정형화 온톨로지에 매핑하기 위한 매핑을 생성할 수 있다.
바람직하게, 매핑은, 다수의 소스 데이터 필드들을 포함하는 소스 데이터 구조를 갖는 소스 데이터 저장소로부터 다수의 타겟 데이터 필드들을 포함하는 타겟 데이터 구조를 갖는 타겟 데이터 저장소로 콘텐츠를 전달하는 데 사용될 수 있고, 온톨로지들은 소스 데이터 구조 및 타겟 데이터 구조에 연관되고, 전자 처리 디바이스는 매핑을 이용하여 소스 데이터 필드들과 타겟 데이터 필드들 간에 콘텐츠를 전달한다.
바람직하게, 온톨로지들은, 소스 데이터 구조에 연관된 소스 온톨로지 및 타겟 데이터 구조에 연관된 타겟 온톨로지를 포함할 수 있다.
바람직하게, 소스 및 타겟 온톨로지들은 추정 온톨로지들일 수 있고, 소스 및 타겟 온톨로지들은 하나 이상의 정형화된 온톨로지들에 매핑된다.
바람직하게, 전자 처리 디바이스는, 추정 온톨로지를 생성하고 기존의 다수의 온톨로지들 중 하나를 선택함으로써, 온톨로지를 결정할 수 있다.
바람직하게, 전자 처리 디바이스는, 데이터 구조에 연관된 메타데이터와 데이터 구조의 데이터 필드 중 적어도 하나를 이용하여 온톨로지를 선택할 수 있다.
바람직하게, 전자 처리 디바이스는, 데이터 필드들을 기존의 다수의 온톨로지들의 온톨로지 용어들과 비교하고 그 비교의 결과에 따라 기존의 다수의 온톨로지들 중 하나를 선택함으로써, 기존의 다수의 온톨로지들 중 하나를 선택할 수 있다.
바람직하게, 전자 처리 디바이스는, 데이터베이스 스키마의 표들을 식별하고, 각 표에 대응하는 온톨로지 용어를 생성하고, 적어도 하나의 물자표(bill of material) 테이블을 식별하고, 물자표 테이블의 각 엔트리에 대응하는 온톨로지 용어를 생성함으로써, 데이터베이스 스키마로부터 추정 온톨로지를 생성할 수 있다.
바람직하게, 전자 처리 디바이스는, 물자표 테이블의 각 엔트리에 대응하는 온톨로지 용어의 표시자를 표시하고, 사용자 입력 커맨드에 응답하여 온톨로지 용어를 추정 온톨로지에 추가함으로써, 데이터베이스 스키마로부터 추정 온톨로지를 생성할 수 있다.
바람직하게, 전자 처리 디바이스는, 데이터베이스 스키마에 의해 정의된 표 구조를 이용하여 온톨로지 용어들 간의 관계를 생성할 수 있다.
바람직하게, 추정 온톨로지는, 온톨로지 용어들에 대응하는 클래스들, 클래스들 중 적어도 일부에 대한 데이터 특성들, 및 클래스들 간의 관계를 정의하는 오브젝트 특성들을 포함할 수 있다.
바람직하게, 전자 처리 디바이스는,
적어도 하나의 온톨로지에 대하여 그 적어도 하나의 온톨로지의 온톨로지 용어들의 표시자를 포함하는 인덱스를 결정하고, 인덱스를 이용하여 온톨로지 용어들의 그룹, 및 온톨로지 용어들 간의 정렬을 결정할 수 있다.
바람직하게, 각 온톨로지 용어마다, 인덱스는, 온톨로지 용어 의미와 온톨로지 용어 유형의 표시자를 포함할 수 있다.
바람직하게, 전자 처리 디바이스는, 각 온톨로지 용어마다, 온톨로지 용어 명칭을 식별하고, 온톨로지 용어 유형을 식별하고, 시맨틱 매칭 프로세스를 이용하여 각 온톨로지 용어의 온톨로지 의미를 식별하고, 온톨로지 용어 명칭, 온톨로지 용어 유형, 및 온톨로지 용어 의미의 표시자를 포함하는 인덱스 엔트리를 생성함으로써, 인덱스를 생성할 수 있다.
바람직하게, 전자 처리 디바이스는 다수의 온톨로지들에 대하여 단일 인덱스를 생성하고, 인덱스 엔트리는 온톨로지 용어에 연관된 온톨로지의 표시자를 포함한다.
바람직하게, 전자 처리 디바이스는, 온톨로지의 하나 이상의 온톨로지 용어들의 표시자를 표시하고, 사용자 입력 커맨드에 응답하여 적어도 하나의 온톨로지 용어를 식별하고, 식별된 적어도 하나의 온톨로지 용어와 식별된 적어도 하나의 온톨로지 용어에 연관된 데이터 특성 중 적어도 하나의 상세를 표시할 수 있다.
바람직하게, 전자 처리 디바이스는 인덱스를 이용하여 하나 이상의 온톨로지 용어들의 표시자를 결정할 수 있다.
바람직하게, 전자 처리 디바이스는, 사용자 입력 커맨드에 응답하여 사용자 선택 온톨로지 용어들 및 대응하는 사용자 선택 데이터 특성들을 결정하고, 사용자 선택 온톨로지 용어들 및 대응하는 사용자 선택 데이터 특성들에 따라 실행가능 코드를 생성할 수 있고, 실행가능 코드는, 컴퓨터 시스템에서 실행되는 경우, 사용자가 데이터 구조를 갖는 데이터 저장소에 저장된 콘텐츠와 상호 작용할 수 있게 하는 사용자 인터페이스를 컴퓨터 시스템이 표시하게 하고, 콘텐츠는 사용자 선택 온톨로지 용어들에 대응하는 데이터 필드들에 저장되어 있다.
바람직하게, 실행가능 코드는, 컴퓨터 시스템이 소스 또는 타겟 온톨로지에 따라 소스 또는 타겟 데이터 구조에 저장된 데이터와 상호 작용하기 위한 질의들을 생성하게 할 수 있다.
바람직하게, 실행가능 코드는, 컴퓨터 시스템이 온톨로지의 사용자 선택 온톨로지 용어들 간의 관계와 데이터 특성 중 적어도 하나에 따라 질의들을 생성하게 할 수 있다.
바람직하게, 실행가능 코드는, 컴퓨터 시스템이, 하나 이상의 온톨로지 용어들의 표시자를 표시하게 하고, 사용자 입력 커맨드에 응답하여 적어도 하나의 온톨로지 용어의 선택을 결정하게 하고, 선택된 온톨로지 용어에 연관된 데이터 필드에 저장된 데이터를 질의하게 할 수 있다.
바람직하게, 전자 처리 디바이스는, 온톨로지 용어를 다수의 잠재적 온톨로지 용어 의미들과 비교하고, 그 비교의 결과에 따라 잠재적 온톨로지 용어 의미들 중 하나를 온톨로지 용어 의미로서 선택할 수 있다.
바람직하게, 전자 처리 디바이스는, 각 비교 결과에 대한 매칭 점수를 생성하고 매칭 점수에 따라 온톨로지 용어 의미를 결정함으로써, 잠재적 온톨로지 용어 의미를 결정할 수 있다.
바람직하게, 잠재적 온톨로지 용어 의미가 동의어, 반의어, 부분어, 수퍼클래스, 서브클래스 중 적어도 하나인지 여부를 결정할 수 있다.
바람직하게, 전자 처리 디바이스는 인덱스에 온톨로지 용어 의미의 표시자를 저장할 수 있고, 표시자는, 정의된 의미를 나타내는 식별자 및 균등 의미들의 리스트 중 적어도 하나를 포함한다.
바람직하게, 전자 처리 디바이스는, 다수의 온톨로지 용어들의 온톨로지 용어 의미들을 비교하고, 각 비교의 결과에 대한 매칭 점수를 생성하고, 매치 점수들에 따라 정렬을 결정함으로써, 온톨로지 용어들 간의 정렬을 결정할 수 있다.
바람직하게, 전자 처리 디바이스는, 또한, 온톨로지 용어들 간의 관계 및 온톨로지 용어들의 데이터 특성 중 적어도 하나에 기초하여 정렬을 결정할 수 있다.
바람직하게, 전자 처리 디바이스는, 소스 온톨로지의 소스 온톨로지 용어들 간의 관계를 결정하고, 타겟 온톨로지의 타겟 온톨로지 용어들 간의 관계를 결정하고, 관계들을 비교하고, 비교의 결과에 따라 정렬을 결정할 수 있다.
바람직하게, 전자 처리 디바이스는, 소스 온톨로지로부터의 하나 이상의 소스 온톨로지 용어들과 타겟 온톨로지로부터의 하나 이상의 타겟 온톨로지 용어들 간의 정렬을 결정할 수 있다.
바람직하게, 전자 처리 디바이스는, 선택된 온톨로지 용어들을 결정하고, 선택된 온톨로지 용어들 및 선택된 온톨로지 용어들 간의 관계에 따라 온톨로지 용어들의 그룹을 적어도 부분적으로 결정함으로써, 온톨로지 용어들의 그룹을 결정할 수 있다.
바람직하게, 전자 처리 디바이스는, 각각의 선택된 온톨로지 용어마다, 다수의 서로 다른 유형의 관계의 각각에 대하여 정의된 관계 경로 길이 내의 온톨로지 용어들을 식별하고, 식별된 온톨로지 용어들을 온톨로지 용어들의 그룹에 추가함으로써, 관련된 온톨로지 용어들을 결정할 수 있다.
바람직하게, 전자 처리 디바이스는, 선택된 온톨로지 용어들 모두가 관계들에 의해 연결될 때까지 식별된 온톨로지 용어들을 반복적으로 추가할 수 있다.
바람직하게, 전자 처리 디바이스는 서로 다른 유형의 관계에 대하여 서로 다른 관계 경로 길이를 이용할 수 있다.
바람직하게, 전자 처리 디바이스는 사용자 입력 커맨드에 따라 관계 경로 길이를 결정할 수 있다.
바람직하게, 장치는, 온톨로지의 온톨로지 용어들을 나타내는 인덱스를 생성하는 인덱서 모듈; 온톨로지의 온톨로지 용어들의 검색(browse)을 가능하게 하며, 온톨로지의 적어도 일부를 구체화하는 코드를 생성하여 온톨로지에 따라 사용자가 데이터 구조에 저장된 데이터와 상호 작용할 수 있게 하는 브라우저 모듈; 서로 다른 온톨로지들의 온톨로지 용어들 간의 정렬을 결정하는 정렬기 모듈; 온톨로지 용어들 간의 관계들을 이용하여 적어도 하나의 온톨로지 내의 온톨로지 용어들의 그룹을 적어도 부분적으로 결정하는 간결화기 모듈; 및 온톨로지 용어 의미들을 식별하는 시맨틱 매처(semantic matcher) 모듈을 포함할 수 있다.
제2 양태에서, 본 발명은 온톨로지들을 이용하여 매핑을 생성하는 데 사용하기 위한 방법을 제공하며, 이 방법은, 적어도 하나의 전자 처리 디바이스에서, 온톨로지 용어들을 각각 갖는 온톨로지들을 결정하는 단계; 온톨로지들 중 적어도 하나로부터 온톨로지 용어들의 그룹을 결정하는 단계; 온톨로지 용어들의 그룹 중 적어도 일부에 대하여 온톨로지들의 온톨로지 용어들 간의 정렬을 결정하는 단계로서, 정렬은 온톨로지 용어들의 온톨로지 용어 의미에 따라 적어도 부분적으로 결정되는 것인, 그 정렬을 결정하는 단계; 및 정렬에 따라 매핑을 생성하는 단계를 포함한다.
이제, 본 발명의 일례를 첨부 도면을 참조하여 설명한다. 여기서:
도 1a는 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 방법의 일례의 흐름도;
도 1b는 온톨로지 구조 예에 기초하는 서로 다른 매핑의 예들의 개략도;
도 2는 분산형 컴퓨터 아키텍처의 일례의 개략도;
도 3은 기지국 처리 시스템의 일례의 개략도;
도 4는 컴퓨터 시스템의 일례의 개략도;
도 5는 소스 데이터 구조와 타겟 데이터 구조 간에 콘텐츠를 전달하도록 매핑을 생성하는 데 사용하기 위한 방법의 일례의 흐름도;
도 6은 추정 온톨로지를 생성하는 방법의 일례의 흐름도;
도 7은 인덱스를 결정하는 방법의 일례의 흐름도;
도 8은 온톨로지를 검색(browse)하는 방법의 일례의 흐름도;
도 9는 온톨로지를 간략화(prune)하는 방법의 일례의 흐름도;
도 10은 온톨로지들을 정렬하는 방법의 제2예의 흐름도;
도 11은 시맨틱 매칭 방법의 일례의 흐름도;
도 12a와 도 12b는 온톨로지 예들의 개략도;
도 13은 온톨로지들과 상호 작용하는 데 사용되는 모듈들의 개략도;
도 14a는 도 13의 ETL(추출 변환 탑재; Extraction Transformation Load) 모듈의 소프트웨어 스택의 일례의 개략도;
도 14b는 도 13의 ETL 모듈을 구현하는 데 사용되는 아키텍처의 개략도;
도 15는 도 13의 브라우저 모듈의 기능의 일례의 개략도;
도 16은 도 13의 인덱서 모듈의 기능의 일례의 개략도;
도 17a는 도 13의 간결화기 모듈의 기능의 일례의 개략도;
도 17b 내지 도 17d는 간결화기 프로세스의 예들의 개략도;
도 18a는 도 13의 시맨틱 매처 모듈의 기능의 제1 예의 개략도;
도 18b는 도 13의 시맨틱 매처 모듈의 기능의 제2 예의 개략도;
도 18c는 표들 간의 관계들의 일례의 개략도;
도 18d는 도 13의 시맨틱 매처 모듈의 기능의 제3 예의 개략도;
도 19a는 "사물 데이터베이스"(thing database)의 일례의 개략도;
도 19b는 이질적 소스들을 통일하기 위한 프레임워크의 일례의 개략도;
도 19c는 도 13의 정렬기 모듈의 기능의 일례의 개략도;
도 19d와 도 19e는 병합된 온톨로지들의 예들의 개략도.
이하, 온톨로지를 이용하여 매핑을 생성하는 방법의 일례를 도 1a를 참조하여 설명한다.
이 예를 위해, 더욱 상세히 후술하는 바와 같이, 컴퓨터 시스템의 마이크로프로세서 등의 전자 처리 디바이스를 이용하여 프로세스가 적어도 부분적으로 수행된다고 가정한다.
예 중 적어도 일부에 대하여, 또한, 데이터베이스 또는 파일 등의 콘텐츠 리포지토리로서 기능하는 데이터 저장소의 콘텐츠 필드에 콘텐츠가 하나 이상의 콘텐츠 인스턴스로서 저장된다고 가정한다. 따라서, 콘텐츠 필드는 데이터베이스의 데이터베이스 필드일 수 있으며, 콘텐츠 인스턴스는, 하나 이상의 데이터베이스 필드에 걸쳐 저장된 값들을 포함한, 데이터베이스 레코드에 대응한다. 대안으로, 콘텐츠 필드는, 이하의 설명으로부터 명백하듯이, 예를 들어, 데이터가 데이터베이스로부터 추출 및/또는 데이터베이스에 전달될 때, 데이터를 전달하는 데 사용될 수 있는 XML 파일 등의 파일 내에 정의되는 필드일 수 있다. 다른 대안으로, 콘텐츠 필드는, 또한, 이하의 설명으로부터 명백하듯이, 예를 들어, 데이터가 RDF 트리플 저장소 데이터베이스로부터 추출 및/또는 RDF 트리플 저장소 데이터베이스에 전달될 때, 데이터를 전달하는 데 사용될 수 있는 RDF 트리플 저장소 등의 파일 내에 정의된 필드일 수 있다. 데이터베이스 스키마, XML 문서 정의, 온톨로지, 또는 스키마 등의 데이터 구조에 따라 콘텐츠가 저장된다고 가정한다.
다음에 따르는 설명 전체에 걸쳐 예시를 하도록, "소스"라는 용어는 데이터가 추출되는 데이터베이스 또는 파일 등의 데이터 저장소를 가리키는 데 사용되는 한편, "타겟"이라는 용어는 데이터가 저장되는 데이터베이스 또는 파일 등의 데이터 저장소를 가리키는 데 사용된다. 이러한 용어들은, 예를 들어 가능한 소스와 타겟 간을 구별하도록 예시하기 위한 것일 뿐이며, 한정적인 것이 아니다.
"콘텐츠 인스턴스"라는 용어는, 소스로부터 추출되는 및/또는 타겟으로 전달되는 콘텐츠의 개별적 피스(piece)를 가리키며, 역시 한정적인 것이 아니다. 예를 들어, 콘텐츠 인스턴스라는 용어는, 다수의 서로 다른 데이터베이스 필드들에 저장된 값들을 갖는 데이터베이스 레코드, 또는 관련된 데이터베이스 레코드들의 세트를 가리킬 수 있고, 또는 대안으로, 단일 필드 내에 저장된 단일 값을 가리킬 수 있다.
"온톨로지"라는 용어는, 공유 어휘를 사용하는 도메인 내의 개념들의 유형, 특성, 상호 관계를 나타내도록 공유 어휘를 사용하는 그러한 개념들의 세트로서의 지식을 나타낸다. 온톨로지는, 통상적으로, 개인(individual), 클래스, 오브젝트, 속성 등의 다수의 구성요소들을 포함하며, "온톨로지 용어"라는 용어는 일반적으로 이러한 구성요소들을 가리키고 이러한 개념들 중 특정한 개념들을 선택적으로 가리키는 데 사용된다.
"의미"라는 용어는, 구체적인 온톨로지 용어, 콘텐츠 필드명 등의 시맨틱 해석을 가리키려는 것이다. 따라서, 의미라는 용어는, 더욱 상세히 후술하듯이, 예를 들어, 동음어, 동의어, 부분어 등의 사항들을 고려하도록 온톨로지 용어 또는 콘텐츠 필드의 의도한 의미를 포함한다.
이 예에서, 단계 100에서, 전자 처리 디바이스는 온톨로지 용어들을 각각 갖는 온톨로지들을 결정한다. 이 프로세스는, 임의의 적절한 방식으로 수행될 수 있고, 예를 들어 하나 이상의 온톨로지 데이터베이스에 저장되어 있는 기존의 다수의 온톨로지들 중 하나 이상을 전자 처리 디바이스가 선택하게 하는 것을 포함할 수 있고, 또는 대안으로, 추정 온톨로지들을 생성함으로써 달성될 수 있다. 일례로, 선택된 온톨로지들은 소스 데이터 구조에 연관된 소스 온톨로지 및 타겟 데이터 구조에 연관된 타겟 온톨로지에 대응하지만, 필수적인 것은 아니다.
온톨로지들의 선택은, 소스 또는 타겟 데이터 구조에 기초하여 달성될 수 있고, 적합한 매칭이 발견될 때까지 데이터 구조들 내의 필드들을 온톨로지 용어들과 비교하는 것을 포함할 수 있다. 또한, 이 프로세스는, 다수의 온톨로지들의 도메인들을 검사하고 도메인들을 선택하고, 이에 따라 콘텐츠의 구체적인 주제 필드에 관련 있는 온톨로지들, 콘텐츠가 속한 산업 등을 선택하는 것을 포함할 수 있다. 온톨로지들의 선택은, 예를 들어, 관련 콘텐츠의 주제 필드의 표시자를 전자 처리 디바이스에 제공함으로써 자동화될 수 있고, 예를 들어, 사용자가 선택할 수 있는 이용가능 온톨로지들의 상세를 전자 처리 디바이스가 표시하게 하는 수동형일 수 있고, 또는 수동형 프로세스과 자동화 프로세스의 조합을 통해 행해질 수 있다.
대안으로, 이는, 예를 들어, 메타데이터, 데이터베이스 스키마 등을 사용하여 소스 또는 타겟 데이터 구조로부터 '추정' 온톨로지를 생성하는 것을 포함할 수 있다. 이 프로세스는, 관계 참조 무결성 제약들(relational referential integrity constraints)로부터 일부 온톨로지 공리를 유도하는 것을 포함할 수 있지만, 대부분의 공리는 수동으로 추가되거나 무시될 필요가 있다. 이어서, 이러한 추정 온톨로지는 메타데이터를 추가하도록 기존의 리치(rich) 온톨로지와 정렬될 수 있다.
단계 110에서, 전자 처리 디바이스는 온톨로지들 중 적어도 하나로부터 온톨로지 용어들의 그룹을 결정한다. 온톨로지 용어들의 그룹은, 통상적으로, 각 온톨로지의 서브 그룹이며, 관련된 온톨로지 용어들의 그룹을 나타낸다. 그룹은, 통상적으로, 예를 들어, 관심을 갖는 온톨로지 용어들에 대응하는 선택된 온톨로지 용어들을 포함한다. 따라서, 예를 들어, 온톨로지 용어들의 그룹은, 매핑 소스와 타겟 데이터 구조들을 매핑하는 데 사용되는 경우, 예를 들어, 내부의 콘텐츠가 추출되어 타겟 데이터 저장소에 전달될 수 있도록 타겟 또는 소스 데이터 필드들에 매핑될 소스 또는 타겟 데이터 필드들에 대응하는 선택된 온톨로지 용어들을 포함할 수 있다. 그룹은, 통상적으로, 선택된 온톨로지 용어들 간의 관계를 유지하는 데 요구되는 온톨로지 용어들을 더 포함한다.
그룹이 결정되는 방식은, 바람직한 구현예에 따라 가변되며, 예를 들어, 추출된 콘텐츠에 기초하여 다수의 이전에 결정된 그룹들 중 하나의 그룹을 선택하는 것을 포함할 수 있다. 그러나, 대안으로, 이는, 선택된 온톨로지 용어들을 식별함으로써 그룹을 생성하는 것을 포함할 것이며, 이어서 선택된 온톨로지 용어들의 각각을 연결하는 경로가 발견될 때까지 관련된 온톨로지 용어들을 계속 검사한다. 이러한 프로세스는, 온톨로지를 전체 온톨로지보다 쉽게 관리될 수 있지만 온톨로지의 구조와 공리를 여전히 유지하는 감소된 개수의 온톨로지 용어들로 간결화하는 것을 효과적으로 포함하므로, 때때로 간결화라 칭한다.
단계 120에서, 전자 처리 디바이스는, 온톨로지 용어들의 그룹 중 적어도 일부에 대하여 온톨로지 용어들 간의 정렬을 결정하고, 그 정렬은 온톨로지 용어들의 온톨로지 용어 의미에 따라 적어도 부분적으로 결정된다. 따라서, 전자 처리 디바이스는, 적어도, 하나의 온톨로지의 온톨로지 용어들의 의미를 검사하고, 다른 온톨로지의 등가의 온톨로지 용어들을 식별하려 한다. 따라서, 가장 간단한 레벨에서, 이는, 동일한 의미를 갖는 소스와 타겟 온톨로지 용어들을 식별하는 것을 포함할 수 있지만, 더욱 통상적으로, 소스 온톨로지 용어들 간의 관계들 및 또한 타겟 온톨로지 용어들 간의 관계들을 검사하여, 소스와 타겟 온톨로지 용어들이 다른 소스와 타겟 온톨로지 용어들과 유사한 관계들을 또한 갖는지 여부를 식별한다.
정렬이 일대일 매핑일 필요는 없으며, 하나의 온톨로지의 단일 온톨로지 용어가 다른 온톨로지의 다수의 온톨로지 용어들과 정렬될 수 있다는 점을 주목해야 한다. 예를 들어, 소스 온톨로지는 개인의 명칭을 단일 개념으로서 정의할 수 있는 한편, 타겟 온톨로지는 명칭과 성을 개별적인 개념들로서 정의할 수 있고, 이 경우, 콘텐츠는 소스로부터 타겟으로 전달됨에 따라 병합될 필요가 있다.
단계 130에서, 전자 처리 디바이스는 정렬에 따라 매핑을 생성하도록 동작한다. 매핑은, 온톨로지들 자체 간의 매핑을 나타낼 수 있고, 및/또는 타겟 온톨로지 용어들과 소스 온톨로지 용어들 간의 정렬에 기초하여 각 소스와 타겟 데이터 구조들의 소스 데이터 필드들과 타겟 데이터 필드들 간의 매핑을 나타낼 수 있다. 따라서, 예를 들어, 전자 처리 디바이스는, 소스 온톨로지 용어들에 대응하는 소스 데이터 필드들에 대하여 결정을 내릴 수 있고, 이어서, 정렬을 이용하여, 정렬된 타겟 온톨로지 용어들, 이에 따른 타겟 데이터 필드들에 대하여 결정을 내릴 수 있다. 이어서, 매핑은, 통상적으로, 데이터 전달시 후속 사용될 수 있도록, 매핑 파일, 인덱스, 표, 병합된 온톨로지 등의 형태로 저장된다.
이에 따라, 전술한 프로세스는, 2개의 온톨로지가 정렬될 수 있게 하며, 이러한 정렬을 매핑을 생성하는 데 이용한다. 매핑은, 서로 다른 온톨로지들의 온톨로지 용어들을 같게 하는 데 사용될 수 있고, 이는 다시 각 온톨로지들을 이용하여 소스 데이터 필드들을 타겟 데이터 필드들에 매핑하는 데 사용될 수 있다. 이 매핑은, 콘텐츠가 서로 다른 데이터 구조들을 갖는 데이터 저장소들 간에 전달되더라도 콘텐츠의 구조가 유지되는 것을 확실히 하는 데 일조하는 온톨로지들을 이용함으로써, 소스와 타겟 간에 콘텐츠를 전달하는 데 사용될 수 있다. 또한, 온톨로지들을 이용함으로써, 콘텐츠 전달시 전달되는 콘텐츠의 무결성이 유지되거나 개선되는 것을 확실히 하는 데, 예를 들어, 콘텐츠가 요구되는 정상적인 형태로 되어 있으며 심지어 필요시에는 정규화를 제공하는 것을 확실히 하는 데 일조할 수 있다. 따라서, 온톨로지들을 이용함으로써, 콘텐츠가 소스 데이터 소스로부터 타겟 데이터 저장소로 전달될 때 추가 관계 제한이 가해질 수 있어서, 소스 데이터 소스가 제3정상 형태로 저장되어 있지 않더라도, 전달시 제3정상 형태로 변환될 수 있다.
프로세스를 이용하여 소스와 타겟 데이터 구조들 간의 매핑을 생성하는 경우, 소스와 타겟 온톨로지들은, 갈렌(Galen) 온톨로지 등의 공식 생성된 온톨로지들 등의 이전에 정의된 온톨로지들(일반적으로, 정형화 온톨로지라 함)일 수 있고, 또는 대안으로, 데이터 구조 자체에 기초하여 생성된 추정 온톨로지들일 수 있다. 이는, 이제 도 1b를 참조하여 설명하듯이, 서로 다른 많은 매핑 관계들이 확립될 수 있게 한다.
이 예에서는, 각 소스와 타겟 데이터 구조들(S, T)을 갖는 소스와 타겟 데이터 저장소들이 도시되어 있다. 각 데이터 저장소는, 대응하는 정형화 온톨로지들(151, 161)도 존재하고 있는 대응하는 추정 온톨로지(150, 160)를 가질 수 있다. 이는 서로 다른 많은 매핑들이 확립될 수 있게 한다.
예를 들어, 매핑은, 추정 온톨로지들(150, 160) 간에 직접 생성될 수 있어서, 콘텐츠가 소스(S)와 타겟(T) 간에 직접 전달되게 할 수 있다.
또한 및/또는 대안으로, 매핑은, 전술한 기술들을 이용하여 추정 온톨로지(150, 160)와 대응하는 정형화 온톨로지(151, 161) 간에 생성될 수 있다. 이 프로세스는, 소스 또는 타겟 데이터 구조(S, T)에 기초하여 추정 온톨로지(150, 160)가 생성될 수 있게 하고 이어서 정형화 온톨로지(151, 161)에 실질적으로 자동 매핑될 수 있게 하며, 이에 따라 의미, 정의, 및 잠재적 관계를 추정 온톨로지(150, 160)의 온톨로지 용어들에 제공할 수 있다. 이 프로세스는, 또한, 각 데이터 구조들에 저장된 데이터를 정규화하는 데 사용될 수 있다.
온톨로지들(151, 161)이 동일한 경우, 추정 온톨로지들(150, 160)을 정형화 온톨로지들(151, 161)에 매핑함으로써, 콘텐츠가 소스(S)와 타겟(T) 간에 전달될 수 있다. 대안으로, 정형화 온톨로지들은, 또한, 추정 온톨로지와 정형화 온톨로지 간의 매핑이 가능하도록 정렬될 수 있고 이에 따라 다시 콘텐츠가 소스(S)와 타겟(T) 간에 전달될 수 있다.
따라서, 전술한 기술을 이용하여 온톨로지들 간에 매핑을 생성할 수 있으며, 다시 이러한 온톨로지들을 이용하여 소스와 타겟 데이터 구조 간에 매핑을 직접 확립할 수 있음을 인식할 것이다. 이는, 이질적 소스와 타겟 간의 콘텐츠 전달을 용이하게 하며, 이를 정형화 데이터 구조에 따라 수행될 수 있게 하며, 따라서 콘텐츠가 정규화된 형태로 제공되는 것을 확실히 한다. 따라서, 이는, 이질적 데이터 구조들 간의 콘텐츠 전달을 가능하게 할 뿐만 아니라 비정규화된 형태로 저장된 데이터에 연관된 문제점들을 극복하는 데에도 사용될 수 있다.
이제 다수의 추가 특징부들을 설명한다. 이러한 점에서, 전자 처리 디바이스는, 이제 추가로 설명하듯이, 통상적으로, 온톨로지들의 인덱스를 생성하고, 사용자들이 온톨로지들과 상호 작용하고, 온톨로지들을 정렬하고, 온톨로지들을 간결화하고, 온톨로지 용어들의 의미를 해석할 수 있게 하는 것을 포함한, 전술한 프로세스를 용이하게 하는 서로 다른 다수의 기능들을 수행하도록 적응된다.
전술한 바와 같이, 매핑은 임의의 형태로 될 수 있다. 매핑이 온톨로지들 간에 해당하는 경우, 이는, 더욱 상세히 후술하는 바와 같이, 병합된 온톨로지의 형태일 수 있고, 또는 대안으로, 정렬 인덱스일 수 있다.
관련된 온톨로지들은, 바람직한 구현예에 따라 추정 온톨로지들 및/또는 정형화 온톨로지들을 포함할 수 있다. 구체적인 일례로, 전자 처리 디바이스는 추정 온톨로지를 정형화 온톨로지에 매핑하기 위한 매핑을 생성한다.
전술한 바와 같이, 매핑은, 다수의 소스 데이터 필드들을 포함하는 소스 데이터 구조를 갖는 소스 데이터 저장소로부터 다수의 타겟 데이터 필드들을 포함하는 타겟 데이터 구조를 갖는 타겟 데이터 저장소로 콘텐츠를 전달하는 데 사용될 수 있고, 온톨로지들은 소스 데이터 구조 및 타겟 데이터 구조에 연관되고, 전자 처리 디바이스는, 매핑을 이용하여 소스 데이터 필드들과 타겟 데이터 필드들 간에 콘텐츠를 전달한다. 따라서, 온톨로지들은, 소스 데이터 구조에 연관된 소스 온톨로지 및 타겟 데이터 구조에 연관된 타겟 온톨로지를 포함할 수 있고, 소스와 타겟 온톨로지들은 하나 이상의 정형화 온톨로지들에 매핑된 추정 온톨로지들이다.
이에 따라, 전술한 프로세스에서, 전자 처리 디바이스는, 추정 온톨로지를 생성하거나 기존의 다수의 추정 또는 정형화 온톨로지들 중 하나를 선택함으로써 온톨로지를 결정할 수 있다.
전자 처리 디바이스는, 통상적으로, 소스 또는 타겟 데이터 구조에 연관된 또는 소스 또는 타겟 데이터 구조의 소스와 타겟 데이터 필드들에 연관된 메타데이터를 이용하여 소스 또는 타겟 온톨로지를 결정한다. 이 프로세스는, 추정 온톨로지를 생성하는 것 또는 기존의 다수의 온톨로지들 중 하나를 예를 들어 온톨로지 데이터베이스 등의 저장소에 저장된 온톨로지들로부터 선택하는 것을 포함할 수 있다. 후자의 경우, 전자 처리 디바이스는, 데이터 구조 데이터 필드들을 기존의 다수의 온톨로지들의 온톨로지 용어들과 비교할 수 있고 비교 결과에 따라 기존의 다수의 온톨로지들 중 하나를 선택할 수 있다.
대안으로, 예를 들어, 데이터베이스 스키마로부터 온톨로지를 생성하는 경우, 전자 처리 디바이스는, 통상적으로, 스키마의 표들을 식별하고, 각 표에 대응하는 온톨로지 용어를 생성하고, 적어도 하나의 물자표 테이블을 식별하고, 물자표 테이블의 각 엔트리에 대응하는 온톨로지 용어를 생성한다. 따라서, 이 프로세스는, 임의의 비정규화된 데이터베이스 표들의 콘텐츠를 검사하도록 동작하며, 이 표의 콘텐츠를 확장하여 추가 온톨로지 용어들을 식별한다. 이 프로세스의 일부로서, 전자 처리 디바이스는, 물자표 테이블의 각 엔트리에 대응하는 온톨로지 용어의 표시자를 표시할 수 있고 사용자 입력 커맨드에 응답하여 온톨로지 용어를 추정 온톨로지에 추가할 수 있다. 이는 필요하다면 사용자가 온톨로지 용어들의 생성을 오버라이드(override)하게 할 수 있다.
추정 온톨로지를 생성하는 경우, 전자 처리 디바이스는, 데이터베이스 스키마에 의해 정의된 표 구조를 이용하여 온톨로지 용어들 간의 관계들을 추가로 생성할 수 있다. 이 프로세스는, 전자 처리 디바이스가 온톨로지 용어들에 대응하는 클래스들, 클래스들 중 적어도 일부에 대한 데이터 특성들, 및 클래스들 간의 관계들을 정의하는 오브젝트 특성들을 포함하는 추정 온톨로지를 생성할 수 있게 한다.
일례로, 전자 처리 디바이스는 적어도 하나의 온톨로지에 대하여, 적어도 하나의 온톨로지의 온톨로지 용어들의 표시자를 포함하는 인덱스를 결정하고, 인덱스를 이용하여 온톨로지 용어들 간의 정렬 및 온톨로지 용어들의 그룹을 결정한다. 인덱스를 이용하는 것은 필수적인 것이 아니지만, 이는 전체 온톨로지의 이용에 비해 취급될 필요가 있는 데이터 양을 실질적으로 감소시키고, 이에 따라 검색, 그룹화(간결화) 및 정렬 프로세스들을 더욱 관리가능하게 한다.
인덱스는, 임의의 적절한 형태일 수 있지만, 통상적으로, 각 온톨로지 용어에 대하여, 온톨로지 용어의 명칭과 온톨로지 용어 의미의 표시자 및 온톨로지 용어 유형을 포함한다. 또한, 인덱스는, URI(Uniform Resource Identifier) 등의 형태를 취할 수 있는, 각 온톨로지의 온톨로지 용어에 대한 어드레스 등의 추가 정보를 포함할 수 있다.
전자 처리 디바이스는, 각 온톨로지 용어 대하여, 온톨로지 용어 명칭을 식별하고, 온톨로지 용어 유형을 식별하고, 시맨틱 매칭 프로세스를 이용하여 각 온톨로지 용어의 온톨로지 의미를 식별하고, 온톨로지 용어 명칭의 표시자, 온톨로지 용어 유형, 및 온톨로지 용어 의미를 포함하는 인덱스 엔트리를 생성함으로써, 인덱스를 생성한다.
일례로, 전자 처리 디바이스는 다수의 온톨로지들에 대한 단일 인덱스를 생성하고, 인덱스 엔트리는 온톨로지 용어에 연관된 온톨로지의 표시자를 포함하지만, 이는 필수적은 것은 아니며, 대안으로, 인덱싱되는 각 온톨로지에 대하여 별도의 인덱스를 이용할 수 있다.
전자 처리 디바이스는, 또한, 통상적으로, 온톨로지의 하나 이상의 온톨로지 용어들의 표시자를 표시하고, 사용자 입력 커맨드에 응답하여 적어도 하나의 온톨로지 용어를 식별하고, 식별된 적어도 하나의 온톨로지 용어에 연관된 데이터 특성 및 식별된 적어도 하나의 온톨로지 용어 중 적어도 하나의 상세를 표시하도록 적응된다. 따라서, 이는 사용자가 온톨로지들을 검색할 수 있게 하고 내부에 정의된 온톨로지 용어들의 상세를 볼 수 있게 한다. 이는, 사용자들이 정확한 온톨로지들이 사용되고 있는지 여부를 평가하게 하고, 온톨로지들의 범위를 이해하게 하고, 서로 다른 온톨로지 용어들 간의 관계들을 탐구하게 하고, 소스 또는 타겟 데이터 구조가 어떻게 온톨로지들에 관련되는지를 평가하게 하는 데 유용할 수 있다.
전자 처리 디바이스는, 통상적으로, 온톨로지 인덱스를 이용하여 하나 이상의 온톨로지 용어들의 표시자를 결정한다. 따라서, 인덱스는 전자 처리 디바이스가 온톨로지 용어들의 리스트를 표시하고 후속하여 선택된 온톨로지 용어들에 연관된 데이터 특성들을 탐구하기 위한 빠른 기구를 제공한다는 점을 인식할 것이다.
전자 처리 디바이스는, 통상적으로, 사용자 입력 커맨드에 응답하여 사용자 선택 온톨로지 용어들 및 대응하는 사용자 선택 데이터 특성들을 결정하도록 적응된다. 이는, 선택된 온톨로지 용어들과 데이터 특성들의 상세를 표시할 수 있게 하고 또한 전자 처리 디바이스가 실행가능 코드를 생성할 수 있게 하는 데에도 이용될 수 있다. 실행가능 코드는, 사용자 선택 온톨로지 용어들과 데이터 특성들에 기초하여, 컴퓨터 시스템에서 실행시, 사용자가 사용자 선택 온톨로지 용어들에 대응하는 데이터 구조를 갖는 데이터 저장소에 저장된 콘텐츠와 상호 작용할 수 있게 하는 사용자 인터페이스를 컴퓨터 시스템이 표시하게 한다. 따라서, 이는, 사용자가 콘텐츠와 상호 작용할 수 있고 후속하여 콘텐츠를 각 소스 및/또는 타겟 데이터 구조들로부터 익스포트(export)하고 및/또는 각 소스 및/또는 타겟 데이터 구조들에 임포트(import)할 수 있게 하는 인터페이스를 표시하는 데 사용될 수 있는 코드를 전자 처리 디바이스가 자동 생성할 수 있게 하는 기구를 제공한다.
따라서, 이는 사용자가 온톨로지 내의 온톨로지 용어들을 검색한 후 데이터 구조의 데이터 필드들에 대응하는 온톨로지 용어들을 선택할 수 있게 한다는 점을 인식할 것이다. 이어서, 이는, 사용자가 데이터 구조 내에 저장된 콘텐츠와 상호 작용할 수 있게 하는 인터페이스로서 기능할 수 있는 코드가 생성될 수 있게 한다.
일례로, 실행가능 코드는, 예를 들어, SPARQL(SPARQL Protocol and RDF Query Language)을 사용하여 예를 들어 콘텐츠를 질의하고 회수(retrieve)함으로써, 소스 또는 타겟 온톨로지에 따라 소스 또는 타겟 데이터 구조에 저장된 데이터와 상호 작용하기 위한 질의들을 컴퓨터 시스템이 생성하게 한다. 이는, 데이터베이스에 대한 인터페이스로서 기능할 수 있는 컴퓨터 소프트웨어를 빠르게 효율적으로 사용하기 위한 기구를 제공한다. 게다가, 이것은, 온톨로지들에 기초하여 생성되기 때문에, 온톨로지 내에 정의된 관계들을 코드의 구조 내로 집적할 수 있어서, 질의를 야기할 수 있다. 따라서, 이것은, 컴퓨터 시스템이 사용자에 의해 선택된 온톨로지 용어들 간의 관계들 또는 데이터 특성들에 따라 질의들을 생성하게 할 수 있다.
이를 달성하도록, 컴퓨터 시스템은, 통상적으로, 예를 들어 소스 또는 타겟 온톨로지로부터 하나 이상의 온톨로지 용어들의 표시자를 표시하고, 사용자 입력 커맨드에 응답하여 적어도 하나의 온톨로지 용어의 선택을 결정하고, 대응하는 데이터 필드에 저장된 데이터를 질의한다.
온톨로지 용어들에 대한 의미를 결정하고 서로 다른 온톨로지 용어들의 의미의 유사성을 비교하도록, 전자 처리 디바이스는 통상적으로 시맨틱 매칭을 수행하도록 적응된다. 이는, 통상적으로, 온톨로지 용어를 예를 들어 콘텐츠 매칭 데이터베이스 등의 참조 데이터베이스에 저장되어 있는 다수의 잠재적인 온톨로지 용어 의미들과 비교하는 것, 및 비교 결과에 따라 잠재적 온톨로지 용어 의미들 중 하나를 온톨로지 용어 의미로서 선택하는 것을 포함한다.
이를 달성하도록, 전자 처리 디바이스는, 각 비교 결과에 대한 매칭 점수를 생성하고 매칭 점수들에 따라 온톨로지 용어 의미를 결정함으로써, 온톨로지 용어 의미를 결정한다. 매칭 점수의 결정시, 전자 처리 디바이스는, 잠재적 온톨로지 용어 의미가 고려 중인 온톨로지 용어의 동의어, 반의어, 부분어, 수퍼클래스, 및 서브클래스 중 적어도 하나인지 여부를 결정한다.
일단 온톨로지 용어 의미가 생성되었다면, 온톨로지 용어 의미의 표시자는 통상적으로 인덱스의 일부로서 저장되고, 그 표시자는 정의된 의미를 나타내는 식별자 및 등가 의미들의 리스트 중 적어도 하나를 포함한다. 따라서, 고유한 단일 식별자가 다수의 서로 다른 온톨로지들 내의 각각의 고유한 개념에 할당될 수 있어서, 서로 다른 온톨로지들에 걸쳐 공통 식별자들에 의해 공통 의미들이 식별될 수 있다. 식별자는, 바람직한 구현예에 따라 고유한 영숫자 코드, 부명제, 루트 단어(root word) 등일 수 있다. 이는, 등가이며 이에 따라 정렬된 온톨로지 용어들을 식별하는 프로세스를 더욱 쉽게 한다.
유사하게, 전자 처리 디바이스는, 통상적으로, 다수의 온톨로지 용어들의 온톨로지 용어 의미들을 비교하고, 각 비교 결과에 대한 매칭 점수를 생성하고, 매칭 점수들에 따라 정렬을 결정함으로써, 온톨로지 용어들 간의 정렬을 결정한다. 더욱 통상적으로, 전자 처리 디바이스는, 또한, 온톨로지 용어들 간의 관계들 또는 온톨로지 용어들의 데이터 특성들에 기초하여 정렬을 결정한다. 따라서, 이는, 정렬이 존재하는지 여부를 결정하도록 용어들의 절대적 의미를 고려할 뿐만 아니라 온톨로지들의 상대 구조들도 고려한다. 따라서, 전자 처리 디바이스는, 소스 온톨로지 용어들 간의 관계들을 결정할 수 있고, 타겟 온톨로지 용어들 간의 관계들을 결정할 수 있고, 그 관계들을 비교할 수 있고, 비교 결과에 따라 소스와 타겟 온톨로지 용어들 간의 정렬을 결정할 수 있다.
전자 처리 디바이스는, 통상적으로, 소스 온톨로지로부터의 하나 이상의 소스 온톨로지 용어들과 타겟 온톨로지로부터의 하나 이상의 타겟 온톨로지 용어들 간의 정렬을 결정하며, 이에 따라 일대일, 다대일, 및 일대다 관계들을 포함할 수 있다.
전술한 바와 같이, 전자 처리 디바이스는, 예를 들어, 현재 응용분야에 대하여 미사용되거나 관련이 없는 온톨로지 용어들이 제거되고 현재 상황에 관련된 온톨로지 용어들만이 남을 수 있도록 온톨로지를 간결화함으로써, 온톨로지 용어들의 그룹을 결정할 수 있다. 일례로, 이는, 선택된 온톨로지 용어들을 결정하고 이어서 온톨로지 용어들 간의 관계들과 선택된 온톨로지 용어들에 따라 온톨로지 용어들의 그룹을 적어도 부분적으로 결정함으로써, 달성된다.
따라서, 각각의 선택된 온톨로지 용어에 대하여, 전자 처리 디바이스는, 다수의 서로 다른 유형의 관계들의 각각에 대하여 정의된 관계 경로 길이 내의 온톨로지 용어들을 식별하고, 식별된 온톨로지 용어들을 소스 온톨로지 용어들의 그룹에 추가한다. 이 프로세스는, 예를 들어 모든 선택된 온톨로지 용어들이 관계들에 연결될 때까지 등의 원하는 최종점에 도달할 때까지 전자 처리 디바이스가 식별된 온톨로지 용어들을 반복적으로 추가하도록 반복적으로 수행될 수 있다. 이 프로세스는, 이어서, 온톨로지 내의 관계들이 온톨로지 정렬, 매핑 생성 등의 다른 프로세스들에서 보존 및 사용될 수 있게 하는 관련된 온톨로지 용어들의 그룹을 확립한다.
위 프로세스의 일부로서, 다수의 서로 다른 관계들은, 선택된 온톨로지 용어들 모두 간의 경로들을 확립하도록 검사될 수 있고, 전자 처리 디바이스는 서로 다른 유형의 관계들에 대하여 서로 다른 관계 경로 길이를 선택적으로 이용한다. 따라서, 예를 들어, 일부 유형의 관계들은, 더욱 중요하게 여겨지며, 따라서, 통상적으로, 관련 온톨로지 용어들의 식별시 더욱 긴 경로 길이를 제공받는다. 일례로, 경로 길이(들)는 사용자에 의해 정의될 수 있어서, 그룹 생성을 제어하는 데 있어서 수동 간섭을 이용할 수 있다.
일례로, 전술한 프로세스가 수행될 수 있도록, 다수의 서로 다른 도구들을 사용하여 매핑 생성 및 온톨로지 관리를 보조할 수 있다. 일례로, 도구들은, 온톨로지와 데이터 관리 도구들의 집적 패키지를 형성하는 소프트웨어 스위트(suite)의 일부로서 제공된다. 일례로, 도구들은, 온톨로지의 온톨로지 용어들을 나타내는 인덱스를 생성하는 인덱서 모듈, 온톨로지의 온톨로지 용어들을 검색할 수 있고 온톨로지의 적어도 일부를 구체화하고 온톨로지에 따라 사용자가 데이터 구조에 저장되어 있는 데이터와 상호 작용할 수 있게 하는 코드를 생성하는 브라우저 모듈, 서로 다른 온톨로지들의 온톨로지 용어들 간의 정렬을 결정하는 정렬기 모듈, 온톨로지 용어들 간의 관계들을 이용하여 적어도 하나의 온톨로지 내의 온톨로지 용어들의 그룹을 적어도 부분적으로 결정하는 간결화기 모듈, 및 온톨로지 용어 의미들을 식별하는 시맨틱 매처 모듈을 포함한다. 그러나, 각 모듈의 사용은 필수적인 것이 아니며, 다른 구조를 이용할 수 있다.
일례로, 프로세스들은, 적절히 프로그래밍된 컴퓨터 시스템 등의 처리 시스템을 이용하여 적어도 부분적으로 수행될 수 있다. 이는, 전술한 방법이 수행될 수 있게 하는 애플리케이션 소프트웨어를 실행하는 마이크로프로세서를 갖는 독립형 컴퓨터에서 수행될 수 있다. 대안으로, 프로세스는 분산형 아키텍처의 일부로서 동작하는 하나 이상의 처리 시스템에 의해 수행될 수 있으며, 그 일부를 이제 도 2를 참조하여 설명한다.
이 예에서, 두 개의 기지국들(201)은, 인터넷(202) 및/또는 다수의 LAN(204) 등의 통신 네트워크를 통해 다수의 컴퓨터 시스템들(203)에 결합된다. 네트워크들(202, 204)의 구성은 일례일 뿐이며, 실제로는 기지국(201)이고, 컴퓨터 시스템들(203)은, 802.11 네트워크, 인터넷, LAN, WAN 등의 이동형 네트워크, 전용 네트워크를 포함하지만 이에 한정되지는 않는 유선 연결부 또는 무선 연결부 등의 임의의 적절한 기구를 통해, 또한 블루투스 등의 직접적 연결부나 점대점 연결부를 통해 통신할 수 있음을 인식할 것이다.
일례로, 각 기지국(201)은 데이터베이스(211)에 결합된 처리 시스템(210)을 포함한다. 기지국(201)은, 온톨로지들을 관리하는 데 사용되도록, 예를 들어, 간결화 또는 정렬을 수행하도록, 또한, 예를 들어 콘텐츠를 소스와 타겟 데이터 저장소들 간에 전달하는 데 사용하기 위한 매핑들을 생성하도록 적응된다. 컴퓨터 시스템들(203)은, 매핑 생성 등의 프로세스들을 제어하게끔 기지국들(201)과 통신하도록 적응될 수 있지만, 이는 필수적인 것은 아니며, 프로세스는 기지국들(201)을 통해 직접 제어될 수 있다.
각 기지국(201)은 단일 엔티티로서 도시되어 있지만, 예를 들어, 클라우드 기반 환경의 일부로서 제공되는 처리 시스템(210) 및/또는 데이터베이스(211)를 이용함으로써, 지리적으로 개별적인 다수의 위치에 걸쳐 기지국(201)이 분산될 수 있음을 인식할 것이다. 이러한 점에서, 다수의 기지국들(201)이 제공될 수 있으며, 각 기지국은 각 데이터 저장소 또는 온톨로지에 연관되지만, 대안으로, 데이터 저장소들이 컴퓨터 시스템(203)과 연관될 수 있다.
그러나, 전술한 구조는 필수적인 것은 아니며, 다른 적절한 구성을 이용할 수 있다. 예를 들어, 프로세스들은 독립형 컴퓨터 시스템에서 수행될 수 있다.
적절한 처리 시스템(210)의 일례가 도 3에 도시되어 있다. 이 예에서, 처리 시스템(210)은, 도시한 바와 같이 버스(304)를 통해 상호 접속된, 적어도 하나의 마이크로프로세서(300), 메모리(301), 키보드 및/또는 디스플레이 등의 입력/출력 디바이스(302), 및 외부 인터페이스(303)를 포함한다. 이 예에서, 외부 인터페이스(303)는, 처리 시스템(210)을 통신 네트워크들(202, 204), 데이터베이스(211), 기타 저장 디바이스 등의 주변 디바이스들에 접속하는 데 이용될 수 있다. 단일 외부 인터페이스(303)가 도시되어 있지만, 이는 일례일 뿐이며, 실제로는, 다양한 방법들(예를 들어, 이더넷, 직렬, USB, 무선 등)을 이용하는 다수의 인터페이스들을 제공할 수 있다.
사용시, 마이크로프로세서(300)는, 인덱스 생성, 매핑 및 데이터 베이스(211)로의/로부터의 콘텐츠 전달이 수행될 수 있도록 또한 컴퓨터 시스템들(203)과 통신하도록 메모리(301)에 저장된 애플리케이션 소프트웨어의 형태인 명령어를 실행한다. 애플리케이션 소프트웨어는, 하나 이상의 소프트웨어 모듈을 포함할 수 있고, 운영 체제 환경 등의 적절한 실행 환경에서 실행될 수 있다.
이에 따라, 처리 시스템(210)은 적절히 프로그래밍된 컴퓨터 시스템, PC, DBMS를 실행하는 데이터베이스 서버, 웹 서버, 네트워크 서버 등의 임의의 적절한 처리 시스템으로부터 형성될 수 있다는 점을 인식할 것이다. 구체적인 일례로, 처리 시스템(210)은, 비휘발성(예를 들어, 하드 디스크) 저장 장치에 저장된 소프트웨어 애플리케이션들을 실행하는 32비트 또는 64비트 인텔 아키텍처 기반 처리 시스템 등의 표준 처리 시스템이지만, 이는 필수적은 것은 아니다. 그러나, 또한, 처리 시스템이 마이크로프로세서, 마이크로칩 프로세서, 로직 게이트 구성, FPGA(Field Programmable Gate Array) 등의 로직 구현에 선택적으로 연관된 펌웨어 등의 임의의 전자 처리 디바이스, 또는 다른 임의의 전자 디바이스, 시스템, 또는 구조일 수 있음을 이해할 것이다.
도 4에 도시한 바와 같이, 일례로, 컴퓨터 시스템(203)은, 도시한 바와 같이 버스(404)를 통해 상호 접속된, 적어도 하나의 마이크로프로세서(400), 메모리(401), 키보드 및/또는 디스플레이 등의 입력/출력 디바이스(402), 및 외부 인터페이스(403)를 포함한다. 이 예에서, 외부 인터페이스(403)는, 컴퓨터 시스템(203)을 통신 네트워크들(202, 204), 데이터베이스들(211), 다른 저장 디바이스들 등의 주변 디바이스들에 접속하는 데 이용될 수 있다. 단일 외부 인터페이스(403)가 도시되어 있지만, 이는 일례일 뿐이며, 실제로는, 다양한 방법들(예를 들어, 이더넷, 직렬, USB, 무선 등)을 이용하는 다수의 인터페이스들을 제공할 수 있다.
사용시, 마이크로프로세서(400)는, 기지국(201)과 통신할 수 있도록, 예를 들어, 조작자가 제어 입력을 제공할 수 있도록 메모리(401)에 저장된 애플리케이션 소프트웨어의 형태인 명령어를 실행한다.
이에 따라, 컴퓨터 시스템들(203)은 적절히 프로그래밍된 PC, 인터넷 단말, 랩탑, 핸드헬드 PC, 스마트폰, PDA, 웹 서버 등의 임의의 적절한 처리 시스템으로부터 형성될 수 있음을 인식할 것이다. 따라서, 일례로, 처리 시스템(100)은, 비휘발성(예를 들어, 하드 디스크) 저장 장치에 저장된 소프트웨어 애플리케이션들을 실행하는 32비트 또는 64비트 인텔 아키텍처 기반 처리 시스템 등의 표준 처리 시스템이지만, 이는 필수적은 것은 아니다. 그러나, 또한, 컴퓨터 시스템(203)이 마이크로프로세서, 마이크로칩 프로세서, 로직 게이트 구성, FPGA(Field Programmable Gate Array) 등의 로직 구현에 선택적으로 연관된 펌웨어 등의 임의의 전자 처리 디바이스, 또는 다른 임의의 전자 디바이스, 시스템, 또는 구조일 수 있음을 이해할 것이다.
이제, 온톨로지들의 정렬과 간결화를 포함한 매핑 생성, 검색, 온톨로지의 인덱싱 및 온톨로지와의 상호 작용을 행하는 시스템의 동작의 예들을 더욱 상세히 설명한다.
이러한 예들을 위해, 기지국(201)의 처리 시스템(210)은 처리 시스템(210)에 의해 수행되는 액션들에 의해 프로세스들을 수행하기 위한 애플리케이션 소프트웨어를 호스팅한다고 가정하며, 그 액션들은, 메모리(301)의 애플리케이션 소프트웨어로서 저장된 명령어 및/또는 I/O 디바이스(302)를 통해 사용자로부터 수신되는 입력 커맨드 또는 컴퓨터 시스템(203)으로부터 수신되는 커맨드에 따라 프로세서(300)에 의해 수행된다. 이러한 점에서, 다음에 따르는 예들을 위해, 처리 시스템(210)은, 인덱서 모듈, 브라우저 모듈, 정렬기 모듈, 간결화기 모듈, 시맨틱 매처 모듈, 및 ETL 모듈을 포함한 다수의 모듈들을 갖는 애플리케이션 소프트웨어를 실행한다. 그러나, 각 모듈들의 사용은 필수적은 것은 아니며, 다른 구조를 이용할 수 있다.
또한, 사용자는 입력/출력 디바이스(302) 또는 컴퓨터 시스템(203) 상에 제시되는 GUI 등을 통해 처리 시스템(210)에 의해 실행되는 애플리케이션 소프트웨어와 상호 작용한다고 가정한다. 컴퓨터 시스템(203)에 의해 수행되는 액션들은, 메모리(401)의 애플리케이션 소프트웨어로서 저장된 명령어 및/또는 I/O 디바이스(402)를 통해 사용자로부터 수신되는 입력 커맨드에 따라 프로세서(400)에 의해 수행된다. 기지국(201)은, 통상적으로, 이용가능한 구체적인 네트워크 인프라스트럭처를 통해 컴퓨터 시스템(203)과 통신하는 서버이며, 예를 들어, 하나 이상의 컴퓨터 시스템들(203)의 사용자들을 위해 데이터베이스(211)와 상호 작용하는 엔터프라이즈 서버의 형태일 수 있다.
그러나, 전술한 구성들은 예일 뿐이며 한정적인 것이 아니며, 따라서, 실제로는, 임의의 데이터베이스 관리 시스템을 이용할 수 있음을 인식할 것이다. 또한, 컴퓨터 시스템(203)과 기지국(201) 간의 기능의 파티셔닝(partitioning)이 구체적인 구현예에 따라 가변될 수 있음을 인식할 것이다.
이제, 매핑을 결정하고 매핑을 이용하여 콘텐츠를 소스로부터 타겟으로 전달하는 프로세스의 개요를 도 5를 참조하여 설명한다. 이 예를 위해, 처리 시스템(210)이 서로 다른 기능을 제공하기 위한 다수의 서로 다른 모듈들을 구현한다고 가정한다.
이 예에서, 단계 500에서, 처리 시스템(210)은, 소스와 타겟 데이터 구조들을 이용하여 소스와 타겟 온톨로지들을 식별한다. 이는, 임의의 방식으로 달성될 수 있지만, 통상적으로, 소스와 타겟 데이터 저장소들에 대한 소스와 타겟 데이터 구조들에 기초하여 추정 온톨로지를 생성하는 것을 포함한다. 예를 들어, 서로 다른 소스와 타겟 데이터 필드들의 명칭들은, 온톨로지 용어들 간의 관계들이 소스와 타겟 데이터 구조들의 관계들로부터 식별됨으로써, 온톨로지 용어들과 같아질 수 있다. 추정 온톨로지들을 생성하는 프로세스의 구체적인 예를 도 6을 참조하여 더욱 상세히 설명한다.
단계 510에서, 인덱서 모듈은 소스와 타겟 온톨로지들의 인덱스를 결정한다. 인덱스는, 통상적으로, 각 온톨로지 용어, 온톨로지 용어가 알려져 있다면 연관된 온톨로지 용어 유형, 및 또한 선택적인 온톨로지 용어 의미를 나타내는 엔트리를 포함하는 리스트의 형태로 된 것이다. 이러한 점에서, 온톨로지 용어 의미들은, 통상적으로, 온톨로지 용어를 개념 매치 데이터베이스와 비교하고 비교 결과를 이용하여 인덱스의 각 온톨로지 용어에 대한 의미를 식별하는 단계 520에서 시맨틱 매처 모듈에 의해 결정된다.
단계 530에서, 브라우저 모듈은, 온톨로지를 검색하고 소스 또는 타겟 온톨로지 용어들을 선택하는 데 사용된다. 이것은, 사용자가 통상적으로 소스 데이터 저장소로부터 추출되거나 타겟 데이터 저장소로 임포트되는 콘텐츠에 대응하는 관심 대상인 그러한 온톨로지 용어들을 선택할 수 있게 한다.
이어서, 선택된 온톨로지 용어들은, 단계 540에서, 각 데이터 구조에 따라 브라우저 모듈이 데이터 저장소에 저장되어 있는 콘텐츠와 상호 작용하기 위한 코드를 생성할 수 있도록 사용될 수 있다. 구체적으로, 이는, 더욱 상세히 후술하는 바와 같이, 데이터 구조의 데이터 필드들을 리뷰하고, 추출될/임포트될 콘텐츠를 선택하고, 이어서 추출/임포트를 수행하는 데 필요한 질의들을 생성하도록 사용자가 이용할 수 있는 사용자 인터페이스를 컴퓨터 시스템이 생성할 수 있게 하는 코드를 포함할 수 있다.
대안으로, 단계 550에서, 선택된 온톨로지 용어들은, 소스 및/또는 타겟 온톨로지를 간결화하는 간결화기 모듈에 의해 사용된다. 구체적으로, 이는 사용자가 관심을 갖는 온톨로지의 부분들만을 선택할 수 있게 하며, 이어서, 더욱 상세히 후술하는 바와 같이, 처리 시스템(210)은 선택된 온톨로지 용어들 간의 관계들을 유지하는 데 필요한 추가 온톨로지 용어들을 선택한다.
일단 온톨로지들 중 하나 이상이 간결화되었다면, 단계 560에서, 처리 시스템(210)은 정렬기 모듈을 사용하여 소스와 타겟 온톨로지들을 정렬한다. 이것은, 소스 온톨로지 용어들 중 하나 이상과 타겟 온톨로지 용어들 중 하나 이상 간의 대응을 식별하고, 이에 따라 단계 570에서 소스와 타겟 데이터 구조들 간의 매핑이 결정될 수 있게 하고, 이러한 매핑은 콘텐츠를 소스 데이터 저장소로부터 타겟 데이터 저장소로 전달하도록 브라우저 모듈에 의해 생성된 코드와 함께 사용될 수 있다.
이제, 데이터베이스 스키마 등의 데이터 구조로부터 추정 온톨로지를 생성하는 프로세스의 일례를 도 6을 참조하여 설명한다.
이 예는 관계형 데이터베이스에 대한 추정 온톨로지를 생성하는 데 특정된 것이지만, 유사한 개념을 다른 데이터 구조에 적용할 수 있으며, 이 예는 예시일 뿐이며 한정적인 것이 아니라는 점을 인식할 것이다.
이 예에서, 단계 600에서, 처리 시스템(210)은, 데이터베이스의 각 표를, 통상적으로, 이 정보를 데이터베이스 스키마를 정의하는 메타데이터로부터 추출함으로써 결정한다. 단계 610에서, 처리 시스템(210)은 데이터베이스의 각 표에 대응하는 클래스를 정의한다. 이러한 점에서, 클래스라는 용어는, 더욱 상세히 후술하는 바와 같이, 온톨로지 내의 개념에 대응하는 특정 온톨로지 용어를 가리킨다.
단계 620에서, 처리 시스템(210)은 BOM(물자표; Bill Of Materials) 구조 또는 유형 구조를 갖는 임의의 데이터베이스 표들을 식별한다. 이러한 점에서, BOM 표은, 두 개의 "일대다" 관계를 갖고, 항목, 오브젝트, 또는 물품을 구성하는 모든 부분들을 열거하는 데 사용된다. 유형 구조는, 하나의 "다대일" 관계를 갖고, 관련 표의 값들의 범위를 한정하는 데 사용되는 하나의 관련 속성이나 컬럼만을 갖는다. 이러한 표들은, 데이터를 비정규화하는 데 종종 사용되며, 따라서, 각 온톨로지 용어를 각각 나타내어야 하는 많은 개념들이나 클래스들을 포함할 수 있다. 이에 따라, 단계 630에서, 처리 시스템은, 각 유형 표와 각 BOM 표를 확장하여 표의 고유한 각 엔트리에 대응하는 추가 클래스들을 정의한다.
단계 640에서, 처리 시스템(210)은, 유형 또는 BOM 표 내에서 식별된 각 클래스를 선택적으로 표시하여, 클래스가 단계 650에서 유지되어야 하는지 여부를 사용자가 확인할 수 있게 한다. 유형 또는 BOM 클래스는, 유지되지 않아야 한다고 확인되면, 단계 660에서 제거된다.
일단 관련 BOM 클래스들이 선택되었다면, 처리 시스템(210)은 데이터베이스 스키마에 기초하여 관계와 속성(데이터 오브젝트와 데이터 특성이라고도 함)을 정의한다. 따라서, 표 구조는 식별된 클래스들 간의 관계를 식별하는 데 사용될 수 있는 한편, 표들의 데이터 필드들은 클래스들의 속성들을 식별하는 데 사용된다. 이어서, 관계와 속성은 온톨로지의 오브젝트 특성과 데이터 특성을 정의하는 데 사용되며, 이에 따라 단계 680에서 추정 온톨로지가 예를 들어 온톨로지 데이터베이스에서 생성 및 세이브될 수 있다.
따라서, 이는 데이터베이스, 구조화 파일 등의 데이터 저장소의 데이터 구조의 분석만으로 실질적으로 자동화된 방식으로 추정 온톨로지가 생성될 수 있게 한다. 이어서, 추정 온톨로지 내의 서로 다른 클래스들에 대한 의미를 정의할 필요가 있는 경우, 추정 온톨로지는, 더욱 상세히 후술하는 바와 같이, 정형화된 온톨로지와 정렬될 수 있다.
이제, 인덱스를 생성하는 프로세스의 일례를 도 7을 참조하여 설명한다.
이 예에서, 단계 700에서, 인덱서 모듈은 관심을 갖는 온톨로지를 결정한다. 이는, 예를 들어, 브라우저 모듈을 통해 공급되는 사용자 입력 커맨드에 기초하여 결정될 수 있고, 또는 인덱스를 요구하는 다른 모듈로부터 수신될 수 있다. 예를 들어, 추정 온톨로지를 생성한 ETL 모듈은, 이를 인덱싱할 것을 요구할 수 있고, 온톨로지의 표시자를 인덱서 모듈에 제공할 수 있으며, 또는 대안으로, 간결화기 모듈이, 간결화가 온톨로지에 대하여 수행될 수 있게 하는 인덱스를 요구할 수 있다.
단계 705에서, 인덱서 모듈은, 온톨로지를 통상적으로 인덱스 데이터베이스에 저장되어 있는 하나 이상의 기존의 인덱스와 비교하고, 인덱스가 이미 존재하고 있는지 여부를 결정한다. 이는, 온톨로지 명칭 및/또는 어드레스 등의 온톨로지에 연관된 메타데이터를 인덱스에 연관된 대응하는 정보와 비교함으로써, 또는 대안으로, 하나 이상의 온톨로지 용어들을 기존의 인덱스의 온톨로지 용어들과 비교함으로써, 달성될 수 있다.
단계 710에서 인덱스가 존재한다고 결정되면, 단계 715에서, 예를 들어, 인덱스를 그 인덱스를 요구한 모듈에 제공함으로써, 인덱스가 제공된다. 인덱스가 존재하지 않는다고 결정되면, 인덱스를 생성해야 하며, 이 경우, 단계 720에서, 인덱서 모듈은, 다음 온톨로지 용어를 선택하고, 이어서, 단계 725에서 통상적으로 URI(Uniform Resource Identifier) 등을 나타내는 온톨로지 용어 어드레스, 온톨로지 용어 유형, 온톨로지 용어 명칭의 표시자를 포함하는 인덱스 엔트리를 생성한다. 단계 730에서, 인덱서 모듈은, 더욱 상세히 후술하는 바와 같이, 시맨틱 매처 모듈로부터 온톨로지 용어에 대한 시맨틱 의미를 취득하여, 인덱스 엔트리에 추가한다.
단계 735에서, 인덱서 모듈은, 모든 온톨로지 용어들이 완료되었는지 여부를 결정하고, 완료되지 않았다면, 프로세스가 단계 720으로 리턴하여, 다음 온톨로지가 선택될 수 있게 한다. 완료되었다면, 단계 740에서, 인덱스가 저장되고 다른 모듈에 선택적으로 제공된다.
이제, 온톨로지를 검색하는 프로세스의 일례를 도 8을 참조하여 설명한다.
이 예에서, 단계 800에서, 브라우저 모듈은, 온톨로지 인덱스를 이용하여, 선택된 온톨로지에 대한 온톨로지 용어 리스트를 생성한다. 이에 따라, 이 프로세스의 일부로서, 브라우저 모듈은 예를 들어, 선택된 온톨로지의 아이덴티티에 기초하여 인덱서 모듈로부터의 온톨로지 인덱스를 요구할 수 있다. 이어서, 온톨로지 용어 리스트는 적절한 GUI(graphical user interface)를 통해 사용자에게 표시될 수 있다.
단계 805에서, 사용자는, 사용자가 관심을 갖는 하나 이상의 온톨로지 용어들을 태그한 후, 단계 810에서 보고자 하는 다음 온톨로지 용어를 선택하며, 이는 단계 815에서 브라우저 모듈이 선택된 온톨로지 용어에 대한 데이터 특성들을 포함한 온톨로지 용어 스크린을 표시할 수 있게 한다. 이러한 점에서, 데이터 특성들은 온톨로지의 일부로서 정의되는 온톨로지 용어의 속성들에 대응한다.
단계 820에서, 브라우저 모듈은, 탐색 옵션이 사용자에 의해 선택되었는지 여부를 결정하고, 이 경우, 사용자는 단계 825에서 데이터 특성들의 데이터 필드들에 탐색 용어들을 입력한다. 이어서, 브라우저 모듈은, 단계 830에서, 각 온톨로지 용어 데이터 특성들에 연관된 데이터의 질의를 생성 및 수행하고, 그 결과를 사용자에게 리턴 및 표시한다. 따라서, 이 프로세스는, 사용자가 대응하는 소스 또는 타겟 데이터 저장소의 각 데이터 특성들에 연관되는 콘텐츠를 리뷰할 수 있게 하고, 이에 따라 온톨로지 용어 및 연관된 데이터 특성들이 관심 대상인지 여부를 사용자가 확인할 수 있게 한다.
일단 탐색이 수행되었다면 또는 탐색이 수행되지 않는 경우에, 사용자는 단계 835에서 관심을 갖는 하나 이상의 데이터 특성들을 태그한다. 따라서, 이 프로세스는, 사용자가 온톨로지 용어들 및 연관된 데이터 특성들을 리뷰할 수 있게 하고 이어서 이들을 태그함으로써 관심을 갖는 온톨로지 용어들 및 데이터 특성들을 선택할 수 있게 한다.
단계 840에서, 온톨로지 용어들은, 사용자가 관심을 갖는 온톨로지 용어들과 데이터 특성들이 모두 선택되었는지 여부를 결정하도록 리뷰된다. 모두 선택되지 않은 경우, 프로세스는 추가 온톨로지 용어들을 리뷰할 수 있는 단계 810으로 리턴한다.
모두 선택되었다면, 단계 845에서, 브라우저 모듈은, 태그된 온톨로지 용어들 및 연관된 데이터 특성들을 선택하여, 이들이 단계 850의 간결화 수행 또는 단계 855의 애플리케이션 생성 등의 다른 프로세스들에서 사용될 수 있게 한다. 이러한 점에서, 애플리케이션 생성은 실행가능 코드를 생성하기 위한 스크립트 등의 사용을 포함하며, 실행가능 코드는, 더욱 상세히 후술하는 바와 같이, 컴퓨터 시스템에서 실행시, 선택된 온톨로지 용어들 또는 데이터 특성들에 대응하는 소스 또는 타겟의 필드들의 콘텐츠와 상호 작용하기 위한 사용자 인터페이스를 컴퓨터 시스템이 표시할 수 있게 한다.
따라서, 전술한 프로세스는, 사용자가 온톨로지 용어들 및 연관된 데이터 특성들을 검색하여 이들 중 어느 것이 소스로부터 익스포트하거나 타겟으로 임포트하고자 하는 콘텐츠에 관한 관심 대상인지를 식별할 수 있도록 이용될 수 있다.
이제, 온톨로지를 간결화하는 프로세스의 일례를 도 9를 참조하여 설명한다.
이 예에서, 단계 900에서, 선택된 온톨로지 용어들은 간결화 프로세스를 위한 시드로서 추가된다. 이어서, 시드 온톨로지 용어들을 상호 접속하는 경로가 식별될 때까지 반복 프로세스를 수행하여 시드 온톨로지 용어들에 관한 온톨로지 용어들을 반복적으로 탐구한다. 이를 달성하도록, 단계 905에서, 서로 다른 유형의 관계들 및 연관된 디폴트 경로 길이들을 표시한다. 이러한 점에서, 온톨로지 용어들은, 부모, 자식, 형제자매 등의 서로 다른 유형의 관계들에 의해 관련될 수 있다. 관계의 소정 유형들이 다른 유형들보다 중요할 수 있으므로, 서로 다론 관계 유형들이 서로 다른 길이를 가질 수 있다. 또한, 관계의 각 유형에 대하여 탐구되는 경로의 길이는 가변될 수 있고, 이에 따라 더욱 중요한 관계들을 통해 시드 온톨로지 용어들에 접속된 더욱 많은 온톨로지 용어들이 포함되는 것을 확실히 한다. 이에 따라, 단계 910에서, 사용자는, 서로 다른 관계들에 대한 경로 길이들을 조절할 수 있고, 이에 따라 예를 들어 간결화의 방향 및/또는 정도를 제어하도록 사용자에 의해 간결화 프로세스가 맞춰질 수 있다.
단계 915에서, 선택된 온톨로지 용어들에 관한 온톨로지 용어들은, 특정된 경로 길이의 관계들에 의해 관련되는 그러한 온톨로지 용어들을 식별함으로써 결정된다. 단계 920에서, 간결화기 모듈은, 선택된 시드 용어들이 링크되어 있는지 여부를 결정한다. 다시 말하면, 시드 온톨로지 용어들을 링크하는 일련의 상호 접속된 온톨로지 용어들이 있고, 그렇다면, 단계 925에서, 간결화 프로세스는, 사용되는 것으로 식별된 선택 및 관련된 온톨로지 용어들로 종료될 수 있고, 간결화된 온톨로지 또는 간결화된 인덱스로서 저장될 수 있는 간결화된 온톨로지를 정의할 수 있다.
그렇지 않다면, 단계 930에서, 반복이 완료되는지 여부를 결정하고, 관련된 온톨로지 용어들이 선택된 온톨로지 용어들에 추가되지 않으면, 프로세스는 단계 915로 리턴하여, 추가 관련된 온톨로지 용어들을 식별할 수 있다. 따라서, 시드 온톨로지 용어들에 관련된 온톨로지 용어들의 개수는, 시드 온톨로지 용어들이 관계들의 경로에 의해 접속될 때까지 점진적으로 증가된다.
따라서, 전술한 프로세스는, 시드 온톨로지 용어들이 관련된 온톨로지 용어들의 경로를 통해 상호 접속되는, 온톨로지가 성공적으로 간결화될 때까지, 또는 프로세스가 단계 940에서 정지되는 소정 횟수의 반복이 완료되고 경로가 식별되지 않을 때까지 반복된다. 후자의 경우, 이는, 더욱 상세히 후술하는 바와 같이, 통상적으로, 온톨로지 용어들이 서로 다른 온톨로지들로부터 온 것이며, 이 경우, 간결화 프로세스가 정렬 프로세스와 함께 수행되어, 간결화 프로세스가 다수의 온톨로지들을 이을 수 있음을 제시한다. 대안으로, 이는 온톨로지 용어들이 쉽게 링크될 수 없음을 나타낸다.
이제, 소스와 타겟 온톨로지들을 정렬하는 프로세스의 일례는 도 10을 참조하여 설명한다.
이 예에서, 단계 1000에서, 소스 및/또는 타겟 온톨로지 용어들은 인덱스를 사용하여 선택된다. 이는, 사용자가 브라우저 모듈을 사용하여 온톨로지 용어들을 선택하게 하는 것을 포함할 수 있고, 더욱 통상적으로는, 관심 대상인 소스 및/또는 온톨로지 용어들을 포함하는 소스와 타겟 온톨로지들의 간결화된 버전들에 대응하는 두 개의 간결화된 온톨로지를 선택하게 하는 것을 포함할 수 있다. 단계 1005에서는, 매치 모듈을 사용하여 소스와 타겟 온톨로지 용어들의 쌍들의 서로 다른 조합들에 대한 매칭 점수를 결정한다. 단계 1010에서는, 이러한 점수들을 사용하여, 소스와 타겟 온톨로지들의 의미들이 얼마나 유사한지에만 기초하여 예비 정렬을 정의한다.
단계 1015에서, 간결화기 모듈은, 예비 정렬이 정확한지 여부를 결정하도록 소스와 타겟 온톨로지 용어들의 관계들(오브젝트 특성들) 및 속성들(데이터 특성들)을 검사한다. 따라서, 예를 들어, 이는, 예비 정렬된 소스와 타겟 온톨로지 용어들이 유사한 개수의 속성들을 갖는지 여부를 검사하고, 또한, 이들이 다른 소스 또는 타겟 온톨로지 용어들과 유사한 관계들을 갖는지 여부를 검사한다. 이를 이용하여 부정확한 매치를 식별할 수 있으며, 예를 들어, 용어들의 각각에 대하여, 최초 명칭과 최종 명칭이 명칭에 예비 매칭될 수 있다면, 사용되는 관계들을 검사하여, 이것이 다대일 관계임을 입증할 수 있다.
단계 1020에서, 이는 정렬을 개선하는 데 사용될 수 있어서, 이들이 단계 1025에서 소스와 타겟 온톨로지들 간의 정렬을 나타내도록 저장될 수 있게 한다. 이것은, 병합된 온톨로지의 형태일 수 있고, 또는 대안으로, 정렬 인덱스의 형태일 수 있다.
이제, 시맨틱 매칭 프로세스의 일례를 도 11을 참조하여 설명한다.
이 예에서, 단계 1100에서, 매처 모듈은 매칭을 위한 온톨로지 용어들을 수신한다. 이는, 브라우저 모듈을 통한 사용자 선택에 기초할 수 있지만, 더욱 통상적으로는, 인덱서 모듈 또는 간결화기 모듈로부터 용어들을 수신하는 것이다. 단계 1105에서는, 단일 온톨로지 용어를 매칭 데이터베이스의 복수의 각 용어와 비교함으로써 또는 수신된 소스와 타겟 온톨로지 용어들의 다음 쌍을 선택함으로써 다음 쌍 조합이 선택된다.
단계 1110에서, 시맨틱 매처 모듈은 개념 매칭 데이터베이스를 이용하여 시맨틱 유사성을 산출한다. 점수는, 다수의 방식들 중 임의의 한 방식으로 결정될 수 있지만, 통상적으로는, 의미들이 어떠한 식으로든 관련되어 있는지 여부, 예를 들어, 의미들이 반의어, 동의어 등인지 여부에 기초하여 점수를 산출하는 소정의 공식을 적용하는 것을 포함한다. 구체적인 일례로, 이는, 예를 들어, WordNet 등의 사전을 사용하여 온톨로지 용어들을 정의와 매칭하는 것을 포함한다. 이러한 점에서, WordNet은 영어의 큰 어휘 데이터베이스이다. 명사, 동사, 형용사, 및 부사는, 인지 동의어들의 세트들(synset)로 그룹화되며, 각 세트는, 명확한 개념을 나타내며, 문헌[Fellbaum, Christiane (2005). WordNet and wordnets. In Brown, Keith et al. (eds.), Encyclopedia of Language and Linguistics, Second Edition, Oxford: Elsevier, 665-670]에 설명되어 있다.
일단 정의가 식별되었다면, 이는 RDF 트리플들의 용어들로 표현되며, 이어서 데이터베이스에 저장된다. 이어서, 두 개의 서로 다른 의미에 대한 RDF 트리플들은 트리플들 간의 유사성을 결정하도록 질의될 수 있고, 이를 이용하여 두 개의 온톨로지 용어들의 의미들의 유사성을 나타내는 유사성 점수를 결정한다.
이어서, 단계 1115에서, 시맨틱 매처 모듈은 용어들이 서브클래스 및 수퍼클래스 배열에 의해 관련되어 있는지 여부를 결정한다. 이어서, 단계 1120에서, 이 정보를 유사성 점수와 결합하여 매칭 점수를 산출한다. 단계 1125에서는, 모든 쌍들이 완료되었는지 여부를 결정하고, 완료되지 않았다면, 프로세스는 단계 1105로 리턴하여, 소스와 타겟 온톨로지들의 다음 쌍을 선택할 수 있고, 매칭 점수를 산출한다. 일단 온톨로지 용어들의 모든 잠재적 쌍들 또는 데이터베이스의 온톨로지 용어들과 매칭 개념들이 체크되었다면, 시맨틱 매처 모듈은 단계 1130에서 최상의 매치를 선택한 후 이를 표시할 수 있다.
이에 따라, 전술한 프로세스들은, 사용자들이 온톨로지들과 상호 작용하게 할 수 있고, 관심 대상인 온톨로지 용어들을 선택하게 할 수 있고, 이를 이용하여 각 온톨로지에 따라 데이터베이스 또는 XML 파일 등의 데이터 저장소에 저장되어 있는 콘텐츠와 상호 작용하기 위한 소프트웨어를 생성하게 할 수 있음을 인식할 것이다. 사용자들은, 또한, 온톨로지를 조사한 후 간결화기 모듈을 이용하여 이를 간결화할 수 있어서, 사용자가 관심 콘텐츠와 상호 작용할 수 있게 하는 최소 온톨로지를 결정할 수 있다. 이어서, 간결화된 온톨로지를 간결화된 다른 온톨로지와 정렬할 수 있어서, 이를 이용하여 이러한 온톨로지들 간의 매핑을 정의할 수 있고, 이러한 매핑을 사용하여 소스와 타겟 데이터 구조를 갖는 데이터 저장소들 간에 데이터를 전달할 수 있다.
이제, 더욱 특정한 일례를 설명한다. 이 예를 위해, 온톨로지를 다음과 같이 정의한다:
■ 클래스 또는 오브젝트라고도 하는 관련된 개념들의 세트, 이들 중 일부는, '상속' 관계라고도 칭하는 서브/수퍼클래스 관계를 이용하여 서로 관련된다. 예로는, 상속을 표시하는 'Organisation', 'Company', 'Club', 및 상속을 표시하지 않는 'Land Mass', 'Gender', 'Person'이 있다.
■ 클래스들을 관련짓기 위한 추가 기구를 제공하는 오브젝트 특성들의 세트. 예를 들어 'is Located at/in', 'has Gender'. 이러한 관계들은 개념, 관계, 특성의 추론을 가능하게 한다.
■ 각 클래스에 연관된 데이터 특성들의 세트. 예를 들어, 클래스 "Person"은 Name, Title, Date-of-Birth, Gender라는 데이터 특성들을 가질 수 있다.
■ 선행 특성들 중 임의의 특성 간의 정형적 관계를 제공하는 공리들의 세트. 예를 들어, "if a Person has a Title of 'Mrs' then the gender must be female" 또는 "if two objects have the same unique identifier then they are the same object". 이러한 공리들은, 개념, 관계, 특성의 추가 추론을 가능하게 한다.
온톨로지는, RDFS, XML, DAML, OIL, N3, OWL 등의 다수의 언어들로 설명될 수 있다. 이러한 언어들은 OWL-Lite 또는 OWL-DL 등의 서로 다른 방언들을 가질 수 있다. 기능성 관점에서 볼 때, 이들은 복합한 관계와 공리를 관리 및 설명하는 능력이 있다.
온톨로지는 수십만 개의 개념을 포함할 수 있다. 사용자는 이러한 개념들의 서브세트에 관심을 가질 수 있다. 이 서브세트는 하기로부터 온 것일 수 있다:
■ 단일 온톨로지;
■ 중첩되는 다수의 온톨로지들; 또는
■ 다수의 이질적 온톨로지들.
타겟 온톨로지의 일부 개념들은, 미리 규정되지 않을 수 있고, 소스 온톨로지들 중 임의의 것에 존재하지 않을 수 있다. 이러한 경우에, 사용자는 누락되는 개념들을 수동으로 추가할 필요가 있을 수 있다. 요구되는 서브세트는 시작 개념과 종료 개념 모두 또는 어느 하나를 가질 수 있다.
예시를 위해, 두 개의 극단적으로 간단한 온톨로지들이 도 12a와 도 12b에 도시되어 있다. 이러한 온톨로지들은 시맨틱 매칭과 정렬을 인덱스하고 간결화하는 것을 예시하는 데 이용되며 한정적인 것이 아님을 인식할 것이다.
이러한 예들에서는, 두 가지 유형의 관계가 있는데, 계층적으로 연결된 유형과 계층적으로 연결되지 않은 유형이다. 이러한 예들에서, 계층적으로 연결된 클래스들은, 수퍼클래스로부터 서브클래스로 실선 포인팅에 의해 계층적으로 연결된, 실선 타원으로 표현된다. 각 서브클래스는 자신의 수퍼클래스의 모든 특성들을 상속한다. 점선 타원으로 도시된 클래스들의 계층적으로 연결되지 않은 세트는, 점선으로서 도시된 명명된 오브젝트 특성 라인에 의해 임의의 클래스에 연결된다. 각 클래스는 데이터 특성들의 세트를 갖고, 그 중 일부가 예시를 위해 표 1에 도시되어 있다.
Figure pct00001
Figure pct00002
온톨로지들은 유사한 개념들을 나타내지만, 일부 차이점이 있음을 인식할 것이다:
■ 일부 개념들은 서로 다른 명칭들을 갖는다. 'Party'가 'Client'와 동일하고, 'Person'이 'Individual'과 동일하고, 'Member'가 'Membership'과 동일하고, 'Employment'가 'Work History'와 동일하다고 말할 수 있는가?
- 'Employment'를 제외한 각 경우에, 클래스들 각각은 동일한 데이터 특성을 갖고, 따라서 이들이 거의 동일하다고 추정할 수 있다. 수학적으로, Sameness(C1i, C2i)~1.0이고, 여기서, C1i는 제1 온톨로지로부터의 개념이고, C2i는 제2 온톨로지로부터의 개념이다.
■ 일부 개념들은 서로 다른 데이터 특성들을 갖는다. 'Employment'와 'Work History'의 경우에, 이들은 일부 동일한 데이터 특성들을 갖고, 한 가지 'Reports To'는 'Work History'에만 적용된다. 사실상, 'Work History'는, 'Start Date'와 'End Date'가 'Role' 또는 'Reports To' 데이터 특성에 관한 것인지 여부에 대하여 모호하므로, 4번째 정상 형태를 위반한다.
■ 일부 개념들은 서로 다른 오브젝트 특성들을 갖는다. 'Work History'는 'Person'에 대한 두 개의 오브젝트 특성을 갖는 반면, 'Employment'는 하나의 오브젝트 특성만을 갖는다. 온톨로지 1에서는, 'Shares'가 'Company'를 'Individual'에 관련짓는 반면, 온톨로지 2에서는, 'Company'를 'Client'에 관련짓는다.
■ 일부 개념들은 하나의 온톨로지에 존재하지 않는다. 'Listed Company'는 온톨로지 2에 존재하며 온톨로지 1에는 존재하지 않는다.
이러한 예들을 위해, 시스템은, 도 13에 도시한 기능을 수행하며, 이러한 기능은 각 모듈에 의해 구현된다. 이러한 점에서, 모듈은, 아래의 예들을 포함한다:
■ ETL(추출-변환-로딩) 모듈(1300); 이것은 구조화된 데이터 소스들 내의 콘텐츠를 추출, 변환, 및 로딩한다. 이것은 아래를 포함하는 두 개의 서브 컴포넌트를 포함한다.
- 특정된 온톨로지를 통해, 또는 온톨로지가 없는 경우에는 프로세서가 데이터를 설명하도록 생성하는 추종 온톨로지를 통해 소스 데이터를 추출하는 프로세서(1301). 프로세서는 클라우드에서 또는 데이터와 동일한 기계에서 또는 메시징, ODBC, https, SOAP, 또는 임의의 등가 프로토콜을 통해 데이터에 액세스할 수 있는 기계에서 효율적으로 사용될 수 있다. 프로세서의 다수의 카피들은 다수의 소스들로부터 데이터를 취득하도록 효율적으로 사용될 수 있다.
- 다양한 프로세서들로부터 데이터를 수집하고 소스 온톨로지들을 타겟 온톨로지에 매핑하는 오케스트레이터(1302). 질의들은, 타겟 온톨로지를 사용하여 기입되고, 균등 소스 온톨로지 질의들로 변환되어, 타겟 온톨로지를 사용하여 데이터가 리턴될 수 있게 한다.
■ 검색기(1311), 편집기(1312), 및 생성기(1313)를 포함하는 온톨로지 브라우저 모듈(1310). 이것은 스크린들 및 연관된 소프트웨어와 데이터를 생성하여 이들을 관리하고, 이는 사용자가 온톨로지 및 온톨로지에 의해 설명되는 데이터를 검색 및 편집할 수 있게 한다. 이러한 스크린들은 두 개의 스테이지에서 나타난다. 제1 스테이지는 생성 프로세스 동안에 있다. 이 스테이지에서, 스크린들은, 동적으로 생성되고, 사용자가 어떠한 특징부들을 생성해야 하는지를 선택할 수 있도록 추가 정보를 표시한다. 제2 스테이지에서, 스크린들은, 하드 코딩되며, 생성을 위해 특정된 정보만을 표시한다.
■ 온톨로지 인덱서 모듈(1320). 인덱서 모듈은, 모든 클래스 명칭, 데이터 특성 명칭, 및 오브젝트 특성 명칭의 하나 이상의 온톨로지들에 대한 링크된 인덱스들의 세트를 생성한다. 또한, 인덱스는, 소스 온톨로지들 더하기 시맨틱 균등 기능으로부터 온 시맨틱 균등 용어들(예를 들어, 동의어, 동음어)을 포함한다.
■ 온톨로지 간결화기 모듈(1330). 간결화기 모듈은, 온톨로지를 취하며, 유지하길 원하는 어떤 클래스, 데이터 특성, 오브젝트 특성, 및 공리를 특정할 것인지를 사용자가 특정할 수 있게 한다. 그렇게 유지되는 간결화기 모듈을 사용하여, 온톨로지에서 정의된 관계적 및 공리적 무결성이 유지되는지를 확인한다.
■ 온톨로지 정렬기 모듈(1340). 정렬기 모듈은, 두 개 이상의 온톨로지를 취하며, 다수의 기술을 이용하여 다양한 온톨로지들의 개념들을 서로에 대하여 또는 특정된 타겟 온톨로지에 대하여 정렬한다. 기술들은, 인덱서 모듈에 의해 생성되는 인덱스들을 이용하여 시맨틱적으로 유사한 개념들을 찾는다. 시맨틱 매처 모듈을 사용하여 각 데이터 특성과 개념을 비교한다. 이것은 온톨로지 구조와 데이터 특성에 기초하여 매칭을 재정의(refine)한다.
■ 시맨틱 매처 모듈(1350). 시맨틱 매처 모듈은, 두 개의 용어 또는 용어들의 두 개의 리스트를 비교하여, 이들이 특정 컨텍스트 내에서, 예를 들어, 의료 또는 엔지니어링 내에서 수학적으로 정의된 시맨틱 균등성을 갖는지 여부를 결정하고, 또는 다른 경우에, 단일 용어가 주어진 경우, 특정된 컨텍스트에 기초하여 동의어들, 동음어들, 기타의 리스트를 제공하는지 여부를 결정한다.
통상적으로, 온톨로지는 예인 경우를 제외하고 어떠한 데이터 인스턴스도 갖지 않지만, 온톨로지는 아래의 두 가지 방식 중 하나로 기존의 데이터에 매칭될 수 있다:
■ 온톨로지는 기존의 데이터로부터 구축된다. 예를 들어, 관계 데이터베이스는, 온톨로지 클래스로서 정의되는 관계 엔티티들(표들), 온톨로지 오브젝트 특성으로서 정의되는 관계형 관계, 및 온톨로지 데이터 특성으로서 정의되는 관계 속성(컬럼)에 의해 '추정' 온톨로지로 자동 변환될 수 있다. 일부 온톨로지 공리들은 관계형 참조 무결성 제약들로부터 도출될 수 있지만, 대부분의 공리들은 수동으로 추가 또는 무시될 필요가 있다. 이 추정 온톨로지는 메타데이터를 추가하도록 기존의 리치 온톨로지와 정렬될 수 있다.
■ 온톨로지를 데이터에 매칭한다. 이를 행하기 위한 많은 도구들이 있다(예를 들어, S-Match).
데이터 포맷에 상관없이, 추정 온톨로지는, 소스 데이터 구조와 (메타데이터가 존재하는 경우) 메타데이터에 적절한 방법들을 이용하여 소스 데이터로부터 자동 생성될 수 있다. 이 추정 온톨로지는, 온톨로지 편집기를 사용하여 수동으로 갱신될 수 있고, 또는 생성시 사용될 수 있다. 어느 경우든, 추종 온톨로지는, 정렬기 모듈을 사용하여, (ETL 모듈 프로세서에 의해 인보크(invoke)되는) 서브젝트 영역 온톨로지와 정렬되고 (ETL 모듈 오케스트레이터에 의해 인보크되는) 타겟 온톨로지와 정렬된다.
타겟 온톨로지는 간결화기 모듈을 사용하여 간결화될 수 있어서, 그러한 개념들 더하기 원하는 개념들, 및 원하는 개념들의 무결성을 확실히 하는 데 필요한 공리들, 특성들, 추론들, 및 기원 상세를 포함하는 것을 확실히 할 수 있다.
이러한 모든 도구들은, 두 개의 시맨틱 개념이 매칭되는지를 체크하도록 시맨틱 매처 모듈에 의해 제공되는 서비스를 이용하고, 다양한 소스와 타겟 온톨로지들의 매칭 개념과 개념 구조를 찾도록 인덱서 모듈을 이용한다.
이제, 각 모듈의 예를 추가로 상세히 설명한다.
ETL 모듈
ETL 모듈은, 메타데이터 리포지토리를 사용하지 않고 모든 ETL 도구들에 공통되는 데이터 추출, 변환, 및 로딩 기능들을 수행한다. 이 모듈은, 이를, 소스 데이터에 연관된 메타데이터를 사용하여 데이터 구조를 결정하고 이어서 이 메타데이터를 온톨로지에 매핑함으로써 행한다. 이 모듈은, 또한, 데이터에 의미를 할당하고, 따라서, 데이터 매핑과 변환에 있어서 고 레벨의 자동화를 달성할 수 있다.
메타데이터 리포지토리의 필요를 제거하는 것은, 프로세스들의 유연성이 그 메타데이터 리포지토리를 유지하는 데 필요한 휴먼 인터페이스에 의해 제한되지 않음을 의미한다. 새로운 데이터 포맷과 기술이 자동 수용될 수 있다.
고 레벨에서는, 두 개의 주요 프로세스가 수행된다. 이러한 프로세스들을 수행하기 위한 코드를 프로세서 및 오케스트레이터라 칭한다. 프로세서의 다양한 카피들은 임의의 정의된 위치에서 데이터를 판독하도록 효율적으로 사용될 수 있다. 프로세서는, 데이터와 동일한 디바이스에서 공동 위치될 수 있고, 또는 클라우드에 위치될 수 있고 원격 액세스 프로토콜을 사용하여 데이터에 액세스할 수 있다. 프로세서는, 소스로부터 메타데이터를 추출하고, 그 메타데이터로부터 추정 온톨로지를 생성한다. 이어서, 프로세서는, 일부 기본적 데이터 변환을 수행하고, 데이터와 온톨로지를 오케스트레이터에 전달한다.
오케스트레이터는 다양한 프로세서들로부터 입력을 수신하고 이들의 온톨로지들을 정렬한다. 이어서, 오케스트레이터는 정렬된 소스 온톨로지들로부터의 매핑을 사용자 정의된 타겟 온톨로지에 적용한다. 이제, 사용자는 다양한 소스 온톨로지들로부터의 모든 데이터를 볼 수 있다. 데이터는, 더욱 상세히 후술하는 바와 같이, 타겟 온톨로지에 대하여 특정 질의를 특정함으로써 또는 온톨로지 브라우저 모듈을 사용하여 질의를 생성함으로써 추출될 수 있다.
이러한 결과를 달성하는 데 필요한 다양한 소프트웨어 구성요소들을 포함하는 ETL 모듈 소프트웨어 스택의 일례가 도 14a에 도시되어 있는 한편, 도 14b는 다수의 프로세서들이 네트워크 구조를 통해 단일 오케스트레이터에 결합되는 효율적 사용의 일례를 도시한다.
프로세서는, 이질적 데이터 소스로부터 데이터를 판독하고, 데이터를 RDF로서 노출하고, 추정 온톨로지를 생성하여 데이터를 설명하는 것을 담당한다. 고 레벨 기능들은 다음과 같다:
■ 메타데이터와 매핑 파일을 추가함으로써 이질적 데이터 소스들을 등록.
■ 미구조화 데이터를 RDF로 변환.
■ RDF를 트리플 저장소에 로딩.
■ 매핑 파일을 추정 온톨로지로 변환.
■ 각 소스에 대한 SPAQRL 엔트포인트를 노출.
오케스트레이터는, 타겟 온톨로지와 매핑 파일을 판독하고 요구와 응답의 변환을 조직하는 것을 담당한다. 고 레벨 기능들은 다음과 같다:
■ 타겟 온톨로지를 등록.
■ 매핑 파일을 판독하고 인덱싱.
■ SPARQL 질의를 타겟으로부터 매핑된 소스 어휘로 변환.
■ 소스로부터의 응답을 타겟 어휘로 변환.
■ 변환 규칙을 저장.
■ 타겟에 대한 SPARQL 엔트포인트를 노출.
온톨로지 브라우저 모듈
온톨로지 브라우저 모듈은, 스크린들의 세트를 자동 생성하여 사용자가 온톨로지를 검색하고, 온톨로지에 의해 정의되는 데이터를 질의하고, 인스턴스 데이터를 온톨로지에 의해 정의되는 데이터에 추가할 수 있도록 동작한다. 따라서, 생성된 스크린들은, 완벽한 독립형 애플리케이션으로서 온톨로지 및 생성 도구들과는 독립적으로 사용될 수 있다.
이러한 점에서, 링크된 개념들을 정의하고 데이터에 액세스하도록 온톨로지들을 현재 사용하는 것은 아카데믹 및 전문 온톨로지스트들로 크게 한정된다. 그 이유는, 사용자들이 온톨로지들을 검색하고 이어서 이를 구조화된 데이터 저장소에 저장되어 있는 데이터와의 상호 작용을 유도하는 데 이용할 수 있게 하는 간단한 기구가 없기 때문이다. 이에 따라, 온톨로지 전문 지식이 없거나 거의 없는 사람이 온톨로지의 모든 상세에 간단하게 인식가능한 방식으로 액세스할 수 있게 하는 도구를 제공함으로써, 사용자가 간략화된 질의 구축 기구를 이용하여 온톨로지에 의해 설명되는 데이터를 선택 및 검사할 수 있다. 레코드를 여전히 실행중인 초기 온톨로지에 존재하는 모든 제약 및 추론과 함께 데이터에 추가할 수 있다. 마지막으로, 생성된 스크린들을 프론트 오피스 직원이 사용하는 데 적절한 독립형 애플리케이션들로서 효율적으로 사용할 수 있다.
데이터 검사시, 사용자는 데이터를 다수의 포맷으로 표시할 수 있다. 기저 데이터는 예를 들어 RDF 트리플로서 저장될 수 있다. 이들은, 관계형 표, 스프레드시트, 명칭값 쌍, 또는 임의의 사용자 정의 포맷으로서 표시될 수 있다.
온톨로지 브라우저 모듈은, 두 개의 주요 형태로 존재할 수 있는데, 독립형 도구로서, 또는 두 번째로는 (
Figure pct00003
등의) 기존의 온톨로지 도구에 대한 플러그인으로서 존재할 수 있다. 어느 형태든, 선택된 온톨로지에 대하여 특정된 애플리케이션을 생성할 수 있다.
실행되고 있는 초기 온톨로지에 정의된 모든 데이터 규칙들로 레코드들을 액세스하고, 갱신하고, 삭제하고, 추가하기 위한 전체 기능 코드 세트로서 온톨로지 없이 생성된 애플리케이션을 사용할 수 있다.
따라서, 온톨로지 브라우저 모듈은, 사용자가 온톨로지 및 온톨로지에 의해 설명되는 데이터를 검색 및 편집할 수 있게 하는 스크린 및 연관된 소프트웨어와 데이터를 생성하여 관리하는 컴퓨터 프로그램에서 구현될 수 있는 프로세스들의 세트를 제공한다. 이러한 스크린들은 두 개의 스테이지에서 나타난다. 제1 스테이지는 생성 프로세스 동안 있다. 이 스테이지에서, 스크린들은, 동적으로 생성되고, 사용자가 어떠한 특징부들을 생성할 것인지를 선택할 수 있게 하는 추가 정보를 표시한다. 제2 스테이지에서, 스크린들은, 하드 코딩되고, 생성을 위해 특정된 정보만을 표시한다.
스크린들의 간략한 설명은 이하의 표 2에 개시되어 있다.
# 스크린
타이틀
사용자 이야기 비고
1 Landing Page 사용자는, 먼저, 이용가능한 온톨로지들을 열거하는 능력을 가질 'landing page'에 액세스한다. 사용자는 온톨로지를 선택한다. 온톨로지를 선택함으로써, 도구는 그 온톨로지를 관리하기 위한 스크린들을 생성한다.
이것은 이 애플리케이션을 위한 엔트리 포인트이다. 이는, 오브젝트 지향 방식으로 행해질 수 있다. 이 스크린은 효율적 사용가능 코드에서 생성되지 않는다.
2 Class List 온톨로지를 선택함으로써, 사용자에게는 선택된 온톨로지의 클래스들의 리스트가 제시된다. 사용자는 하나의 클래스를 온톨로지에 대한 엔트리 포인트로서 선택한다. 각 리스트 항목은 식별에 도움을 줄 라벨을 포함할 수 있다.
이 스크린은 효율적 사용가능 코드에서 생성된다. 이것은 효율적 사용가능 코드를 위한 엔트리 포인트이다.
3 Class Display 클래스에 대한 모든 데이터 특성 필드들은, 아래와 같은 4개의 추가 프레임과 함께 메인 프레임에 표시된다:
■ 수퍼 클래스 관계를 이용하여 선택된 클래스-a 클릭가능 링크의 부모/수퍼 클래스들.
■ 서브클래스 관계를 이용하여 선택된 클래스-a 클릭가능 링크의 자식/서브 클래스들.
■ 오브젝트 특성 상세를 이용하여 선택된 클래스-a 클릭가능 링크의 관련 클래스들.
■ 그 클래스에 영향을 끼치는 공리들.
이 프레임은 생성 프로세스 동안에만 표시된다. 생성된 스크린들에서, 공리들은 무효 데이터가 입력되면 에러 메시지로서인 경우를 제외하고는 표시되지 않는다.
스크린 상의 필드 명칭들은, 온톨로지 검색시 비워져 있는 인접하는 데이터 엔트리 필드와 함께 표시된다.
간결화된 온톨로지에서 유지될 스크린들을 위한 클래스들과 특성들을 선택하도록 편집 기구들을 제공한다.

스크린 또는 관련 스크린들의 세트는, 각 클래스에 대하여 특정한 스크린 또는 스크린들의 세트로서 효율적 사용가능 코드에서 생성된다.

클래스 특정 스크린들은, 구체적인 외관과 느낌이 생성되는 것을 확실히 하도록 다수의 템플레이팅 도구들을 사용하여 생성될 수 있다.
4 Query
데이터를 하나 이상의 클래스 스크린의 데이터 특성 필드에 추가함으로써 질의를 수행한다. 사용자에 의해 추가 제약들을 정의할 수 있다. 일단 질의가 정의되었다면, 사용자는 'Search' 옵션을 선택하고, 탐색 기준을 충족하는 레코드들이 리턴된다.
이러한 스크린들은, 스크린의 각 유형마다 단일 스크린이 사용되도록 포괄적 포맷의 생성 없이 이용가능하다. 스크린 레이아웃은 온톨로지 콘텐츠에 의해 동적으로 결정된다.
포괄적 스크린들은, 사용자 친화적이지 않으며, 맞춤화될 수 없다. 따라서, 프로세스는, 사용자가, 캐스케이딩 스타일 시트, 템플릿, 아이콘 및 사용자 공급 파라미터 등의 기능들을 이용하여 외관과 느낌이 파라미터로 미리 결정될 수 있는 스크린들의 완전한 세트를 생성할 수 있게 한다.
브라우저 모듈의 구조의 일례는 도 15에 도시되어 있다.
이러한 점에서, 브라우저 모듈(1310)은, 오케스트레이터(1302)로부터 타겟 온톨로지(1501)를 취하고, 또는 사용자에 의해 정의되는 임의의 온톨로지를 취한다. 브라우저 모듈(1310)은, 사용자가 온톨로지를 선택하고 독립형 애플리케이션으로 생성하기 위해 온톨로지의 어떠한 구성요소들을 특정할 수 있게 하는 스크린들(1502)의 세트를 표시한다.
브라우저 모듈(1302)은, 타겟 온톨로지에서 특정된 구조와 규칙을 이용하여 데이터를 관리하도록 컴퓨터 스크린들(1504)의 세트를 포함하는 독립형 애플리케이션(1503)을 생성한다. 애플리케이션은, 온전하게 온톨로지 또는 데이터 브라우저 모듈 등의 다수의 모드에서, 또는 완전한 기능 데이터 추가, 갱신, 삭제 애플리케이션으로서 생성될 수 있다. 이 경우, 사용자는, 이제, 온톨로지에 의해 설명되는 데이터를 관리하기 위한 완전한 애플리케이션(1503)을 갖는다.
OWL 또는 RDF 파일들을 이용하는 온톨로지들은, 웹 페이지를 생성하고 정보를 저장하기 위한 대응 데이터베이스(1505)를 생성하기 위한 충분한 정보를 갖는다. RDF 또는 OWL 파일은, 온톨로지스트의 상세한 비즈니스 지식에 기초하여 온톨로지스트에 의해 생성되었을 수 있다.
따라서, 브라우저 모듈(1310)은, 최종 사용자들이 거래 데이터를 질의하거나 입력하기 위한 애플리케이션(1503)을 생성한다. OWL 또는 RDFS 파일은, 애플리케이션 맞춤화 파일, 데이터베이스 접속 상세, 및 애플리케이션을 생성하는 데 필요한 임의의 기타 메타데이터와 함께 브라우저 모듈(1310)에 공급된다.
브라우저 모듈(1310)은, 예를 들어, HTML5, JSP, JSF 또는 다른 유사한 기술을 이용하여 웹 페이지를 생성할 수 있다. 온톨로지의 각 클래스마다, 브라우저 모듈(1310)은 웹 페이지를 생성하고, 그 클래스에 연관된 각 특성은 그 페이지 내의 필드로서 생성된다. 애플리케이션(1503)은 생성된 웹 페이지들과 데이터베이스(1505) 사이를 잇는다. 애플리케이션은, 프로세스들을 수행하여 데이터를 웹 페이지들로부터 데이터베이스(1505)로 지속시키고, 데이터베이스(1505)로부터 데이터를 추출하고, 데이터베이스(1505)의 데이터를 질의하고, 웹 페이지 상에 데이터를 표시한다. 이어서, 브라우저 모듈(1310)은, 사용자 공급된 메타데이터에서 특정된 유형의 데이터베이스를 생성 및 로딩하기 위한 데이터베이스 스크립트를 생성한다. 이는, 관련형 데이터베이스(RDBMS), 트리플 저장소, NOSQL, NewSQL, 그래프 데이터베이스, 또는 다른 임의의 인식된 데이터베이스일 수 있다.
이제, 브라우저 모듈의 동작을 더욱 상세히 설명한다. 이러한 점에서, 온톨로지를 검색하도록, 사용자는 다음의 온톨로지 용어들을 찾을 수 있어야 한다:
■ 개념:
■ 데이터 특성
■ 오브젝트 특성; 및
■ 추론.
이는, 두 개의 기구를 필요로 하는데, 즉,
■ 이하의 인덱서 모듈에 관하여 후술하는 바와 같이 명칭에 의해 이러한 임의의 온톨로지 용어를 탐색하도록 위 온톨로지 용어들을 온톨로지로부터 인덱싱하는 방법; 및
■ 일단 구체적인 특성이 선택되었다면 모든 관련된 데이터 및 오브젝트 특성을 표시하는 방법을 필요로 한다.
이를 달성하도록, 사용자는, 초기에, 표 2에서 설명한 'Landing screen'에서 검색될 온톨로지를 선택한다. 온톨로지는 파일 또는 웹 어드레스로부터 선택될 수 있다. 일단 온톨로지가 선택되었다면, 온톨로지의 인덱스를 사용하여 클래스 리스트가 생성된다. 이 리스트는 각 클래스의 설명과 명칭을 표시한다. 더욱 큰 리스트를 위해, 사용자가 클래스 명칭 또는 클래스 설명의 일부에 의해 탐색을 행할 수 있게 하는 리스트 탐색 기능이 제공된다. 또한, 데이터 속성에 대한 탐색을 행할 수 있다. 어느 경우든, 탐색은 그 데이터 특성을 포함하는 클래스들의 리스트를 리턴한다.
이어서, 사용자는 관심을 갖는 클래스를 선택하며, 이는 아래와 같이 4개의 구성요소를 포함하는 'Class screen'이 프레임이나 태그된 서브 스크린의 형태로 표시되게 한다:
■ 데이터 특성 구성요소. 각 데이터 특성의 명칭은, 필드 옆에 설명 박스를 갖는 리스트 포맷으로 표시된다. 필드 옆의 정보 아이콘을 클릭하면, 모든 필드 속성들 및 그 필드에 관련된 임의의 공리들이 표시된다. 선택적으로(클릭가능함), 부모/수퍼 또는 관련된 클래스 또는 클래스들의 데이터 특성들도 도시될 수 있다
■ 부모/수퍼 클래스 구성요소. 이것은, 표시된 클래스의 부모/수퍼 클래스의 명칭과 설명을 이에 대한 클릭가능한 링크와 함께 표시한다. 이 링크를 클릭하면, 브라우저 모듈이 현재 클래스의 부모를 표시하는 스크린을 표시하게 된다.
■ 자식/서브 클래스 구성요소. 이것은, 표시된 클래스의 서브클래스들의 명칭과 설명을, 서브클래스 관계를 이용하는 클릭가능한 링크들과 함께 표시한다. 이러한 링크들 중 하나를 클릭하면, 브라우저 모듈이 현재 클래스의 자식/서브 클래스 또는 현재 클래스의 서브클래스를 표시하게 된다.
■ 오브젝트 특성 구성요소. 이것은 선택된 클래스의 관련 클래스들을 표시하고, 각 관련 클래스는 오브젝트 특성을 이용하는 클릭가능한 링크와 함께 있다. 이러한 링크들 중 하나를 클릭하면, 브라우저 모듈이 현재 클래스에 관련된 클래스를 표시하게 된다.
클래스 스크린 상의 "Search" 옵션을 선택함으로써, 그 클래스에 대한 모든 데이터 인스턴스들을 리턴하도록 질의가 발행된다. 이것은, 클래스의 각 인스턴스마다 하나의 행이 있는 리스트로서 표시된다. 구체적인 행을 클릭함으로써, 그 행은 온톨로지 클래스 스크린과 유사한 포맷화된 스크린으로서 표시된다. 일례로, 리턴된 데이터는, 결과를 필터링하는 질의를 실행함으로써 제한될 수 있다. 이제, 이러한 질의의 구조와 이용을 더욱 상세히 설명한다.
이러한 점에서, 사용자에게 리턴되는 데이터를 필터링하는 것은, 필터의 형태로 리턴되는 데이터의 사용자의 정확한 요건들을 사용자로부터 캡처한 후 그 필터에 기초하여 질의를 생성함으로써 달성된다. 필터는, 값들 또는 식들을 클래스 스크린 상의 데이터 특성 필드들에 입력함으로써 구축된다. 예를 들어, 전술한 샘플 온톨로지를 사용하여 John Doe들이 얼마나 많은 몫(shares)을 소유하는지를 찾도록, 다음에 따르는 단계들을 필요하다:
■ 클래스 리스트 스크린으로부터 'Individual' 클래스를 선택한다.
■ 데이터 특성 필드들에서, 'John'을 Given-Name에 입력하고 'Doe'를 Last-Name에 입력한다.
■ 'Individual' 클래스 스크린의 오브젝트 특성 프레임으로부터, 'Shares' 클래스를 선택한다.
■ 탐색 옵션을 선택한다.
Shares Class 스크린 상의 'Search' 옵션을 선택함으로써, 그 클래스에 대한 모든 데이터 특성들, 특히, John Doe에 의해 소유되는 데이터 특성들만을 리턴하도록 질의를 발행한다. 필터는, 생성된 애플리케이션(1503)에 의해 SPARQL 또는 데이터베이스(1505)에 저장된 데이터에 대하여 실행될 수 있는 기능적으로 등가인 질의로 변환되었다.
브라우저 모듈(1310)이 애플리케이션(1503)을 생성할 수 있도록, 다음에 따르는 프로세스를 수행한다:
■ 이하의 항목들을 포함하여 생성될 애플리케이션을 위해 메타데이터를 선택적으로 구성한다:
- 회사 명칭, 로고 등.
- 생성되는 애플리케이션의 명칭.
- 생성되는 데이터베이스의 명칭과 유형.
- 데이터베이스의 위치.
- 생성되는 애플리케이션을 위한 명명과 코딩 명세 및 표준. 이것은 스타일 시트, 템플릿, 자바 스트립트, 및 기타 표시 명세를 포함한다.
- 클래스 및 액션에 연관되는 아이콘.
- 헬프 데스크의 위치와 연락처 상세.
- 에러와 로그 메시지의 다변성.
■ 'Landing Screen'에서, 생성할 온톨로지를 선택하여, 클래스 리스트의 스크린이 브라우저 모듈(1310)에 의해 표시된다.
■ Class List 스크린 상에서, 생성되는 각 클래스를 'g'로 태그한다.
■ 생성될 각 클래스를 선택하여, 브라우저 모듈(1310)이 'Class Display' 스크린을 표시하게 한다.
■ Class Display 스크린 상에서, 모든 필드들은 초기에 'g'로 태그되어 있다. 각 데이터 특성 필드, 생성될 각 오브젝트 특성 링크 및 각 수퍼/서브클래스 링크를 리뷰하여, 필요하지 않은 경우 태그를 제거한다.
■ 기본적으로, 모든 필드들은 탐색가능하다(즉, 필터에 추가될 수 있다). 'ns' 태그를 데이터 특성 필드에 추가하는 것은, 생성된 애플리케이션에서 그 필드가 탐색불가능함을 의미한다.
■ 오브젝트 특성 링크 필드들과 수퍼/서브클래스 링크 필드들의 각각에 추가 필드 태그 위치가 있다. 이러한 필드들에 'I' 태그를 설정함으로써, 링크된 클래스로부터의 데이터 필드들을 생성된 스크린 내로 생성한다. 이러한 필드들은 갱신불가 필드들로서 표시된다.
■ 링크된 클래스들로부터의 임의의 필드들이 표시되는 경우, 링크된 클래스를 선택하고 적절한 필드들을 'I'로 태그한다.
■ Class Display 스크린으로 리턴하고, 실행되지 않는 경우 각 공리 설명으로부터 태그를 제거한다. 공리들 앞의 필드들을 제거하는 것이 중요하며, 그렇지 않은 경우에는 생성된 애플리케이션에 무결성 손실이 있을 수 있다.
■ 필요로 하는 모든 클래스들이 생성을 위해 선택될 때까지 단계 3 내지 단계 9를 반복한다.
■ Class List 스크린으로 리턴하고 'Generate Application' 옵션을 선택한다.
■ 애플리케이션은, 브라우저 모듈(1310)에 의해 생성되며, 애플리케이션 메타데이터에서 특정된 위치에 세이브된다(단계 1). 데이터베이스 생성 및 로드 스크립을 생성한다. 이러한 스크립트를 실행하여 애플리케이션을 사용 준비 상태로 둔다.
이에 따라, 전술한 브라우저 모듈(1310)은, 사용자가 온톨로지들을 검색 및 상호작용할 수 있게 하고, 이어서 특정한 클래스들과 데이터 특성들을 선택함으로써, 선택된 클래스들과 데이터 특성들에 따라 데이터 저장소(1505)에 저장된 데이터와 상호작용하도록 사용될 수 있는 애플리케이션(1503)을 생성할 수 있게 한다.
온톨로지 인덱서 모듈
인덱서 모듈은, 사용자가 온톨로지를 검색하고 온톨로지에 의해 정의되는 데이터의 질의를 처리하는 것을 보조하도록 하나 이상의 온톨로지들의 집합에서 사용되는 용어들의 인덱스들의 세트를 자동 생성한다. 이러한 인덱스들은, 온톨로지들의 정렬, 간결화, 및 검색을 보조하도록 다른 모듈들에 의해 사용된다.
인덱서 모듈은, 모든 클래스 명칭, 데이터 특성 명칭, 및 오브젝트 특성 명칭과 관계의 링크된 인덱스들의 세트를 생성함으로써, 하나 이상의 온톨로지들을 인덱싱한다. 인덱스는, 소스 온톨로지들로부터 및 시맨틱 등가 기능으로부터 온 시맨틱 등가 용어들을 포함한다.
이제, 도 16을 참조하여 인덱서의 기능의 일례를 설명한다.
이 예에서, 인덱서 모듈(1320)은, 오케스트레이터(1302)로부터 온톨로지(1601)를 수신하거나, 스크린들(1602)의 세트를 통해 또는 프로세서(1301)에 의해, 사용자에 의해 정의된 임의의 온톨로지들을 수신하고, 모든 클래스 명칭, 데이터 특성 명칭, 및 오브젝트 특성 명칭의 인덱스들(1603)을 생성한다. 스크린들은 전술한 바와 같이 브라우저 모듈(1310)에 의해 생성될 수 있음을 인식할 것이다.
각 온톨로지 용어가 인덱싱될 때, 개념 매칭 데이터베이스(1604)를 사용하여 시맨틱 매처 모듈(1350)로부터 취득되는 그 항목의 동의어들도 인덱싱된다. 오브젝트 특성에 대하여, 오브젝트 특성에 의해 링크되는 개념들이 인덱스에서 상호 참조된다.
전술한 온톨로지들에 기초하는 개념-데이터 특성-오브젝트 특성(Concept-Data Property-Object Property; CDO) 인덱스의 샘플은 표 3에 도시되어 있다. 이것은 예시를 위해 인덱스의 표시 형태이지만 실제로는 더욱 상세히 후술하는 바와 같이 인덱스가 더욱 복잡한 인덱스 구조로서 저장될 수 있다는 점에 주목해야 한다.
Figure pct00004
Figure pct00005
Figure pct00006
Figure pct00007
동의어를 포함시키지 않아도, 이는 매우 유용한 인덱스이다. 예를 들어, 두 개의 서로 다른 온톨로지들에 있는 동일한 명칭의 모든 개념은 잠재적으로 정렬될 수 있다. 정렬기 모듈은, 이러한 각 쌍을 취하고, 이들의 제1 오브젝트 특성들을 비교한 후 이들의 데이터 특성들을 비교한다.
예를 들어, 'Shares' 개념은 개념들 Ont 1.7과 Ont. 2.10으로서 양측 온톨로지들에 보인다. 이 레벨에서, 이들은 유사하게 보이며(S1.7,2.10=1.0), 인덱서 모듈 관점에서 볼 때, 이는 충분하다.
더욱 상세히 후술하는 정렬기 모듈에 의해 추가 분석을 수행할 수 있다. 오브젝트 특성들을 검사함으로써, 오브젝트 특성들이 이하의 표 4에 도시한 바와 같이 서로 다르다는 점을 알게 된다. 이들은 수와 오브젝트 특성 명칭에 있어서 매칭되지만, 관련된 개념들 중 하나는 달라서 S1.7,2.10=0.8571이다. 데이터 특성들을 검사함으로써, 이들이 S1.7,2.10=1.0을 부여하는 동일한 데이터 특성들을 갖는다는 점을 알게 된다.
정렬기 모듈이 선행 산출들을 수행한 소스 정보는, 인덱서에 의해 생성되는 인덱스들에서 모두 이용가능하다.
Figure pct00008
시맨틱 매처 모듈을 이용한 다른 개념들의 추가 분석은, "Individual"이 "Client"의 서브클래스이며 따라서 S1.7,2.10=0.8 -> 0.95임을 나타낸다. 온톨로지 2는 온톨로지 1보다 포괄적인 모델이다. 이러한 유사성 범위는, 두 개의 온톨로지의 몫들 간의 앵커 포인트들을 확립하는 데 적절하다. Si,j는 정렬기 모듈에 의해 산출된다.
개념들 간의 관계는, 개념 C1이 개념 C2에 어떻게 관련되는지를 나타내는 표 5에서 표시 형태로 도시된 개념 대 개념(Concept to Concept; C2C) 표에서 추출된다.
Figure pct00009
Figure pct00010
인덱스들은, 위 표들을 서로 다른 시퀀스들로 정렬하는 것에 대응하는 다수의 포맷들로 구축된다. 정렬기 모듈은, 인덱스들에 대하여 SQL 질의들을 실행함으로써 자신의 태스크들 중 상당수를 수행할 수 있다.
이제, 인덱스 구조의 일례를 더욱 상세히 설명한다. 이러한 점에서, 시맨틱 매처 모듈을 사용하여, 각 동의어 세트마다 루트 단어 또는 부명제를 결정한다. 시맨틱 매처 모듈은, 최적의 결과를 취득하도록 컨텍스트가 설정되는 것을 필요로 한다. 일반적으로, 다수의 온톨로지들에 대하여 인덱스들을 구축할 때, 각 온톨로지의 컨테스트는 알려져 있으며, 좁고, 관심을 갖는 다른 온톨로지들에 관련된다.
인덱스들의 최종 세트는 아래에서 요약되는 다단계 프로세스에서 생성된다:
■ 인덱싱되고 있는 온톨로지로부터 모든 개념, 오브젝트 특성, 및 데이터 특성을 추출한다.
■ 이러한 값들을 표 3과 5에서 설명한 포맷으로 임시 표들(CDO, C2C)에 로딩한다. 이러한 표들은 각 인덱싱되고 있는 각 온톨로지마다 생성되거나 비워지도록 재생성된다.
■ 온톨로지를 시맨틱 매처 모듈에 로딩한다. 이는, 온톨로지에 포함된 임의의 정의를 이용하고 이들을 시맨틱 매처 모듈에 이미 로딩되어 있거나 WordNet 등의 공공 사전으로부터 이용가능한 정의들과 비교함으로써, 모든 단어를 시맨틱 검사한다. 컨텍스트는 온톨로지(예를 들어, 의료적/외과적 또는 지리적 위치)에 의해 공급된다.
■ 시맨틱 매처 모듈은 개념 Id인, 동의어들의 모든 패밀리에 대한 부명제나 루트 단어에 대응하는 고유한 수를 정의한다.
■ 이어서, 동의어 표에는, 개념 Id에 관하여 전술한 임시 표들의 용어들과 매칭되는 용어들을 로딩한다.
■ 인덱싱되고 있는 온톨로지의 각 용어에 대한 시맨틱 매처 모듈에 의해 식별되는 모든 동의어들도 동의어 표에 로딩한다.
■ 이어서, 적절한 개념 Id를 CDO 표의 각 용어로 대체함으로써 최종 CDO 인덱스를 생성한다.
■ 이어서, 적절한 개념 Id를 C2C 표의 각 용어로 대체함으로써 최종 C2C 인덱스를 생성한다.
■ 인덱스의 임시(표시 버전)를 삭제한다.
■ 이어서, 선행 단계들 모두를 반복함으로써, 인덱싱될 다음 온톨로지를 로딩한다.
■ 관련 온톨로지들 모두가 인덱싱되었을 때, 로딩 프로세스 동안 임의의 새로운 동의어들이 식별된 경우 시맨틱 매처 모듈에 대한 동의어 표의 최종 통과를 수행한다.
■ 인덱스들을, 적절한 데이터베이스 구조에 로딩하고 성능을 위해 조정한다. 통상적으로, 이는, 온톨로지 인덱스 표들에 대하여 다수의 데이터베이스 인덱스들을 생성하는 것을 포함한다.
사용자의 도구나 인덱스와의 직접적인 사용자 상호 작용이 없음을 인식할 것이다. 대신에, 인덱서 모듈은 다른 모듈, 도구, 또는 구성요소에 의해 사용되는 서비스를 제공한다.
이 인덱스가 제공할 수 있는 서비스들 중 일부는, 아래와 같은 향상된 기능을 포함한다:
■ 온톨로지들의 선택으로부터 최상의 온톨로지를 선택;
■ 다수의 온톨로지들을 정렬하거나 병합;
■ 온톨로지를 네비게이션;
■ 동의어들을 추출;
■ 시맨틱 매칭을 수행.
온톨로지 간결화기 모듈
간결화기 모듈은, 관심을 갖는 온톨로지 용어들에 대한 공리들 또는 데이터를 포함하는 구성요소를 무심코 삭제함으로 인해 무결성을 잃지 않고 사용자가 큰 온톨로지 또는 정렬된 온톨로지들의 집합을 취하고, 이들을 사용자의 요구에 대한 관심 클래스들까지 간결화할 수 있도록 설계된다.
예를 들어, 해부학적 구조의 기본 모델(Foundational Model of Anatomy; FMA) 등의 큰 참조 온톨로지를 구축 및 이용하는 경우 문제가 발생한다. 이러한 점에서, FMA는, 매우 크며 상당히 상세화되어 있지만, 또한 사실상 매우 일반적이다(예를 들어, 애플리케이션에 대한 특이성을 갖지 않는다). 또한, 이것은 적절한 모델링 원리를 고수하는 점에서 엄격하다. 이러한 기준들은 함께 FMA를 많은 가능한 애플리케이션들에 부여한다. 그러나, 이들은, 또한, 임의의 특정한 애플리케이션이 사용하는 것을 번거롭게 한다(즉, 매우 크거나 상세하거나 원칙화된다).
그 결과, FMA의 잠재적 사용자들은 다음에 따르는 기본 형태인, "we really like the FMA, but it is too large or too detailed for our needs, we really only need something based on subsets of the whole FMA"라는 요구를 가졌다. 분할을 위한 기본은, 애플리케이션마다 가변되었지만, 예를 들어,
■ 영역 기반, 즉, 뇌 또는 배.
■ 시스템 기반, 즉, 심혈관계 또는 골격계.
■ 입상도 기반, 즉, x레이로만 보이거나 세포 또는 세포하 구성요소에서만 보이는 항목들을 포함한다.
원하는 온톨로지를 통해, 유도물은 일반적으로 전술한 바와 같은 서브세트 추출에 기초하였으며, 이어서 애플리케이션의 필요에 더욱 적합해지도록 종종 추가 조작되었다(즉, 클래스 추가, 클래스 제거, 특성 제거, 특성 추가 등).
이러한 요구들은 세 가지 방식 중 하나로 다루어질 수 있다:
■ 각각의 새로운 요구에 특정된 절차 코드를 기입하는 것으로서, 이는 포괄적 해결책이 아니다.
■ 온톨로지에 대한 뷰를 생성하는 것으로서, 이는 원하는 애플리케이션 지식 베이스(KB)(항상 적절한 온톨로지인 것은 아님)를 정의하기 위한 언어 및 정의와 소스 온톨로지(들)로부터 애플리케이션 KB를 생성할 수 있는 엔진을 필요로 한다. 이는 특성들을 추가 및 제거하는 문제점이 있다.
■ 잘 모델링된 서브세트 온톨로지를 전달하도록 온톨로지를 간결화하는 것이다.
따라서, 관련성, 성능, 관리성, 및 테스트 가능성 등의 간결화된 온톨로지에 대한 많은 필요가 있으며, 이러한 요건들은, 온톨로지 전문지식이 없거나 거의 없는 사람이 불필요한 개념들을 안전하게 간결화할 수 있게 하는 도구에 의해 층족되어야 한다. 게다가, 그 사람은, 간략화된 질의 구축 기구를 사용함으로써 온톨로지에 의해 설명되는 데이터를 선택 및 검사할 수 있어야 한다. 이어서, 그 사람은, 구성요소들의 제거를 행하기 전에 온톨로지로부터 구성요소들을 제거하는 영향을 연구할 수 있고 이어서 간결화된 온톨로지를 새로운 온톨로지로서 세이브할 수 있다.
예를 들어, SNOMED-CT는 임상 서류에서 사용되는 의료 용어들의 큰 의료 온톨로지이다. 이것은, 약 1,400,000개의 관계들을 사이에 갖는 300,000개 이상의 개념들로 이루어진다. 개념들은 19개의 기능적 영역들로 분할되며, 연구원은 이러한 영역들 중 하나의 영역에만, 예를 들어, 정신 건강에만 관심을 가질 수 있다. 나머지 18개의 영역들을 제거함으로써, 의료 건강 용어들과 제약 용어들 간의 관계들 중 상당수가 파괴된다. 명백하게, 이러한 항목들을 유지하길 원할 수 있다. 이를 수동으로 행하려면, 기존의 도구로는 수개월의 작업이 필요하며 에러가 발생하기 쉽다.
다른 일례로, 사용자는 기존의 여러 소스 온톨로지들의 구성요소들로부터 새로운 온톨로지를 생성한 후 이들의 고유한 추가사항을 추가하길 원할 수 있다. 결합된 온톨로지는, 제거될 필요가 있는 관련없는 많은 개념들을 포함한다. 예를 들어, 소포 배달 회사는, 수송 온톨로지와 지리 위치 온톨로지를 결합하여 배달 경로들이 결정 및 최적화될 수 있게 하는 온톨로지를 생성한다. 이러한 온톨로지들을 결합하고 공항에서의 비행기 이동의 출발 및 정지, 항구에서의 선박 및 역에서의 열차 등의 공리들을 추가함으로써, 해당 비즈니스 모델의 모든 개념을 커버하는 정보 베이스를 구축할 수 있다. 그러나, 각 소스 온톨로지 중 상당수는 필요하지 않다.
완전한 온톨로지에 대한 뷰 대신에 간결화된 온톨로지 정의를 사용할 수 있다. 이러한 뷰는, 액세스 제어, 범위 관리 등의 다수의 목적을 위해 사용될 수 있다.
이를 달성하도록, 간결화기 모듈은, 이하의 표 6에 설명된 기능들을 수행하게끔 브라우저 모듈과 함께 동작한다.
# 타이틀 기능
1 단일 온톨로지
간결화
갱신된 온톨로지 브라우저 모듈을 사용하여, 소스 온톨로지로부터의 모든 관련된 오브젝트 특성, 공리, 추론을 갖는 온톨로지의 일관성있는 집적된 서브세트의 생성을 가능하게 하는 방식으로 사용자에 의한 클래스들의 태그를 가능하게 한다.
2 중첩 온톨로지들
간결화
시맨틱 매칭 도구와 갱신된 온톨로지 브라우저 모듈을 사용하여, 소스 온톨로지로부터의 모든 관련된 오브젝트 특성, 공리, 추론을 갖는 온톨로지의 일관성있는 집적된 서브세트의 생성을 가능하게 하는 방식으로 클래스들의 태그를 가능하게 한다. 온톨로지들이 사실상 이질적인지 여부를 결정하기 위한 기구를 포함한다.
3 이질적 온톨로지들
간결화
필요한 상세를 추가하여 이질적 온톨로지들을 조인하기 위한 기구를 포함한다. 이어서, 전술한 기구를 반복적으로 적용하여 간결화된 온톨로지를 확립한다.
예를 들어, 지리 온톨로지와 수송 온톨로지가 주어진 경우,
두 개의 위치 간의 적절한 수소 기구들의 분석할 수 있게 하는 여행 온톨로지를 구축한다.
간결화기 모듈은, 사용자가 유지하길 원하는 선택된 온톨로지의 클래스, 데이터 특성, 오브젝트 특성, 및 공리를 특정할 수 있도록 브라우저 모듈과 상호 작용한다. 그렇게 유지되는 것을 이용하여, 간결화기 모듈은 온톨로지에서 정의된 관계적 및 공리적 무결성이 유지되는지를 확인한다.
다른 일례로, 사용자는, 간결화된 온톨로지에서 유지되어야 하는 단일 온톨로지 내의 두 개의 필수 개념을 특정할 수 있다. 이어서, 본 발명은 클래스들 간의 모든 개념 관계들을 매핑하고, 특정된 개념을 분석하는 데 필요한 모든 클래스들을 태그한다. 이어서, 간결화된 온톨로지의 무결성을 확실히 하도록 추가 클래스, 오브젝트 특성, 및 공리가 소스 온톨로지로부터 포함된다.
또 다른 일례로, 사용자는, 간결화된 온톨로지에서 유지되어야 하는, 이질적인 온톨로지들로부터 두 개의 필수 개념을 특정할 수 있다. 이어서, 간결화기 모듈은, 클래스들 간의 모든 개념 관계들을 매핑하려 하고, 특정된 개념을 분석하는 데 필요한 모든 클래스들을 태그한다. 연결 경로가 식별되지 않으면, 소프트웨어는, 두 개의 시작 개념을 연결하는 간결화된 온톨로지 생성의 잠재적 불가능성을 인식한다. 사용자는,
■ 시도를 포기할 것, 또는
■ 목표를 재정의하고 다시 시작할 것, 또는
■ 추가 클래스들을 수동으로 또는 다른 온톨로지로부터 추가하고 다시 시작함으로써 범위를 확대할 것을 요구받는다.
성공적이라고 가정하면, 사용자는, 이제, 결합된 소스 온톨로지들로부터 크기가 크게 감소된 완전한 온톨로지를 갖는다.
간결화기 모듈의 구조의 일례는 도 17a에 도시되어 있다.
이 예에서, 간결화기 모듈(1330)은 OWL 및 RDFS 파일들에 정의된 온톨로지들(1701)을 개방하고, 이어서, 사용자는 이하의 표 7에 정의된 바와 같은 스크린들(1702)의 세트를 통해 간결화기 모듈(1330)과 상호 작용하여, 간결화된 온톨로지(1703)를 생성한다. 전술한 바와 같이 브라우저 모듈(1310)에 의해 스크린들이 생성될 수 있음을 인식할 것이다.
# 스크린
타이틀
사용자 이야기
1 Landing page 사용자는, 먼저, 이용가능한 온톨로지들을 열거하는 능력을 가질 'landing page'에 액세스한다. 사용자는 온톨로지를 선택한다. 온톨로지를 선택함으로써, 도구는 그 온톨로지를 관리하기 위한 스크린들을 생성한다.
2 Class list 온톨로지를 선택함으로써, 사용자에게는 선택된 온톨로지의 클래스들의 리스트가 제시된다. 사용자는 하나의 클래스를 온톨로지에 대한 엔트리 포인트로서 선택한다.
3 Class Display 클래스에 대한 모든 데이터 특성 필드들은, 아래와 같은 4개의 추가 프레임과 함께 메인 프레임에 표시된다:
■ 수퍼 클래스 관계를 이용하여 선택된 클래스-a 클릭가능 링크의 부모/수퍼 클래스들.
■ 서브클래스 관계를 이용하여 선택된 클래스-a 클릭가능 링크의 자식/서브 클래스들.
■ 오브젝트 특성 상세를 이용하여 선택된 클래스-a 클릭가능 링크의 관련 클래스들.
■ 그 클래스에 영향을 끼치는 공리들.
스크린 상의 필드 명칭들은, 온톨로지 검색시 비워져 있는 인접하는 데이터 엔트리 필드와 함께 표시된다.
간결화된 온톨로지에서 유지될 스크린들을 위한 클래스들과 특성들을 선택하도록 편집 기구들을 제공한다.
단일 온톨로지를 간결화하는 경우, 이것은 도구 보조 수동 프로세스이며, 이를 도 17b를 참조하여 이제 설명한다.
이 예에서, 사용자는 필요로 하는 개념들을 선택하고, 도구는 완전성과 무결성에 필요한 구성요소들을 식별 및 추가한다. 사용자는, 클래스를 소스 온톨로지의 시작 시드점(S0)으로서 선택하고 Keep를 나타내는 K0으로서 태그한다.
컴퓨터는, 'K0'으로 마킹된 클래스들의 모든 부모들, K0으로서 태그된 클래스와 추론으로부터의 모든 클래스와 추론을 식별하고 'K1'로서 태그한다. 이렇게 태그된 변수들을 S1-쉘이라 칭한다. 사용자는, 컴퓨터 태그된 항목들을 리뷰하고, 이들을 유지하도록 K1로서 리태그하고, Maybe를 나타내는 M1로서 리태그하고, Discard를 나타내는 D1로서 리태그한다. 모든 공리들을 태그된 Mi 및 Ki 구성요소들을 위해 로딩한다. 이어서, 프로세스를 반복하여, 사용자가 적절한 온톨로지를 위한 모든 구성요소들을 태그할 때까지 i를 계속 증분한다.
이어서, 결과적으로 발생하는 온톨로지에 리즈너(reasoner)를 적용하여 잠재적 에러를 식별하고 추론 값들을 추가한다. 따라서, 추가되는 임의의 개념, 추론, 또는 공리는 Kn으로서 태그되고, 태그된 구성요소들은 간결화된 온톨로지로서 익스포트된다.
다수의 중첩되는 온톨로지들에 대하여, 프로세스는 도 17c에 도시한 바와 같다.
이 예에서, 사용자는, 클래스를 하나의 온톨로지의 시작 시드점(S0)으로서 선택하고, 다른 하나의 클래스를 동일한 온톨로지 또는 다른 온톨로지의 종료 시드점(E0)으로서 선택하며, 이들 모두를 'K0s' 또는 'K0e'를 갖는 Keep를 위한 K로서 태그한다.
컴퓨터는, 'K0x'로 마킹된 클래스들의 모든 부모들을 'K1s' 또는 'K1e'로서 식별 및 태그하고, 클래스들과 추론들로부터의 모든 서브클래스들과 추론들을 'Knx'로서 식별 및 태그하며, 여기서 n은 1이다. 이렇게 태그된 변수들을 S1-쉘 및 E1-쉘이라 칭한다. S 쉘과 E 쉘의 변수들은, 더욱 상세히 후술되는 시맨틱 매처 모듈에 의해 비교된다. 매처 모듈은, 각 쉘의 변수들 간의 매치 품질에 대한 수치를 리턴한다. 소정의 매치 품질이 충족되면, 두 개의 쉘 사이의 경로가 결정된 것이다. 이는 쉘들의 중첩을 발생시켜야 한다. 시작점과 종료점이 동일한 온톨로지에 있다면, 매치 품질은 정확하게 1.0이어야 한다.
어느 스테이지든, 태그된 데이터 클래스의 데이터 특성들을 간결화할 수 있다. 이는, 클래스를 선택하고 데이터 필드들(데이터 특성들)을 Discard를 나타내는 'D'로서 마킹함으로써 수행된다. 폐기된 필드의 존재에 기초하는 임의의 추론은 무시한다.
이러한 단계들을 반복하고, 소정의 개수의 변수들이 적절한 매치 품질을 가질 때까지 또는 미리 정의된 쉘 깊이에 도달할 때까지 n을 1씩 증분한다. 매칭 변수들의 쉘 경로들은 'Pjx'로 태그된다. 임의의 경로를 확립하지 않고 미리 정의된 쉘 깊이에 도달하면, 프로세스는 실패하였으며, 온톨로지들은 이질적으로 간주된다. 프로세스는 중단된다. 이때, 미리 정의된 쉘 깊이를 증가시킬 수 있고, Discard를 위해 K 내지 D 범위를 벗어난 것으로 간주되는 임의의 개념들의 태그를 수동으로 변경할 수 있다. 프로세스를 재시작할 수 있다.
일단 이들이 확립되었다면, S0과 E0 간의 경로들 Pj가 채워질 수 있으며, 골격 간결화된 온톨로지가 이러한 경로들 관점에서 정의될 수 있다. 태그된 Pj 경로 구성요소들에 대한 모든 클래스 부모들과 추론된 부모들도 경로 Pj에 속하는 것으로 태그된다. 모든 공리들이 태그된 Pj 경로 구성요소들에 대하여 로딩되며, 이에 따라 확장된 온톨로지를 생성한다.
리즈너를 확장된 온톨로지에 적용하여 잠재적 에러를 식별하고 추론 값을 추가한다. 이에 따라, 추가되는 임의의 개념, 추론, 또는 공리를 태그하고 간결화된 온톨로지의 일부로서 익스포트한다.
이질적인 온톨로지들에 대하여, 프로세스는 도 17d에 도시한 바와 같다. 이러한 점에서, 이질적인 온톨로지들은 두 가지 가능한 이유로 발생할 수 있다:
■ 사용자가, 온톨로지들을 정렬하거나 두 개의 온톨로지들의 개념들로부터 서브세트 온톨로지를 추출하려 할 때까지 온톨로지들이 이질적임을 인식하지 못했다. 이것은 이전 섹션의 잠재적 실패 결과이다; 또는
■ 사용자가, 온톨로지들이 이질적인 것을 알고 있으며, 개념과 특성을 공급하여 온톨로지들이 조인될 수 있게 한다.
어느 경우든, 사용자는 온톨로지들을 조인될 수 있도록 정보를 공급해야 한다. 이는 프로세스를 위한 효과적인 시작점이다.
사용자는, 클래스를 하나의 온톨로지의 시작 시드점(S0)으로서 선택하고, 다른 클래스를 다른 온톨로지의 종료 시드점(E0)으로서 선택하고, 이들 모두를 'K0s' 또는 'K0e'를 갖는 K로 태그한다. 또한, 이들은, 라인(1710)으로 도시한 바와 같이 온톨로지들을 연결하는 사용자 정의된 경로들의 세트를 정의한다.
이러한 경로들은, 시작점과 종료점(U0Si, U0Ei)을 갖고, 여기서 i는 정의되는 경로 수이다. 이러한 경로들은, 하나의 온톨로지의 클래스로 시작하여 다른 온톨로지의 클래스로 종료되는 관련된 개념들의 연속 세트를 형성한다.
이어서, 중첩 온톨로지들에 대한 전술한 프로세스를 각 개념 쌍 S0과 U0Si 및 E0과 U0Ei에 적용하여 시작/종료점들 간의 경로들(Psi, Pei) 및 사용자 정의된 개념들 "i"를 확립한다. 일단 이들이 확립되었다면, S0과 E0 간의 경로들(Pi)이 채워질 수 있고, 골격 간결화된 온톨로지가 이러한 경로들 면에서 정의될 수 있다. 태그된 Pi 경로 구성요소들에 대한 모든 클래스 부모들과 추론된 부모들도 경로(Pi)에 속하는 것으로서 태그된다. 태그된 Pi 경로 구성요소들에 대하여 모든 공리들을 로딩한다. 이를 확장된 온톨로지라 칭한다.
리즈너를 확장된 온톨로지에 적용하여 잠재적 에러를 식별하고 추론된 값을 추가한다. 이에 따라, 추가되는 임의의 개념, 추론, 또는 공리가 간결화된 온톨로지(1711)에 포함되며, 이것이 이제 익스포트될 수 있다.
사용자에 의해 개념이 간결화를 위한 시작점으로서 선택되는 경우, 어떠한 추가 개념들이 포함되어야 하는지를 결정하는 것이 필요하다. 이러한 결정을 내리도록 적용되는 오브젝트 특성과 데이터 특성에 기초하는 많은 알고리즘들이 있다. 이러한 점에서, 오브젝트 특성들은 다음과 같은 속성들을 갖는다:
■ 두 개의 개념 간의 관계를 명명한다.
■ 관계는 방향을 갖는다. 이것은, 'Domain' 개념으로부터 'Range' 개념으로서 정의된다. 관계형 데이터베이스 용어에 있어서, Domain의 일차 키는 Range의 외래 키이다.
■ 선택적으로, 관계는, 아래의 예를 포함하는 유형을 갖는다:
- 기능적
- 역기능적
- 이행적
- 대칭적
- 비대칭적
- 반사적
- 비반사적
또한, 수퍼/서브클래스 관계는 오브젝트 특성의 특별한 경우와 등가이다. 서브클래스는 자신의 수퍼클래스의 모든 데이터 특성들과 모든 오브젝트 특성들을 상속받는다.
전술한 온톨로지 샘플을 이용하여, 간결화를 위한 시작점이 'Club'이면, Club의 모든 수퍼 클래스들, 즉, 간결화된 온톨로지의 Organisation 및 Party를 포함하는 것이 필요하다. 클래스 Member는 방향으로서 포함되지 않으며, 그 관계의 유형은 자동 포함을 금지하고 있다. 동일한 이유로, Organisation 및 Party의 서브클래스들은, 자동 포함되지 않으며, club의 어떠한 서브클래스도 포함되지 않는다.
그러나, Member가 포함되어 있었다면, 오브젝트 특성들 'Has'와 'Holds'의 방향과 유형은, Club과 Individual 및 이들의 모든 수퍼클래스들이 자동 포함되는 것을 확실히 한다.
임의의 개념의 데이터 특성 'Type'는, 모델링되지 않은 개념의 존재, 즉, Club의 'Type of Club', Member의 'Type of Member' 등을 암시하므로 레드 플래그(red flag)를 올린다. 예를 들어, 'Type of Club' 개념은, Sai1ing, Chess, Gymnastics 기타 등의 모든 유효 값들의 리스트를 포함할 수 있다. Type_of_Club 개념은, Range of Club을 갖는 'Has Type'이라 칭하는 오브젝트 특성을 갖는다. 이 개념은 간결화된 온톨로지에 자동 포함된다.
모든 자동 포함 및 배제는, 모든 개념들에 걸쳐 또는 개념마다 수정될 수 있다. 사용자는 오브젝트 특성의 각 유형마다 'Include', 'Exclude' 또는 'Ask'를 특정한다.
구체적인 개념을 포함시키는 결정은, 온톨로지 규칙을 이용하는, 특히, 추론 엔진에 대한 입력 등의 오브젝트 특성들을 이용하는 특별 시맨틱 리즈너에 의해 행해진다. 1차 술어 로직을 초기에 사용하여 명백한 포함과 배제를 얻는다. 'Type' 데이터 특성의 예에서, 순방향 및 역방향 추론 체이닝을 이용하여 추가 추론들을 결정해야 한다. 최상의 결과를 취득하도록, 노바멘치 확률 로직 네트워크 기술을 국부화된 각 문제 영역에 적용할 수 있다.
이제, 간결화기 모듈의 동작의 일례를 더욱 상세히 설명한다. 이 예에서, 온톨로지를 간결화하도록, 온톨로지에 포함되는, 개념, 데이터 특성, 오브젝트 특성, 및 추론을 식별할 필요가 있다. 일례로, 이는, 전술한 바와 같이 인덱서 모듈을 사용하여 온톨로지 항목들을 인덱싱한 후 브라우저 모듈을 사용하여 온톨로지 용어들을 선택을 위해 표시함으로써 달성된다.
구체적으로, 사용자는, 브라우저 모듈 'Landing screen'에서 간결화될 온톨로지를 선택한다. 이러한 점에서, 온톨로지는 파일, 웹 어드레스 등의 임의의 소스로부터 선택될 수 있다. 일단 온톨로지가 선택되었다면, 온톨로지의 인덱스를 이용하여 클래스 리스트가 생성된다. 이 리스트는 각 클래스의 명칭과 설명을 표시한다. 더욱 큰 리스트에 대해서는, 사용자가 클래스 명칭이나 클래스 설명의 일부에 의해 탐색을 행할 수 있게 하는 리스트 탐색 기능을 제공한다. 데이터 특성에 대한 탐색도 가능하다. 어느 경우든, 탐색은 그 데이터 특성을 포함하는 클래스들의 리스트를 리턴한다. 이어서, 사용자는 클래스를 시작점으로서 선택하고 S0으로 태그한다.
이어서, 선택적으로, 사용자는 종료점(E0)을 선택한다. 사용자가 종료점을 선택하지 않으면, 전술한 바와 같이 간결화 동작을 수동으로 제어할 필요가 있다. 또한, 사용자는, Landing Screen으로 리턴하여, 종료점에 대한 다른 온톨로지를 선택할 수 있고, 또는 대안으로, 선택된 온톨로지들이 이질적임을 인식한다면 브리징 개념들과 관계들의 세트를 추가할 수 있다. 사용자가 브리징 개념들을 특정하지 않으면, 프로세스는, 전술한 중첩 온톨로지 프로세스에 기초하여 진행되고, 그렇지 않다면, 이질적 온톨로지 프로세스에 따라 진행된다.
간결화 프로세스를 제어하도록, 이하의 예를 포함하는 다수의 메타데이터 파라미터들을 설정할 수 있다:
■ 간결화된 온톨로지를 저장하기 위한 위치.
■ 조사를 위한 쉘 깊이.
■ 동일성(sameness)을 수락하기 위 한 매치 품질.
■ 수동 편집이 가능하도록 각 쉘의 완료시 프로세스를 일지 정지할지 여부.
■ 최대 런 타임.
■ 에러와 로그 메시지의 다변성.
이제, 수동 간결화 프로세스의 일례를 더욱 상세히 설명한다.
이 예에서, 사용자는 간결화 프로세스를 시작할 시작점만을 특정한다. 사용자는 어느 때로 상호 교환가능하게 사용될 수 있는 두 가지 방식 중 하나로 수동 간결화를 수행할 수 있다.
■ 사용자는, 통상적으로 브라우저 모듈(1310)에 의해 표시되는 Class List 스크린으로부터, 클래스들을 'K'로 유지하도록 태그할 수 있다. 어느 때라도, 사용자는, 임의의 관련된 클래스와 공리를 자동 태그하고 클래스 리스트에 태그된 클래스들을 표시하는 'Validate' 옵션을 선택할 수 있다. 또한, 사용자는, 선택된 클래스들과 관계들을 그래픽으로 나타내도록 태그된 클래스들을 그래핑 프로그램에 전달하는 'View' 옵션을 선택할 수 있다. 그래핑 프로그램은 OntoGraf 등의 대중이 이용가눙한 그래핑 패키지일 수 있다.
■ 대안으로, 사용자는, 브라우저 모듈(1310)에 의해 표시되는 Class List 스크린의 클래스를 클릭함으로써 Class Display 스크린에서 시작 클래스를 개방할 수 있다. 이어서, 사용자는, 유지하고자 하는 모든 데이터 특성들, 및 오브젝트 특성 프레임에서 특정되는, 임의의 서브/수퍼 클래스들 및 임의의 클래스들을 태그할 수 있다. 이 프로세스는, 표시되어 있는 임의의 관련된 클래스에 대한 링크를 클릭함으로써 반복적으로 수행될 수 있다. 어느 때라도, 사용자는 자신의 진행 상황을 인증하거나 보기 위해 Class List 스크린으로 리턴할 수 있다.
일단 사용자가 간결화된 온톨로지에 필요한 클래스들을 태그하는 것을 종료하였다면, 사용자는 Class List 스크린으로 리턴하여 "Generate Ontology" 옵션을 선택한다. 이에 따라, 애플리케이션 메타데이터에서 특정된 위치에서 간결화된 온톨로지가 생성된다. 태그들은 간결화 프로세스의 재편집이 용이할 수 있도록 세이브될 수 있다.
이제, 중첩 온톨로지들을 간결화하는 일례를 더욱 상세히 설명한다.
이 예에서, 사용자는 간결화 프로세스를 실행하기 위한 시작점과 종료점만을 특정한다. 프로세스는 전술한 바와 같이 다수의 중첩 온톨로지들에서 설명되는 바와 같이 진행된다.
애플리케이션 메타데이터 파라미터들이 쉘들 간에 일시 정지되도록 설정되었다고 가정하면, 프로세스는 각 쉘이 완료될 때마다 정지된다. 이때, 사용자는, 자동적으로 태그된 항목들을 인증하거나 볼 수 있고, 관련없는 것으로 인식하는 임의의 태그들을 제거할 수 있다. 시작점과 종료점을 연결하는 경로가 확립될 때까지, 뷰 기능은 두 개의 부분적 온톨로지를 표시한다. "Resume" 옵션을 선택함으로써, 프로그램은 다음 쉘의 결정에 대하여 시작된다.
하나의 경로가 식별된 후 어느 때라도, 프로세스가 정지될 수 있다. 대안으로, 시작점과 종료점 간의 다수의 서로 다른 가능한 경로들이 결정될 수 있다.
일단 처리 조건들의 특정된 종료가 충족되었다면, 프로세스는, 정지하며, 다음에 따르는 예들 중 하나를 포함하는 상태 메시지와 함께 사용자에게 리턴한다.
■ 특정된 최대 쉘 깊이에 도달하였음. 경로는 발견되지 않음. 온톨로지들이 이질적일 수 있음(실패).
■ 특정된 최대 셀 깊이에 도달하였음. "n"개의 경로 발견. "m"개의 경로가 필요함(부분적 성공).
■ 특정 개수의 경로가 발견됨(완전한 성공).
사용자는, 애플리케이션 메타데이터의 완료 기준을 변경하고 Resume 옵션을 선택함으로써 프로세스를 연장할 것을 결정할 수 있다. 사용자가 결과에 만족하면, 사용자는 "Generate Ontology" 옵션을 선택한다. 이에 따라, 애플리케이션 메타데이터에서 특정된 위치에서 간결화된 온톨로지가 생성된다. 태그들은 간결화 프로세스의 재편집이 용이할 수 있도록 세이브될 수 있다.
사용자는, 온톨로지들이 사실상 이질적이라고 결정하면, 후술하는 바와 같이 진행한다.
이 예에서, 사용자는, 간결화 프로세스를 시작할 시작점과 종료점 및 관련된 브리징 개념들의 세트를 특정한다. 사용자는, 온톨로지들을 간결화 및 병합을 행하도록 이전 시도에서 세이브된 태그들을 가지고 있을 수 있다.
간결화 옵션 실행을 선택함으로써, 프로세스는, 전술한 이질적 온톨로지 프로세스에 따라 설명된 바와 같이 시작된다. 애플리케이션 메타데이터 파라미터들이 쉘들 간에 일시 정지하도록 설정되었다고 가정하면, 프로세스는 각 쉘이 완료될 때마다 정지된다.
이때, 사용자는, 자동적으로 태그된 항목들을 인종하거나 볼 수 있고, 관련없는 것으로 인식하는 임의의 태그들을 제거할 수 있다. 사용자 정의된 브리징 지점들 층 하나에 대하여 시작점과 종료점을 연결하는 경로가 확립된 때까지, 뷰 기능은 많은 부분적 온톨로지들을 표시하되, 각각의 사용자 정의된 지점에 대하여 하나를 표시하고 시작점과 종료점에 대하여 하나를 표시한다.
재개 옵션을 선택함으로써, 프로세스는 다음 쉘의 결정을 시작한다. 소스 온톨로지의 하나의 경로와 타겟 온톨로지의 하나의 경로가 브리징 클래스들을 통해 연결될 수 있는 시점 후의 어느 때라도, 프로세스는 정지될 수 있다. 그러나, 대안으로, 시작점과 종료점 간의 가능한 많은 경로들이 결정될 수 있다.
일단 처리 조건들의 특정된 종료가 충족되었다면, 프로세스는, 정지하며, 다음에 따르는 예들 중 하나를 포함하는 상태 메시지와 함께 사용자에게 리턴한다:
■ 특정된 최대 쉘 깊이에 도달하였음. 경로는 발견되지 않음. 온톨로지들이 이질적일 수 있음(실패).
■ 특정된 최대 쉘 깊이에 도달하였음. "n"개의 경로 발견. "m"개의 경로가 필요함(부분적 성공).
■ 특정 개수의 경로가 발견됨(완전한 성공).
사용자는, 애플리케이션 메타데이터의 완료 기준을 변경하고 Resume 옵션을 선택함으로써 프로세스를 연장할 것을 결정할 수 있다.
사용자는, 온톨로지들이 사실상 여전히 이질적이라고 결정하면, 브리징 개념들을 조사하도록 다소 노력할 필요가 있다. 사용자는, 경로들이 충족되는 것을 확실히 하도록 수동 태그를 수행할 필요가 있을 수 있다.
사용자가 결과에 만족하면, 사용자는, 온톨로지 생성 옵션을 선택할 수 있어서, 애플리케이션 메타데이터에서 특정된 위치에서 간결화된 온톨로지가 생성될 수 있다. 태그들은 간결화 프로세스의 재편집이 용이할 수 있도록 세이브될 수 있다.
시맨틱 매처 모듈
시맨틱 매처 모듈은, 구체적인 컨텍스트 내에서 고려할 때 두 개의 개념의 유사한 정도에 수학적 값이 적용될 수 있게 한다. 이 프로세스에 대한 명칭은 '시맨틱 매칭'이며, 두 개의 온톨로지의 개념들을 정렬하려 할 때 매우 중요하다. 예를 들어, 비즈니스 컨텍스트의 'company'와 'organisation'이라는 단어(word)들은 정확하게 동일한 의미를 갖지 않는다. 모든 회사들은 조직이지만, 모든 조직들이 회사인 것은 아니다. 사실상, 클래스 회사들은 클래스 조직의 서브세트이다. 예를 들어, "This organisation is a listed company but that organisation is a golf club"이다.
사회적 컨텍스트에서, 회사는, 조직에 관련되지 않지만, 협회들의 세트에 관련될 수 있다. 예를 들어, "John Doe keeps bad company"이다. 클럽과 회사는 모두 조직이어서, 일부 유사성이 있다. 상장 회사와 비상장 회사도, 유사하며, 공통 부모를 공유한다. 이들은 개념적으로 클럽과 회사에 가까운가? 공공 비상장 회사(주주가 50명 초과) 및 개인 비상장 회사(주주가 51명 미만)는 어떠한가? 이들은 상장 회사와 비상장 회사보다 가까운가?
두 개의 개념이 얼마나 유사한지를 측정하기 위한 수학적 근거를 제공하도록, '동일성' 개념을 도입한다. 많은 정형적 메트릭들이 존재한다. 예를 들어, 레벤스타인 거리(Levenshtein, 1966)는 두 개의 스트링을 매칭하는 데 필요한 삽입과 삭제를 카운트하고, 니들만-브니쉬(Needleman-Wunsch: Needleman, 1970) 거리는 편집 동작들에 대하여 서로 다른 비용을 할당하고, 스미스-와터만(Smith-Waterman; Smith, 1981)은 비용에 대한 알파벳 매핑을 추가로 사용하고, 몽지-엘칸(Monge-E1kan; Monge, 1996)은 단어들 간의 서브스트링 갭에 따라 가변적 비용을 이용한다. 게다가, 두 개의 스트링이 "짧은" 거리만큼 제자리에 있지 않더라도 그 두 개의 스트링 간의 공통 문자들을 카운트하는 Jaro-Winkler 유사성, 가장 긴 공통 서브스트링을 탐색하는 서브스트링 거리 및 그 두 개의 스트링 간에 공유되는 트리-그램들(tri-grams)의 수를 카운트하는 Q-Gram(Sutinen, 1995)을 이용하였다. 그러나, 이들 중 어느 것도 매우 효과적인 것으로 증명되지 못했다.
다른 공통 기술은, 루트로서 "thing" 개념을 갖는 단일 계층 나무에 개념들을 배열하는 것이다. 대부분의 동일성 식들은, 계층의 루트에 대한 거리, 및 측정되는 개념들과 이들의 공통 부모 간의 개념들의 수의 함수들이다.
그러나, 온톨로지를 구축한 온톨로지스트에 따라 및 온톨로지를 사용하는 사람에 의해 온톨로지가 간결화되었는지 여부에 따라 계층의 루트에 대한 거리가 상당히 다를 수 있다는 사실로 불 때, 루트에 대한 거리는 일반적으로 관련성이 없다.
일반적으로, 개념들 간의 에지들의 개수에 의해 동일성을 측정한다. 데이터 특성들의 개수에 기초하는 다른 가능성들이 존재한다. 예를 들어, 클럽과 회사는 "5"개의 데이터 특성을 각각 가질 수 있고, 조직의 정의에 있어서 밸런스가 유지되는 반면, 공공 상장 회사와 공공 비상장 회사는 하나의 속성만을 각각 가질 수 있고, 밸런스가 회사 정의에서 유지된다. 따라서, 회사가 클럽에 유사한 것보다, 공공 비상장 회사가 공공 상장 회사에 더 유사하다("10"개 대신에 "2"개 속성들, 또는 다시 말하면, 차이가 덜하며 차이가 거리와 등가이다).
'거리' 개념은 중요한 것으로 여겨진다. 두 개의 개념이 얼마나 멀리 떨어져 있는가? 측정되는 개념들과 이들의 공통 부모 간에 개념들의 수에 기초하는 공식들이 있다. 거리가 "1"이면, 명백하게, 하나의 개념이 다른 하나의 개념의 수퍼클래스이다. 그러나, 거리가 "2"이면, 개념들은 형제자매들이거나 손주들이다. 이것은 매우 유용한 사실이 아니다.
거리와 동일성 간에 일부 관계들이 있다. 명백하게, 거리가 "0"이면, 동일성이 "1.0"이며, 다시 말하면, 개념들이 동일해서, 사실상, 이 경우에는 하나의 개념만이 존재한다.
양호한 시맨틱 매처 모듈은, 임의의 적절한 공식을 이용하여 매치의 동일성과 거리를 산출할 수 있어야 한다.
과학 용어, 엔지니어링 용어 및 비즈니스 용어의 모든 양태를 설명하는 수천 개의 공공 및 개인 온톨로지들이 주어진다고 하자. 두 개의 온톨로지를 정렬하기 위해서는, 그 두 개의 온톨로지의 개념들 간에 시맨틱 매치가 있는지 여부를 결정할 필요가 있다.
현재, 링크된 개념들을 정의하는 온톨로지들의 조작은 아카데믹 및 전문 온톨로지스트들로 한정된다. 개념들의 명칭과 정의는 컨텍스트에 따라 크게 가변된다. 온톨로지들 내의 및 온톨로지들에 걸쳐 용어들을 비교하기 위해서는, 용어들을 시맨틱 조사하기 위한 일부 기구를 구비할 필요가 있다. 두 개의 개념이 동일한 사물에 대하여 실제로 동의어인가 또는 다른 소정의 방식으로 관련되어 있는가. 예를 들어, 조직과 회사는 공통되는 소정의 속성들을 갖고, 이에 따라 소정의 동일성 정도가 있다. 모든 회사들은 조직이지만, 모든 조직들이 회사는 아니다(포섭).
다른 일례로, 손가락이 존재한다는 것은 손이 존재함을 암시한다. 이들은 동일한 것은 아니지만, 이들 간에 관계가 존재하며, 하나의 존재는, 그 하나가 나머지 하나의 일부(부분어)이기 때문에 나머지 하나의 존재를 암시한다.
임의의 두 개의 개념이 주어진 경우, 이들이 얼마나 유사한지를 알고자 한다: 즉, 동일성 0 -> 1, 여기서 1.0은 이들이 동일함을 암시하고, 하나가 나머지 하나의 서브클래스 또는 수퍼클래스(-1, 0, 1)인지 여부 및 하나가 다른 하나의 일부(-1, 0, 1)인지 여부에 상관없다.
시맨틱 매처 모듈은, 개념들, 개념들의 의미, 및 개념들 간의 관계의 데이터베이스를 포함한다. 시맨틱 매처 모듈은, 온톨로지들로부터 개념들을 로딩하고, 개념들 간의 관계들 및 정의들을 수동 편집하고, 수학적으로 정의된 방식으로 개념들을 분석하기 위한 도구들을 갖는다. 이어서, 개념들과 이들의 관계들의 이렇게 수학적으로 정의된 특성들은, 온톨로지 정렬 등의 다양한 상황에서 사전으로서 및 시맨틱 개념 매처 모듈로서 사용될 수 있다.
시맨틱 매치 모듈 개념은, 구체적인 컨텍스트(예를 들어, 의료, 비즈니스)에서 동의어, 포섭(class hierarchy), 및 부분어(part of)를 찾는다. 이것은, 온톨로지를 파싱하고 클래스들, 이들의 주석, 클래스 구조, 및 임의의 'part-of' 오브젝트 특성들을 취득함으로써 초기에 로딩된다. 이어서, WordNet 또는 Watson 등의 것에서 클래스 명칭을 사용하여 의미 및 가능한 동의어를 결정한다. 임의의 표기법에서 그러하듯이, 의미를 트리플들로 파싱한다. 이어서, 매처 모듈은 트리플들에서 수학적 대응성을 찾아 유의성을 결정한다.
시맨틱 매처 모듈은, 통상적으로, 두 개의 온톨로지로부터의 개념들의 두 개의 리스트를 평가하거나 단일 개념을 평가하고, 이를 참조 용어들과 매칭하여 개념에 대한 의미를 결정하는 독립형 프로세스이다.
제1 예에서, 매처 모듈은 제1 리스트의 각 항목을 제2 리스트의 각 항목과 쌍으로 만든다. 이어서, 각 쌍(i,j)을 분석하여 다음에 따르는 항목들을 결정한다.
■ 시맨틱 유사성 Sij.
- 용어들이 동의어이면, 유사성은 Sij = 1.0이다.
- 반의어가 있다면, Sij = -1.
- 관계가 없다면, Sij = 0.
■ 포섭 관계 Subij.
- Ci가 Cj의 서브클래스이면, Subij = -1.
- Ci가 Cj의 수퍼클래스이면, Subij = 1
- 그 밖에는 Subij =0.
■ 부분어 관계 Merij.
- Ci가 Cj의 부분이면, Merij = -1.
- Cj가 Ci의 부분이면, Merij = 1
- 그 밖에는 Merij = 0.
제2 예에서, 매처 모듈은, 단일 개념 및 컨텍스트 정의를 취하고, 그 컨텍스트의 그 개념에 대한 동의어들, 서브 및 수퍼클래스들, 및 부분어들의 리스트를 생성한다. 컨텍스트가 공급되지 않으면, 모든 컨텍스트들에 걸쳐 평가를 수행한다.
일부 예들은, 의료용 온톨로지와 인적 자원 온톨로지가 SemMatch로 정의되었다는 가정에 기초한다:
Figure pct00011
이제, 두 개의 서로 다른 사용 방법을 도 18a와 도 18b를 참조하여 더욱 상세히 설명한다.
시맨틱 매처 모듈(1350)은, 개념 매칭 데이터베이스(1604)를 사용하여 평가를 수행한다. 도 18a의 예에서, 온톨로지 용어들(A, B와 X, Y) 등의 개념들의 두 개의 리스트(1801, 1802)를 수신한 후, 시맨틱 매처 모듈(1350)에 의해 비교를 행하여 온톨로지 용어들의 가능한 각 쌍들에 대하여 동일성 점수(1803)를 생성한다.
도 18b의 예에서, 단일 온톨로지 용어(1804) 등의 단일 개념을 수신하고, 시맨틱 매처 모듈(1350)은 이를 개념 매칭 데이터베이스(1604)와 비교하고, 동의어들의 리스트(1805)를 리턴한다.
개념 매칭 데이터베이스(CMD; 1604)는 인덱서 모듈(1320)을 사용하여 구축된다. 데이터베이스는, 사용될 수 있기 전에, 먼저 로딩되어야 하며, 통상적으로 관심을 갖는 컨텍스트에 기초하여 온톨로지를 파싱함으로써 로딩된다. 데이터베이스는 사용자에 의해 어느 때라도 새로운 컨텍스트를 추가하도록 갱신될 수 있다.
CMD(1604)는, 표 8에 정의된 바와 같은 다수의 표들을 포함하며, 표들 간의 관계가 도 18c에 도시되어 있다.
컬럼 설명


Word


Word 구체적인 소스로부터의 개념의 명칭.
Word_ID 자동 생성된 고유한 컴퓨터 키.
Meaning 이 버전의 단어의 의미를 정의하는 패러그래프.
Meaning_RDF 위 의미가 RDF 트리플로 변환된 것.
Source_ID 단어가 소싱된 온톨로지.

Ccpt_W_Ctext

Word_ID 자동 생성된 고유한 컴퓨터 키
Concept ID 동의어들 모두가 동일한 키를 갖는 것을 확실히 하도록 갱신되는 자동 생성된 컴퓨터 키.
Lemma 단어가 동의어들에 대한 메인 루트 단어인지 여부를 나타내는 불린 스위치.
Context_ID 컨텍스트를 식별하는 외래 키. 개념들이 이러한 의미와 동의어를 갖는 컨텍스트.
Concept
Concept 개념 명칭. 이것은 하나보다 많은 단어일 수 있다. 예를 들어, 'Involved Party'.
Concept ID 동의어들 모두가 동일한 키를 갖는 것을 확실히 하도록 갱신되는 자동 생성된 컴퓨터 키.
Context
Context 컨텍스트 명칭. 통상적으로, 온톨로지의 명칭, 예를 들어, SNOMED CT, HL7 RIM.
Context_ID 자동 생성된 고유한 컴퓨터 키.
ContextSource
Context_ID 컨텍스트를 식별하는 외래 키.
Source_ID 소스를 식별하는 외래 키.
Source
Source_ID 자동 생성된 고유한 컴퓨터 키.
Address 통상적으로, 데이터베이스를 로딩하기 위한 온톨로지 사용이 취득된 사이트의 URL/URI.

Relation
Type
Relation_Type_ID 자동 생성된 고유한 컴퓨터 키.
Name 두 개의 CWC, 예를 들어, 'subclassof' 또는 'ispartof' 간의 관계에서 사용되는 오브젝트 특성의 명칭.
Description 오브젝트 특성의 설명, 예를 들어, 포섭, 부분어.

Meronyms
CCW_ID_P 입력 개념 키
CCW_ID_C 입력 캐념 키가 일부인, 즉, Concept_ID가 Part_of_ID의 일부인, 개념의 개념 키.
Relation_Type_ID Includes_ID 개념 키가 일부인, 즉, Includes_ID가 Concept_ID의 일부인, 개념의 개념 키.
Word to
Word
Word_ID_P 부모 단어 키.
Word_ID_C 다른 소스, 통상적으로, Wordnet으로부터의 자식 단어 키-a 동의어.
이제, 로딩 기구를 도 18d를 참조하여 상세히 설명한다.
우선, 로딩될 온톨로지들(1801)의 전체 컨텍스트를 결정하고, ID가 1인 컨텍스트 표에 입력한다. 예를 들어, 의료용 온톨로지들이 로딩되면, 컨텍스트는 "의료"로서 식별된다.
이 카테고리의 온톨로지들과 각 온톨로지에 대한 컨텍스트 명칭은 아래에 나타낸 바와 같다:
■ 역 이벤트 보고 온톨로지 AERO
■ 아프리카 전통 의료 온톨로지 ATMO
■ 알렌 브레인 아틀라스(ABA) 성인 쥐 뇌 온톨로지 ABA-AMB
■ 알츠하이머 질병 온톨로지 ADO
■ 아미노산 온톨로지 AMINO-ACID
■ 양서류 육안해부학 온톨로지 AAO
■ 양서류 분류학 온톨로지 ATO
■ 해부학적 병리학 어휘 PATHLEX
■ 해부학적 엔티티 온톨로지 AEO
이러한 온톨로지들의 각각은 소스 표에 로딩되는 소스를 갖고, 따라서 소스 2 컨텍스트 표도 로딩딜 수 있다.
다음으로, 온톨로지들의 각각으로부터 이하의 정보를 추출하고 파싱한다:
■ 클래스
■ 오브젝트
■ 주석
■ 라벨
모든 단어들이 하나의 온톨로지로부터 올 때, Context_ID는 알려져 있다. 각 클래스는 단어 표의 단어로 된다. 주석은 단어 표의 의미로서 로딩된다. 모두 널(null)로 설정된 보조정리(루트 의미)와 개념과 함께 Word_ID 2 Context_ID 및 널로 설정된 각 클래스에 대한 Word_ID들과 Concept_ID를 갖는 Class2Object-Property2Class에 관한 임시 표들이 생성된다.
이어서, 추출된 클래스 및 이들의 주석들이 단어 표에 로딩된다. 각 클래스는 단어로 된다. 각 단어에는 고유한 Word_ID가 할당되고, 클래스 주석은 단어 표의 의미로 된다. 모든 단어들이 하나의 온톨로지로부터 온 것이므로, Context_ID는 전술한 바와 같이 알려져 있다.
모두 널로 설정되어 있는 부명제와 개념을 갖는 Word_ID2Context_ID에 관한 및 널로 설정된 Concept_ID와 각 클래스에 대한 Word_ID들을 갖는 Class2Object-Property2Class에 관한 임시 표들이 생성된다.
각 컨텍스트마다, 제1 단계는, 각 단어를 WordNet(1802) 등의 표준 사전으로부터 취득되는 의미 및 동의어와 매칭하는 것이다. 이어서, 매칭되지 않은 단어들을 다른 컨텍스트들로부터의 단어들에 대하여 매칭하여 동의어들을 식별한다. 이제, 이러한 단계들을 더욱 상세히 설명한다.
단어 표의 각 단어는 WordNet(1802)에 전달되어, 그 단어에 기초하여 잠재적으로 어휘소 또는 동의어들의 그룹에 대한 부명제 또는 루트 단어 및 의미를 취득한다. WordNet 의미는 주석으로부터 도출된 의미와 사전적으로 비교된다.
이는, 의미를 RDF 트리플들로 변환하고 트리플들을 평가함으로써 행해진다. 이제, 이 프로세스를 더욱 상세히 설명한다.
의미들이 매칭되면, Wordnet 단어와 의미는 새로운 Word_ID로 단어 표에 로딩된다. 새로운 Word_ID는 Word_ID_C에 할당되고, 초기 Word_ID는 Word_ID_P에 할당되며, 이들 모두가 Word2Word에 로딩된다.
Word_ID2Context_ID 표에는, Word_ID_P로서 로딩된 관련된 Word_ID와 동일한 Context_ID 및 Word_ID로서 Wordnet 부명제에 할당된 Word_ID가 로딩된다. Word_ID2Context_ID 표는 두 개의 컬럼 부명제와 개념만을 갖는다. 따라서, 부명제에는 새로운 Word_ID_C가 할당되고, 개념은 Word_ID_P로부터 할당된다.
마지막으로, Class2Object-Property2Class에는 Wordnet(1802)로부터의 Word_ID 정보가 로딩된다.
이어서, 부명제가 정의된 모든 단어들은 개념 표에 로딩된다. Word_ID2Context_ID는, 이제, 알려져 있는 개념 ID 및 부명제로 갱신될 수 있고, Concept_Word_Context 표를 로딩하는 데 사용될 수 있어서, CWC_ID가, 명명된 컨텍스트에서 사용되는 각 개념과 단어에 할당될 수 있다. CWC_ID는, Class2Object-Property2Class의 단어들을 식별하고 또한 CWC2CWC 표와 Relation_Type 표를 채우는 데 사용될 수 있다.
단어 표의 제2 전달은, 의미를 다른 컨텍스트들의 단어들의 의미와 구문론적으로 비교함으로써, 관련된 부명제가 없는 모든 단어의 의미를 검사한다. 매칭하기 위한 제1 의미의 Word_ID가 부명제로서 선택된다. 이어서, 프로세스는 Wordnet 식별된 부명제에 대하여 계속된다.
제3 전달은, 부명제에 관련되지 않은 각 단어를 부명제로서 간단히 식별한다. 이러한 세 개의 전달의 완료시, 모든 단어는 개념 표(1809)의 모든 가능한 컨텍스트에서 식별되었을 것이다.
이어서, 동일성 값을 산출한다. 전체 온톨로지가 알려져 있다면, 동일성 산출은, 비교되는 개념들의 속성들(데이터 특성들)을 매칭함으로써 수행될 수 있다. 속성 리스트는, 개념들의 수퍼클래스들의 속성들을 필연적으로 포함한다.
현재의 예에서, 동일성은 두 개의 단어의 의미를 분석함으로써 산출된다. 영어 의미는 주어 술어 목적어(SPO)의 형태인 RDF 트리플들로 변환된다. 이는, RDF 변환기에 대하여 자연 언어 처리(NLP)를 이용하여 행해진다(Arndt & Auer, 2014) (Augenstein, et al., 2013).
예를 들어, "A type of organisation which has members, not shareholders and exists to meet some vocational need of its members"라는 의미를 갖는 클럽은 아래의 표 9에 도시한 바와 같이 변환될 수 있다:
Figure pct00012
조직은, 표 10에 도시한 바와 같이 변환될 수 있는 "An organisation is a collection of individuals with an agreed reason for being their collection"과 같이 정의되는 개념이다.
Figure pct00013
조직 정의를 클럽 정의에 삽입함으로써, 표 11에 도시한 정의를 취득한다.
Figure pct00014
그러나, 멤버가 개인이라고 추론할 수 없다. 이에 대한 분석을 이용하여 아래의 사항들을 결정할 수 있다:
■ 클럽의 멤버가 개인이다. 이는, 멤버십 개념이 "Member is An Individual instead of Individual Holds Membership"로서 더욱 정확하게 정의된 오브젝트 특성들을 갖는다면 추론되었을 수 있다.
■ 수집에 대하여 동의되는 이유는 직업과 관련된 요구를 충족하는 것이다.
동일한 프로세스를 전술한 온톨로지 예의 Qango에 적용함으로써, Qango가 "an organisation created by a government to meet a specified government need"라는 것을 의미로부터 취득하여, 표 12에 도시한 트리플들이 발생한다.
Figure pct00015
Figure pct00016
이를 이용하여, 표 13에 도시한 바와 같은 공통 술어들과 목적어들에 기초하는 비교 표를 구축할 수 있다.
Figure pct00017
이는, 동일성에 대한 공식이 다음에 따르는 인자들에 기초하여 사용될 수 있게 한다.
■ Club과 Qango의 개념들에 대한 트리들의 수는 N1과 N2로 각각 표기되며, 여기서, N1=9이고, N2=7이다
■ 두 개의 개념 Club과 Qango 간에 공유되는 술어들(SP)의 수는 5, 즉, SP=5이다
■ 두 개의 개념 Club과 Qango 간에 공유되는 술어 목적어(SPO) 쌍들의 수는 4, 즉, SPO=4이다
예를 들어:
동일성 = SPO/SP = 4/5 = 0.8 또는
동일성 = (SP+SPO)/(N1 +N2) = 9/16 = 0.5625
사용되는 실제 공식은 관련되지 않는다. 중요한 사실은 동일성을 측정하는 공식을 도출할 수 있다는 점이다.
이러한 프로세스 전체에 걸쳐, 사용자가 통상적으로 브라우저 모듈에 의해 표시되는 스크린들(1808)을 이용하여 시맨틱 매처 모듈과 상호 작용할 수 있음을 인식할 것이다.
정렬기 모듈
온톨로지 정렬 필요성은, 독립적으로 개발되고 이에 따라 각자 고유한 데이터 어휘를 갖는 이종 데이터베이스들을 집적할 필요가 있기에 발생한다. 각자의 고유한 온톨로지들을 제공하는 많은 액터들을 포함하는 시맨틱 웹 컨텍스트에서, 온톨로지 매칭은, 이종 자원들이 상호 동작하는 것을 돕도록 중요한 역할을 하였다. 온톨로지 정렬 도구들은, "시맨틱적으로 균등한" 데이터 클래스들, 예를 들어, "Truck"과 "Lorry"를 찾는다. 그 클래스들은 반드시 논리적으로 동일한 것은 아니다.
온톨로지 정렬의 결과는, 서로 다른 온톨로지들의 엔티티들 간의 대응관계를 나타내는 명세들의 세트이다. 이는, 특정하게 구축된 언어인 EDOAL(Expressive and Declarative ontology Alignment Language)(David, et al., 2013) 또는 다른 언어들(ZIMMERMANN, et al., 2006)로 표현될 수 있다.
제1 요건은 정렬되는 온톨로지들의 개념들 간에 시맨틱 매치가 있는지 여부를 결정하는 것으로서, 이는 전술한 시맨틱 매처 모듈을 이용하여 결정될 수 있다. 예를 들어, 비즈니스 컨텍스트의 'company'와 'Organisation'이라는 단어들은 정확하게 동일한 의미를 갖지 않는다. 모든 회사들인 조직이지만, 모든 조직들이 회사는 아니다. 사실상, 회사라는 클래스는 조직이라는 클래스의 서브세트이다. 예를 들어 "This organisation is a listed company but that organisation is a golf club"이 있다. 사회적 컨텍스트에서, 회사는, 조직에 관련되지 않지만, 협회들의 세트에 관련될 수 있다. 예를 들어, "John Doe keeps bad company"가 있다.
클럽과 회사는 모두 조직이어서, 일부 유사성이 있다. 상장 회사와 비상장 회사도, 유사하며, 공통 부모, 즉, 회사를 공유한다. 이들은 개념적으로 클럽과 회사에 가까운가? 공공 비상장 회사(주주가 50명 초과) 및 개인 비상장 회사(주주가 51명 미만)는 어떠한가? 이들은 상장 회사와 비상장 회사보다 가까운가?
두 개의 개념이 얼마나 유사한지를 측정하기 위한 수학적 근거를 제공하도록, '동일성' 개념을 도입한다. 동일성을 위한 많은 정형적 메트릭들이 존재한다. 가장 흔한 기술은, 루트로서 'thing'의 개념을 갖는 단일 계층 트리에 개념들을 배열하는 것이다. 대부분의 공식들은, 계층의 루트에 대한 거리, 및 측정되는 개념들과 이들의 공통 부모 간의 개념들의 수의 함수들이다.
그러나, 온톨로지를 사용하는 사람에 의해 온톨로지가 간결화되었는지 여부에 따라 및 온톨로지를 구축한 온톨로지스트에 따라 계층의 루트에 대한 거리가 상당히 다를 수 있다는 사실로 볼 때, 루트에 대한 거리는 확률적으로 관련성이 없다.
일반적으로, 동일성은 개념들 간의 에지들의 수에 의해 측정된다. 데이터 특성들의 수에 기초하는 다른 가능성들이 존재한다. 예를 들어, 클럽과 회사는 5개의 데이터 특성을 각각 가질 수 있고, 밸런스가 조직의 정의에 있어서 유지되는 반면, 공공 상장 회사와 개인 상장 회사는 하나의 속성만을 각각 가질 수 있고, 밸런스가 회사 정의에서 유지된다. 따라서, 개인 상장 회사는, 회사가 클럽에 유사한 것보다 공공 상장 회사에 더욱 유사하다(10개 대신에 2개의 속성, 즉, 차이가 덜하며, 차이가 거리와 등가이다).
추정 온톨로지(PO)는, 구조화된 소스, 통상적으로, 관련형 데이터베이스, xml 파일 또는 스프레드시트로부터 생성되는 온톨로지이다. 이러한 정렬은, 추정 온톨로지의 데이터 인스턴스들이 전체 온톨로지의 클래스들에 매핑되는 소정의 매우 복잡한 매핑을 가질 수 있다. 이는 정렬의 특별한 케이스이다.
이제, 4개의 표 내의 데이터 및 메타데이터(및 이에 따른 구조)를 포함할 수 있기에 완전히 비정규화된 데이터 구조의 일례인 "Thing Database"를 도시하는 도 19a를 참조하여 간단한 예를 설명한다.
예를 들어, Thing Type 표가 'Class'의 Thing Type을 포함하는 경우, Thing 표의 모든 관련된 행은 클래스의 명칭을 포함한다. 클래스들 간의 관계는 'Thing to Thing' 표에서 정의되며, 여기서, 'Thing Type to Thing Type'은 관계의 유형을 특정한다.
온톨로지 용어들에 있어서, 임의의 Type 표은 클래스들의 세트를 발생시킬 수 있다. 차량들의 세트의 상세를 포함하는 표를 고려한다. 차량 유형 표는, 유효한 유형의 차량들만이 포함되는 것을 확실히 하도록 사용되었을 수 있다. 예를 들어, 차, 트럭, 트랙터가 있지만, 유모차, 자전거, 배는 아니다. 이어서, 온톨로지식으로, Vehicle 유형 표에서 특정되는 차량의 각 유형에 대하여 별도의 클래스를 가질 수 있다. 이 개념은, 일반화될 수 있지만, 항상 적절한 것은 아니다. 이에 따라, 남성 클래스와 여성 클래스로 나누어지는 모든 인원 표가 발생할 수 있다. 결국, 프로그램은, 데이터에 포함된 숨겨진 클래스들이 노출될 수 있고 인증을 위해 사용자에게 제시될 수 있는 모든 상황을 식별해야 한다.
일부 경우에, Type 표는 많은 유형들을 포함할 수 있다. 예를 들어, 차량, 트럭, 차, 엔진 유형, 중량, 킬로그램 등의 데이터 특성들의 개념, 데이터 특성, 특성이 있다.
이는 다음과 같을 수 있다:
■ 차는 디젤 엔진 유형을 갖는다
■ 차는 중량 2000을 갖는다
■ 중량은 킬로그램 측정 단위이다
■ 차는 차량의 서브클래스이다
이제, 사물 데이터베이스가 표 14 내지 표 17에 도시한 바와 같이 채워져 있다고 가정하여 사물 데이터베이스의 일례를 설명한다.
Figure pct00018
Figure pct00019
Figure pct00020
Figure pct00021
관계형 스키마에 기초하는 추정 온톨로지는 표 명칭에 관한 명칭들을 갖는 4개의 클래스만을 나타낸다. 그러나, 데이터에 기초하는 온톨로지는, 도 19b에 도시한 바와 같이, 'Thing' 및 'Thing Type' 표들의 명칭들에 기초하는 8개의 클래스 더하기 다른 두 개의 표에서 식별되는 모든 오브젝트 특성들을 나타낸다. 이 예에서, "business component"와 "organic structure" 용어들은 thing type 표(표 16)로부터 취득되는 반면 나머지 용어들은 Thing 표(표 14)로부터 취득된다.
이는, 하나의 온톨로지의 클래스들이 다른 하나의 온톨로지의 데이터 인스턴스들에 매칭되는 문제점의 일례이다. 명확성을 위해, 이는 'Putative Mapping Problem'(PMP)으로서 식별된다. 이것은, 추정 온톨로지가 'Primary Key' 또는 'Foreign Key'와 매칭되는 명칭들, 또는 'Parent' 및 'Child'(BOM)에서와 같이 동일한 외래 키의 다수의 인스턴스들을 갖는 클래스 또는 연관된 유형 클래스를 갖는 클래스와 함께 데이터 특성들을 가질 때를 정렬 동안 나타낼 수 있다. 이러한 예들은, 데이터 인스턴스들에 숨겨진 클래스 계층을 잠재적으로 위장한다.
공통 정렬 기술은, 각 온톨로지로부터의 개념들을 두 개의 계층 트리에 배열하는 것으로서, 각 트리는 'thing' 개념을 루트로서 갖는다. 이어서, 'Distance'의 수학적 개념을 도입하여 정렬을 결정하기 위한 소정의 수학적 기구를 제공한다. 대부분의 거리 공식들은, 계층의 루트에 대한 거리, 및 측정되는 개념들과 이들의 공통 부모 간의 개념들의 수의 함수들이다.
그러나, 온톨로지를 구축한 온톨로지스트에 따라 및 온톨로지를 사용하는 사람에 의해 온톨로지가 간결화되었는지 여부에 따라 및 개념적 우산으로서 기능하는 'top' 온톨로지가 있는지 여부에 따라 계층의 루트에 대한 거리가 상당히 다를 수 있다는 사실로 볼 때, 루트에 대한 거리는 확률적으로 관련성이 없다.
온톨로지 정렬기 모듈은, 다수의 온톨로지의 공통 개념들을 찾고, 하나의 온톨로지로부터의 개념들을 다른 온톨로지에 매핑하고, 이에 따라 두 개의 온톨로지가 하나의 온톨로지로서 취급될 수 있다. 정렬을 이용함으로써, 두 개의 온톨로지를 병합하는 것도 가능하지만, 이는 위험한 프로세스이며, 잠재적인 시맨틱 미스매치 전달로 인해 일반적으로 추천되지 않는다.
일반적으로, 완벽한 온톨로지는 없다. 예를 들어, 여기서 사용되는 온톨로지 샘플에는 많은 모델링 에러들이 있다. 'Shares'가 'Individuals'보다는 'Clients'에 의해 'Owned'되어야 한다는 점 및 'Work History'가 'Company'보다는 'Client'에 의해 'Employed'되어야 한다는 점은 명백하다. 이러한 인스턴스들 모두는, 관계가 더욱 제한적인 관계로부터 덜 제한적인 관계로 이동하는 것을 나타낸다. 이는, 이러한 경우들에 가능할 수 있지만, 클럽의 멤버십을 'Individual'로부터 'Client'로 이동시키는 것은 확률적으로 무효하다.
'Membership' 클래스는, 또한, Membership과 Individual 간의 관계가 'Holds'이므로, 불량하게 명명된다. 클래스가 'Member'로 명명되었다면, 관계가 'is A'일 것이다. 이는, Member가 Individual의 특성들을 상속받을 수 있게 한다. 오브젝트 특성 'Has'가 완전히 정의되지 않으면, 추론에서의 사용이 제한된다.
이러한 에러들을 샘플들에 도입하여 정렬의 복합성 중 일부를 예시한다.
이제, 도 19c를 참조하여 정렬기 모듈의 동작을 더욱 상세히 설명한다.
이러한 점에서, 사용시, OWL 및 RDFS 파일들에서 정의된 온톨로지들(1901, 1902)은 정렬기 모듈(1340)을 사용하여 개방되며, 이어서, 사용자는 후술하는 바와 같은 스크린들의 세트를 사용하여 온톨로지와 상호 작용하여, 결국, 일련의 정렬(1905)에 의해 연결된 온톨로지들(1903, 1904)이 발생하고, 잠재적으로 병합되고 정렬된 온톨로지(1906)가 발생한다.
프로세스는 아래의 사항들을 포함하는 다수의 서브 프로세스들로 이루어진다:
■ 초기화
■ 저 레벨 클래스 매칭 - 최소 매핑을 식별함
■ 추정 매핑 문제점 식별
■ 오브젝트 특성 분석
■ 데이터 특성 분석
■ 멀티 클래스 매핑
■ PMP 해결
■ 형제자매 분석
■ 최소 매핑 해결
정렬은 많은 단계들에서 식별될 수 있기 때문에, 구체적인 개념들의 쌍에 대하여 정렬을 재산출할 가능성이 있다. 이러한 문제점은 정렬 맵을 유지함으로써 극복된다. 이 맵은, 정렬이 식별될 때마다 갱신되며, 중복 노력을 방지하도록 새로운 정렬 쌍이 평가를 위해 고려되기 전에 프로그램에 의해 컨설팅된다. 정렬 맵은, 정렬 프로세스를 추종하고, 임의의 잠재적 정렬을 질의 및 오버라이드하고, 임의의 프로세스를 재수행할 것을 프로그램에 지시할 수 있도록 사용자에게 표시될 수 있다.
이제, 이러한 단계들을 더욱 상세히 설명한다. 각 단계 i에는 가중 인자 Wi가 할당될 수 있고, 결과들을 결합하여 전체 정렬 점수를 제공한다. 이러한 가중 인자들은 소정의 단계들에서 적용된다. 가능한 가중 축적 공식을 제공하지만, 사용할 수 있는 많은 가능한 가중 기법들이 있다. 이것은, 기계 학습 또는 통계적 분석 및 추론을 이용하여 적절한 가중 공식을 결정하는 영역이다.
초기화 프로세스 동안, 인덱스(1603)가 인덱서 모듈로부터 취득된다. 이어서, 온톨로지들(1901, 1902)이 시맨틱 매처 모듈(1340)에 로딩된다. 정렬 표가 미리 로딩되지 않은 경우, W0=0.0이다.
다음에 따르는 예들에서, 기술을 예시하도록 Wi=i이다. 그렇지 않다면, 기계 학습이나 경험에 의해 결정되는 경험적 기구 또는 사용자에 의해 가중치 Wi가 할당된다. 일반적으로, 임의의 단계 i 동안, 누적 결정되는 매치 값 MVi A
Figure pct00022
에 의해 결정되며, 여기서, MVi는 단계 i에서 산출되는 매치 값이다.
더욱 통상적인 다른 가중 기법은
Figure pct00023
이며, 여기서, MV는 가중된 매치 값이고, MVi는 단계 i에서의 매치 값이다.
이 프로세스는, 바람직한 구현예에 따라 각 단계에서 또는 프로시저의 종료시에만 수행될 수 있다.
다음으로, 온톨로지들의 용어들의 시맨틱 의미에 기초하여 클래스 매칭을 수행한다. 이 프로세스는, 시맨틱 매처 모듈을 이용하여 각각의 잠재적 정렬 쌍을 검사하여 클래스 명칭에 기초하는 잠재적 매치를 찾는다. 정렬을 찾는다면, 정렬로부터 상속 체인들(Object Property = 'Subclassof')을 횡단하여, 시맨틱 매처 모듈을 이용하여 다른 정렬에 대한 클래스 명칭들을 확인한다.
이는 모든 매칭 클래스들을 찾을 수 있지만, 소량의 매치만을 필요로 할 수 있다. 매칭되는 온톨로지들이 동일한 기본 온톨로지를 사용하는 경우 완전한 1-1 매치가 가능하다. 예를 들어,
■ 역 이벤트 보고 온톨로지 AERO
■ 아프리카 전통 의료 온톨로지 ATMO
이들 모두는 표준 갈렌 온톨로지에 기초하며, 이에 따라 1-1 매치가 예상된다.
각 쌍에 대한 MV는, 시맨틱 매처 모듈에 의해 제공되는 점수에 기초하며, 이 예에서는 W1=1.0으로 설정된다.
제1 온톨로지의 루트에서 시작하여, 제2 온톨로지의 루트 클래스에서 시작되는 모든 클래스를 검사한다. 개념 쌍에 대하여 시맨틱 매처 모듈을 이용하여 발견되는 동일성이 정렬을 위한 임계 매치 값(MVAT)을 초과하는 경우, 매치가 발생한다. 허용가능한 매치가 발견되면, 이는 잠재적 정렬이라 칭하며, 상세가 정렬 맵에 기록된다.
정렬 맵은, 두 개의 개념을 기록하고, 정렬 Id, 최소 맵 Id, 정렬에 연관된 임의의 태그, 할당된 임의의 PMP Id, 임의의 인리치먼트 Id, 및 최종 처리 단계 Id를 할당한다. 정렬 Id에 관련된 별도의 표는 각 단계에 대한 매치 값을 저장한다. 이러한 값들은 필요시 수동으로 오버라이드될 수 있다.
정렬 맵에는 임의의 알려져 있는 정렬이 미리 로딩될 수 있다. 이러한 정렬은, 사용자 태그 'User Initiated'로 태그되며, 매치 값이 일반적으로 1.00으로 설정되어야 하지만, 더 작은 값들도 가능하다. 'User Initiated'와 MV=1.00의 조합은 이러한 정렬의 추가 처리를 방지한다.
프로세스는, 오브젝트 특성에 의해 제1 온톨로지의 현재 클래스에 관한 다음 클래스로 계속된다. 현재 클래스의 수퍼클래스들이 먼저 처리된다. 프로그램은, 다른 오브젝트 특성들 전에 상속 오브젝트 특성들을 처리한다. 현재 클래스의 수퍼클래스들은 임의의 서브클래스들이 검사되기 전에 처리된다. 프로세스는 MV<MVAT에 의한 정렬이 발견되자마자 정지된다.
잠재적 정렬이 식별될 때마다, 이것은, 설정된 최소 매핑에 할당되고, 최소 맵 Id인 mm_ID를 제공받는다. 계층적으로 관련된 클래스가 식별되면, 이것은 동일한 mm_ID에 추가된다. 이 단계의 종료시, 최소 매핑의 기준을 잠재적으로 충족하는 다수의 최소 맵들을 정의하게 된다. 이러한 누적 매치 값을 각 연속 단계에서 재정의한다.
잠재적 PMP의 인식을 항상 수행한다. PMP 해결은 구성 파일에서의 요구시에만 수행된다. 요구되지 않는 경우, 잠재적 PMP의 인식은, 정렬이 수행될 때 생성된 활동 로그에 정보 메시지로서 기록되고, 누적 통계 보고서에 추가된다.
일부 경우에는, 온톨로지들 모두가 추정 온톨로지들일 수 있고 BOM 구조를 유지하는 것이 바람직할 수 있으므로, PMP를 해결하는 것이 바람직하지 않을 수 있다.
PMP 해결이 요구되면, PMP 태그를 수행한다. 아래와 같은 중요 단어들의 존재에 대하여 데이터 특성 명칭들을 검사한다:
■ 오브젝트 특성 명칭은 아래의 예들을 포함한다:
- 유형
- 관계
- 클래스
- 개념
-...
■ 데이터 특성 명칭은 아래의 예들을 포함한다:
- 식별자
- ID
- 키
- 부모
- 자식
- 일차 키
- 외래 키
- ...
이러한 중요 단어들을 포함하는 데이터 특성들의 존재가 반드시 PMP를 암시하는 것은 아니다. 추가 알고리즘을 어느 정도 적용할 필요가 있다. 표준에 매핑하는 임의의 구조.
■ ERA 도의 'Type' 표를 식별해야 한다. 사용자는, 존재하는 Type 표의 각 행을 선택해야 한다.
■ 'Bill of Materials' 구조를 식별해야 하며, 적절한 클래스 구조로 잠재적으로 확장해야 한다.
이 단계에서, 각 PMP에 관련된 클래스들은, 'PMP'로서 태그되고, 등가의 BOM 표들의 각 세트에 대하여 PMP-설정-식별자인 PMP01, PMP02,...를 제공받는다. 이들은, 더욱 상세히 후술하는 바와 같이, 나중에 해결된다. 각 PMP 클래스가 식별될 때, 그 인스턴스가 PMP가 아니라고 결정할 수 있는 사용자에게 상세를 제시할 수 있다.
이 단계에서는 MV가 산출되지 않으며, 이에 따라 MV2 A = MV1 A = 0.5이다.
이어서, 오브젝트 특성들 및 이전 단계들로부터의 각 정렬 쌍에 연관된 이들의 관련 클래스들을 분석한다. 이 단계는 때때로 '구조적 분석'이라 칭한다. 이는, 아래의 사항들을 식별한다:
■ 관련된 클래스들과 오브젝트 특성들 모두의 명칭들이 매치되면, 그 쌍을 "Anchor Point"로서 태그한다. MV=1.0이다. 관련된 클래스들이 최소 맵에 없다면 그 관련된 클래스들을 최소 맵에 추가하고, 단계 2인 그 최소 맵에서의 관련된 클래스들에 대한 데이터 특성 분석을 반복한다.
■ 명칭과 관련 수퍼 클래스가 매칭되지만 서브클래스들 중 어느 것과도 매칭되지 않으면, 그 쌍을 "Possible Siblings"으로서 태그한다. MV=0.3이다. 수퍼 클래스를 최소 맵에 추가한다. 이하의 멀티 클래스 매핑으로 진행한다.
■ 명칭과 관련 수퍼 클래스가 매칭되지만 서브클래스들 중 일부만이 매칭되면, 그 쌍을 "Related subset"로서 태그한다.
■ 다음과 같이 MV를 산출한다:
- 2.0인 가중치를 각 매칭 서브클래스에 할당하고, 1.0을 서로 매칭되는 관련 클래스에 할당한다.
- 이러한 가중치들을 수 매칭 NM으로서 합산한다.
- 1.0인 가중치들을 각 서브클래스에 할당하고, 0.5를 서로 관련된 클래스에 할당한다.
- 이러한 가중치들을 수퍼클래스들 모두에 걸쳐 총 수 NA로서 합산한다.
- 매치 값 MV3 = NM/NA이다.
■ 관련된 클래스들이 매칭되지 않으면, MV3 = 0.001이다.
수퍼 클래스를 최소 맵에 추가한다. 이하의 멀티 클래스 매핑으로 진행한다.
각 쌍에 대하여, 아래와 같이 누적 가중 매치 값을 산출한다:
MV3 A = MV2 A / W3 +( W3 - 1)*MV3/ W3
W3 = 3을 가정하자
이전의 예로부터 MV2 A =0.5
이전의 오브젝트 특성 매칭으로부터 MV3 =1.0
그러면 MV3 A = 0.5/3 + 2/3*1.0 = 0.83333
이어서, 데이터 특성 분석을 수행하여, 매칭 클래스들의 데이터 특성들(속성들)이 유사한지 여부를 분석한다. 분석은, 클래스들의 각 쌍에 대하여,
■ 정확한 명칭 매칭이 없는 SemMat를 이용하여 각 클래스에 대한 데이터 특성들을 비교한다.
■ 데이터 특성들에 기초하여 "Match value"(MV)를 할당한다.
■ 정렬 쌍을 매칭 유형으로 태그한다. 최소 맵의 다음 쌍을 선택하고 위 프로세스들을 반복한다. 최소 맵 내에 더 이상의 정렬이 없으면, 다음 최소 맵으로 이동한다.
더욱 구체적으로, A = {a1, a2, a3,...ai}가 제1 개념의 데이터 특성들의 세트이고 B = {b1, b2, b3,...bj}가 제2 개념의 데이터 특성들의 세트이면, 다음에 따르는 가능성들이 존재한다:
■ 클래스들의 모든 데이터 특성들이 매칭된다. "Exact Match"로서 태그하며, 즉,
Figure pct00024
Figure pct00025
매치 값 = 1.000.
■ 하나의 온톨로지로부터의 데이터 특성들의 서브세트가 다른 온톨로지의 데이터 특성들 모두와 매칭된다. "Subset"로서 태그한다.
즉,
Figure pct00026
Figure pct00027
, 여기서 N(A)는 A의 데이터 특성들의 수이고, N(A)<N(B)라고 가정한다.
■ 하나의 온톨로지로부터의 데이터 특성들의 서브세트가 다른 온톨로지의 데이터 특성들의 서브세트와 매칭된다. "PartMatch"로서 태그한다.
즉,
Figure pct00028
Figure pct00029
, 여기서 N(A)는 A의 데이터 특성들의 수이고, N(A)<N(B)라고 가정한다.
■ 데이터 특성들이 매칭되지 않는다. MV = 0.1. "NameOnly"로서 태그한다.
즉,
Figure pct00030
MV가 소정의 임계값(디폴트 값 = 0.1) 미만이면, 최소 맵으로부터 그 매치 쌍을 폐기하고 다음 매치 쌍으로 진행한다. 이 프로세스를 모든 최소 맵들이 분석될 때까지 반복하고, 이때 매치 값이 산출된다:
MV4 A = MV3 A / W4 +( W4 - 1)*MVi/ W4
W4 = 4를 가정하자
MV3 A =0.833333
데이터 특성 매칭으로부터 MV4 =1.0
그러면 MV4 A = 0.8333/4 + 3/4*1.0 = 0.9583
하나의 온톨로지의 클래스가 다른 온톨로지의 다수의 서브클래스들로 나누어진 경우 멀티클래스 매핑이 발생한다. 이러한 경우에, "Possible Siblings" 또는 "Multi Class Mappings" 및 "Subset"로서 이미 태그된 쌍을 예상한다.
멀티클래스 매핑은, 일반적으로, 각 온톨로지의 클래스와 서브클래스들의 잠재적으로 관련된 클래스들에 대한 데이터 특성들의 수를 분석함으로써 검출된다. 서브클래스를 갖지 않는 온톨로지 클래스가 대부분의 데이터 특성들을 갖는 서브클래스의 데이터 특성들 더하기 다른 온톨로지의 클래스와 대략 같은 개수의 데이터 특성들을 갖는다면, 제2 온톨로지의 클래스의 서브클래스들이 제1 온톨로지의 클래스로 비정규화되었을 수 있다.
다음과 같은 가능한 상황들이 있다.
■ 하나의 온톨로지의 단일 클래스의 데이터 특성들이 다른 온톨로지의 클래스 및 서브클래스 또는 서브클래스들의 데이터 특성들에 매핑.
■ 클래스와 서브클래스들의 데이터 특성들이 다른 온톨로지의 클래스와 일부 서브클래스들에 매칭.
제1 경우에, 제1 온톨로지 클래스의 데이터 특성들을 제2 온톨로지의 클래스 + 서브클래스로 구성된 각 쌍의 데이터 특성들과 함께 고려함으로써 데이터 특성 카운트를 수행한다.
예를 들어, 온톨로지 1의 Company는 자식을 갖지 않고, 온톨로지 2에서는 2명의 자식이 있다. Company + Listed Company(2)를 갖는 회사(1)의 데이터 특성들을 분석하면, 전체 의미는 아니지만 데이터 특성들의 개수를 나타낸다.
Company + Unlisted Company(B)를 갖는 회사(A)의 데이터 특성들을 분석하면, 데이터 특성들의 개수와 의미 모두가 매칭됨을 보여준다. 이것은, 'Different Normalisation'으로서 태그될 수 있고, 매치 값 MV=1.0을 할당받을 수 있다.
Listed Company와 Unlisted Company가 형제자매이기 때문에, Listed Company가 온톨로지 2의 인리치먼트이어서, 'Enrichment'로서 태그될 수 있고, 데이터 특성들의 총 수에 의해 매칭되는 데이터 특성들의 개수의 두 배를 나눔으로써 매치 값이 산출되는 것을 추론할 수 있다.
Figure pct00031
여기서, N()은 개념 A, B, A∩B에 있어서 데이터 특성들의 개수를 생성하는 함수이다.
이 방법은, 두 개의 클래스가 서로 다른 개수의 자식을 갖는 상황에 대하여 일반화될 수 있다. 이 상황을 'Enrichment Possible'로서 태그할 수 있고, 관련된 각 클래스에는 단일 인리치먼트 ID가 주어진다.
멀티클래스 매핑들의 다른 경우는, 클래스들이 서로 다르게 정규화된 경우이다. 예를 들어, 차량 클래스는, (SUV, Sedan, Coupe, Convertible)로서 서브클래스화될 수 있고 또는 제조사(Citroen, Peugeot, Fiat, Rover)에 의해 서브클래스화될 수 있다. 따라서, 두 개의 차량 온톨로지는 데이터 특성들을 서로 다르게 파싱할 수 있다. 그러나, 차량들의 속성들은 두 개의 온톨로지에서 동일하다.
일반적인 경우에, 데이터 특성들의 세트가 두 개의 온톨로지로부터의 서브클래스들의 세트에 할당되고, 서브클래스들이 각 온톨로지에서 서로 다르지만 이러한 클래스들을 정의하는 데이터 특성들의 세트가 동일하거나 매우 유사하면, 정의된 서브클래스들 간에 다대다(many to many) 매핑이 존재한다. 이것은, 또한, 'Enrichment Possible'로서 태그되고, 관련된 각 클래스에는 단일 인리치먼트 ID가 주어진다.
이 단계에서는 MV가 산출되지 않으며, 이에 따라
Figure pct00032
이다.
PMP 해결은, 표들에 저장된 비정규화된 클래스들을 식별함으로써 추정 온톨로지들의 추가 클래스들, 및 도출된 온톨로지의 주요 인리치먼트의 결과들을 식별하는 것을 포함한다.
각 PMP 설정 식별자를 분석하여, 전술한 바와 같이 유형 구조에 대한 또는 BOM 구조에 대한 매핑을 결정한다. 이들은, 일반적으로, 도 19a에 도시한 ERA 도에서의 매칭 구조 관계들과 오브젝트 특성들만을 매핑함으로써 결정되는 바와 같이, 그 도의 일부 구조에 매핑된다. 데이터 특성 인스턴스들로부터 추출된 클래스들의 일례는 표 14 내지 17에 도시되어 있다.
일단 매핑이 결정되면, BOM 구조에 캡처된 비정규화된 온톨로지를 생성하는 것은 비교적 간단하다. 이어서, 이렇게 생성된 온톨로지 구성요소는, 전술한 바와 같은 클래스들의 시맨틱 의미에 기초하여 저 레벨 클래스 매칭 단계로 리턴함으로써 정렬될 수 있다. 이 단계에서, BOM 분석으로부터 생성되는 클래스들은 적절한 최소 맵들에 추가된다.
이 단계에서는, 저 레벨 클래스 매칭 및 새롭게 식별된 클래스들에 대한 MV 값들의 재산출 단계로 리턴하므로, MV가 산출되지 않는다.
이어서, 인리치먼트 분석을 수행하며, 이때, 멀티 클래스 매핑 프로세스에서 식별되는 각 enrichment_ID를 분석하여 두 개의 온톨로지로부터의 서브클래스 세트들이 형제자매와 일치하는지 또는 형제자매를 포함하는지 여부를 결정한다. 예를 들어, 온톨로지 1 클래스 조직은 서브클래스 Club과 Company를 가질 수 있다. 온톨로지 2는 Qango, Club, 및 Company를 갖는다. Qango는, 온톨로지 2의 형제자매이지만, 온톨로지 1에서는 보이지 않는다. Qango가 어떠한 것과도 정렬하지 않는다고 말하기보다는, 이것을 온톨로지 1에 대한 인리치먼트로서 식별하는 것이 낫다.
인리치먼트가 적용될 수 있기 전에, Club과 Company의 데이터 특성들을 분석함으로써 Qango가 다른 서브클래스들 중 하나로 비정규화되었는지 여부를 결정하는 것이 필요하다.
클래스가 형제자매로서 추가되도록 기준을 충족한다고 가정하는 경우, 클래스와 서브클래스를 포함하는 최소 맵들이 이 스테이지에서 동일함을 확실히 할 수 있다.
이 단계에서는 새로운 MV가 산출되지 않는다. 각 형제자매는 현재 MV를 유지한다. 이 MV는, 현재 MV 1.0을 형제자매로서 식별된 구성요소들에 할당함으로써 작은 인자에 의해 증가된다.
일단 모든 클래스들이 분해되고 인리치먼트가 완료되었다면, 임의의 주요 재구조화가 이미 발생했을 것이며, 이에 따라 최소 맵들이 분해될 수 있다. 이전 섹션에서 인리치먼트가 추가된 경우 추가 재구조화가 발생하였다. 이러한 사실 모두에 따라, 최소 매핑이 개선된다.
MV7<MVAT에 의한 정렬에 의해, 임계값이 거부된다. MVAT는 정렬을 위한 매치 값 임계이다.
다음 단계는 중복 인식 패턴들을 적용하는 것이며, 이에 따라, 각 최소 맵 내에서, 중복성, 해체, 및 포섭이 결정된다. 이는 주로 선행 단계들에 의해 미리 수행되었을 것이다.
일단 최소 맵이 완전히 처리되었다면, 이것은 클래스들과 함께 RDF 트리플들의 세트로서 기록된다.
마지막으로, 위에서 생성된 RDF 트리플을 질의함으로써 최소 맵들을 단일 맵으로 조립해야 한다. 이것은, 허용가능한 임계값을 갖는 정렬이 발견된 모든 클래스들의 맵이다. 미정렬된 항목들이 있을 수 있다.
누적 매칭 식을 이용하여, 최종 매치 값 MV8 = 0.9375.
선형 매칭 식을 이용하여, MV=(1*.5 + 2*1 + 3*1)/(1 + 2 + 3) = 5.5/6 = 0.9167.
정렬 인덱스의 일례는, 전술한 온톨로지들에 대한 정렬 맵을 나타내는 표 18에 도시되어 있다. 결과들은, 다양한 알고리즘들의 영향을 강조하도록 정렬 쌍과 단계 수에 의해 배열되었다. 실제로, 이들은 # 시퀀스로 수행된다(컬럼 1).
Figure pct00033
Figure pct00034
이어서, 병합 프로세스를 수행하여 병합된 온톨로지(1906)를 생성할 수 있지만, 이는, 선택적이며, 바람직한 구현예에 의존한다. 사용자가 온톨로지들의 병합을 결정하면, 이하와 같은 다수의 결정을 내려야 한다:
■ 병합된 온톨로지가 온톨로지 1 또는 온톨로지 2이어야 하는지 또는 그 반대이어야 하는지, 또는 병합된 온톨로지에 새로운 URI를 주어야 하는지 여부를 결정하는 것. 이러한 경우들은 도 19d와 도 19e에 도해로 도시되어 있다.
■ MVMT를 병합을 위한 매치 값 임계로서 선택한다. 일반적으로, MVMT는, 실제로 정렬되지 않는 관련된 클래스들을 포함할 수 있으므로, MVAT보다 작다.
■ 클래스들이 병합되지 않으면, 클래스들 중 모두 또는 어느 하나만 병합된 온톨로지에 포함되어야 하는지 또는 전혀 포함되지 않아야 하는지에 대한 결정이 필요하다. 이는, 규칙으로서, 또는 "Ask"로서 특정될 수 있고, 이 경우, 병합 프로세스는 사용자가 액션을 결정할 수 있도록 일시 정지된다.
■ 정렬이 없는 것으로 발견된 클래스들이 병합된 온톨로지에 추가되어야 하는가? 예를 들어, 온톨로지 1이 A, B로 이루어지고, 온톨로지 2가 B, C로 이루어지고, 여기서 B가 정렬된 클래스들의 세트인 경우, 병합된 온톨로지는 A, B, C, 또는 A, B, 또는 B, C 또는 단지 B이어야 한다.
일단 병합 파라미터들이 결정되었다면, 두 개의 온톨로지의 클래스, 데이터 특성, 및 오브젝트 특성을 병합하는 것은 간단하다.
임의의 데이터 특성 인스턴스는, 달리 특정되지 않는 한 자신의 고유한 URI를 유지한다. 따라서, 정렬된 클래스가 각 온톨로지의 인스턴스 데이터를 갖는 경우, 단일 병합된 클래스가 양측 온톨로지들로부터의 인스턴스들을 포함한다.
일반적으로, 정렬기 모듈과의 사용자 상호 작용은 정렬 프로세스를 제어하기 위한 것이다.
제1 단계는, 정렬 및 병합에서 사용될 파라미터들을 특정하는 구성 파일을 로딩하는 것이다. 설정될 수 있는 많은 메타데이터 파라미터들이 있다. 이러한 파라미터들로는, 아래를 포함한다.
■ 정렬된 온톨로지들의 URI.
■ 정렬 맵을 저장하기 위한 위치.
■ 병합된 온톨로지를 저장하기 위한 위치.
■ MVAT를 정렬하기 위한 매치 값 임계.
■ MVMT를 병합하기 위한 매치 값 임계.
■ 저 레벨 클래스 매칭 동안 동일성을 허용하기 위한 매치 품질.
■ 선택적으로, 정렬이 알려져 있는 정렬 표를 프리로딩.
■ 각 분석 단계에 적용되는 가중치. 이러한 가중치는 기계 학습 알고리즘에 의해 결정될 수 있다.
■ 병합시 사용자 입력을 허용하도록 병합 동안 프로세스를 일시 정지할지 여부
■ 최대 런 타임.
■ 에러와 로그 메시지들의 다변성.
■ 기타.
이어서, 사용자는 프로세스를 실행하거나 스케줄링한다. 사용자 입력을 위한 일시 정지가 특정되었다면, 사용자는, 요구시, 및 브라우저 모듈에 의해 통상적으로 표시되는 스크린을 통해 제공되는 바와 같은 입력을 제공한다.
프로세스의 완료시, 사용자는, 아래를 검사한다:
■ 이하의 통계를 제공하는 것으로 생성된 보고:
각 온톨로지의 입력 클래스의 수;
정렬된 클래스들의 수;
식별된 PMP들의 수;
확장된 PMP들의 수;
PMP들로부터 확장된 클래스들의 수;
PMP들로부터 확장된 데이터 특성 인스턴스들의 수;
최대 및 최소 매치 값들;
병합된 클래스들의 수;
병합된 온톨로지의 클래스들의 수;
병합된 온톨로지의 데이터 인스턴스들의 수
기타;
■ 에러, 경고, 및 정보 메시지들을 평가하기 위한 런 타임 로그.
이 정보에 기초하여, 사용자는, 구성 파라미터들 중 일부에 대한 정렬 병합을 허용하기로 결정하고 프로세스를 리스케줄링한다.
이에 따라, 전술한 프로세스들은, 사용자들이 온톨로지들과 상호 작용하여 검색, 간결과, 및 정렬 온톨로지들을 포함한 다양한 태스크들을 수행할 수 있게 한다. 이러한 프로세스들은, 다양한 모듈들을 사용할 수 있고, 추정 및 정형화 온톨로지들을 포함하는 온톨로지들 간의 매핑 결정 등의 동작들이 수행되게 할 수 있고, 이러한 온톨로지들은 소스와 타겟 데이터 저장소들 간의 콘텐츠의 전달을 용이하게 하도록 매핑 소스와 타겟 데이터 구조들에 사용될 수 있다.
상세한 설명과 후술하는 청구범위 전체에 걸쳐, 문맥상 달리 언급하지 않는 한, "포함하다"(comprise) 및 "포함하다"(comprises) 또는 "포함하는" 등의 변형예들이, 다른 임의의 정수 또는 정수들의 그룹을 배제하지 않고 언급된 정수 또는 정수들이나 단계들의 그룹의 포함을 암시한다는 것을 이해할 것이다.
통상의 기술자라면, 많은 변형과 수정이 명백하다는 점을 인식할 것이다. 통상의 기술자에게 명백한 이러한 변형과 수정 모두는 본 발명의 설명 전에 대략적으로 기재된 사상과 범위 내에 속하는 것으로 간주해야 한다.

Claims (39)

  1. 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치로서,
    적어도 하나의 전자 처리 디바이스를 포함하고,
    상기 전자 처리 디바이스는,
    온톨로지 용어들을 각각 갖는 온톨로지들을 결정하고,
    상기 온톨로지들 중 적어도 하나로부터 온톨로지 용어들의 그룹을 결정하고,
    상기 온톨로지 용어들의 그룹 중 적어도 일부에 대하여 상기 온톨로지들의 온톨로지 용어들 간의 정렬을 결정하고,
    상기 정렬에 따라 매핑을 생성하고,
    상기 정렬은 상기 온톨로지 용어들의 온톨로지 용어 의미에 따라 적어도 부분적으로 결정되는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  2. 제1항에 있어서, 상기 매핑은 병합된 온톨로지와 정렬 인덱스 중 적어도 하나인, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  3. 제1항에 있어서, 상기 온톨로지들은 추정 온톨로지 및 정형화 온톨로지를 포함하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  4. 제3항에 있어서, 상기 전자 처리 디바이스는 추정 온톨로지를 정형화 온톨로지에 매핑하기 위한 매핑을 생성하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  5. 제1항에 있어서, 상기 매핑은, 다수의 소스 데이터 필드들을 포함하는 소스 데이터 구조를 갖는 소스 데이터 저장소로부터 다수의 타겟 데이터 필드들을 포함하는 타겟 데이터 구조를 갖는 타겟 데이터 저장소로 콘텐츠를 전달하는 데 사용하기 위한 것이고,
    상기 온톨로지들은 상기 소스 데이터 구조 및 상기 타겟 데이터 구조에 연관되고, 상기 전자 처리 디바이스는 상기 매핑을 이용하여 상기 소스 데이터 필드들과 상기 타겟 데이터 필드들 간에 콘텐츠를 전달하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  6. 제5항에 있어서, 상기 온톨로지들은, 상기 소스 데이터 구조에 연관된 소스 온톨로지 및 상기 타겟 데이터 구조에 연관된 타겟 온톨로지를 포함하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  7. 제6항에 있어서, 상기 소스 및 타겟 온톨로지들은 추정 온톨로지들이고, 상기 소스 및 타겟 온톨로지들은 하나 이상의 정형화된 온톨로지들에 매핑되는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  8. 제1항에 있어서, 상기 전자 처리 디바이스는, 추정 온톨로지를 생성하고 기존의 다수의 온톨로지들 중 하나를 선택함으로써, 온톨로지를 결정하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  9. 제8항에 있어서, 상기 전자 처리 디바이스는, 데이터 구조에 연관된 메타데이터와 데이터 구조의 데이터 필드 중 적어도 하나를 이용하여 온톨로지를 선택하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  10. 제9항에 있어서, 상기 전자 처리 디바이스는, 데이터 필드들을 기존의 다수의 온톨로지들의 온톨로지 용어들과 비교하고 상기 비교의 결과에 따라 상기 기존의 다수의 온톨로지들 중 하나를 선택함으로써, 상기 기존의 다수의 온톨로지들 중 하나를 선택하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  11. 제8항에 있어서, 상기 전자 처리 디바이스는,
    데이터베이스 스키마의 표들을 식별하고, 각 표에 대응하는 온톨로지 용어를 생성하고, 적어도 하나의 물자표(bill of material) 표를 식별하고, 상기 물자표 테이블의 각 엔트리에 대응하는 온톨로지 용어를 생성함으로써,
    상기 데이터베이스 스키마로부터 추정 온톨로지를 생성하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  12. 제11항에 있어서, 상기 전자 처리 디바이스는,
    상기 물자표 테이블의 각 엔트리에 대응하는 온톨로지 용어의 표시자를 표시하고, 사용자 입력 커맨드에 응답하여 상기 온톨로지 용어를 추정 온톨로지에 추가함으로써,
    데이터베이스 스키마로부터 상기 추정 온톨로지를 생성하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  13. 제11항에 있어서, 상기 전자 처리 디바이스는, 상기 데이터베이스 스키마에 의해 정의된 표 구조를 이용하여 온톨로지 용어들 간의 관계를 생성하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  14. 제8항에 있어서, 상기 추정 온톨로지는, 온톨로지 용어들에 대응하는 클래스들, 상기 클래스들 중 적어도 일부에 대한 데이터 특성들, 및 클래스들 간의 관계를 정의하는 오브젝트 특성들을 포함하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  15. 제1항에 있어서, 상기 전자 처리 디바이스는,
    적어도 하나의 온톨로지에 대하여 상기 적어도 하나의 온톨로지의 온톨로지 용어들의 표시자를 포함하는 인덱스를 결정하고,
    상기 인덱스를 이용하여, 상기 온톨로지 용어들의 그룹, 및 온톨로지 용어들 간의 정렬을 결정하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  16. 제15항에 있어서, 각 온톨로지 용어마다, 상기 인덱스는, 온톨로지 용어 의미와 온톨로지 용어 유형의 표시자를 포함하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  17. 제15항에 있어서, 상기 전자 처리 디바이스는, 각 온톨로지 용어마다,
    온톨로지 용어 명칭을 식별하고,
    온톨로지 용어 유형을 식별하고,
    시맨틱 매칭 프로세스를 이용하여 각 온톨로지 용어의 온톨로지 의미를 식별하고,
    상기 온톨로지 용어 명칭, 상기 온톨로지 용어 유형, 및 상기 온톨로지 용어 의미의 표시자를 포함하는 인덱스 엔트리를 생성함으로써,
    인덱스를 생성하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  18. 제15항에 있어서, 상기 전자 처리 디바이스는 다수의 온톨로지들에 대하여 단일 인덱스를 생성하고, 상기 인덱스 엔트리는 상기 온톨로지 용어에 연관된 온톨로지의 표시자를 포함하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  19. 제1항에 있어서, 상기 전자 처리 디바이스는,
    온톨로지의 하나 이상의 온톨로지 용어들의 표시자를 표시하고,
    사용자 입력 커맨드에 응답하여 적어도 하나의 온톨로지 용어를 식별하고,
    식별된 적어도 하나의 온톨로지 용어와 상기 식별된 적어도 하나의 온톨로지 용어에 연관된 데이터 특성 중 적어도 하나의 상세를 표시하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  20. 제19항에 있어서, 상기 전자 처리 디바이스는 인덱스를 이용하여 상기 하나 이상의 온톨로지 용어들의 표시자를 결정하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  21. 제19항에 있어서, 상기 전자 처리 디바이스는,
    사용자 입력 커맨드에 응답하여 사용자 선택 온톨로지 용어들 및 대응하는 사용자 선택 데이터 특성들을 결정하고,
    상기 사용자 선택 온톨로지 용어들과 상기 대응하는 사용자 선택 데이터 특성들에 따라 실행가능 코드를 생성하고,
    상기 실행가능 코드는, 컴퓨터 시스템에서 실행되는 경우, 사용자가 데이터 구조를 갖는 데이터 저장소에 저장된 콘텐츠와 상호 작용할 수 있게 하는 사용자 인터페이스를 상기 컴퓨터 시스템이 표시하게 하고, 상기 콘텐츠는 상기 사용자 선택 온톨로지 용어들에 대응하는 데이터 필드들에 저장되어 있는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  22. 제21항에 있어서, 상기 실행가능 코드는, 상기 컴퓨터 시스템이 소스 또는 타겟 온톨로지에 따라 소스 또는 타겟 데이터 구조에 저장된 데이터와 상호 작용하기 위한 질의들을 생성하게 하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  23. 제21항에 있어서, 상기 실행가능 코드는, 상기 컴퓨터 시스템이 온톨로지의 사용자 선택 온톨로지 용어들 간의 관계와 데이터 특성 중 적어도 하나에 따라 질의들을 생성하게 하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  24. 제21항에 있어서, 상기 실행가능 코드는, 상기 컴퓨터 시스템이,
    하나 이상의 온톨로지 용어들의 표시자를 표시하게 하고,
    사용자 입력 커맨드에 응답하여 적어도 하나의 온톨로지 용어의 선택을 결정하게 하고,
    선택된 상기 온톨로지 용어에 연관된 데이터 필드에 저장된 데이터를 질의하게 하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  25. 제1항에 있어서, 상기 전자 처리 디바이스는,
    온톨로지 용어를 다수의 잠재적 온톨로지 용어 의미들과 비교하고,
    상기 비교의 결과에 따라 상기 잠재적 온톨로지 용어 의미들 중 하나를 상기 온톨로지 용어 의미로서 선택하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  26. 제25항에 있어서, 상기 전자 처리 디바이스는,
    상기 비교의 결과 각각에 대한 매칭 점수를 생성하고, 상기 매칭 점수에 따라 온톨로지 용어 의미를 결정함으로써,
    온톨로지 용어 의미를 결정하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  27. 제25항에 있어서, 상기 전자 처리 디바이스는, 잠재적 온톨로지 용어 의미가 동의어, 반의어, 부분어, 수퍼클래스, 서브클래스 중 적어도 하나인지 여부를 결정하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  28. 제25항에 있어서, 상기 전자 처리 디바이스는 인덱스에 상기 온톨로지 용어 의미의 표시자를 저장하고, 상기 표시자는, 정의된 의미를 나타내는 식별자 균등 의미들의 리스트 중 적어도 하나를 포함하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  29. 제1항에 있어서, 상기 전자 처리 디바이스는,
    다수의 온톨로지 용어들의 온톨로지 용어 의미들을 비교하고, 각 비교의 결과에 대한 매칭 점수를 생성하고, 매치 점수들에 따라 정렬을 결정함으로써,
    온톨로지 용어들 간의 정렬을 결정하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  30. 제29항에 있어서, 상기 전자 처리 디바이스는, 또한, 온톨로지 용어들 간의 관계 및 상기 온톨로지 용어들의 데이터 특성 중 적어도 하나에 기초하여 상기 정렬을 결정하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  31. 제29항에 있어서, 상기 전자 처리 디바이스는,
    소스 온톨로지의 소스 온톨로지 용어들 간의 관계를 결정하고,
    타겟 온톨로지의 타겟 온톨로지 용어들 간의 관계를 결정하고,
    상기 관계들을 비교하고,
    상기 비교의 결과에 따라 상기 정렬을 결정하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  32. 제29항에 있어서, 상기 전자 처리 디바이스는, 소스 온톨로지로부터의 하나 이상의 소스 온톨로지 용어들과 타겟 온톨로지로부터의 하나 이상의 타겟 온톨로지 용어들 간의 정렬을 결정하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  33. 제1항에 있어서, 상기 전자 처리 디바이스는,
    선택된 온톨로지 용어들을 결정하고, 상기 선택된 온톨로지 용어들과, 상기 선택된 온톨로지 용어들 간의 관계에 따라 상기 온톨로지 용어들의 그룹을 적어도 부분적으로 결정함으로써,
    상기 온톨로지 용어들의 그룹을 결정하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  34. 제33항에 있어서, 상기 전자 처리 디바이스는,
    각각의 선택된 온톨로지 용어마다, 다수의 서로 다른 유형의 관계의 각각에 대하여 정의된 관계 경로 길이 내의 온톨로지 용어들을 식별하고, 식별된 상기 온톨로지 용어들을 상기 온톨로지 용어들의 그룹에 추가함으로써,
    관련된 온톨로지 용어들을 결정하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  35. 제34항에 있어서, 상기 전자 처리 디바이스는, 상기 선택된 온톨로지 용어들 모두가 관계들에 의해 연결될 때까지 식별된 온톨로지 용어들을 반복적으로 추가하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  36. 제33항에 있어서, 상기 전자 처리 디바이스는, 서로 다른 유형의 관계에 대하여 서로 다른 관계 경로 길이를 이용하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  37. 제36항에 있어서, 상기 전자 처리 디바이스는 사용자 입력 커맨드에 따라 관계 경로 길이를 결정하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  38. 제1항에 있어서, 상기 장치는,
    온톨로지의 온톨로지 용어들을 나타내는 인덱스를 생성하는 인덱서 모듈;
    온톨로지의 온톨로지 용어들의 검색(browse)을 가능하게 하며, 상기 온톨로지의 적어도 일부를 구체화하는 코드를 생성하여 상기 온톨로지에 따라 사용자가 데이터 구조에 저장된 데이터와 상호 작용할 수 있게 하는 브라우저 모듈;
    서로 다른 온톨로지들의 온톨로지 용어들 간의 정렬을 결정하는 정렬기 모듈;
    상기 온톨로지 용어들 간의 관계들을 이용하여 적어도 하나의 온톨로지 내의 온톨로지 용어들의 그룹을 적어도 부분적으로 결정하는 간결화기 모듈; 및
    온톨로지 용어 의미들을 식별하는 시맨틱 매처(semantic matcher) 모듈을 포함하는, 온톨로지를 이용하여 매핑을 생성하는 데 사용하기 위한 장치.
  39. 온톨로지들을 이용하여 매핑을 생성하는 데 사용하기 위한 방법으로서,
    적어도 하나의 전자 처리 디바이스에서,
    온톨로지 용어들을 각각 갖는 온톨로지들을 결정하는 단계;
    상기 온톨로지들 중 적어도 하나로부터 온톨로지 용어들의 그룹을 결정하는 단계;
    상기 온톨로지 용어들의 그룹 중 적어도 일부에 대하여 상기 온톨로지들의 온톨로지 용어들 간의 정렬을 결정하는 단계로서, 상기 정렬은 상기 온톨로지 용어들의 온톨로지 용어 의미에 따라 적어도 부분적으로 결정되는 것인, 상기 정렬을 결정하는 단계; 및
    상기 정렬에 따라 매핑을 생성하는 단계를 포함하는, 온톨로지들을 이용하여 매핑을 생성하는 데 사용하기 위한 방법.
KR1020167030643A 2014-04-02 2015-04-02 온톨로지 매핑 방법 및 장치 KR20170021227A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461974180P 2014-04-02 2014-04-02
US61/974,180 2014-04-02
PCT/AU2015/000195 WO2015149114A1 (en) 2014-04-02 2015-04-02 Ontology mapping method and apparatus

Publications (1)

Publication Number Publication Date
KR20170021227A true KR20170021227A (ko) 2017-02-27

Family

ID=54239127

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167030643A KR20170021227A (ko) 2014-04-02 2015-04-02 온톨로지 매핑 방법 및 장치

Country Status (10)

Country Link
US (2) US11921769B2 (ko)
EP (1) EP3127020A1 (ko)
JP (1) JP2017513134A (ko)
KR (1) KR20170021227A (ko)
CN (1) CN106663101A (ko)
AU (1) AU2015240418A1 (ko)
CA (1) CA2952549A1 (ko)
IL (1) IL248022A0 (ko)
SG (1) SG11201607828RA (ko)
WO (1) WO2015149114A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180124716A (ko) * 2017-05-11 2018-11-21 경희대학교 산학협력단 효과적인 대화 관리를 위한 의료 시스템에서의 의도-컨텍스트 융합 방법

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720899B1 (en) 2011-01-07 2017-08-01 Narrative Science, Inc. Automatic generation of narratives from data using communication goals and narrative analytics
US11288328B2 (en) 2014-10-22 2022-03-29 Narrative Science Inc. Interactive and conversational data exploration
US11922344B2 (en) 2014-10-22 2024-03-05 Narrative Science Llc Automatic generation of narratives from data using communication goals and narrative analytics
US11238090B1 (en) 2015-11-02 2022-02-01 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from visualization data
US10152556B1 (en) * 2015-04-16 2018-12-11 Jpmorgan Chase Bank, N.A. Semantic modeling platform
EP3163513A1 (en) * 2015-10-26 2017-05-03 Agfa Healthcare Method of automated notation 3 (n3) query rule creation
US11222184B1 (en) 2015-11-02 2022-01-11 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from bar charts
US11232268B1 (en) 2015-11-02 2022-01-25 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from line charts
US11188588B1 (en) 2015-11-02 2021-11-30 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to interactively generate narratives from visualization data
WO2017091120A1 (en) * 2015-11-25 2017-06-01 MiNDiGO AB A system and a method for ontology based browsing
US10545955B2 (en) * 2016-01-15 2020-01-28 Seven Bridges Genomics Inc. Methods and systems for generating, by a visual query builder, a query of a genomic data store
US11238115B1 (en) 2016-07-11 2022-02-01 Wells Fargo Bank, N.A. Semantic and context search using knowledge graphs
US10878000B2 (en) * 2016-07-29 2020-12-29 Hewlett Packard Enterprise Development Lp Extracting graph topology from distributed databases
US10853583B1 (en) 2016-08-31 2020-12-01 Narrative Science Inc. Applied artificial intelligence technology for selective control over narrative generation from visualizations of data
WO2018057945A1 (en) * 2016-09-22 2018-03-29 nference, inc. Systems, methods, and computer readable media for visualization of semantic information and inference of temporal signals indicating salient associations between life science entities
US10067965B2 (en) 2016-09-26 2018-09-04 Twiggle Ltd. Hierarchic model and natural language analyzer
US20180089316A1 (en) * 2016-09-26 2018-03-29 Twiggle Ltd. Seamless integration of modules for search enhancement
US11100469B2 (en) * 2016-10-25 2021-08-24 International Business Machines Corporation Cross-domain collaborative data log
US9946777B1 (en) * 2016-12-19 2018-04-17 Palantir Technologies Inc. Systems and methods for facilitating data transformation
US11238084B1 (en) * 2016-12-30 2022-02-01 Wells Fargo Bank, N.A. Semantic translation of data sets
US10678834B2 (en) * 2017-02-02 2020-06-09 GM Global Technology Operations LLC Methodology for generating a consistent semantic model by filtering and fusing multi-source ontologies
US10943069B1 (en) 2017-02-17 2021-03-09 Narrative Science Inc. Applied artificial intelligence technology for narrative generation based on a conditional outcome framework
US11954445B2 (en) 2017-02-17 2024-04-09 Narrative Science Llc Applied artificial intelligence technology for narrative generation based on explanation communication goals
US11568148B1 (en) 2017-02-17 2023-01-31 Narrative Science Inc. Applied artificial intelligence technology for narrative generation based on explanation communication goals
US11068661B1 (en) 2017-02-17 2021-07-20 Narrative Science Inc. Applied artificial intelligence technology for narrative generation based on smart attributes
US20180357381A1 (en) * 2017-06-09 2018-12-13 Intelligent Medical Objects, Inc. Method and System for Generating Persistent Local Instances of Ontological Mappings
CN109246660B (zh) 2017-06-30 2020-05-08 华为技术有限公司 一种管理本体的方法以及m2m平台
WO2019001445A1 (zh) * 2017-06-30 2019-01-03 华为技术有限公司 一种管理本体的方法以及m2m平台
US11488029B2 (en) * 2017-09-15 2022-11-01 International Business Machines Corporation Cognitive process code generation
US10628777B2 (en) 2017-09-15 2020-04-21 International Business Machines Corporation Cognitive process enactment
US10846644B2 (en) 2017-09-15 2020-11-24 International Business Machines Corporation Cognitive process learning
US11853930B2 (en) * 2017-12-15 2023-12-26 Accenture Global Solutions Limited Dynamic lead generation
CN107978341A (zh) * 2017-12-22 2018-05-01 南京昂特医信数据技术有限公司 一种基于语境的医学语义框架下的异构数据适配方法及其系统
US11042708B1 (en) * 2018-01-02 2021-06-22 Narrative Science Inc. Context saliency-based deictic parser for natural language generation
US10963649B1 (en) 2018-01-17 2021-03-30 Narrative Science Inc. Applied artificial intelligence technology for narrative generation using an invocable analysis service and configuration-driven analytics
US10755046B1 (en) 2018-02-19 2020-08-25 Narrative Science Inc. Applied artificial intelligence technology for conversational inferencing
CN108710677B (zh) * 2018-05-18 2021-08-17 中国兵器工业新技术推广研究所 通过NoSQL数据库实现BOM数据多组织多视图的解决方法
CA3105156C (en) * 2018-06-27 2023-08-01 Luz Erez Data structures for storing and manipulating longitudinal data and corresponding novel computer engines and methods of use thereof
US11042713B1 (en) 2018-06-28 2021-06-22 Narrative Scienc Inc. Applied artificial intelligence technology for using natural language processing to train a natural language generation system
US11074230B2 (en) 2018-09-04 2021-07-27 International Business Machines Corporation Data matching accuracy based on context features
JP7135641B2 (ja) * 2018-09-19 2022-09-13 日本電信電話株式会社 学習装置、抽出装置及び学習方法
CN109447267B (zh) * 2018-10-16 2021-04-06 东北石油大学 融合数据元标准的叙词本体构建方法
CN110059194B (zh) * 2019-03-01 2022-04-08 中国科学院信息工程研究所 一种融合表示学习和分治策略的大规模本体合并方法
US11935636B2 (en) 2019-04-26 2024-03-19 Merative Us L.P. Dynamic medical summary
JP7023416B2 (ja) * 2019-05-20 2022-02-21 三菱電機株式会社 オントロジー生成システム、オントロジー生成方法およびオントロジー生成プログラム
US10909160B2 (en) * 2019-05-29 2021-02-02 TADA Cognitive Solutions, LLC Digital duplicate
US11487902B2 (en) 2019-06-21 2022-11-01 nference, inc. Systems and methods for computing with private healthcare data
WO2020257783A1 (en) 2019-06-21 2020-12-24 nference, inc. Systems and methods for computing with private healthcare data
US11269907B1 (en) * 2019-11-15 2022-03-08 Palantir Technologies Inc. Object-centric data analysis system and graphical user interface
CN110688433B (zh) * 2019-12-10 2020-04-21 银联数据服务有限公司 一种基于路径的特征生成方法及装置
US11734333B2 (en) * 2019-12-17 2023-08-22 Shanghai United Imaging Intelligence Co., Ltd. Systems and methods for managing medical data using relationship building
US11580326B2 (en) 2019-12-30 2023-02-14 Nec Corporation Ontology matching based on weak supervision
JP7352501B2 (ja) * 2020-03-17 2023-09-28 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
US11816434B2 (en) * 2020-08-27 2023-11-14 Entigenlogic Llc Utilizing inflection to select a meaning of a word of a phrase
US11455588B2 (en) 2020-09-04 2022-09-27 TADA Cognitive Solutions, LLC Data validation and master network techniques
US20220374459A1 (en) * 2021-05-17 2022-11-24 Salesforce.Com, Inc. Systems and methods for hierarchical retrieval of semantic-based passages in deep learning
US20230033904A1 (en) * 2021-07-28 2023-02-02 Illumex Technologies, Ltd. System and method for generating business ontologies and glossaries from metadata
US11714956B1 (en) * 2022-01-27 2023-08-01 Rakuten Mobile, Inc. Ontology-based semantic rendering

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200563B1 (en) * 1999-08-20 2007-04-03 Acl International Inc. Ontology-driven information system
US7493253B1 (en) * 2002-07-12 2009-02-17 Language And Computing, Inc. Conceptual world representation natural language understanding system and method
JP2006011739A (ja) * 2004-06-24 2006-01-12 Internatl Business Mach Corp <Ibm> オントロジを利用する装置、コンピュータシステムおよびデータ処理方法
US7328209B2 (en) * 2004-08-11 2008-02-05 Oracle International Corporation System for ontology-based semantic matching in a relational database system
US8640087B2 (en) * 2006-03-17 2014-01-28 The Mitre Corporation Semantic system for integrating software components
US7558791B2 (en) * 2006-07-31 2009-07-07 Informed Control Inc System and method for ontology-based translation between directory schemas
US20100185700A1 (en) * 2007-09-17 2010-07-22 Yan Bodain Method and system for aligning ontologies using annotation exchange
US20100281061A1 (en) 2009-04-30 2010-11-04 International Business Machines Corporation Semantic Data Validation of Disjoint Data
US8332434B2 (en) * 2009-09-30 2012-12-11 Business Objects Software Limited Method and system for finding appropriate semantic web ontology terms from words
US9396283B2 (en) * 2010-10-22 2016-07-19 Daniel Paul Miranker System for accessing a relational database using semantic queries
EP2469421A1 (en) 2010-12-23 2012-06-27 British Telecommunications Public Limited Company Method and apparatus for processing electronic data
US8620931B2 (en) * 2011-06-24 2013-12-31 Siemens Aktiengesellschaft Method of composing an ontology alignment
US8856181B2 (en) * 2011-07-08 2014-10-07 First Retail, Inc. Semantic matching
US20130018827A1 (en) * 2011-07-15 2013-01-17 International Business Machines Corporation System and method for automated labeling of text documents using ontologies
EP2755148A1 (en) * 2013-01-15 2014-07-16 Fujitsu Limited Data storage system, and program and method for execution in a data storage system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180124716A (ko) * 2017-05-11 2018-11-21 경희대학교 산학협력단 효과적인 대화 관리를 위한 의료 시스템에서의 의도-컨텍스트 융합 방법

Also Published As

Publication number Publication date
SG11201607828RA (en) 2016-10-28
US20170185674A1 (en) 2017-06-29
CA2952549A1 (en) 2015-10-08
JP2017513134A (ja) 2017-05-25
WO2015149114A1 (en) 2015-10-08
IL248022A0 (en) 2016-11-30
CN106663101A (zh) 2017-05-10
US11921769B2 (en) 2024-03-05
AU2015240418A1 (en) 2016-11-17
US20240152542A1 (en) 2024-05-09
EP3127020A1 (en) 2017-02-08

Similar Documents

Publication Publication Date Title
US20240152542A1 (en) Ontology mapping method and apparatus
US11899705B2 (en) Putative ontology generating method and apparatus
US11625424B2 (en) Ontology aligner method, semantic matching method and apparatus
US20170083547A1 (en) Putative ontology generating method and apparatus
US20170061001A1 (en) Ontology browser and grouping method and apparatus
Vavliakis et al. RDOTE–publishing relational databases into the semantic web
Movshovitz-Attias et al. Kb-lda: Jointly learning a knowledge base of hierarchy, relations, and facts
Ristoski Exploiting semantic web knowledge graphs in data mining
Kopp et al. An Approach and Software Prototype for Translation of Natural Language Business Rules into Database Structure.
Embley et al. Conceptual modeling foundations for a web of knowledge
Pietranik et al. A method for ontology alignment based on semantics of attributes
Tang et al. Ontology-based semantic retrieval for education management systems
Kwakye A Practical Approach to Merging Multidimensional Data Models
Wang et al. AceMap: Knowledge Discovery through Academic Graph
Elkaimbillah et al. Construction of an ontology-based document collection for the IT job offer in Morocco
Tomingas et al. Discovering Data Lineage from Data Warehouse Procedures
Rabbani Supporting the Semi-Automatic Creation of the Target Schema in Data Integration Systems
Hartmann et al. Directing the development of constraint languages by checking constraints on rdf data
Purpura et al. Automatic Mapping of Terminology Items with Transformers
Anam Incremental knowledge-based system for schema mapping
Nentwig Scalable Data Integration for Linked Data
Nguyen Semantic and structural integration of heterogeneous XML sources
Kaabi et al. A new approach to discover the complex mappings between ontologies
CN118260378A (zh) 基于大语言模型与语义融合的制度检索推荐方法及系统
Ibrahimi et al. Model Discovery and Reuse by Knowledge Graphs for Low-Code Development Platforms: The zAppDev Case Study