KR100345277B1 - Xml 문서의 논리적인 구조정보 추출기 - Google Patents

Xml 문서의 논리적인 구조정보 추출기 Download PDF

Info

Publication number
KR100345277B1
KR100345277B1 KR1019990048124A KR19990048124A KR100345277B1 KR 100345277 B1 KR100345277 B1 KR 100345277B1 KR 1019990048124 A KR1019990048124 A KR 1019990048124A KR 19990048124 A KR19990048124 A KR 19990048124A KR 100345277 B1 KR100345277 B1 KR 100345277B1
Authority
KR
South Korea
Prior art keywords
information
etid
structure information
xml
dtd
Prior art date
Application number
KR1019990048124A
Other languages
English (en)
Other versions
KR20010045025A (ko
Inventor
유재수
최한석
Original Assignee
(주)한국지식웨어
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)한국지식웨어 filed Critical (주)한국지식웨어
Priority to KR1019990048124A priority Critical patent/KR100345277B1/ko
Publication of KR20010045025A publication Critical patent/KR20010045025A/ko
Application granted granted Critical
Publication of KR100345277B1 publication Critical patent/KR100345277B1/ko

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 대용량의 XML 문서의 효율적인 관리 및 다양한 구조검색의 성능향상을 위해 DTD와 XML 문서를 통해 구조정보를 얻을 수 있는 구조정보 추출기에 관한 것이다. 본 발명에서 창안한 구조정보는 DTD 분석 후 각 엘리먼트 형에 할당되는 유일한 값인 ETID와 해당 DTD를 통해 생성된 실제 XML 문서에서 형제 엘리먼트의 순서정보인 SORD, 그리고 같은 엘리먼트 형에 대한 순서정보인 SSORD로 이루어진다. 본 발명에서 창안한 구조정보 표현은 특정 엘리먼트에 대한 직접적인 접근이 가능하며, 다양한 구조검색(조상, 자손, 부모, 자식, 형제)을 효과적으로 처리할 수 있다. 또한 기준 엘리먼트로부터 특정 엘리먼트에 대한 순서정보를 쉽게 구할 수 있다. 본 발명의 구조정보 추출기는 DTD에 선언되어 있는 각각의 엘리먼트에 계층정보인 ETID를 부여하기 위해서 실 엘리먼트 노드와 가상 엘리먼트 노드로 구성되는 엘리먼트 트리를 만든다. 이와 같이 구축된 엘리먼트 트리에서 전위 순회 방법을 사용하여 각 엘리먼트의 계층정보를 추출하고 엘리먼트와 추출된 ETID를 쌍으로 하는 매핑테이블을 구성한다. 매핑테이블을 기반으로 XML 문서를 Fragment라는 단위로 나누고 각 Fragment type에 따라 처리를 달리하여 계층정보이외 순서정보인 SORD, SSORD 등과 같은 구조정보를 추출한다.

Description

XML 문서의 논리적인 구조정보 추출기{A LOGICAL STRUCTURE INFORMATION EXTRACTOR FOR XML DOCUMENTS}
본 발명은 XML 문서의 논리적인 구조정보 추출기에 관한 것이다.
일반적으로 대용량 XML 저장관리시스템을 개발하는데 있어서 XML 문서의 구조정보는 문서 관리 및 구조검색의 효율성을 위해 반드시 필요하다. 이를 위해 효율적인 구조정보 표현 방법이 요구된다.
그러나, 기존 XML 문서의 구조정보는 특정 엘리먼트가 포함된 구조검색을 수행하기 어려웠고 특정 엘리먼트를 기준으로 조상, 자손, 부모, 자식, 형제 등의 계층관계 및 순서관계를 수용하기 어려웠다.
본 발명은 대용량의 XML 저장관리시스템의 문서관리 및 구조검색 분야에 적용될 수 있다. 그 동안 구조화된 문서의 구조정보를 표현하기 위해 많은 방법이 제시되었다. SCL 모델은 텍스트 간격들을 다루며 문서 구조에 대한 질의를 지원하는 계층적인 관계보다 오히려 포함 관계를 사용한다. 이 모델은 SGML 문서내의 텍스트와 마크업에 대해 색인 넘버를 부여한 후 이들의 텍스트 간격과 포함관계를 사용하는 방법이다. 불용어들을 제외한 텍스트 어휘들은 텍스트 인덱스에 색인번호로서 저장되고, 마크업은 시작태그와 마침태그의 쌍으로 마크업 인덱스에 저장된다. 그리고 실제 텍스트가 저장된 물리적인 위치로 사상시키기 위해 매핑 테이블을 사용한다.
그러나, SCL 구조는 색인어가 포함된 엘리먼트에 대해 트리 내의 깊이를 표현할 수 없다는 단점을 가진다. 즉, 특정 엘리먼트의 조상, 형제를 알 수 없으며 포함하고 있는 엘리먼트가 몇 번째 자손에 해당하는지 알 수 없다.
SGML 문서의 구조정보 표현을 위해 K-ary Complete Tree를 이용하는 방법은 먼저 문서의 구문 트리를 구성한 후 임의의 노드들 중 가장 큰 차수 k를 구하여 문서를 K-ary 완전 트리로 재구성한다. 변환된 K-ary 트리에 문서의 구문 트리를 매핑하여 각 노드에 노드 번호를 부여하게 된다. K-ary 완전 트리는 특성상 문서 구조사이의 부모, 자식관계를 다음과 같은 Parent(I)=[(I-2)/K+1], Child(I,J)=K(I-1)+J+1 공식으로 손쉽게 알 수 있는 장점이 있다.
그러나, 조상, 자손, 형제 등의 관계는 어렵거나 복잡한 연산을 요구한다. 또한, 구조화된 문서는 한 레벨에서 다양한 타입의 엘리먼트들이 존재할 수 있다. 예를 들면 문서의 하위 레벨에 제목, 요약, 장 엘리먼트를 포함하는 문서구조가 존재할 수 있다.
그러나, 제안하는 방법에서는 단지 하나의 하위 엘리먼트만을 고려하였으며 그로 인해 특정 엘리먼트에 질의의 범위를 제한할 수 없다.
또한, ID 할당 방법은 자신의 노드 ID를 표현하기 위해 부모의 노드 ID에 자신의 순서정보(부모의 몇 번째 자식)를 붙여서 노드 ID를 생성하는 것이다.
먼저, DTD의 각 엘리먼트를 유일하게 구별할 수 있는 TypeId와 TypeName을 갖는 매핑 테이블을 생성하고 XML 문서의 구조정보를 부모 노드의 TypeId에 자기 노드의 TypeId를 붙이고 여기에 XML 문서를 분석하여 자신의 순서 정보를 합하여 구조정보를 표현하였다. 이러한 구조정보는 특정 엘리먼트에 대한 접근과 다양한 관계를 기반으로 한 구조검색을 수행할 수 있으나 특정 엘리먼트를 구별하기 위해서는 복잡한 계산을 필요로 한다. 또한, 특정 엘리먼트의 조상, 자손, 형제에 대한 구조검색을 효과적으로 수행하기 어렵다. 그 이유는 검색하고자 하는 엘리먼트 ID를 만든 후, 그 ID를 갖는 모든 엘리먼트를 찾고 순서정보를 비교해야 한다. 또한, 경우에 따라서는 부모 엘리먼트의 순서정보를 참조해야 한다. 이것은 불필요한 검색과 복잡한 비교연산을 요구한다. 조상검색의 경우 특정 조상 엘리먼트의 ID를 갖는 모든 엘리먼트를 구한 후 순서정보를 비교하여 찾기 때문에 불필요한 검색과 추가적인 비교연산이 요구된다.
기존의 XML 문서의 구조정보는 특정 엘리먼트에 대한 검색 및 조상, 자손, 부모, 자식, 형제에 대한 구조검색, 특정 엘리먼트가 포함하는 애트리뷰트에 대한 검색 등을 효과적으로 수행하기 어렵거나 복잡한 비교연산으로 문서관리 및 구조검색의 성능을 저하시켰다.
따라서, 본 발명은 이와 같은 점을 개선하기 위하여 창안된 것으로써, XML 문서의 논리적인 구조의 특징을 효율적으로 수용할 수 있는 구조정보 표현을 창안하고 이를 추출할 수 있는 구조정보 추출기를 제공하는데 그 목적이 있다.
또한, 본 발명에서는 이를 해결하기 위해 XML 문서의 조상, 자손, 형제 등의 관계를 효율적으로 표현할 수 있는 구조정보 및 이러한 구조정보를 자동적으로 추출할 수 있는 추출방법을 제공하는데 목적이 있다.
상기 목적을 달성하기 위한 본 발명은, 데이터베이스에 저장된 XML 문서의 효율적인 관리나 다양한 구조검색을 수행하는데 이용될 수 있는 XML 구조정보를 추출하기 위하여,
XML 구조정보를 특정 엘리먼트를 구별하면서 엘리먼트간의 계층정보를 표현할 수 있는 ETID(Element Type ID), 형제 엘리먼트의 순서정보를 나타내는 SORD(Sibling ORDer), 동일한 타입의 형제 엘리먼트간의 순서정보를 나타내는 SSORD(Same Sibling ORDer)로 나타내고,
DTD에 선언되어 있는 각 엘리먼트에 대해 실 엘리먼트 노드와 가상 엘리먼트노드로 구성되는 엘리먼트 트리를 만들고 전위 순회 방법을 이용하여 각 엘리먼트에 계층정보인 ETID를 부여하며,
XML 문서를 Fragment라는 단위로 나누고 스택을 사용하여 각 Fragment type에 따라 처리하여 XML 문서의 순서정보인 SORD, SSORD를 추출하는 것을 특징으로 하는 XML 문서의 논리적인 구조정보 추출기를 제공한다.
도 1은 XML 저장시스템의 구성도이다.
도 2는 본 발명에 따른 ETID 할당의 예를 도시한 것이다.
도 3은 본 발명에 따른 SORD, SSORD 할당의 예를 도시한 것이다.
도 4는 본 발명에 따른 ETID 추출기의 동작 흐름도이다.
도 5는 엔터티 테이블 생성 알고리즘이다.
도 6은 엘리먼트 트리 생성 알고리즘이다.
도 7은 ETID 테이블 생성 알고리즘이다.
도 8은 XML 문서로부터 구조정보를 추출하는 알고리즘이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
도 1은 본 발명의 구조정보 추출기를 포함하는 XML 저장시스템 구성도이다.
ETID 추출기(1)는 DTD로부터 엘리먼트 형(Type)을 추출하고 엘리먼트 이름과 ETID를 연결시켜주는 매핑 테이블(2)을 구성한다.
XML 구조정보 생성기(3)는 매핑 테이블을 참조하여 XML 문서를 분석하고 문서의 구조정보를 추출한다. 추출된 문서의 구조정보는 XML 객체 관리기와 XML 인덱스 관리기에 의해 사용되어질 수 있다. 본 발명은 구조정보 추출기 모듈에 해당한다.
도 2의 본 발명에서 제안하는 구조정보는 부모와 자식 엘리먼트간의 계층정보, 형제 엘리먼트의 순서정보, 그리고 같은 엘리먼트 형에 대한 순서정보로 표현된다.
ETID(Element Type ID)는 XML 문서의 논리적 구조를 분석한 후 각 엘리먼트 타입에 부여되는 유일한 값 즉, ETID를 통하여 XML 문서의 특정 엘리먼트를 구별하면서 엘리먼트간의 계층정보를 표현한다.
이때, ETID를 부여하는 방법은 UNIX 파일시스템에서 디렉토리를 표현하는 방법을 사용한다. 도 2는 paper.dtd(1)를 가지고 ETID(2)를 할당하는 예이다. 즉, root 엘리먼트는 '/'로 표현되며 root 엘리먼트에 포함되는 엘리먼트 즉, 자식 엘리먼트는 가장 왼쪽 노드에서 가장 오른쪽 노드까지 순서적으로 '/1', '/2', '/3', ..., '/n'과 같이 표현된다. 예를 들어, 도 2에서 ETID '/2'를 부여받은 엘리먼트 abstract의 자식 엘리먼트 para는 UNIX 파일시스템에서 디렉토리 표현 방법과 같이 부모 노드의 ETID 정보를 기반으로 '/2/1'을 할당받고 ETID '/3'을 할당받은 엘리먼트 chapter의 자식 엘리먼트 section은 ETID '/3/1'을 부여받는다.
도 3은 XML 문서에서 DTD에 나타난 발생지시자에 의한 반복적인 엘리먼트의 구조정보를 위해 두 종류의 순서정보 할당의 예를 보여준다.
두 종류의 순서정보는 형제 엘리먼트의 순서정보를 나타내는 SORD(Sibling ORDer)와 동일한 타입의 형제 엘리먼트간의 순서정보를 나타내는 SSORD(Same Sibling ORDer)이다. SORD는 XML 문서에서 유일하게 구분되는 값으로 특정 엘리먼트를 검색하는데 유용하게 이용된다. 이들은 ETID 표현방법과 동일하여 부모 엘리먼트의 순서정보를 유지하는 형태로 표현된다.
도 3은 XML 문서의 구조정보를 ETID, SORD, SSORD를 사용해서 트리 형태로 표현한 예이다. 예로써, 도 3에서 보여주는 바와 같이 root 엘리먼트의 SORD와 SSORD는 동일하게 '/'로 표현된다. root 엘리먼트 paper의 자식 엘리먼트 title, abstract, chapter, chapter가 존재한다. 이들 title, abstract, chapter, chapter의 SORD들은 각각 부모 엘리먼트의 SORD를 유지하는 형태로 '/1', '/2', '/3', '/4'로 표현된다. 다시 SORD '/3'을 갖는 chapter 엘리먼트의 자식 엘리먼트로 2개의 section 엘리먼트가 존재한다. 이 두 section 엘리먼트의 SORD들은 각각 부모 chapter 엘리먼트의 SORD '/3'을 기반으로 '/3/1'과 '/3/2'가 된다. paper의 자식 엘리먼트인 title과 abstract는 형제 엘리먼트가 없기 때문에 이들의 SSORD가 각각 '/1'과 '/1'로 할당된다. 그러나 paper의 3번째 엘리먼트 chapter와 4번째 엘리먼트 chapter는 동일한 타입의 형제 엘리먼트이므로 이들의 SSORD는 각각 '/1'과 '/2'로 할당되다. 추가적인 예로써, SORD가 '/3'인chapter의 두 번째 자식 엘리먼트인sectionpara라는 자식 엘리먼트를 두 개 갖는다. 두para의 ETID는 '/3/1/1'로 동일하지만 SORD는 각각 '/3/2/1'과 '/3/2/3'이고 SSORD는 각각 '/1/2/1'과 '/1/2/2'이다.
도 4는 특정 DTD 파일로부터 매핑 파일을 생성해내는 과정을 나타낸 것이다. 이 매핑 파일은 특정 엘리먼트 이름과 이에 해당하는 ETID(Element Type ID)로 이루어진다.
우선 매핑 파일 생성에 사용되는 정보들을 보관하기 위한 자료구조들이 초기화된다(1). DTD 내에서 참조되는 매개변수 엔터티를 위해 매개변수 엔터티 테이블을 생성하며, 나중에 사용할 지도 모르는 일반적인 엔터티를 위해 일반적인 엔터티 테이블을 생성하는 함수를 수행한다(2). DTD에서 선언된 엘리먼트는 계층정보를 가지며, 이러한 계층정보를 나타내기 위해 생성된 매개변수 엔터티 테이블을 참조하여 엘리먼트 트리를 생성하는 함수를 수행한다(3). 생성된 엘리먼트 트리에 따라 스택을 사용해서 전위 순회의 방법으로 ETID를 부여하고 ETID 테이블이 기록된 매핑 파일을 생성하는 함수를 수행한다(4). 도 7에서 언급하겠지만, 이러한 ETID의 부여 시 무한히 ETID를 부여하는 순환이 발생하면, 이것이 발생하는 곳에만 제한 횟수가 적용되도록 한다. 매핑 파일이 생성되면 초기화와 관련 있는 메모리 할당을 해제하는 함수가 수행된다(5). 이러한 일련의 작업이 이루어지면 함수는 종료된다.
도 5는 엔터티 테이블의 생성 알고리즘이다.
특정 DTD 파일을 읽기 모드로 열고 파일의 끝까지 읽어나가면서 엔터티 선언과 관련된 부분만을 처리한다. 모든 선언이 '<'으로 시작하므로 우선 이것을 찾고(1), 주석에 해당되면(2) 주석이 끝날 때까지 이동한다(3). 주석이 아니고 엔터티 선언이 아닌 경우(4), 다음 선언 앞으로 이동한다(5). 엔터티 선언일 경우에는 매개변수 엔터티인지를 판별한다(6). 매개변수 엔터티일 경우, 해당 부분을 버퍼에 저장하고(7), 매개변수 엔터티 테이블 리스트에 삽입한다(8). 일반적인 엔터티일 경우, 해당 부분을 버퍼에 저장하고(9), 일반적인 엔터티 테이블 리스트에 삽입한다(10). 파일의 끝에 도달하면 DTD 파일을 닫고, 매개변수 엔터티 테이블 리스트에 있는 항목들 간에 상호 참조를 해당 값으로 변환하는 함수를 수행한다(11). (11)단계의 동작이 끝나면, #PCDATA와 관련있는 부분을 제거하는 함수를 수행한다(12).
도 6은 엘리먼트 트리의 생성 알고리즘이다.
도 5에서 사용된 특정 DTD 파일을 읽기 모드로 열고 파일의 끝까지 읽어나가면서 엘리먼트 선언과 관련된 부분만을 처리한다. 도 5의 단계 (6)과 (7)처럼 수행한다. 주석이 아니고 엘리먼트 선언이 아닌 경우(1), 도 5의 단계(5)처럼 다음 선언 앞으로 이동한다. 엘리먼트 선언일 경우, 해당 부분을 버퍼에 저장하고(2), 매개변수 엔터티 테이블 리스트에 있는 항목이 참조되었다면 해당부분을 변환하는 함수를 수행한다(3). 엘리먼트 트리를 구성하기 위해 필요한 중요 요소만을 스페이스 한 개로 구별하면서 공백, 탭, 발생지시자, 괄호 등을 제거하는 함수를 수행한다(4). 엘리먼트 트리를 구성할 때 고려하지 않은 #PCDATA, EMPTY, ANY를 제거하는 함수를 수행한다(5). 중요 요소만을 포함한 버퍼에서 가장 먼저 나오는 엘리먼트 이름을 가지고 실 엘리먼트 노드를 생성하고 실 엘리먼트 노드 테이블에 삽입한다(6). 만일 실 엘리먼트 노드와 동일한 이름을 가진 가상 엘리먼트 노드가 이미 생성되어 있다면 모두 연결시킨다(7). 단계(6)에서 사용한 버퍼의 나머지 부분을 가지고 가상 엘리먼트 노드를 생성하고 가상 엘리먼트 노드 테이블에 삽입한다(8). 각각의 가상 엘리먼트 노드와 동일한 이름을 가진 실 엘리먼트 노드가 이미 생성되어 있다면 모두 연결시킨다(9).
도 7은 ETID 테이블의 생성 알고리즘이다. 도 6에서 생성된 엘리먼트 트리를사용해서 특정 엘리먼트 이름과 ETID를 가지는 매핑 파일을 생성한다. 도 6에서 생성된 엘리먼트 트리의 루트를 찾는다(1). 실 엘리먼트 노드 테이블에 존재하면서 가상 엘리먼트 노드 테이블에 존재하지 않으면 그것이 루트이다. 엘리먼트 트리에서 발생할 수도 있는 순환을 처리하기 위한 순환 처리 리스트 루트를 생성한다(2). 순환이 제한된 수보다 적게 발생한 상황이고, 자식 노드가 존재한다면(3), 실 엘리먼트 노드의 첫 번째 자식인 가상 엘리먼트 노드를 로드한다(4). 이 가상 엘리먼트 노드에 적절한 ETID를 부여하고 매핑 파일에 적는다(5). 가상 엘리먼트 노드를 스택에 넣고(6), 그 가상 엘리먼트 노드의 자신을 가리키는 실 엘리먼트 노드를 로드한다(7). 스택에 넣은 가상 엘리먼트 노드의 이름이 순환 처리 리스트에 존재하면(8) 순환 처리 리스트를 조정하고(9), 존재하지 않으면 순환 처리 리스트에 추가한다(10). 조건(3)을 만족하지 않으면 스택이 비어있지 않은지 확인하고(11), 비어있지 않으면 순환 제한 조건에 해당하는지 검사한다(12). 해당되면 순환 제한 조건이었다는 것을 없애고(13), 스택에 있는 최상위 가상 엘리먼트 노드를 로드한다(14). 스택의 최상위을 꺼내고(15), 순환 처리 리스트를 조정한다(16). 꺼낸 가상 엘리먼트 노드의 형제 노드가 존재하지 않으면(17) ETID를 조정하고 조건(11)으로 돌아간다. 존재하면 순환 처리 리스트를 조정하고(18), 형제 가상 엘리먼트 노드를 로드한다(20). ETID를 부여하고 ETID 테이블 리스트에 삽입한다(21). 형제 가상 엘리먼트 노드를 스택에 넣는다. 스택에 넣은 가상 엘리먼트 노드의 이름이 순환 처리 리스트에 존재하면(22) 순환처리 리스트를 조정하고(24), 존재하지 않으면 순환 처리 리스트에 추가한다(23). 형제 가상 엘리먼트 노드의 자신을 가리키는 실 엘리먼트 노드를 로드하고(25), 조건(3)으로 돌아간다. 조건(11)을 만족하지 못하면 모든 엘리먼트 트리의 노드를 순회한 것이므로 매핑 파일을 닫는다.
도 8은 XML문서로부터 구조정보를 추출 알고리즘이다. 계층정보인 ETID를 각 엘리먼트에 부여하기 위해서 ETID추출기에서 생성한 매핑테이블을 이용한다.
우선 구조정보추출 초기 작업으로 매핑테이블을 메모리로 로드하고 스택을 초기화한다. XML문서 화일을 오픈하고 문서 시작부분으로 화일 포인터를 이동시킨다(1). Fragment의 시작위치를 기록하고 Fragment의 첫 번째 문자를 읽는다(2). 만약 화일의 끝이면 구조정보 추출 과정을 종료한다. 만약 첫 번째 문자가 '<'이 아니라면 이 Fragment는 PCDATA이므로 화일 끝 또는 '<'이 나오기 전까지 반복하여 읽는다(3). 만약 첫 번째 문자가 '<'라면 이 Fragment는 각 종 태그 또는 주석이므로 화일 끝 또는 '>'이 발생하기 전까지 읽는다. 이때 주석이나 CDATA섹션 내에서 '>'이 발생할 수 있으므로 '<'과 쌍이 되는 '>'를 찾도록 고려한다(4). 이렇게 읽어들인 내용을 분석하여 START TAG, END TAG, EMPTY TAG, COMMENT, CDATA 중 하나로 Fragment의 종류를 결정한다(5). 이렇게 XML문서로부터 Fragment를 추출하고 타입을 결정한 후 스택을 이용하여 엘리먼트를 구성하고 구조정보를 부여한다. Fragment의 타입이 START TAG일 경우 스택에 Push하고 부모 엘리먼트를 참조하여 자신의 ETID를 구한다. 그리고 부모의 SORD, SSORD와 스택에 기록된 발생순서 정보를 이용하여 현재 엘리먼트의 SORD, SSORD를 구한다(6). END TAG일 경우 스택의 top 엘리먼트를 Pop하여 결과화일에 출력한다(7). PCDATA나 CDATA일 경우 스택의top 엘리먼트에 할당하여 이 엘리먼트에 속함을 나타낸다(8). EMPTY TAG일 경우 스택에 Push와 Pop하는 과정을 연속으로 수행한다(9).
본 발명은 XML 문서의 효율적인 관리와 구조검색을 위해 XML 문서의 구조정보를 DTD의 논리적 구조를 분석한 후 각 엘리먼트 타입에 부여되는 유일한 값인 ETID(Element Type ID), 형제 엘리먼트의 순서정보를 나타내는 SORD(Sibling ORDer), 동일한 타입의 형제 엘리먼트간의 순서정보를 나타내는 SSORD(Same Sibling ORDer)로 표현함으로써 특정 엘리먼트의 조상, 자손, 형제에 대한 다양한 구조검색을 효율적으로 지원할 수 있다.
또한, 이러한 XML 구조정보를 자동으로 추출할 수 있는 구조정보 추출기를 구현함으로써 XML 저장관리시스템 개발 및 XML 구조검색엔진 개발을 위한 기반을 마련하였다.

Claims (1)

  1. 데이터베이스에 저장된 XML 문서의 효율적인 관리나 다양한 구조검색을 수행하는데 이용될 수 있는 XML 구조정보를 추출하기 위하여,
    XML 구조정보를 특정 엘리먼트를 구별하면서 엘리먼트간의 계층정보를 표현할 수 있는 ETID(Element Type ID), 형제 엘리먼트의 순서정보를 나타내는 SORD(Sibling ORDer), 동일한 타입의 형제 엘리먼트간의 순서정보를 나타내는 SSORD(Same Sibling ORDer)로 나타내고,
    DTD에 선언되어 있는 각 엘리먼트에 대해 실 엘리먼트 노드와 가상 엘리먼트 노드로 구성되는 엘리먼트 트리를 만들고 전위 순회 방법을 이용하여 각 엘리먼트에 계층정보인 ETID를 부여하며,
    XML 문서를 Fragment라는 단위로 나누고 스택을 사용하여 각 Fragment type에 따라 처리하여 XML 문서의 순서정보인 SORD, SSORD를 추출하는 것을 특징으로 하는 XML 문서의 논리적인 구조정보 추출기.
KR1019990048124A 1999-11-02 1999-11-02 Xml 문서의 논리적인 구조정보 추출기 KR100345277B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990048124A KR100345277B1 (ko) 1999-11-02 1999-11-02 Xml 문서의 논리적인 구조정보 추출기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990048124A KR100345277B1 (ko) 1999-11-02 1999-11-02 Xml 문서의 논리적인 구조정보 추출기

Publications (2)

Publication Number Publication Date
KR20010045025A KR20010045025A (ko) 2001-06-05
KR100345277B1 true KR100345277B1 (ko) 2002-07-19

Family

ID=19618150

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990048124A KR100345277B1 (ko) 1999-11-02 1999-11-02 Xml 문서의 논리적인 구조정보 추출기

Country Status (1)

Country Link
KR (1) KR100345277B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010088529A (ko) * 2001-08-02 2001-09-28 정회경 전자문서 편집/변환처리장치와 그 방법
KR100464021B1 (ko) * 2001-10-31 2004-12-30 엘지전자 주식회사 이동통신 단말기의 전자명함 서비스 장치 및 방법
KR100493882B1 (ko) 2002-10-23 2005-06-10 삼성전자주식회사 Xml 데이터 검색을 위한 질의 처리 방법
KR100568234B1 (ko) 2003-12-13 2006-04-07 삼성전자주식회사 마크업 랭귀지 기반의 데이터 관리 방법과 그 장치 및기록매체
EP1730652A4 (en) * 2004-04-02 2009-11-11 Samsung Electronics Co Ltd XML PROCESSOR WITH FILTER FUNCTION FOR TREEPATH, TREEPATH FILTRATION PROCEDURE AND RECORDING MEDIUM THEREFOR
KR100666942B1 (ko) * 2005-01-07 2007-01-11 삼성전자주식회사 관계형 dbms를 이용한 xml 데이터 관리 방법
US20070118495A1 (en) * 2005-10-12 2007-05-24 Microsoft Corporation Inverse hierarchical approach to data
KR100864537B1 (ko) * 2007-04-24 2008-10-21 고려대학교 산학협력단 트리 레이블을 이용한 확장성 표시 언어 문서의 질의 처리 방법, 및 그 질의 처리 장치

Also Published As

Publication number Publication date
KR20010045025A (ko) 2001-06-05

Similar Documents

Publication Publication Date Title
Li et al. Indexing and querying XML data for regular path expressions
US9171100B2 (en) MTree an XPath multi-axis structure threaded index
Grust Accelerating XPath location steps
Blumer et al. Complete inverted files for efficient text retrieval and analysis
JP2632092B2 (ja) データベースを生成する装置および方法
US7412444B2 (en) Efficient indexing of hierarchical relational database records
Ferragina et al. Compressing and searching XML data via two zips
US8397157B2 (en) Context-free grammar
Giancarlo A generalization of the suffix tree to square matrices, with applications
KR100638695B1 (ko) 구조화 문서의 데이터를 검색하는 장치 및 방법
JPH1078959A (ja) エッジデータ構造を統一する方法
US8082492B2 (en) Structured-document management apparatus, search apparatus, storage method, search method and program
KR100345277B1 (ko) Xml 문서의 논리적인 구조정보 추출기
Su-Cheng et al. Node labeling schemes in XML query optimization: a survey and trends
Mabanza et al. Performance evaluation of open source native xml databases-a case study
Han et al. Design and implementation of a structured information retrieval system for SGML documents
JP2002202973A (ja) 構造化文書管理装置
Song et al. Handling XML to relational database transformation using model-based mapping approaches
Enhong et al. Semi-structured data extraction and schema knowledge mining
Bays The compleat PATRICIA
Saeedan et al. dsJSON: A Distributed SQL JSON Processor
Namba High-performance XML storage/retrieval system
KR100555982B1 (ko) 확장 마크업 언어로 작성된 문서를 위한 정보검색 시스템및 그 방법과 그 방법을 실행시키기 위한 프로그램을기록한 컴퓨터로 읽을 수 있는 기록매체
Schubert et al. Structure-Preserving Difference Search for XML Documents.
KR100308011B1 (ko) 시소러스컴파일방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee