KR100803285B1 - 역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법 - Google Patents

역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법 Download PDF

Info

Publication number
KR100803285B1
KR100803285B1 KR1020030073453A KR20030073453A KR100803285B1 KR 100803285 B1 KR100803285 B1 KR 100803285B1 KR 1020030073453 A KR1020030073453 A KR 1020030073453A KR 20030073453 A KR20030073453 A KR 20030073453A KR 100803285 B1 KR100803285 B1 KR 100803285B1
Authority
KR
South Korea
Prior art keywords
data
xml
path
type
interval
Prior art date
Application number
KR1020030073453A
Other languages
English (en)
Other versions
KR20050038217A (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 KR1020030073453A priority Critical patent/KR100803285B1/ko
Priority to US10/860,292 priority patent/US7539692B2/en
Publication of KR20050038217A publication Critical patent/KR20050038217A/ko
Application granted granted Critical
Publication of KR100803285B1 publication Critical patent/KR100803285B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/123Storage facilities
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 역 산술 부호화 기법과 타입 추론 엔진을 이용하여 압축된 XML 데이터에 대하여 직접적이고 효율적인 XML 질의 수행을 지원하는 XML 압축 기법을 제안하기 위한 것이다. 본 발명에서는 XML 데이터 상에 존재하는 엘리먼트들의 경로 정보를 표현하기 위한 역 산술 부호화라는 새로운 압축 기법을 고안하였으며, XML 데이터 상의 데이터 타입들을 파악하기 위한 타입 추론 엔진과 추론된 데이터 타입에 적절한 데이터 압축 기법들을 적용하는 것을 특징으로 함으로써, XML 데이터를 저장하기 위한 저장 공간 및 전송을 위한 네트워크 대역폭을 절약하는 것이 가능하게 되었으며 압축된 XML 데이터에 대한 데이터 복원을 최소화하여 XML 질의를 수행함으로써 질의 수행 성능을 향상 시켰다.
XML, 압축, 역 산술 부호화, 타입 추론 엔진

Description

역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법{Method for a Queriable XML Compression using the Reverse Arithmetic Encoding and the Type Inference Engine}
도 1은 본 발명의 실시예에 따른 XML 압축 장치의 구성을 보여주는 도면,
도 2는 본 발명의 실시예에 따른 XML 데이터에 나타나는 데이터 값을 추론하는 추론 엔진의 알고리즘을 보여주는 도면,
도 3은 XML 데이터를 예시한 도면,
도 4는 본 발명의 실시예에 따른 역 산술 부호화 기법의 적용을 위하여 [0.0,1.0)을 각 태그별로 분할한 예시 도면,
도 5는 본 발명의 실시예에 따른 역 산술 부호화 기법의 알고리즘을 도시한 도면,
도 6은 역 산술 부호화 기법을 적용하여 경로를 간격으로 변환하는 것을 예시한 도면,
도 7은 IEEE 754 표준 32비트 실수 표현 방식을 도시한 도면,
도 8은 다양한 타입 의존 압축율을 도시한 도면,
도 9는 XML 데이터의 압축율을 도시한 도면,
도 10은 질의 성능 측정을 위한 다양한 질의들을 예시한 도면,
도 11은 압축된 XML 데이터에 대한 질의 성능을 도시한 도면이다.
*도면의 주요부분에 대한 부호의 설명*
100 : XML 압축기 110 : XML 파서
130 : XML 분석기 150 : XML 부호기
10 : 통계 수집부 20 : 타입추론 엔진부
30 : 역 산술 부호화부 40 : 타입 의존적 부호화부
본 발명은 인터넷 상의 데이터 표현 및 교환의 표준인 XML (eXtensible Markup Language, 참고 문헌: T. Bray, J.Paoli, C. M. Sperberg-McQueen, and E. Maler. Extensible markup language (XML) 1.0 (second edition). W3C) 로 나타내어진 데이터를 효율적으로 저장, 관리 할 수 있는 XML 압축 기법에 대한 것으로서, 특히 역 산술 부호화와 타입 추론 엔진을 이용하여 압축함으로써 압축된 XML 데이터에 대한 직접적이고 효율적인 XML 질의를 처리할 수 있도록 하는 압축 기법에 관한 것이다.
XML 데이터는 시작 태그와 끝 태그로 표현되는 엘리먼트 (element) 들이 계층적으로 내포된 집합 (hierarchically nested collection) 으로 구성되어 있다. 이러한 XML 데이터를 검색하기 위하여 XPath (참고 문헌: J. Clark and S. DeRose. XML path language (XPath) version 1.0. W3C) 와 XQuery (참고 문헌: S. Boag, D. Chamberlin, M. Fernandez, D. Florescu, J. Robie, J. Simeon, and M. Stefanescu. XQuery 1.0: An XML query language. W3C) 같은 XML 질의 언어들이 제안되었다. 이러한 질의 언어들은 비정형적인 XML 데이터를 검색하기 위하여 XML 데이터의 태그들로 이루어진 경로 표현식을 기반으로 하고 있다. 따라서, XML 데이터에 대한 경로 표현식을 효율적으로 지원하는 중요한 요소이다.
데이터 압축 기법은 데이터 복원 능력에 따라서, 손실 압축 (lossy compression) 과 무손실 압축 (lossless compression) 으로 구분된다. XML 데이터를 압축하는 기존의 기법으로는 XMill (참고 문헌: H. Liefke and D. Suciu. XMill: An Efficient Compressor for XML Data, ACM SIGMOD 2000) 과 XGrind (참고문헌: P. M. Tolani and J. R. Haritsa. XGRIND: A Query-friendly XML Compressor, IEEE ICDE 2002) 가 있다.
XMill은 압축된 XML 데이터의 크기를 최소화하기 위한 압축 기법으로써 압축된 XML 데이터에 대한 질의 수행은 지원하지 않는다. XMill은 XML 데이터의 태그와 애트리뷰트 이름을 그들의 데이터 값과 물리적으로 구분하여 관리한다. 따라서, 압축된 형태의 XML 데이터의 구조가 원본 XML 데이터와는 다르게 된다. 각 데이터 값들은 기본적으로 대응되는 엘리먼트의 태그에 따라서 컨테이너라는 자료구조에 분 류되어 저장된다. 이 때, 사용자가 경로 표현식을 이용하여 보다 세분화하여 데이타 값들을 분류할 수 있다. 또한, XML 데이터의 태그와 애트리뷰트 이름은 사전 부호화 (dictionary encoding) 기법을 이용하여 압축되며, 각 컨테이너에 저장된 데이터 값들은 해당 컨테이너에 대한 사용자 정의 부호화 기법이 있을 경우, 이를 수행하여 압축하게 된다. 여기서, 사전 부호화 기법이란 입력된 데이터로부터 새로운 각 단어마다 정수 값을 할당하고, 입력 데이터의 각 단어들이 유일한 정수 값으로 대치하는 기법이다. 마지막으로, 데이터 압축 라이브러리로 잘 알려진 zlib을 이용하여 다시 한 번 압축하게 된다. 이 때, 데이터 값들은 태그에 따라서 분류되어 있으므로, 구문적, 의미론적으로 유사하기 때문에 뛰어난 압축율을 보이게 된다. 그러나, 질의를 수행하기 위해서는 데이터 복원을 해야 하는 단점이 존재한다.
XGrind는 압축된 XML 데이터에 대한 직접적인 질의 수행을 지원하는 XML 압축기로써, XMill과는 다르게 압축된 XML 데이터가 원본 XML 데이터의 구조를 유지하는 준동형 (homomorphic) 압축 기법에 속한다. XGrind에서, 데이터 값들은 호프만 부호화 (Huffman encoding) (참고 문헌: D. A. Huffman. A Method for the Construction of Minimal Redundancy Codes, The institute of the Radio Engineering, 1995) 또는 사전 부호화 기법을 이용하여 압축되며, 태그와 애트리뷰트 이름은 사전 부호화 기법을 이용하여 압축된다. XGrind는 XML 데이터의 구조 정보를 나타내는 DTD를 이용하여 임의의 태그를 가지는 엘리먼트의 데이터 값에 대하여 호프만 부호화 기법을 적용할지, 사전 부호화 기법을 적용할지를 결정하게 된 다.
XGrind에서 경로 표현식을 처리하기 위해서는 질의 처리기가 각 엘리먼트를 방문할 때마다, 루트 엘리먼트로부터 해당 엘리먼트까지의 경로, 즉 태그들의 시퀀스 (sequence) 를 파악하고 해당 경로가 주어진 경로 표현식을 만족하는지를 조사해야 하는 부담이 존재한다. 또한, 임의의 범위의 데이터 값을 가지는 엘리먼트들을 검색하는 영역 질의 (range query) 를 수행하기 위해서는 데이터 값에 대한 부분 데이터 복원 (partial decompression) 이 필요하다. 이는 호프만 부호화 기법이나, 사전 부호화 기법을 적용할 경우, 부호화된 값들간의 크기 비교 결과가 원래의 데이터 값과 다를 수 있기 때문이다.
따라서 본 발명의 목적은 상기한 종래 기술의 문제점을 해결하는 방법 및 장치를 제공함에 있다.
본 발명의 다른 목적은 XML 데이터의 보관, 검색 및 교환을 효율적으로 지원하기 위한 방법으로서, XML 데이터를 압축함으로써 디스크 공간의 절약, 데이터 전송을 위한 대역폭의 감소와 같은 효과를 얻을 수 있으며, XML 데이터에서 존재하는 엘리먼트들의 경로 정보를 압축하는 역 산술 부호화 기법을 제공하여 경로 표현식의 처리 시에 루트 엘리먼트로부터 임의의 엘리먼트까지의 경로를 유지 관리하는 부담을 제거하는데 있으며, 데이터 값들에 대한 타입 정보를 얻어내는 추론 엔진을 이용하여 각 데이터 값들에 적합한 데이터 압축 기법을 자동으로 적용하는데 있다.
상기와 같은 본 발명의 목적들을 달성하기 위한 본 발명의 일 측면은
본 발명은 XML 데이터에 대한 질의 가능 압축을 수행하는데 있어서, XML 데이터에 존재하는 엘리먼트 및 애트리뷰트에 대한 경로를 압축하는 역 산술 부호화 기법, XML 데이터에 나타나는 데이터 값들의 타입 정보를 자동으로 추론하는 추론 기법, 추론된 타입에 따른 다양한 부호화 기법의 적용, 압축된 XML 데이터에 대한 질의 처리 방안을 포함하는 것을 특징으로 하는 질의 가능 XML 압축 기법 방안을 제공한다.
구체적으로, 본 발명에 따른 질의 가능 XML 압축 기법과 압축된 XML 데이터에 대한 질의 처리 방법은 다음과 같은 원리를 이용한다.
(1)기존의 XML 압축 기법들은 각 엘리먼트의 태그를 사전 부호화 기법을 이용하여 압축함으로써, 압축된 XML 데이터에 대한 경로 표현식을 처리하는데 비효율적이다. 본 발명에서는 역 산술 부호화 기법을 이용하여 각 엘리먼트의 경로를 [0.0, 1.0) 영역 상에서 구별되는 간격 (interval) 으로 변환한다. 또한, 경로 표현식도 역 산술 부호화 기법을 이용하여 [0.0, 1.0) 영역 상의 간격으로 변환되며, 이때 경로 표현식의 간격과 엘리먼트의 간격간의 내포 관계 (containment relationship) 를 이용하여 효율적으로 경로 표현식을 처리할 수 있게 된다.
(2)데이터 값의 타입에 따라서 효율적인 압축 기법이 달라질 수 있다. 그러 나, 기존의 XML 압축 기법 중 XMill에서는 사용자가 직접 데이터 값의 타입을 정의하고, XGrind에서는 스트링 타입으로 고정하여 호프만 부호화 기법과 사전 부호화 기법만을 이용하여 데이터 값을 압축하게 된다. 따라서, 본 발명에서는 사용자의 간섭 없이 자동으로 데이터 값의 타입을 추론하는 방안을 고안하였다.
(3)추론된 데이터 타입에 따라서 데이터 값에 적절한 부호화 기법들을 적용함으로서, 높은 압축율을 얻을 수 있었다. 또한, 정수 (integer) 또는 실수 (float) 타입으로 추론된 데이터 값에 대해서는 이진 부호화 (binary encoding) 기법과 차감 부호화 (differential encoding) 기법을 조합한 부호화 기법을 이용하여 영역 질의 처리 시에 발생되는 부분 데이터 복원의 부담을 감소시켰다.
또한, 본 발명에 따른 압축 기법은 텍스트 형태의 XML 데이터를 압축하기 위한 기법으로 무손실 압축 기법에 속한다. 그리고 본 발명에 따른 압축 기법은 상술한 XMill 및 XGrind 와 구별하여 'XPRESS'라 칭하기로 한다.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
도 1은 본 발명의 실시예에 따른 XML 압축 장치의 구성을 보여주는 도면이다.
상기 도 1에서 도시한 바와 같이, 질의 가능 압축기(100)는 크게 XML 파서(XML parser)(110), XML 분석기(XML Analyzer)(130), XML 부호기(XML Encoder)(150) 와 같은 3개의 주요 모듈을 포함한다.
상기 XML 파서(110)는 입력되는 XML 파일로부터 XML 데이터의 구문 요소들 (태그, 애트리뷰트 이름 및 데이터 값)을 순차적으로 출력해주는 역할을 한다. 본 발명은 XML 데이터를 두 번 스캔 (scan) 하는 방식을 취한다. 첫 번째 스캔에서는 상기 XML 분석기(130)가 작동 되게 된다. 상기 XML 분석기(130)는 상기 XML 부호기(150)에서 사용되는 정보들을 수집하는 역할을 하며, 상기 XML 부호기(150)는 주어진 XML 데이터를 압축하여 질의 가능 압축된 XML 데이터를 출력한다. 그리고 두번째 스캔에서는 XML 부호기(150)가 동작하며, 데이터의 태그 부분은 역산술 부호화부(30)로 제공되고 데이터 값은 타입 의존적 부호화부(40)로 제공된다.
상기 도 1에 도시된 바와 같이, 상기 XML 분석기(130)는 통계 수집부(10)와 타입 추론 엔진부(20)로 구성되어 있다. 여기서, 상기 통계 수집부(10)는 주어진 XML 데이터에 존재하는 각 태그들의 발생 빈도 (frequency) 를 수집하는 역할을 한다. 각 태그의 발생 빈도는 Elemhash라는 XML 문서 상에 존재하는 각 태그에 관련된 정보들을 유지하는 자료 구조인 해쉬 테이블에 기록된다. 이 해쉬 테이블을 구 성하는 엔트리 (entry)는 해쉬 테이블의 키가 되는 태그, 태그의 발생 빈도, 해당 태그를 가지는 엘리먼트의 데이터 값의 타입 정보, 그리고, 데이터 값 관련 통계 정보 (최소값, 최대값, 개별적인 데이터 값들, 각 문자의 발생 빈도)를 기록할 수 있는 필드들을 가진다. 각 태그의 발생 빈도는 상기 XML 부호화기(150)의 역 산술 부호화부(30)의 통계 정보로 활용되며, 데이터 값의 타입 정보 및 통계 값은 상기 XML 부호화부(150)의 타입 의존적 부호화부(40)의 통계 정보로 활용된다.
타입 추론 엔진부(20)는 각 태그별로 해당 태그를 가지는 엘리먼트들의 데이터 값들의 타입 정보를 추론하는 역할을 한다.
도 2는 데이터 값들의 타입 정보를 추론하는 자동 데이터 타입 추론 엔진의 알고리즘을 보여준다. 상기 도 2에서 보여주는 알고리즘의 입력으로는 Token, Pathstack, 그리고, Elemhash가 있다. Token은 상기 XML 파서(110)로부터 입력 받은 것으로 XML 데이터 상에 존재하는 데이터 값이고, Pathstack은 루트 엘리먼트로부터 현재 방문중인 엘리먼트까지의 경로, 즉 태그들의 시퀀스를 자료 구조인 스택 (stack) 을 이용하여 유지하고 있다. 따라서, Pathstack의 맨 위에는 Token으로 가지고 온 데이터 값을 가지는 엘리먼트의 태그 정보가 있다. 이 Pathstack을 관리하는 방법으로는 상기 XML 파서(110)로부터 시작 태그를 받으면 해당 태그를 Pathstack에 넣고, 끝 태그를 만나면 Pathstack에서 꺼내는 방식으로 간단하게 관리할 수 있다. Elemhash는 위에서 언급한 자료 구조로서 Pathstack의 맨 위에 있는 태그를 이용하여 Elemhash내의 필요한 엔트리를 찾을 수 있다.
상기 타입 추론 엔진부(20)는 기본적으로 각 태그에 따른 데이터 값들의 타 입을 귀납적으로 (inductively) 추론한다. 우선, Elemhash의 각 엔트리의 타입 정보는 undefined로 초기화되어 있으며 각 데이터 값을 검사함으로써 바뀌게 된다. 우선, 도 2에서 알 수 있듯이, Token, 즉 데이터 값의 타입을 추론한다. 이때, Token을 구성하는 모든 문자가 '0'~'9'이고, 첫 번째 문자가 0이 아닐 경우, 이를 정수 타입으로 추론한다. 또한, 모든 문자가 '0'~'9'와 '.'로 이루어졌으며, '.'은 한번만 나타나고 첫 번째와 두 번째 문자가 각각 '0'과 '.' (즉, 0.dddd의 경우), 또는 첫 번째 문자가 0이 아닐 경우 (즉, ddd.dddd의 경우), 이를 실수 타입으로 추론한다. 이외의 경우에는 모두 스트링 타입으로 추론한다. 그리고, 현재까지 추론된 타입 정보와 데이터 값의 타입에 따라서 추론된 타입을 새로운 타입으로 변화시킨다. 도 2의 라인 49는 도 2의 라인 24에서 라인 28까지의 코드와 같다. 도 2의 타입 추론 알고리즘을 통하여 추론되는 각 태그의 타입은 정수, 실수, 열거 (enumeration), 그리고, 스트링 중 하나이다. 본 알고리즘의 기본적인 원리는 임의의 태그에 속하는 모든 데이터 값들의 타입이 정수일 경우, 정수 타입으로 추론되며, 정수 또는 실수일 경우 실수 타입으로 추론된다. 이외의 경우에는 열거 또는 스트링 타입으로 추론된다. 열거 타입과 스트링 타입의 차이점은 데이터 값들의 개별적인 값 (distinct value) 의 개수가 128보다 적으면 열거 타입으로, 그렇지 않다면, 스트링 타입으로 추론된다. 이 때, 정수 타입 또는 실수 타입일 경우에는 해당 데이터 값들 중에서 최소값과 최대값을 통계 값으로 가지며, 열거 타입일 경우에는 해당 데이터들의 개별적인 데이터 값을 통계 값으로 가진다. 또한, 스트링 타입일 경우에는 각 문자들의 발생 빈도를 통계 값으로 가진다. 이러한 통계 값은 상 기 XML 부호화기(150)의 입력으로 사용된다.
상기 도 1에 도시된 바와 같이, XML 부호화기(150)는 엘리머트의 태그 및 경로를 부호화하는 역 산술 부호화부(30)와 데이터 값들을 부호화하는 타입 의존적 부호화부(40)를 구비한다. 여기서 상기 타입 의존적 부호화부(40)는 다수의 타입 의존적 부호화기들로 구성된다.
상기 역산술부호화부(30)에서 수행되는 역 산술 부호화 기법 아래의 (1),(2),(3)순서를 따른다.
(1) [0.0, 1.0)의 영역을 하위 간격(subinterval)들로 분할한다.
각 하위 간격은 XML 문서 상에 나타나는 태그를 대표하며 해당 간격의 길이는 XML 분석기의 통계 수집기에서 얻어진 각 태그의 발생 빈도와 비례한다. 임의의 태그 T에 대응되는 하위 간격을 IntervalT라고 하자. 예를 들어, 도 3과 같은 XML 데이터가 존재한다고 할 때, 도 3의 XML 데이터의 태그들 (={book, author, title, section, subsection, subtitle}) 의 발생 빈도를 각각 {0.1, 0.1, 0.1, 0.3, 0.3, 0.1} 이라고 가정하자. 이 경우 [0.0, 1.0)의 영역은 도 4와 같이 분할된다.
(2) 도 5에 도시된 알고리즘(이하 '경로 변환 알고리즘'이라 칭한다)을 이용하여 임의의 엘리먼트 e의 경로 P=p1.….pn를 간격 [mine, maxe)으로 변환한다.
여기서, 엘리먼트 e의 태그는 pn임을 알 수 있다. 기본적으로, 도 5에 나타난 알고리즘은 태그 pn을 위한 Intervalpn을 경로 Q=p1.….pn-1을 위한 간격에 이용하여 축소시킨다. 즉, 전체 영역 [0.0, 1.0)에서 경로 P'을 위한 간격이 [minQ, maxQ)라고 할 때, Intervalpn을 [minQ, maxQ)에 비례해서 축소시킴으로써 경로 P를 위한 간격 [mine, maxe)을 생성한다. 예를 들어, 도 3에 존재하는 첫 번째 subtitle 엘리먼트의 경로 book.section.subtitle의 간격 [0.69, 0.699)은 도 6과 같은 단계를 거쳐서 얻게 된다. 역 산술 부호화 기법을 이용하여 생성된 경로들간에는 다음과 같은 관계가 존재한다.
특성 1.
임의 경로 P=p1.….pn가 간격 I로 변환되었을 때, 모든 가능한 P' = pi.….p n (1 <= i <= n)를 위한 간격들은 간격 I를 포함한다.
예를 들어, 경로 subsection을 위한 간격 [0.6, 0.9), 경로 section.subsection을 위한 간격 [0.69, 0.78)은 경로 book.section.subsection을 위한 간격 [0.69, 0.699)을 포함한다. 따라서, 경로 표현식 //section/subsection을 간격[0.69, 0.78)로 변환하고, 간격 [0.69, 0.78) 내에 존재하는 간격을 가지고 있는 엘리먼트들을 선택함으로서 효율적으로 경로 표현식을 처리할 수 있게 된다.
(3) 압축된 XML 데이터의 크기를 줄이기 위하여 엘리먼트 e에 대한 시작 태그를 역 산술 부호화를 통하여 생성된 간격의 최소값으로 대치한다.
이 때, 해당 간격의 최소값도 특성 1을 만족하므로, 어떠한 정보의 손실도 없다. 또한, 엘리먼트의 태그를 역 산술 부호화 기법을 통하여 생성되는 부호화 값으로 대치할 때, 이 부호화 값에 1.0을 더하여 역 산술 부호화부(30)에서 생성된 부호화 값이 항상 [1.0, 2.0)사이의 값이 되도록 한다. 이 경우 [1.0, 2.0)사이의 모든 실수 값은 도 7의 32bit 실수 표현 방식에서 sign 비트는 0이고, biased exponent 부분은 0111 1111이 된다. 따라서, 32bit 실수 표현 방식에서 첫 번째 바이트 (byte) 를 절단하여 대치함으로써, 압축된 XML 데이터의 크기를 더욱 줄일 수 있다. 또한, 첫 번째 바이트를 절단함으로써 biased exponent의 맨 마지막 비트가 태그를 위한 부호화 값의 가장 중요 비트 (most significant bit: MSB) 가 되므로 가장 중요 비트는 항상 1이 된다. 또한, 압축율을 향상하기 위하여 맨 마지막 바이트도 절단한다. 맨 마지막 바이트를 절단함으로써 1.0+2-23까지의 실수로 표현되는 경로 정보가 1.0+2-15로 정밀도 (precision) 가 줄어들게 되지만, 디스크 공간을 적게 차지하게 되고 질의 처리 시에 디스크 입출력 횟수를 줄임으로서 보다 효율적으로 질의를 처리할 수 있게 한다. 경로 표현식을 처리하는데 있어서는 각 엘리먼트의 경로가 1.0+2-15의 정밀도로 표현되어 있으므로, 경로 표현식 또한 1.0+2-15의 정밀도를 가지는 하위 경로 표현식들로 나누어서 처리한다. 예를 들어, 경로 표현식 E= //p1/…/pn을 표현하는데 1.0+2-15보다 큰 정밀도가 필요하고 E'=//p 1/…/pi (i< n) 를 표현하는데 1.0+2-15이하의 정밀도가 필요하다면, E=E'E'', 여기서, E''=/pi+1/…/pn으로 나누어서 처리한다. 이 때, E''을 표현하는데 1.0+2-15보다 큰 정밀도가 필요한 경우에는 위에서 상술한 방식을 재귀적으로 적용한다.
도 8은 타입의존적 부호화부내에 구비되는 데이터 값을 압축하기 위한 6개의 타입 의존적 부호화기들을 보여주는 도면이다.
상기 도 8에서 u8, u16, f32는 수치 데이터 값들을 위한 차감 부호화 기법을 기반으로 하고 있다. 그리고 dict8과 huff는 텍스트 데이터 값들을 위한 부호화기들이다. 여기서 유의할 점은 데이터 값들을 위한 부호화기들을 통하여 생성된 값들의 가장 중요한 비트는 항상 0이라는 것이다.
수치 데이터들을 위한 부호화기들은 우선 XML 데이터 상의 수치 값들이 문자열 형태로 표현되어 있으므로 이를 이진수로 변환하는 이진 부호화기를 통하여 수치 값으로 변환하고, 변환된 수치 값을 차감 부호화기를 사용하여 압축한다. 차감 부호화기의 기준 값은 타입 추론 엔진에서 얻어진 통계치 중 최소값을 이용한다. 따라서, 수치 데이터 값들간의 크기 관계가 차감 부호화기를 통하여 생성된 부호화 값에서도 그대로 유지되므로 수치 데이터를 이용한 영역 질의 시에는 부분 데이터 복원 없이 압축된 XML 데이터 상에서 수행이 가능하다.
도 8에 도시된 바와 같이, u8, u16, u32는 각각 7 비트, 15 비트, 31 비트를 사용하며, 1 바이트(=8 비트), 2 바이트(=16 비트), 4 바이트(=32 비트) 크기의 부호화된 값을 생성함으로써 가장 중요 비트는 항상 0이 된다. f32의 경우에는 최소값과의 차이 값을 이용하는 차감 부호화 기법을 이용함으로써 항상 양의 실수를 생성한다. 이 때, 도 7에서 보는 바와 같이 32bit 실수 표현 방식에서 sign 비트가 양의 실수일 경우에는 항상 0이므로, 가장 중요 비트가 0이 된다.
dict8은 열거 타입을 위한 부호화기로 사전 압축 방식을 이용한다. 이 때, 열거 타입의 경우에는 최대 127개의 서로 다른 데이터 값이 존재할 수 있으므로, 7 비트를 사용하며 1 바이트 크기의 부호화 값을 생성하므로 가장 중요 비트가 0이다. huff는 일반적인 문자열을 위한 호프만 부호화기로 u8, u16, u32, f32, dict8과는 달리 가변 길이의 부호화 값을 생성한다. 따라서, 본 발명에서는 호프만 부호화기를 통한 부호화 값, 즉 비트 스트림 (bit stream) 을 128 바이트보다 작은 하위 비트 스트림으로 분할하고, 각 하위 비트 스트림 맨 앞에 해당 하위 비트 스트림의 바이트 길이를 표시하기 위하여 1바이트를 넣는다. 따라서, 각 하위 비트 스트림의 길이는 128 바이트보다 작으므로 해당 비트 스트림의 길이를 표시하는 1 바이트 중에서 7 비트만 사용하게 된다. 따라서 가장 중요 비트는 항상 0이 된다.
압축된 XML 데이터 상에서 부호화된 값이 데이터 값을 위한 것인지, 경로 정보를 포함하는 태그를 위한 것인지의 여부는 질의 처리 또는 데이터 복원 시에 필 요하게 된다. 위에서 상술한 바와 같이 데이터 값들을 위한 부호화된 값들의 가장 중요 비트는 항상 0이고 태그 정보를 위한 부호화된 값은 항상 1이므로, 태그를 위한 부호화 값과 데이터 값을 위한 부호화 값을 용이하게 구분할 수 있다.
XML 압축에 대한 본 발명의 효율성을 측정하기 위하여 여러 가지 형태의 XML 데이터와 여러 가지 XML 질의를 사용하여 실험하였다. 실험을 위한 데이터로는 3 종류의 실제 XML 데이터를 이용하였으며, 이는 다음과 같다.
(1)Baseball: 1998년도 메이저 리그에 참여한 각 팀 선수들의 통계 정보를 포함한다. 이 XML 데이터는 통계 정보를 지니고 있어서 많은 수치 정보와 열거형 타입을 가지고 있다. [출처: http://www.ibiblio.org/xml/examples/baseball]
(1)Course: 미국 워싱턴 대학에서 열린 과목들에 관한 설명이 포함되어 있다. 이 XML 데이터에서는 적은 수의 수치 정보와 열거형 타입 데이터 값들이 있다.[출처:http://www.cs.washington.edu/research/projects/xmltk/www/xmlproperties.html]
(1)Shakespeare: 셰익스피어 희곡들을 XML 형태로 변환하여 만든 XML 문서로서 모든 데이터 값이 텍스트 값이다.
[출처: http://www.oasis-open.org/cover/xml.html]
각 XML 데이터의 특징은 하기 <표 1>에 나타나 있다. 여기서, 큰 크기의 XML 데이터에 대한 본 발명의 효과를 보기 위하여, 원래 Baseball XML 문서에 대하여서 는 16배의 크기로 증가시켰으며, Course 데이터는 4배, Shakespeare는 2배 증가시켰다.
Data Set Size(MBytes) Depth Tags Numeric Enum
Baseball 17.06 6 46 19 5
Course 12.28 6 18 5 4
Shakespeare 15.3 5 21 0 0
우선, 본 발명의 압축 성능을 보이기 위하여, XMill, XGrind, 그리고 일반 압축기인 gzip과 압축 성능을 평가하였다. 압축율 (Compression ratio) 은 하기 <수학식 1>과 같이 나타난다.
압축율(%) = (1- 압축된 XML 문서의 크기/원본 XML 문서의 크기)*100
도 9는 각 압축기의 압축율을 보여준다. 여기서 보듯이, 위에서 상술한 바와 같이 XMill이 가장 뛰어난 압축율을 나타내고 있다. 이는 같은 태그를 가지는 데이터 값들을 그룹화함으로써, 구문 또는 의미론적으로 비슷한 데이터들을 모아 놓았기 때문이다. 본 발명에서 제안한 XPRESS는 XMill과 gzip보다는 낮은 압축율을 보이지만, 압축된 XML 문서에 대한 질의를 지원하는 XGrind에 비하여서 평균적으로 더 좋은 압축율을 보임을 알 수 있다.
압축된 XML 문서에 대한 질의 성능을 보이기 위하여, 각 XML 데이터에 대하 여 4 종류의 질의를 생성하였다. 각 질의는 도 10에 나타나 있다. 도 10의 질의 이름 (query name) 중에서 첫 문자는 대상 XML 문서를 가리키며, 두 번째 숫자는 질의 종류를 가리킨다. 질의 종류 1은 긴 경로 표현식에 대한 성능 평가를 위한 것이며, 질의 종류 2는 단순한 부분 매칭 형태의 경로 표현식이며, 질의 종류 3은 같은 부분 매칭 형태이지만 질의 종류 2보다는 길고 복잡한 경로 표현식이다. 질의 종류 4는 영역 질의에 대한 성능 평가를 위한 것이다.
XGrind만이 압축된 XML 문서에 대한 질의 수행을 지원하므로 본 성능 평가는 XGrind의 성능만을 비교하였다. 도 11은 XGrind와 본 발명에서 제안하는 XPRESS에 의하여 압축된 XML 문서에 대한 질의 성능 평가를 보여주고 있다. 도 11에서 볼 수 있듯이, 다양한 XML 문서 상의 다양한 질의에 대하여 본 발명에서 제안하는 XPRESS가 XGrind에 비하여 평균적으로 2.83배 뛰어난 성능을 보임을 알 수 있다. 이는 기본적으로 역 산술 부호화 기법으로 인하여 경로 표현식의 처리 시에 XPRESS가 XGrind에 비해 보다 빠르게 처리할 수 있기 때문이다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명에 따르면, XML 데이터 압축 시에 역 산술 부호화 기법과 타입에 의존적인 압축 기법들을 이용함으로써 압축된 XML 데이터에 대하여 직접적이고 효율적인 질의 수행을 지원할 수 있게 하였다. 또한, 타입 추론 엔진을 이용하여 각 데이터 값들에 대한 타입을 추론하고, 수치 데이터 (정수 또는 실수 타입) 에 대하여서는 각 데이터 값의 크기 관계가 유지되는 압축 기법을 적용함으로써, 영역 질의 시에 부분 데이터 복원의 부담을 줄였다. 따라서, 본 발명은 XML 데이터의 보관, 검색 및 전송 시에 발생되는 디스크 공간 부담, 질의 처리 부담, 전송 부담 등을 감소시키므로, 전자 상거래, 인터넷 검색 등 XML 응용 분야에 크게 기여할 것이다.

Claims (7)

  1. XML 데이터에 존재하는 태그들의 발생 빈도와 데이터값의 통계값을 추출하여 수집하는 과정;
    Token, Pathstack, Elemhash를 입력치로 하는 자동 데이터 타입 추론 엔진 알고리즘을 이용하여 상기 태그들에 따른 엘리먼트들의 데이터 값들의 타입을 정수, 실수, 열거(enumeration), 또는 스트링 중 어느 하나로 귀납적으로 추론하는 과정;
    상기 엘리먼트의 태그 및 경로를 역산술 부호화하는 과정; 및,
    상기 추론된 타입에 따라 타입 의존적 압축기를 사용하여 상기 데이터 값들을 부호화하는 과정을 포함하는 XML 압축 방법.
  2. 제1항에 있어서, 상기 XML 데이터의 엘리먼트의 경로를 역산술 부호화하는 과정은,
    XML 데이터 상의 엘리먼트들의 유일한 태그들의 발생빈도를 계산하고, 이를 이용하여 [0.0, 1.0)의 영역을 분할하여 각 분할된 간격이 각 태그들을 대표하도록 하고, 태그 Pn을 가지는 엘리먼트 e의 경로를 P=p1.….pn이라 할 때 태그 Pn을 위한 간격 IntervalPn을 경로 Q=p1.….pn-1를 위한 간격을 이용하여 비례하여 축소시킴으로써 XML 데이터의 엘리먼트 경로를 부호화하는 것을 특징으로 하는 XML 압축 방법.
  3. 제1항 또는 제2항에 있어서, 압축된 XML 문서에 대한 경로 표현식을 처리 함에 있어서 경로 표현식을 역 산술 부호화 기법을 통하여 [0.0, 1.0) 상의 간격으로 변환하고 경로 표현식을 위한 간격과 각 엘리먼트의 경로를 위한 간격간의 포함 관계를 이용하여 경로 표현식을 처리하는 것을 특징으로 하는 XML 압축 방법.
  4. 삭제
  5. 제1항 또는 제2항에 있어서, 정수 또는 실수로 추론된 데이터에 대하여 이진 부호화기를 통하여 수치 값으로 변환하고, 차감 부호화기를 사용하여 압축하여 수치 데이터 값들간의 크기 관계가 부호화 값에서도 그대로 유지되어 수치 데이터를 이용한 영역 질의 시에는 부분 데이터 복원 없이 압축된 XML 데이터 상에서 수행이 가능하도록 하는 것을 특징으로 하는 XML 압축 방법.
  6. 제1항에 있어서, XML 데이터의 엘리먼트의 경로와 데이터 값을 구분하기 위하여, 경로를 위한 부호화기의 결과의 첫 번째 비트는 1이고, 데이터 값의 부호화 결과의 첫 번째 비트는 0으로 생성하는 것을 특징으로 하는 XML 압축 방법.
  7. 삭제
KR1020030073453A 2003-10-21 2003-10-21 역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법 KR100803285B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020030073453A KR100803285B1 (ko) 2003-10-21 2003-10-21 역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법
US10/860,292 US7539692B2 (en) 2003-10-21 2004-06-03 Method of performing queriable XML compression using reverse arithmetic encoding and type inference engine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030073453A KR100803285B1 (ko) 2003-10-21 2003-10-21 역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법

Publications (2)

Publication Number Publication Date
KR20050038217A KR20050038217A (ko) 2005-04-27
KR100803285B1 true KR100803285B1 (ko) 2008-02-13

Family

ID=34510989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030073453A KR100803285B1 (ko) 2003-10-21 2003-10-21 역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법

Country Status (2)

Country Link
US (1) US7539692B2 (ko)
KR (1) KR100803285B1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7415665B2 (en) * 2003-01-15 2008-08-19 At&T Delaware Intellectual Property, Inc. Methods and systems for compressing markup language files
US8725748B1 (en) * 2004-08-27 2014-05-13 Advanced Micro Devices, Inc. Method and system for storing and retrieving semiconductor tester information
US8346737B2 (en) * 2005-03-21 2013-01-01 Oracle International Corporation Encoding of hierarchically organized data for efficient storage and processing
AU2006322637B2 (en) * 2005-12-06 2011-07-28 National Ict Australia Limited A succinct index structure for XML
US7853573B2 (en) * 2006-05-03 2010-12-14 Oracle International Corporation Efficient replication of XML data in a relational database management system
US7613682B2 (en) * 2006-05-16 2009-11-03 International Business Machines Corporation Statistics collection using path-identifiers for relational databases
US9117005B2 (en) * 2006-05-16 2015-08-25 International Business Machines Corporation Statistics collection using path-value pairs for relational databases
JP2010503254A (ja) * 2006-08-30 2010-01-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ信号を符号化する装置及び方法、並びにデータ信号を復号化する装置及び方法
US20080077606A1 (en) * 2006-09-26 2008-03-27 Motorola, Inc. Method and apparatus for facilitating efficient processing of extensible markup language documents
JP4212615B2 (ja) * 2006-09-28 2009-01-21 株式会社東芝 構造化文書検索システム、構造化文書検索方法、検索装置、および文書管理装置
US7873592B2 (en) * 2007-04-20 2011-01-18 Microsoft Corporation Type inference for object-oriented languages
US8341612B2 (en) * 2007-05-16 2012-12-25 International Business Machines Corporation Method and apparatus for run-time statistics dependent program execution using source-coding
JP5007743B2 (ja) * 2007-05-24 2012-08-22 富士通株式会社 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法
WO2008142799A1 (ja) * 2007-05-24 2008-11-27 Fujitsu Limited 情報検索プログラム、該プログラムを記録した記録媒体、情報検索方法、および情報検索装置
US7747558B2 (en) * 2007-06-07 2010-06-29 Motorola, Inc. Method and apparatus to bind media with metadata using standard metadata headers
WO2009009871A1 (en) * 2007-07-17 2009-01-22 Certicom Corp. Method of providing text representation of a cryptographic value
US20100146410A1 (en) * 2008-12-10 2010-06-10 Barrett Kreiner Markup language stream compression using a data stack
US9070453B2 (en) * 2010-04-15 2015-06-30 Ramot At Tel Aviv University Ltd. Multiple programming of flash memory without erase
US8595213B2 (en) * 2010-07-15 2013-11-26 Semmle Limited Type inference for datalog with complex type hierarchies
EP2605481A1 (de) * 2011-12-13 2013-06-19 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Filtern von Netzwerkverkehr
CN103186611B (zh) * 2011-12-30 2016-03-30 北大方正集团有限公司 一种压缩、解压及查询文档的方法、装置
US10140383B2 (en) * 2014-12-30 2018-11-27 Business Objects Software Ltd. Computer implemented systems and methods for processing semi-structured documents
JP6881124B2 (ja) * 2017-07-21 2021-06-02 富士通株式会社 検索制御プログラム、検索制御方法および検索制御装置
EP4125317A1 (en) * 2020-05-01 2023-02-08 Kinze Manufacturing, Inc. Automatic field partners

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990066882A (ko) * 1997-12-29 1999-08-16 주니어 부르스 케이. 마틴 구문 구조를 보존할 수 있는 마크업 언어를 사용한 문서 압축방법 및 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6635088B1 (en) * 1998-11-20 2003-10-21 International Business Machines Corporation Structured document and document type definition compression
AUPQ849500A0 (en) * 2000-06-30 2000-07-27 Canon Kabushiki Kaisha Hash compact xml parser
US6850948B1 (en) * 2000-10-30 2005-02-01 Koninklijke Philips Electronics N.V. Method and apparatus for compressing textual documents
US7054953B1 (en) * 2000-11-07 2006-05-30 Ui Evolution, Inc. Method and apparatus for sending and receiving a data structure in a constituting element occurrence frequency based compressed form
JP4163870B2 (ja) * 2001-12-28 2008-10-08 富士通株式会社 構造化文書変換装置
US6711740B1 (en) * 2002-01-17 2004-03-23 Cisco Technology, Inc. Generic code book compression for XML based application programming interfaces
US7158990B1 (en) * 2002-05-31 2007-01-02 Oracle International Corporation Methods and apparatus for data conversion
US7350199B2 (en) * 2003-01-17 2008-03-25 Microsoft Corporation Converting XML code to binary format

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990066882A (ko) * 1997-12-29 1999-08-16 주니어 부르스 케이. 마틴 구문 구조를 보존할 수 있는 마크업 언어를 사용한 문서 압축방법 및 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1019990066882
XGRIND: A Query-friendly XML Compressor(P.M.Tolani and J.R.Haritsa, 18th ICDE, 2002.02.26, pp.225-234) *

Also Published As

Publication number Publication date
US7539692B2 (en) 2009-05-26
US20050086639A1 (en) 2005-04-21
KR20050038217A (ko) 2005-04-27

Similar Documents

Publication Publication Date Title
KR100803285B1 (ko) 역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법
Min et al. XPRESS: A queriable compression for XML data
Sakr XML compression techniques: A survey and comparison
Tolani et al. XGRIND: A query-friendly XML compressor
US8346737B2 (en) Encoding of hierarchically organized data for efficient storage and processing
EP1803225A1 (en) Adaptive compression scheme
JPH09321633A (ja) 情報アドレス変換方法,情報アドレス変換装置および情報検索システム
Skibiński et al. Effective asymmetric XML compression
Leighton et al. TREECHOP: A Tree-based Query-able Compressor for XML
Lin et al. Supporting efficient query processing on compressed XML files
Li Xcomp: An XML compression tool
Yap Fast unimodular reduction: Planar integer lattices
Min et al. A compressor for effective archiving, retrieval, and updating of XML documents
Adiego et al. Lempel‐Ziv compression of highly structured documents
Senthilkumar et al. Query and Update support for Indexed and Compressed XML (QUICX)
Külekci Uniquely decodable and directly accessible non-prefix-free codes via wavelet trees
Nair XML compression techniques: A survey
Sakr An experimental investigation of XML compression tools
Böttcher et al. Searchable compression of office documents by XML schema subtraction
Böttcher et al. BSBC: Towards a Succinct Data Format for XML Streams.
Zhang et al. SQcx: A queriable compression model for native XML database system
Senthilkumar et al. QRFXFreeze: Queryable compressor for RFX
Leighton Two new approaches for compressing XML
Shirazee et al. The Effects of Data Compression on Performance of Service-Oriented Architecture (SOA)
Haritsa et al. XGRIND: A query-friendly XML compressor

Legal Events

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

Payment date: 20120201

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee