KR100912471B1 - 히스토그램과 평면적 크기 계산을 이용한 xml 스키마매칭 과정에서의 변환 질의의 적합성 검사 방법 - Google Patents

히스토그램과 평면적 크기 계산을 이용한 xml 스키마매칭 과정에서의 변환 질의의 적합성 검사 방법 Download PDF

Info

Publication number
KR100912471B1
KR100912471B1 KR1020080019221A KR20080019221A KR100912471B1 KR 100912471 B1 KR100912471 B1 KR 100912471B1 KR 1020080019221 A KR1020080019221 A KR 1020080019221A KR 20080019221 A KR20080019221 A KR 20080019221A KR 100912471 B1 KR100912471 B1 KR 100912471B1
Authority
KR
South Korea
Prior art keywords
node
histogram
conversion
schema
correspondence
Prior art date
Application number
KR1020080019221A
Other languages
English (en)
Inventor
이경하
이규철
Original Assignee
충남대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 충남대학교산학협력단 filed Critical 충남대학교산학협력단
Priority to KR1020080019221A priority Critical patent/KR100912471B1/ko
Application granted granted Critical
Publication of KR100912471B1 publication Critical patent/KR100912471B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents

Abstract

본 발명은 XML 스키마에 관한 것이다. 더욱 상세하게는, 본 발명은 XML 스키마에 대한 스키마 매칭이 요구되는 환경에서 노드 간 대응 관계의 지정 시점에 해당 대응 관계에 따라 작성될 예정인 변환 질의가 변환 과정에서 입력 데이터의 손실을 유발할 가능성이 있는지를 산술적으로 계산할 수 있는 방법인 변환 적합성 검사 방법에 관한 것이다.
본 발명은 변환 적합성 검사 방법에 있어서, (a) 사용자로부터 입/출력 XML 스키마 정의를 입력받고 문서 변환의 첫 번째 과정인 스키마 매칭을 수행하기 위해 입력된 XML Schema 정의를 파싱하여 스키마 트리를 생성하는 단계; (b) 상기 스키마 트리의 생성 시 시스템에서 사용할 인덱스와 변환 적합성 검사 시 이용할 히스토그램을 같이 생성하는 단계; (c) 상기 히스토그램의 생성 이후 유사도 측정 단계로 들어가되, 유사도 측정 단계에서는 트리 내 노드들의 이름(label)에 대한 언어적 유사도와 문서 구조에 대한 구조적 유사도를 측정하는 단계; (d) 상기 (c)단계에서 발견된 노드 간 대응 관계에 대해 히스토그램을 통한 변환 적합성 검사를 수행함으로써 적합 여부를 판별하고, 사용자에게 제시하는 단계; (e) 사용자에 의해 선택된 대응관계가 아닌가를 판단하여, 대응관계인 경우 (c)단계로 이동하는 단계; (f) 사용자에 의해 선택된 대응관계가 아닌 경우, 대응 관계로 설정된 노드들의 타입을 비교함으로써 타입에 따라 달라질 수 있는 변환 질의의 유형을 확인하는 노드 타입의 비교 단계; (g) 각 대응 관계를 취합하여 스키마 트리의 문서 구조에 따른 변환 트리를 생성하는 단계; 및 (h) 변환 트리를 입력으로 하여 XSLT 스타일시트를 생성하는 단계; 를 포함하여 이루어진 것을 특징으로 한다.
본 발명에 의하면, XML 스키마 매칭 과정 중 실제 문서 변환 과정 이전 시점인 노드 간 대응 관계의 지정 시점에, 해당 대응 관계에 따라 작성될 변환 질의를 가지고 실제 변환 과정 시 입력 데이터의 손실 여부를 계산하게 되며, 이를 적합한 대응 관계의 파악과 설정의 정확성을 향상할 수 있는 효과가 있다.
변환 적합성 검사, XML 스키마 매칭, 히스토그램

Description

히스토그램과 평면적 크기 계산을 이용한 XML 스키마 매칭 과정에서의 변환 질의의 적합성 검사 방법{A Method to check feasibility of mapping relationships during XML Schema Matching Process based on Histogram and Ichnographic Size Computation}
본 발명은 XML 스키마에 관한 것이다. 더욱 상세하게는, 본 발명은 XML 스키마에 대한 스키마 매칭이 요구되는 환경에서 노드 간 대응 관계의 지정 시점에 해당 대응 관계에 따라 작성될 예정인 변환 질의가 변환 과정에서 입력 데이터의 손실을 유발할 가능성이 있는지를 산술적으로 계산할 수 있는 방법인 변환 적합성 검사 방법에 관한 것이다.
일반적으로, 스키마 매칭이란 두 개의 스키마를 입력으로 하여 서로 의미적으로 연관된 두 스키마 간의 대응 관계를 발견하는 스키마 조작 연산이다. 변환 적합성 검사란 XML 문서의 변환 과정 이전에 스키마 간 노드의 대응 관계를 가지고 변환된 XML 문서가 출력 스키마 정의에 준할 수 있는지를 미리 판별하는 연산이다. 본 발명은 노드 대응 관계 만을 가지고, 변환 결과가 출력 스키마 정의에 준할 수 있는지, 노드 대응 별로 변환 적합성을 검사할 수 있는 기법에 관한 것이다. 상기 검사 방법을 이용하여 노드 대응 관계 중에서 부적절한 노드 대응 관계를 산술적으로 식별해 낼 수 있으며, 정확한 문서 변환이 가능할 수 있도록 출력 스키마를 수정할 수 있는 방법 또한 제공할 수 있다.
XML 문서에 대한 변환을 수행 시 사용자가 작성한 변환 질의는 언제나 출력 스키마에 준하는 변환 결과를 작성할 수 있어야 한다. 만약 그렇지 않은 경우에는 변환된 XML 문서를 스키마 정의에 대하여 유효성 검사(validation) 시 오류가 발생하게 된다. 또한 출력 스키마를 기준으로 XML 문서를 처리하도록 개발된 애플리케이션에서 프로그램 오류가 발생할 수가 있다. 이에 따라 XML 문서의 변환 질의의 생성 시 문서의 변환 결과가 출력 스키마 정의에 준할 수 있는지를 미리 검사해야 할 필요가 존재한다.
XML 문서의 변환 결과가 지정한 스키마 정의에 준하지 않는다면, XML 문서에 대한 유효성 검증(validation) 시 오류를 발생하게 되며, 또한 스키마 정의에 따라 XML 문서를 처리하도록 개발된 애플리케이션에서 오류가 발생할 수 있다. 이러한 문제를 해결하기 위하여 기존에는 XML 타입 체킹(type checking)기법이 고안되었다. 타입 체킹 기법은 XSLT나 XQuery와 같은 변환 질의가 이미 작성되어 있을 때 해당 변환 질의로 인해 생성될 변환 결과가 언제나 출력 스키마에 대하여 유효한지를 변환 과정 이전에 판별한다. 하지만 이 타입 체킹 기법은 현재의 웹 서비스 이용 환경과 같이 XML 문서 변환 시 변환 질의가 아직 작성되어 있지 않은 상태에서 문서가 변환 가능한지를 빠르게 판별할 필요가 있을 때에는 효과적이지 않다. 이 방법에서는 사용자가 변환 질의를 실제 작성한 이후에야 검사가 가능하기 때문이다. 또한, 이 방법은 실용성이 떨어지는 문제점이 있다.
타입 체킹은 기존의 XML 문서에 대한 유효성 검사(validation)나 또는 XML 인스턴스를 가지고 이에 적합한 문서 구조를 추론해 내는 타입 추론(type inference)과 유사하지만 다른 차이를 보인다. XML 문서에 대한 유효성 검사는 알파벳들의 유한 집합 Σ의 원소를 노드의 이름으로 가지는 모든 트리의 집합 T에 대하여 t∈T 인 트리 t가 존재하고, 타입 τ이 주어졌을 때 t∈τ인지를 검사하는 연산이다. 반면에 타입 추론은 프로그램의 입력 도메인 D와 프로그램 P를 가지고 P(D) = {P(x) | x∈ D}에서 D⊆τ인 τ를 계산하는 것으로 정의된다. 또한 타입 체킹은 P:D → T 프로그램 P와 프로그램 도메인 D를 가지고, 타입 τ는 τ⊆T일 때, ∀x∈D인 트리 x에 대해 P(x)∈τ인지를 검사하는 연산으로 정의된다.
타입 체킹의 해결 방법은 크게 3가지로 구분할 수 있다. 첫 번째 방법은 XML 유효성 검증을 이용하는 것으로 입력 XML 스키마를 따르는 모든 XML 인스턴스에 대하여 문서 변환을 수행 후 모든 변환 결과들이 출력 XML 스키마에 준하는지를 검사하는 방법이다. 만약 모든 변환 결과들이 출력 XML 스키마에 준한다면 이 변환 질의에 대한 타입 체킹은 성공이라고 할 수 있다.
그러나 이 방법은 모든 변환 결과들을 출력 XML 스키마에 비교함으로써, 문 서 변환 과정 이전에 검사할 수가 없고, 또한 정해진 XML 스키마에 따라 실행 시간에 동적으로 생성되는 XML 문서들에 대해서는 검사할 수 있는 방법이 존재하지 않는다는 점에서 적용에 많은 제약이 존재한다. 또한 모든 변환 결과를 얻기 위해서는 입력 스키마 정의에 따르는 모든 경우의 입력 XML 문서를 준비해야 하는데 현실적으로 모든 XML 문서를 준비할 수가 없으므로 현실적인 해결책이 될 수 없다. 특히 동적으로 XML 문서를 생성하는 웹 서비스와 같은 애플리케이션의 경우에는 입력 XML 문서를 미리 얻을 수 있는 방법이 없다.
두 번째 방법은 타입 추론을 이용하여 타입 체킹을 수행하는 방법이다. 여기에서는 변환 질의와 입력 스키마 정의를 가지고 시스템을 통해 타입을 추론하고, 이 타입이 출력 스키마 정의의 부분 집합인지를 검사함으로써 타입 체킹을 한다. 하지만 이 방식은 이론적으로 타입 추론이 언제나 정확한 타입을 구하지는 못함으로써 야기되는 문제점이 있다.
역타입 추론(inverse type inference)을 이용한 타입 체킹은 변환 질의에 대한 역함수를 계산한다. 이후 구해진 역함수에 출력 스키마 정의에서의 타입을 입력으로 하여 입력 스키마 정의를 추론해 내고 이것이 기존의 입력 스키마 정의의 부분 집합이 된다면 해당 변환 질의가 옳은 질의로 판별하게 된다.
역타입 추론을 이용한 타입 체킹 방식은 출력 스키마 정의를 입력으로 하여, 입력 스키마를 구함으로써, 문서 변환 과정 이전에 타입 체킹을 구할 수 있는 이점을 가지고 있으며, 현재까지 대부분의 관련 연구는 이를 기반으로 수행되어 왔다.
이상과 같이 현재의 타입 체킹은 모두 변환 질의를 XSLT로 채택하였으나, XSLT를 트리 출력기(transducer)로 모델링 시 XSLT의 많은 기능들을 생략하였다. 그럼에도 낮은 성능을 보인다는 점에서 실제 응용에 도입하기에는 아직까지 많은 무리가 존재한다. 더욱이 종래의 기술은 변환 질의인 XSLT가 이미 작성된 상태에서만 검사를 수행할 수 있다는 문제점이 있다.
이러한 문제점을 해결하기 위해 본 발명은 XML 스키마 매칭 과정을 통한 노드 간 대응 관계의 지정 시점에 해당 대응 관계에 따라 작성될 변환 질의를 가지고 실제 변환 과정 시 입력 데이터의 손실 여부를 계산함으로써 설정된 대응 관계의 적합성을 변환 질의의 완성 이전에도 효율적으로 그리고 산술적으로 검사할 수 있는 방법을 제공하는 것을 그 목적으로 한다.
이러한 목적을 달성하기 위하여, 본 발명은 변환 적합성 검사 방법에 있어서, 적합성 검사 방법에 있어서, (a) 사용자로부터 입/출력 XML 스키마 정의를 입력받고 문서 변환의 첫 번째 과정인 스키마 매칭을 수행하기 위해 입력된 XML Schema 정의를 파싱하여 스키마 트리를 생성하는 단계; (b) 상기 스키마 트리의 생성 시 시스템에서 사용할 인덱스와 변환 적합성 검사 시 이용할 히스토그램을 같이 생성하는 단계; (c) 상기 히스토그램의 생성 이후 유사도 측정 단계로 들어가되, 유사도 측정 단계에서는 트리 내 노드들의 이름(label)에 대한 언어적 유사도와 문서 구조에 대한 구조적 유사도를 측정하는 단계; (d) 상기 (c)단계에서 발견된 노드 간 대응 관계에 대해 히스토그램을 통한 변환 적합성 검사를 수행함으로써 적합 여부를 판별하고, 사용자에게 제시하는 단계; (e) 사용자에 의해 선택된 대응관계가 아닌가를 판단하여, 대응관계인 경우 (c)단계로 이동하는 단계; (f) 사용자에 의해 선택된 대응관계가 아닌 경우, 대응 관계로 설정된 노드들의 타입을 비교함으로써 타입에 따라 달라질 수 있는 변환 질의의 유형을 확인하는 노드 타입의 비교 단계; (g) 각 대응 관계를 취합하여 스키마 트리의 문서 구조에 따른 변환 트리를 생성하는 단계; 및 (h) 변환 트리를 입력으로 하여 XSLT 스타일시트를 생성하는 단계; 를 포함하여 이루어진 것을 특징으로 한다.
또한, 상기 변환 적합성 검사는 노드 대응이 완전하게 성립되지 않은 시점, 즉 사용자가 노드 대응을 정의하고 있을 때에도 검사를 수행할 수 있으며 변환 적합성의 검사는 2단계로 나뉘어 수행되는 것을 특징으로 한다.
또한, 변환 적합성 검사의 1단계는 노드 대응이 이루어지는 시점에서 수행되며, 여기에서는 히스토그램에 기재된 노드의 문서 내에서의 전체 출현 횟수만을 비교하는데, 이 때 노드의 문서 내 출현 횟수만을 비교하는 이유는 상위 노드 대응이 지정되지 않은 상태에서는 노드가 속한 그룹의 범위를 정의할 수 없기 때문이며, 그룹 내 노드의 출현 횟수의 계산은 노드 간 대응이 모두 설정된 이후의 2단계 검사에서 수행하는 것을 특징으로 한다.
또한, 변환 적합성 검사의 2단계는 노드의 상위 노드에 대한 대응 관계를 가지고 모델 그룹 내에서의 노드의 크기를 비교하는 것을 특징으로 한다.
본 발명에 의하면, XML 스키마 매칭 과정을 통한 노드 간 대응 관계의 지정 시점에 해당 대응 관계에 따라 작성될 변환 질의를 가지고 실제 변환 과정 시 입력 데이터의 손실 여부를 계산함으로써 설정된 대응 관계의 적합성을 변환 질의의 완성 이전에도 산술적 검사를 통해 효율적으로 검사할 수 있는 효과가 있다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 본 발명의 바람직한 실시예에 따른 전체적인 과정을 나타내는 순서도이다.
도 1을 참조하여 설명하면, 먼저 사용자로부터 입/출력 XML 스키마 정의를 입력받는다. 이 때 지원하는 스키마 표준은 XML Schema이나, XML 문서 구조를 정의하는 다른 스키마 언어에서 또한 본 발명에서 고안한 변환 적합성 검사 기법을 이용 가능하다. 문서 변환의 첫 번째 과정인 스키마 매칭을 수행하기 위해 입력된 XML Schema 정의를 파싱하여 스키마 트리를 생성한다(S10). 스키마 트리의 생성 시에는 시스템에서 사용할 인덱스와 변환 적합성 검사 시 이용할 히스토그램을 같이 생성한다(S20).
여기에서의 히스토그램은 스키마 트리 내 모든 노드에 대한 모델 그룹과 허용 가능한 발생 횟수, 그룹 내 허용 가능한 노드의 발생 횟수, 마지막으로 문서 전체에서 허용 가능한 노드의 발생 횟수 정보를 포함한다. 이 히스토그램은 노드 간에 설정된 대응 관계에 대해서 해당 노드의 변환 적합성을 검사할 수 있는 방법을 제공한다.
히스토그램의 생성 이후에는 실제적인 스키마 매칭 과정이 수행된(S30~S50)다. 이 스키마 매칭 과정은 노드 간 유사도 측정 단계와, 변환 적합성 검사, 사용자의 대응 관계의 선택으로 구성되며, 유사도 측정 단계는 언어적 유사도 측정 단계와 구조적 유사도 측정 단계로 구분된다.
언어적 유사도 측정 단계에서는 트리 내 노드들의 이름(label)에 대한 언어적 유사도를 측정한다(S30). 이를 위해서는 어휘 사전(thesaurus)을 이용하며, 이를 통해 이음동의어(synonym), 또는 상하위 개념어(hyponym-hypernym)에 대한 유사도를 측정해 낸다. 이후 계산된 언어적 유사도를 기반으로 노드의 타입 정의에 따른 구조적 유사도를 측정하여 적합한 노드 대응 관계를 사용자에게 제공한다.
이후 시스템은 발견된 노드 간 대응 관계에 대해 히스토그램을 통한 변환 적합성 검사를 수행함으로써 적합 여부를 판별하고, 사용자에게 제시한다(S40).
스키마 매칭을 통해 발견된 노드 대응 관계에 대해 해당 노드 대응이 유효한지를 사용자가 쉽게 판별할 수 있도록 하기 위해 본 발명에서는 히스토그램에 기재된 노드의 허용된 발생 횟수 정보를 가지고, XML 데이터에 대한 평면적 크기 계산법을 통한 변환 적합성 검사(transformation feasibility check) 방법을 고안하였 다. 기존의 타입 체킹 기법은 작성된 변환 질의를 가지고 언제나 출력 스키마에 준하는 변환 결과를 제공할 수 있는지를 검증하기 때문에 노드 대응만이 존재할 때에는 타입 체킹을 수행할 수가 없다.
반면에 본 발명에서의 변환 적합성의 검사는 노드 대응 관계가 설정될 때마다 해당 노드의 타입 정보를 이용해 변환 이후에도 출력 스키마 내 대응 노드의 타입에 준할 수 있는지를 판별한다. 뿐만 아니라 타입 체킹이 XSLT와 같은 변환 질의 전체를 검증하고, 이를 통해 계산된 타입이 원래 스키마 정의의 부분집합인지를 검사하는데 반해, 이 발명에서의 변환 적합성 검사는 대응 노드별 타입을 비교함으로써 변환 질의 작성 이전에 노드 대응만을 가지고 검사를 수행할 수 있다. 이에 따라 사용자의 노드 대응 설정 과정 중에서도 즉시 검사할 수 있다는 이점을 제공한다. 이를 위해 본 발명에서는 XML Schema의 타입 정의에 따른 히스토그램을 작성하고 이를 이용한 검사 방법을 제안한다. 여기에서 제안하는 변환 적합성 검사는 스키마 매칭을 통해 얻어진 노드 대응에 대해서 적용할 수 있으며, 또한 스키마 매칭 없이 사용자에 의해 설정된 노드 대응에 대해서도 적용할 수 있다.
다음 단계에서 사용자는 제공된 대응 관계와 변환 적합성 여부를 참고하여, 옳은 대응 관계를 선택한다(S50). 사용자에 의해 선택된 대응 관계는 다시 스키마 매칭의 입력으로 넣음으로써 사용자가 모든 대응 관계를 결정하기 전까지 반복하여 스키마 매칭을 수행한다.
최종적으로 확정된 대응 관계는 변환 질의 생성 모듈을 통해 변환 질의로 생성된다. 변환 질의 작성 단계는 노드 타입의 비교와 변환 트리의 작성, XSLT의 생성으로 구분된다.
노드 타입의 비교에서는 대응 관계로 설정된 노드들의 타입을 비교함으로써 타입에 따라 달라질 수 있는 변환 질의의 유형을 확인한다(S60).
다음으로는 각 대응 관계를 취합하여 스키마 트리의 문서 구조에 따른 변환 트리를 생성한다(S70). 마지막으로 변환 트리를 입력으로 하여 XSLT 스타일시트를 생성한다(S80).
도 2는 본 발명에서의 예시를 위한 입력 스키마에 대한 XML 스키마 트리이다. 예시를 위한 입력 스키마 정의는 표 1과 같다.
Figure 112008015302755-pat00001
도 2를 참조하여 표 1의 입력 스키마 정의를 설명하면, XML Schema에서는 엘리먼트의 선언과 타입 선언이 분리되어 있으나, 본 발명에서는 엘리먼트 선언이 참조하는 타입을 모두 스키마 트리에 삽입시킨다. 공유 타입에 대해서는 타입 정의를 참조하는 엘리먼트별로 타입 정의를 복사하여 동일한 타입을 가지는 엘리먼트들은 서로 동일한 타입 선언에 따른 모델 그룹과 하위 노드들을 가지도록 한다.
도 2에서 볼 수 있는 것과 같이, XML Schema 정의에서는 특정 노드의 타입은 해당 노드 정의에서 가지고 있는 모델 그룹의 종류와 발생 빈도, 그리고 하위 노드들과 하위 노드들의 발생 빈도로 결정된다.
노드의 타입은 엘리먼트 또는 애트리뷰트일 수 있으며, 각 노드는 자신에 대한 최소 발생 빈도와 최대 발생 빈도를 minOccurs와 maxOccurs 값으로 가지게 된다. DTD에서 '?', '+','*'로만 구분 지을 수 있었던 발생 빈도는 minOccurs와 maxOccurs의 조합으로 표현할 수 있다. '?'의 경우 'minOccurs=0, maxOccurs=1'로 표현이 되며, '+'는 'minOccurs=1, maxOccurs=unbounded'로, '*'는 'minOccurs=*, maxOccurs=unbounded'로 표현된다.
또한 DTD에서 ','와 '|'로 표현되던 SEQUENCE와, CHOICE는 각각 <sequence>와 <choice> 엘리먼트로 명시적으로 선언되며, 이는 상위 엘리먼트와 하위 엘리먼트 정의 사이에 위치하게 된다. SEQUENCE와 CHOICE 이외에 XML Schema에서는 ALL이라는 별도의 모델 그룹을 <all> 엘리먼트로 정의하고 있는데, SEQUENCE가 형제 노드 간의 발생 순서를 제어하는데 반해, ALL은 발생 순서에 대한 아무런 제어를 두지 않는다. 즉, 모델 그룹 ALL 에 포함된 하위 노드들은 어떠한 노드가 먼저 출현하던지 간에 문법에 위배되지 않는다. 순서에 대한 제어를 하지 않는 대신에, 모델 그룹 ALL에 포함되는 노드들의 발생 빈도는 최대 1을 넘을 수 없도록 제약받는다.
모델 그룹은 어떠한 엘리먼트가 하위 엘리먼트를 포함하지 않을 경우, 스키마 트리 내 노드가 단말 노드일 경우에는 존재하지 않는다. 하지만, 단말 노드일 경우라 하더라도 여러 개의 애트리뷰트를 가질 수 있다. XML Schema에서 애트리뷰트는 모델 그룹의 제어를 받지 않으며, 애트리뷰트 그룹 내에 정의된다. 또한 애트리뷰트의 발생빈도는 PROHIBITED, OPTIONAL, REQUIRED의 3가지로 제한되어 있으며, 이 때 PROHIBITED는 최소, 최대 발생빈도가 각각 0, OPTIONAL은 최소, 최대 발생빈도가 0과 1, REQUIRED는 최소, 최대 발생빈도가 각각 1과 동일하다. 애트리뷰트에서는 출현 순서 정보는 존재하지 않는다. 이에 따라 본 발명에서는 XML Schema에 대한 스키마 트리 구성 시 애트리뷰트 그룹을 모델 그룹 ALL로 표현하고, 애트리뷰트 그룹 내에 정의된 애트리뷰트들을 ALL 밑의 노드들로 표현한다.
XML 문서 변환을 위한 변환 적합성 검사와 대응 관계에 따른 변환 질의 생성을 위해서는 문서의 구조 정보에 대한 빠른 검색이 이루어져야 하며, 이러한 검색에는 부모-자식 노드의 검색이나, 조상-후손 노드의 검색, 노드의 단말/비단말 여부의 판별, 루트 노드까지의 경로 검색 등이 존재한다. 이를 위해서 본 발명에서는 XML 스키마 트리에 대한 인덱스를 생성하고 이를 통하여 빠른 검색을 수행할 수 있도록 한다. 이 때의 인덱스 기법는 동업자라면 누구나 알 수 있는 XML 문서에 대한 순서 정보의 유지와 XPath 질의를 위한 인덱스라면 어느것이나 무방하다.
도 3은 도 2에서 예시한 XML 스키마 트리 정의를 따라 작성되는 XML 문서의 모습과 크기를 도식화한 것이다.
도 3을 참조하여 설명하면, XML 스키마 정의에서 타입은 XML 문서에서 각 노드의 발생 횟수와 하위 노드들을 결정한다. 도 3에서와 같이 book 엘리먼트(S310)는 최소 0번부터 무한대까지 한 문서에서 출현할 수 있으며, title 엘리먼트(S32)는 book 엘리먼트 밑에서 1번 출현한다. 하지만 문서 전체에서 보았을 때 title은 출현하는 book 엘리먼트마다 존재하므로 book 엘리먼트와 마찬가지로 최소 0번부터 최대 무한대까지 출현하게 된다. 동일하게 en 엘리먼트(S330)는 ttile 엘리먼트 밑에서 1번 출현하지만, book 엘리먼트의 출현 횟수가 0번부터 무한대이기 때문에 en 엘리먼트의 문서 전체에서의 출현 횟수는 0번부터 무한대가 된다.
본 발명은 아래와 같은 산술적 규칙을 이용하여 노드 대응 관계의 변환 적합성을 판별하여, 문서 변환시 소실되는 데이터가 없도록 방지할 수 있는 방법을 제공한다. 1) XML 문서 내에서 노드의 출현 횟수는 노드 자신의 발생 빈도 정의 값과 속한 모델 그룹, 상위 노드의 발생 빈도 정의 값에 의해 결정된다. 2) XML 문서에서 임의 그룹에서의 노드 출현 횟수는 노드 자신의 발생 빈도 정의 값과 속한 모델 그룹에 의해 결정된다. 3) 어떤 노드의 문서 내 출현 횟수는 문서 변환 이후에도 동일하다. 4) 어떤 노드의 그룹 내 출현 횟수는 문서 변환 후에도 대응 그룹 내에서 동일하다.
도 4는 위의 1)-4) 속성을 통한 변환 적합성 검사를 위한 히스토그램의 생성 알고리즘이다. 본 발명에서 히스토그램은 스키마 트리를 입력으로 하여, 스키마 트리에 대한 인덱스와 같이 생성이 된다.
도 5는 도 4의 알고리즘의 바람직한 실시예에 따라, 도 2에서 예시된 스키마 트리에 대한 인덱스 트리와 히스토그램이다. 도 5에서 min, max 컬럼(S510)은 PathID 값으로 구별되는 스키마 트리에서의 각 노드의 최소, 최대 출현 횟수를 가리킨다. modelGroup(S520)은 각 노드가 속한 모델 그룹의 유형을 표기하며, Sequence, Choice, All 중의 하나의 값을 가진다. mgmin과 mgmax(S530)는 노드가 속한 모델 그룹 자체의 출현 횟수를 가리킨다. tmin과 tmax(S540)는 노드의 문서 전체에서의 출현 횟수를 가리킨다.
도 6은 도 4의 알고리즘의 바람직한 실시예에 따른 출력 스키마 트리에 대한 히스토그램이다.
도 6을 참조하여 설명하면, 변환 적합성 검사는 입출력 스키마 정의에 대한 히스토그램들을 가지고, 대응 노드들의 값을 비교함으로써 수행된다. 출력 스키마 정의에 대한 히스토그램의 생성은 입력 스키마 정의에서와 동일하다. 본 발명의 변환 적합성 검사는 노드 대응이 완전하게 성립되지 않은 시점, 즉 사용자가 노드 대응을 정의하고 있을 때에도 검사를 수행할 수 있다는 이점을 가지고 있다. 이를 위해 변환 적합성의 검사는 2단계로 나뉘어 수행된다.
1단계 검사는 노드 대응이 이루어지는 시점에서 수행되며, 여기에서는 히스토그램에 기재된 노드의 문서 내에서의 전체 출현 횟수만을 비교한다. 노드의 문서 내 출현 횟수만을 비교하는 이유는 상위 노드 대응이 지정되지 않은 상태에서는 노드가 속한 그룹의 범위를 정의할 수 없기 때문이다. 그룹 내 노드의 출현 횟수의 계산은 노드 간 대응이 모두 설정된 이후의 2단계 검사에서 수행한다.
도 6은 입력 스키마 트리에 대응되는 출력 스키마 트리와 이에 대한 히스토그램이다. 직관성을 높이기 위해 원래의 PathID 대신에 label을 가지도록 하였으나, 실제로는 PathID로 노드를 구분한다.
도 7은 노드의 출현 횟수와 그룹에 따른 대응 관계를 표기한 수식들의 모음이다. 도 7의 수식들을 위해 고안된 본 발명에서의 XML 스키마에 대한 평면 표기법(Ichnographic Notation)에 대한 정의는 표 2과 같다.
Figure 112008015302755-pat00002
표 2에서 label1은 상위 노드의 이름이며, min1, max1은 각각 label1에 대한 최소 발생 빈도와 최대 발생 빈도이다. label1이 포함하는 하위 노드들은 []안에 표기하며, 노드의 이름과 최소, 최대 발생 빈도의 표기는 label1에서와 동일하다. 하위 노드들을 포함하는 모델 그룹은 하위 노드 사이에 위치하게 되며, ALL은 △, CHOICE는 |, SEQUENCE는 ,로 표기한다. 모델 그룹의 발생 빈도는 [ ] 바깥의 min3과 max3으로 표기한다.
본 발명에서의 변환 적합성 검사는 도 4의 알고리즘을 통하여 발생하는 입/출력 스키마 간의 히스토그램을 대응 관계에 따라 도 7의 수식으로 확장 또는 대입 시킨 후, 이들 간의 출현 횟수의 크기를 비교함으로써 수행된다.
전체 문서에서의 노드 크기의 비교는 히스토그램의 tmin과 tmax를 통해 이루어진다. 이 예에서 도 2의 입력 스키마와 도 6의 출력 스키마 간 대응 관계에 따른 tmin, tmax의 비교 결과는 다음과 같다.
Figure 112008015302755-pat00003
입력 노드의 문서 내 크기는 변환 후에도 그대로 유지되며, 해당 노드가 출력 스키마 정의에 준하기 위해서는 변환될 노드의 크기보다 출력 스키마 정의 내 노드 정의의 크기가 충분히 커야한다. 즉, 출력 스키마 정의에서의 최소 발생 빈도는 변환될 노드의 최소 발생 빈도보다 같거나 낮아야 하며, 최대 발생 빈도는 변환될 노드의 최대 발생 빈도보다 같거나 커야 한다.
위의 대응 관계에 따른 노드의 비교에서 보면, 루트 노드 간의 대응인 books와 bib는 문서 내에서 1번만 출현함으로써 이 조건을 충족시키지만, book과 같은 노드들은 이 조건을 충족시키지 못하고 있다.
book 엘리먼트 경우 대응되는 content 엘리먼트의 크기가 (0,100)으로 (0,∞)으로 출현할 수 있는 book 엘리먼트보다 크기가 작다. 즉, 위의 대응 관계에 따라 문서를 변환하면, 루트 노드인 books 노드와 입력 노드와의 대응 관계가 없이 스키마 상에 정의된 열거형 값인 "book"과 대응 관계를 가지는 type 애트리뷰트 이외의 다른 노드들은 출력 스키마에 준하지 않게 된다.
이 중 출력 문서에서는 반드시 한 번 이상 출현하도록 정의된 ref는 출력 XML 문서에서 최소 1번 이상 출현하도록 노드의 크기가 정의되어 있으나, 대응 관계를 가지고 있지 않아 문서 내에서 출현하지 못하게 된다. en과 ko의 경우에는 출력 스키마 정의에서는 CHOICE 모델 그룹 안에 속하기 때문에, 멱등에 대한 방정식을 따로 가지고 있다. 위와 같이 현재의 노드 대응에 따르면, 루트 엘리먼트에 대한 대응 이외의 모든 노드 대응은 출력 스키마 정의에 위배될 수 있는 문서 변환 결과를 제공할 수 있다.
2단계 검사에서는 노드의 상위 노드에 대한 대응 관계를 가지고 모델 그룹 내에서의 노드의 크기를 비교한다. 입력 스키마 정의에서 author의 문서 내 크기는 (0,∞)로 설정되어 있으며, 출력 스키마 정의에서 author의 문서 내 크기는 (1, 100)으로 설정되어 있다. 그룹 내 노드의 크기를 비교하는 2단계 적합성 검사를 위해 여기에서는 문서 내 노드의 크기는 서로 동일하게 (0, ∞)로 설정되어 있어 1단계 검사를 통과했다고 가정한다. 즉, 출력 스키마 정의에서의 content의 발생 빈도 정의가 (0, ∞)로 입력 스키마 정의에서의 book과 동일한 경우, 하위 노드인 author에 대한 대응 관계는 서로 동일한 크기의 노드 간의 대응이므로 적합 판정을 받게 되고, 2단계 적합성 검사를 받게 된다. 아래 표 4는 author의 문서 내 크기를 비교한 결과를 보인다.
Figure 112008015302755-pat00004
노드의 그룹 내 크기는 노드가 속한 모델 그룹의 발생 빈도와 노드 자체의 발생 빈도를 곱한 값으로 계산된다. 만약 노드의 부모 노드가 대응 관계를 가지지 않고, 부모 노드의 조상 노드가 대응 관계를 가질 경우에는 대응 관계를 가지는 조상 노드까지의 경로에 속한 노드의 발생 빈도와 모델 그룹의 발생 빈도, 노드 자신의 발생 빈도를 모두 곱한 값으로 그룹 내 크기를 계산한다. 위의 표에서 보면, 문서 내 크기는 동일하였던, 입출력 스키마에서의 author는 그룹 내 크기는 다르게 된다. 입력 스키마에서의 author는 authors 노드의 밑에서 최소 한번부터 최대 무한대까지 출현할 수 있는 반면에, 출력 스키마에서의 author는 content 밑에서 한번만 출현할 수가 있다. 이에 따라 입력 스키마 정의에서는 각 책에 대한 저자를 여러 명 둘 수 있도록 허용된 반면에, 출력 스키마에서는 각 책 당 저자는 1명으로 제약된다. 2단계 적합성 검사를 통해 그룹 내 크기를 비교함으로써 이러한 문제를 해결하게 된다.
적합성 검사를 수행해 본 결과 표 3에서와 같이 문서 변환은 루트 노드이외에는 출력 스키마 정의에 준하지 않음을 확인할 수가 있으며, 이를 해결하기 위해서는 변환될 노드의 크기를 수용할 수 있도록 출력 스키마 정의를 수정해야만 한다. 고안한 변환 적합성 검사 기법에서는 히스토그램들을 서로 비교하여, 출력 스키마 트리에 대한 히스토그램의 값을 수정하고, 이를 참조하여 출력 스키마 트리의 모델 그룹과 발생 빈도를 조정함으로써 대응 관계에 따른 문서 변환을 수용할 수 있도록 출력 스키마 정의를 쉽게 변경할 수 있는 방법을 제공한다.
Figure 112008015302755-pat00005
이는 다음과 같은 과정을 통해 이루어진다. 히스토그램에서 노드 정보의 기재는 트리를 전위 순회하여 방문한 노드 순으로 이루어졌으므로, 히스토그램의 각 열을 위에서 아래로 검사하는 것만으로 노드에 대한 비교를 빠르게 수행할 수 있다. 먼저, 트리 구조에서 최상위 노드에 대한 비교를 수행하고, 이후에 하위 노드에 대한 비교를 수행한다. 출력 노드의 크기가 변환에 적합하지 않다면, 입력 노드의 크기와 동일한 값으로 설정하고, 다음 노드에 대한 비교를 수행한다. 만약 모델 그룹이 다른 경우에는 출력 스키마 정의에서의 모델 그룹을 변경하던지 또는 발생 빈도 정의를 조정함으로써 이를 해결한다. 표 5는 변환에 적합하도록 수정된 출력 스키마 정의에 대한 히스토그램을 보인다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 전체적인 과정을 나타내는 순서도
도 2는 본 발명의 바람직한 실시예에 따른 입력 스키마에 대한 확장된 XML 스키마 트리
도 3은 본 발명의 바람직한 실시예에 따른 출력 스키마 트리에 대한 히스토그램
도 4는 변환 적합성 검사를 위한 히스토그램의 생성 알고리즘
도 5는 도 4의 알고리즘의 바람직한 실시예에 따라, 도 2에서 예시된 스키마 트리에 대한 인덱스 트리와 히스토그램
도 6은 도 4의 알고리즘의 바람직한 실시예에 따른 출력 스키마 트리에 대한 히스토그램
도 7은 노드의 출현 횟수와 그룹에 따른 대응 관계를 표기한 수식들

Claims (4)

  1. 적합성 검사 방법에 있어서,
    (a) 사용자로부터 입/출력 XML 스키마 정의를 입력받고 문서 변환의 첫 번째 과정인 스키마 매칭을 수행하기 위해 입력된 XML Schema 정의를 파싱하여 스키마 트리를 생성하는 단계;
    (b) 상기 스키마 트리의 생성 시 시스템에서 사용할 인덱스와 변환 적합성 검사 시 이용할 히스토그램을 같이 생성하는 단계;
    (c) 상기 히스토그램의 생성 이후 유사도 측정 단계로 들어가되, 유사도 측정 단계에서는 트리 내 노드들의 이름(label)에 대한 언어적 유사도와 문서 구조에 대한 구조적 유사도를 측정하는 단계;
    (d) 상기 (c)단계에서 발견된 노드 간 대응 관계에 대해 히스토그램을 통한 변환 적합성 검사를 수행함으로써 적합 여부를 판별하고, 사용자에게 제시하는 단계;
    (e) 사용자에 의해 선택된 대응관계가 아닌가를 판단하여, 대응관계인 경우 (c)단계로 이동하는 단계;
    (f) 사용자에 의해 선택된 대응관계가 아닌 경우, 대응 관계로 설정된 노드들의 타입을 비교함으로써 타입에 따라 달라질 수 있는 변환 질의의 유형을 확인하는 노드 타입의 비교 단계;
    (g) 각 대응 관계를 취합하여 스키마 트리의 문서 구조에 따른 변환 트리를 생성하는 단계; 및
    (h) 변환 트리를 입력으로 하여 XSLT 스타일시트를 생성하는 단계;
    를 포함하여 이루어진 것을 특징으로 하는 히스토그램과 평면적 크기 계산을 이용한 XML 스키마 매칭 과정에서의 변환 질의의 적합성 검사 방법.
  2. 제 1 항에 있어서, 상기 변환 적합성 검사는
    노드 대응이 완전하게 성립되지 않은 시점, 즉 사용자가 노드 대응을 정의하고 있을 때에도 수행 가능하며,
    변환 적합성의 검사는 2단계로 나뉘어 수행되는 것을 특징으로 하는 히스토그램과 평면적 크기 계산을 이용한 산술적인 XML 스키마 매칭 과정에서의 변환 질의의 적합성 검사 방법.
  3. 제 2 항에 있어서, 변환 적합성 검사의 1단계는
    노드 대응이 이루어지는 시점에서 수행되되, 히스토그램에 기재된 노드의 문서 내에서의 전체 출현 횟수만을 비교하며, 그룹 내 노드의 출현 횟수의 계산은 노드 간 대응이 모두 설정된 이후의 2단계 검사에서 수행하는 것을 특징으로 하는 히스토그램과 평면적 크기 계산을 이용한 XML 스키마 매칭 과정에서의 변환 질의의 적합성 검사 방법.
  4. 제 3 항에 있어서, 변환 적합성 검사의 2단계는
    노드의 상위 노드에 대한 대응 관계를 가지고 모델 그룹 내에서의 노드의 크기를 비교하는 것을 특징으로 하는 히스토그램과 평면적 크기 계산을 이용한 XML 스키마 매칭 과정에서의 변환 질의의 적합성 검사 방법.
KR1020080019221A 2008-02-29 2008-02-29 히스토그램과 평면적 크기 계산을 이용한 xml 스키마매칭 과정에서의 변환 질의의 적합성 검사 방법 KR100912471B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080019221A KR100912471B1 (ko) 2008-02-29 2008-02-29 히스토그램과 평면적 크기 계산을 이용한 xml 스키마매칭 과정에서의 변환 질의의 적합성 검사 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080019221A KR100912471B1 (ko) 2008-02-29 2008-02-29 히스토그램과 평면적 크기 계산을 이용한 xml 스키마매칭 과정에서의 변환 질의의 적합성 검사 방법

Publications (1)

Publication Number Publication Date
KR100912471B1 true KR100912471B1 (ko) 2009-08-14

Family

ID=41209866

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080019221A KR100912471B1 (ko) 2008-02-29 2008-02-29 히스토그램과 평면적 크기 계산을 이용한 xml 스키마매칭 과정에서의 변환 질의의 적합성 검사 방법

Country Status (1)

Country Link
KR (1) KR100912471B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226163B1 (ko) * 2012-07-16 2013-01-24 한국과학기술정보연구원 스키마 매칭 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100691261B1 (ko) 2005-12-01 2007-03-12 한국전자통신연구원 확장성 생성 언어 변경 처리 시스템 및 그 방법
US20070112851A1 (en) 2005-11-07 2007-05-17 Microsoft Corporation Partial XML validation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070112851A1 (en) 2005-11-07 2007-05-17 Microsoft Corporation Partial XML validation
KR100691261B1 (ko) 2005-12-01 2007-03-12 한국전자통신연구원 확장성 생성 언어 변경 처리 시스템 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226163B1 (ko) * 2012-07-16 2013-01-24 한국과학기술정보연구원 스키마 매칭 장치 및 방법

Similar Documents

Publication Publication Date Title
Do et al. Matching large schemas: Approaches and evaluation
US7197510B2 (en) Method, system and program for generating structure pattern candidates
Barbosa et al. Efficient incremental validation of XML documents
US20050021548A1 (en) Method and apparatus for composing XSL transformations with XML publishing views
US7516145B2 (en) System and method for incrementally transforming and rendering hierarchical data files
AU2005264926A1 (en) Efficient extraction of XML content stored in a LOB
JP2008052662A (ja) 構造化文書管理システム及びプログラム
Thang et al. XML schema automatic matching solution
US8171040B2 (en) Method and system for navigation of a data structure
KR100912471B1 (ko) 히스토그램과 평면적 크기 계산을 이용한 xml 스키마매칭 과정에서의 변환 질의의 적합성 검사 방법
Clematide et al. Reflections and a proposal for a query and reporting language for richly annotated multiparallel corpora
CN108008947B (zh) 一种编程语句的智能提示方法、装置、服务器及存储介质
JPWO2006001391A1 (ja) 文書処理装置および文書処理方法
Theodoratos et al. Heuristic containment check of partial tree-pattern queries in the presence of index graphs
Huang et al. Prefiltering techniques for efficient XML document processing
Farfán et al. Beyond lazy XML parsing
Baqasah et al. On change detection of XML Schemas
KR100930108B1 (ko) XQuery 질의를 위한 스키마 기반 정적 검사 시스템및 방법
Doleschal et al. CHISEL: Sculpting tabular and non-tabular data on the web
Groppe et al. Output schemas of XSLT stylesheets and their applications
Groppe et al. Efficient Querying of Transformed XML Documents.
Schubert et al. Structure-Preserving Difference Search for XML Documents.
Aman et al. XML Schema Reverse Transformation: A Case Study
Fu et al. Research on the Extraction Method of Requirement Modeling Data Based on XML
Wu et al. Design and implementation of data-driven based universal data editing framework

Legal Events

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

Payment date: 20120730

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130726

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150807

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160725

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170728

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180723

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190730

Year of fee payment: 11