KR101783791B1 - 프로버넌스 관리를 위한 압축 장치 및 방법 - Google Patents

프로버넌스 관리를 위한 압축 장치 및 방법 Download PDF

Info

Publication number
KR101783791B1
KR101783791B1 KR1020160053651A KR20160053651A KR101783791B1 KR 101783791 B1 KR101783791 B1 KR 101783791B1 KR 1020160053651 A KR1020160053651 A KR 1020160053651A KR 20160053651 A KR20160053651 A KR 20160053651A KR 101783791 B1 KR101783791 B1 KR 101783791B1
Authority
KR
South Korea
Prior art keywords
data
pattern
graph
encoding
rdf
Prior art date
Application number
KR1020160053651A
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 KR1020160053651A priority Critical patent/KR101783791B1/ko
Priority to PCT/KR2016/013271 priority patent/WO2017191877A1/ko
Application granted granted Critical
Publication of KR101783791B1 publication Critical patent/KR101783791B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • G06F17/30153
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • G06F17/3012
    • G06F17/30185
    • G06F17/30731
    • G06F17/30958

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Document Processing Apparatus (AREA)

Abstract

본 발명은 프로버넌스 관리를 위한 압축 장치에 관한 것으로서, 이력 정보와 최종 문서를 입력받아 프로버넌스 모델을 이용하여 데이터 프로버넌스를 생성하는 프로버넌스 생성부, 데이터 프로버넌스의 문자열 데이터를 숫자열 데이터로 사전 인코딩하여 사전 인코딩 테이블에 저장하고 숫자열 데이터 프로버넌스를 출력하는 사전 인코딩부, 숫자열 데이터 프로버넌스를 입력받아 주어와 목적어를 함께 숫자열로 인코딩하고 술어만을 따로 숫자열로 인코딩하여 최종 RDF 데이터 인코딩 테이블에 저장하고, 최종 RDF 데이터 인코딩 테이블에 저장된 데이터를 이용하여 인코딩 프로버넌스 그래프를 생성하며, 생성된 인코딩 프로버넌스 그래프를 이용하여 반복되는 그래프 패턴을 추출한 후, 추출된 그래프 패턴의 반복 횟수를 패턴 통계 테이블에 저장하고, 추출된 그래프 패턴을 찾은 순서에 대응하게 추출된 그래프 패턴의 각 노드에 대한 주어나 목적어를 그래프 패턴 변수 테이블에 저장하고, 그래프 패턴 변수 테이블에 저장된 값을 이용하여 최종 문서에 대한 데이터 패턴 압축 그래프를 생성하는 최종 RDF 압축부, 그리고 숫자열 데이터 프로버넌스를 입력받아 활동 데이터를 기준으로 하여 숫자열 데이터 프로버넌스에서 반복되는 패턴을 갖는 서브 그래프를 생성하고, 반복되는 패턴을 갖는 서브 그래프의 횟수 정보를 서브 그래프 통계 테이블에 저장하며, 반복되는 패턴을 갖는 서브 그래프가 설정 횟수이상 나타나면, 반복되는 패턴을 갖는 서브 그래프를 기준 패턴으로 정하고 프로버넌스 패턴 압축부를 포함한다.

Description

프로버넌스 관리를 위한 압축 장치 및 방법{COMPRESSION APPARATUS AND METHOD FOR MANAGING PROVENANCE}
본 발명은 프로버넌스(provenance) 관리를 위한 압축 장치 및 방법에 관한 것으로서, 더욱 상세하게는 RDF (Resource Description Framework) 문서에 대한 프로버넌스 관리를 위한 압축 장치 및 방법에 관한 것이다.
최근 컴퓨팅 기술 및 네트워크(network)의 발전과 더불어 인터넷(internet)을 통해 수 많은 사용자들은 데이터(data)를 급속도로 생산하고 공유하게 되었고 이를 효율적인 서비스로 제공하기 위한 다양한 연구들이 활발하게 진행되고 있다.
웹(web)에서 정보량이 폭발적으로 증가됨에 따라 웹 문서를 자동적으로 인식하고 검색하기 위한 필요성이 대두되었다.
따라서, 컴퓨터(computer)가 문서의 의미를 이해하고 조작할 수 있는 차세대 웹 기술로 시맨틱 웹(semantic web)이 등장하였다.
시맨틱 웹은 처음 W3C(world wide web consortium)에서 기술 표준으로 제정하였으며 분산 환경에서 리소스(resource)에 대한 정보와 자원 사이의 관계 및 의미 정보를 기계가 처리 할 수 있는 온톨로지(ontology) 형태로 표현하고 이를 자동화된 기계가 처리하도록 하는 프레임워크(framework)이다.
현재 시맨틱 웹 기반의 연구가 활발히 연구되고 있으며 이를 지원하기 위해 W3C에서 RDF(Resource Description Framework) 데이터 구조가 연구되었다.
RDF는 웹 상의 자원의 정보를 표현하기 위한 규격으로 이종의 데이터 간의 어의, 구문 및 구조에 대한 공통적인 규칙을 지원한다.
RDF는 그래프로 표현되고 주어(subject), 술어(predicate) 및 목적어(object)인 트리플(triple)로 구성되어 있다.
웹 상의 RDF 데이터는 LOD(Link Open Data)를 지원하는 기관이 증가하면서 사용량이 증가하였다. 현재 특허청, 국립 수목원, 국사편찬위원회 등 10개가 넘는 공공기관에서는 LOD를 제공하고 있다.
이러한 LOD는 RDF 데이터 구조로 표현됨으로 앞으로 더 많은 RDF 데이터가 생산될 것이므로, RDF 데이터가 증가함에 따라 데이터를 효율적으로 저장하는 것은 중요해졌다.
또한, RDF 데이터가 계속해서 생성되고 변경됨에 따라 RDF 데이터의 근원 정보, 즉 RDF 데이터가 어디서 왔는지, 누가 생성했는지, 어떻게 변화되었는지 등에 관한 정보를 관리하는 것이 필요하게 되었다.
또한, 사용 이력 데이터를 관리함으로써 어떤 사용자가 하는 행위를 파악할 수 있고 RDF 데이터가 어떻게 변하였는지도 알 수 있다.
이러한 RDF 데이터의 근원 정보와 사용 이력 데이터에 대한 이력 정보를 관리하기 위한 메타데이터(metadata)로 프로버넌스(provenance)가 등장하였다. 프로버넌스의 데이터(이하, '프로버넌스 데이터'라 함)는 데이터의 근원 정보나 사용 이력을 나타내는 메타데이터이다.
따라서, 이러한 프로버넌스를 활용하여 사용자의 데이터 변경 및 사용 인력을 파악할 수 있다.
이러한 프로버넌스 데이터를 관리하기 위한 표준 모델로 W3C에서 PROV 모델을 제안되었다.
PROV 모델은 노드(node)인 객체(entity), 활동(activity), 에이전트(agent) 및 속성(property)으로 이루어져 있다.
객체는 시맨틱 웹에 표현되는 RDF 문서를 나타낸다. 활동은 시맨틱 웹 상의 문서를 변경하고 삭제하는 등 다양한 활동들을 나타낸다. 마지막으로 에이전트는 활동을 행하는 개인이나 조직을 나타내고 있다.
이러한 각각의 노드들은 유기적으로 연결되어 표현되고, 또한, 표준 규격인 PROV 모델을 이용하여 프로버넌스 데이터를 관리할 때 시맨틱 웹 데이터의 호환성을 향상시킬 수 있으며 표준 질의 언어를 통해 검색이 가능하다.
프로버넌스 데이터는 이력 정보를 나타내기 위해 그래프로 구성되어 있으며 이러한 그래프는 중복된 데이터를 반복하여 표현한다.
그렇기 때문에 그래프 압축이 필요하지만 대부분의 시맨틱 웹 상의 데이터는 RDF 데이터로 표현하기 때문에 RDF 데이터 압축 기법이 필요하다.
또한, 프로버넌스는 사용자의 이력정보를 고려해야 하기 때문에 프로버넌스의 흐름을 기반으로 한 프로버넌스 압축 기법이 필요하다.
최근 프로버넌스 데이터를 압축하기 위한 연구들이 진행되고 있다.
"A. Chapman, H. V. Jagadish, and P. Ramanan, “Efficient provenance storage”, In Proceedings of the ACM SIGMOD International Conference on Management of Data, pp.993-1006, 2008." 논문에서는 프로버넌스 데이터를 관리하기 위해 3개의 분해 기법과 2개의 상속기반의 함수를 제안되었는데, 이 논문에서, 중복되는 부분은 분해하여 동일한 부분을 상속시켜서 효율적으로 저장한다.
"Y. Xie, K. M. Reddy, D. Feng, Y. Li, and D. D. E. Long, “Evaluation of a hybrid approach for efficient provenance storage”, Journal of ACM Transactions on Storage, Vol. 9, No. 4, pp.14, 2013."논문에서는 프로버넌스 데이터를 압축하기 위해 웹 그래프 기반의 압축방법과 사전기반의 인코딩 기법을 결합시킨 프로버넌스 압축 기법을 제안되었다.
일반적인 프로버넌스 압축 기법에서는 중복되는 부분을 압축하여 기존의 프로버넌스 데이터를 관리한다. 하지만 표준 프로버넌스 모델을 적용한 압축 기법은 없으며 일반적인 처리 데이터를 이용하여 압축하였기 때문에 RDF로 이루어진 프로버넌스 데이터에 적용하여 관리하기 힘들다. 또한, 기존의 프로버넌스 압축 기법으로 압축하였을 때는 RDF 데이터에서 술어의 부분이 손실될 가능성이 있다. 뿐만 아니라 표준 모델을 이용한 압축 기법이 제안되지 않았다. 프로버넌스 데이터에 대해서 관리하지만 해당 원본 RDF 문서에 대해서는 관리를 하지 않았다.
일반적으로, 프로버넌스 데이터는 원본데이터에 비해 수십 배에 달할 수 있고, 뿐만 아니라 프로버넌스 데이터의 크기는 대용량 데이터로 시맨틱 웹에 표현된다.
프로버넌스 데이터는 사용되는 관리 기법에 적합하게 관리되지만, 다양한 사용자가 사용하기 위해서는 표준 모델을 이용한 프로버넌스 관리가 필요하다. 또한, 기존의 프로버넌스 관리 기법에서는 원본 문서를 따로 관리하지 않고 또한 RDF 데이터에 대해서도 고려하지 않는다. 더욱이, 기존의 RDF 데이터 압축 기법은 변경 이력을 고려하지 않았다.
따라서 본 발명이 이루고자 하는 기술적 과제는 대용량의 RDF 프로버넌스 데이터를 효율적으로 관리하기 위한 압축 방식을 제공하기 위한 것이다.
본 발명이 이루고자 하는 다른 기술적 과제는 RDF 프로버넌스 데이터의 저장 용량을 줄이기 위한 것이다.
본 발명의 한 특징에 따른 프로버넌스 관리를 위한 압축 장치는 이력 정보와 최종 문서를 입력받아 프로버넌스 모델을 이용하여 데이터 프로버넌스를 생성하는 프로버넌스 생성부, 상기 프로버넌스 생성부와 연결되어 있고, 상기 데이터 프로버넌스의 문자열 데이터를 숫자열 데이터로 사전 인코딩하여 사전 인코딩 테이블에 저장하고 숫자열 데이터 프로버넌스를 출력하는 사전 인코딩부, 상기 사전 인코딩부와 연결되어 있고, 상기 숫자열 데이터 프로버넌스를 입력받아 주어와 목적어를 함께 숫자열로 인코딩하고 술어만을 따로 숫자열로 인코딩하여 최종 RDF 데이터 인코딩 테이블에 저장하고, 상기 최종 RDF 데이터 인코딩 테이블에 저장된 데이터를 이용하여 인코딩 프로버넌스 그래프를 생성하며, 생성된 인코딩 프로버넌스 그래프를 이용하여 반복되는 그래프 패턴을 추출한 후, 추출된 그래프 패턴의 반복 횟수를 패턴 통계 테이블에 저장하고, 추출된 그래프 패턴을 찾은 순서에 대응하게 추출된 그래프 패턴의 각 노드에 대한 주어나 목적어를 그래프 패턴 변수 테이블에 저장하고, 상기 그래프 패턴 변수 테이블에 저장된 값을 이용하여 최종 문서에 대한 데이터 패턴 압축 그래프를 생성하는 최종 RDF 압축부, 그리고 상기 사전 인코딩부와 연결되어 있고, 상기 숫자열 데이터 프로버넌스를 입력받아 활동 데이터를 기준으로 하여 상기 숫자열 데이터 프로버넌스에서 반복되는 패턴을 갖는 서브 그래프를 생성하고, 반복되는 패턴을 갖는 서브 그래프의 횟수 정보를 서브 그래프 통계 테이블에 저장하며, 상기 반복되는 패턴을 갖는 서브 그래프가 설정 횟수이상 나타나면, 상기 반복되는 패턴을 갖는 서브 그래프를 기준 패턴으로 정하고 프로버넌스 패턴 압축부를 포함한다.
상기 프로버넌스 모델은 객체 노드, 에이전트 노드, 활동 노드 및 시간에 대한 정보와 소스에 대한 정보를 구비한 메타데이터 노드를 포함하는 것이 좋다.
사전 인코딩부는 에이전트 노드, 메타데이터 노드 및 객체 노드를 인코딩하하여 인코딩 값을 데이터 테이블에 저장하고, 활동 노드를 인코딩하여 인코딩 값을 활동 테이블에 저장하며, 속성을 인코딩하여 인코딩 값을 술어 테이블에 저장하는 것이 바람직하다.
본 발명의 다른 특징에 따른 프로버넌스 관리를 위한 압축 방법은 이력 정보와 최종 문서를 입력받아 프로버넌스 모델을 이용하여 데이터 프로버넌스를 생성하는 단계, 상기 데이터 프로버넌스의 문자열 데이터를 숫자열 데이터로 사전 인코딩하여 사전 인코딩 테이블에 저장하고 숫자열 데이터 프로버넌스를 출력하는 단계, 상기 숫자열 데이터 프로버넌스를 입력받아 주어와 목적어를 함께 숫자열로 인코딩하고 술어만을 따로 숫자열로 인코딩하여 최종 RDF 데이터 인코딩 테이블에 저장하고, 상기 최종 RDF 데이터 인코딩 테이블에 저장된 데이터를 이용하여 인코딩 프로버넌스 그래프를 생성하는 단계, 생성된 인코딩 프로버넌스 그래프를 이용하여 반복되는 그래프 패턴을 추출한 후, 추출된 그래프 패턴의 반복 횟수를 패턴 통계 테이블에 저장하고, 추출된 그래프 패턴을 찾은 순서에 대응하게 추출된 그래프 패턴의 각 노드에 대한 주어나 목적어를 그래프 패턴 변수 테이블에 저장하는 단계, 그리고 상기 그래프 패턴 변수 테이블에 저장된 값을 이용하여 최종 문서에 대한 데이터 패턴 압축 그래프를 생성하는 단계를 포함한다.
상기 프로버넌스 모델은 객체 노드, 에이전트 노드, 활동 노드 및 시간에 대한 정보와 소스에 대한 정보를 구비한 메타데이터 노드를 포함하는 것이 좋다.
이러한 특징에 따르면, 기존의 PROV 모델은 변경한 시간과 변경된 원본 RDF 문서를 표현하지 못하기 때문에, 본 예에서는 프로버넌스 데이터를 표현하기 위해 기준의 PRVO 모델을 확장한 확장된 PROV 모델을 이용하여 대용량의 RDF 프로버넌스 데이터를 관리하기 위한 압축 방법을 제안한다.
또한, 프로버넌스 데이터가 문자열 데이터로 표현되기 때문에 사전 인코딩을 통해 PROV 모델의 모든 데이터를 숫자 데이터로 저장하고, 이로 인해, 사전 인코딩을 통해 문자열 데이터를 숫자 데이터로 저장함으로써 저장량이 감소된다.
또한, 기존의 PROV 모델과는 달리 확장된 PROV 모델에서는 변경되거나 추가될 최종 RDF 문서를 다루고 있으므로 이력 추적이 용이한다.
더욱이, 본 예는 기존의 PROV 모델과 달리 최종 RDF 문서를 관리하기 때문에 최종 RDF 문서의 저장 공간이 많이 차지하는 것을 방지하기 위해 원본 RDF 압축을 통해 원본 RDF 문서를 압축한다.
마지막으로, 본 예의 경우, PROV 모델에서 데이터 활동 노드의 중복되는 부분은 서브 그래프로 만들어 압축 저장함으로써 데이터의 사용 이력을 고려하여 프로버넌스 데이터를 압축한다.
도 1은 본 발명의 한 실시예에 따른 프로버넌스 관리를 위한 압축 장치의 블럭도이다.
도 2는 본 발명의 한 실시예에 따른 프로버넌스 관리를 위한 압축 장치의 동작 순서도이다.
도 3는 본 발명의 한 실시예에 따른 프로버넌스 관리를 위한 압축 장치의 확장된 PROV 모델의 예를 도시한다.
도 4a는 종래의 PROV 모델에 따리 생성된 데이터 프로버넌스의 한 예이다.
도 4b는 본 발명의 한 실시예에 따른 프로버넌스 관리를 위한 압축 장치의확장된 PROV 모델에 따리 생성된 데이터 프로버넌스의 한 예이다.
도 5는 본 발명의 한 실시예에 따른 프로버넌스 관리를 위한 압축 장치의 사전 인코딩부에 입력되는 데이터 프로버넌스의 한 예이다.
도 6은 본 발명의 한 실시예에 따른 프로버넌스 관리를 위한 압축 장치의 사전 인코딩 동작에 의해 생성된 숫자열 데이터 프로버넌스의 한 예이다.
도 7은 본 발명의 한 실시예에 따라 생성된 인코딩 프로버넌스 그래프의 한 예이다.
도 8은 본 발명의 한 실시예에 따라 최종 RDF 문서에서 추출되는 그래프 패턴의 예이다.
도 9의 (a)와 (b)는 도 8의 그래프 패턴에서 추출된 반복적인 그래프 패턴이다.
도 10은 본 발명의 한 실시예에 따른 최종 RDF 문서에 대한 데이터 패턴 압축 그래프이다.
도 11은 본 발명의 한 실시예에서 숫자열 데이터 프로버넌스에서 서브 그래프를 추출하는 과정을 도시한다.
도 12는 본 발명의 한 실시예에 따른 기준 패턴의 한 예이다.
도 13은 본 발명의 한 실시예에 따른 패턴 압축된 프로버넌스 그래프의 한 예이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
어떤 구성요소가 다른 구성요소에 "접속되어" 있다거나 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 접속되어 있거나 연결되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 접속되어" 있다거나 "직접 연결되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
그러면 첨부한 도면을 참고로 하여 본 발명의 한 실시예에 따른 프로버넌스 관리를 위한 압축 장치 및 방법에 대하여 설명한다.
본 예에서는 프로버넌스 데이터를 압축하기 위해 프로버넌스 모델(PROV 모델) 기반의 프로버넌스 데이터 압축 방법이 사용된다.
프로버넌스 데이터를 확인하기 위해서는 시간의 흐름이나 정보의 변경 이력을 고려하여 압축해야 하는데, 본 예의 프로버너스 데이터 압축 방법은 RDF 데이터를 표현하기 위해 기존의 PROV 모델을 확장한다.
이때, 확장된 PROV 모델에는 시간이 표기되기 때문에 시간의 흐름에 따라 변경된 것을 확인할 수 있다. 따라서 확장된 PROV 모델을 사용함으로써 데이터의 이력 정보를 고려하여 압축하게 된다. 또한, 시간에 따라 프로버넌스 데이터를 표현하기 때문에 언제 누가 어떤 문서를 수정하였는지 확인할 수 있다.
대부분의 프로버넌스 데이터는 문자열로 구성되기 때문에 사전 인코딩을 통해 숫자 데이터로 변경된다. 확장된 PROV 모델에서 변경될 원본 RDF 문서를 관리하기 때문에 원본 문서가 차지하는 공간이 크게 되므로, 원본 RDF 압축을 통해 각 각의 원본 RDF 문서의 크기를 압축한다.
또한, 전체적인 프로버넌스 데이터의 크기를 감소시키기 위해 프로버넌스 패턴 압축 모듈에서는 PROV 모델의 활동 노드를 기반으로 동일한 순서로 사용되는 패턴을 추출하여 프로버넌스 데이터를 압축한다.
도 1에 도시한 것처럼, 본 발명의 한 실시예에 따른 프로버넌스 관리를 위한 압축 장치(이하, 프로버넌스 관리를 위한 압축 장치를 '프로버넌스 압축 장치'라 함)는 이력 정보와 최종 문서를 입력 받는 프로버넌스 생성부(10), 프로버넌스 생성부(10)에 연결되어 있는 프로버넌스 압축 유닛(20) 및 프로버넌스 압축 유닛(20)에 연결되어 있는 저장부(30)를 구비한다.
프로버넌스 생성부(10)는 이력 정보와 최종 문서를 이용하여 해당 데이터, 즉 최종 문서에 대한 프로버넌스(이하, 해당 데이터에 대한 프로버넌스를 '데이터 프로버넌스'라 함)를 생성한다.
프로버넌스 압축 유닛(20)은 문자열로 이루어진 생성된 데이터 프로버넌스를 숫자열로 인코딩하는 사전 인코딩부(21), 사전 인코딩부(21)와 연결되어 있고 숫자열로 인코딩된 데이터 프로버넌스(이하, '숫자열 데이터 프로버넌스'라 함)에서, 최종 문서를 압축하는 최종 RDF 압축부(22), 그리고 사전 인코딩부(21)와 연결되어 있고 숫자열 데이터 프로버넌스에서 이력 정보를 추출하여 압축하는 프로버넌스 패턴 압축부(23)를 구비한다.
저장부(30)는 프로버넌스 압축 장치의 동작에 필요한 데이터와 정보, 동작 중에 발생된 데이터와 정보 등이 저장되는 저장 매체이다.
본 예에서, 이력 정보와 최종 문서는 모두 RDF 형식로 이루어지는 RDF 데이터 구조를 갖고, 프로버넌스 역시 RDF 형식으로 표현된다. 또한, RED 형식으로 이루어진 문서는 그래프로 표현되므로, 최종 RDF 문서나 원본 RDF 문서와 같은 RDF 문서와 프로버넌스 역시 그래프로 표현된다.
따라서, 사전 인코딩부(21)는 프로버넌스 생성부(10)에서 데이터 프로버넌스가 인가되면 사전 인코딩(encoding) 동작을 통해 문자열 데이터인 데이터 프로버넌스의 데이터를 문자열 데이터에서 숫자 데이터로 인코딩한다.
이처럼, 문자열 데이터가 숫자 데이터로 변경됨에 따라 숫자열 데이터 프로버넌스의 저장 공간이 감소된다.
최종 RDF 압축부(22)는 최종 문서를 압축하여 시맨틱 웹 상의 최종문서[즉, RDF 형태로 이루어진 최종 문서(최종 RDF 문서)]를 압축한다. 이때, 기존의 PROV 모델과는 다르게 최종 문서를 관리한다. 최종 문서는 시맨틱 웹 상의 문서를 의미한다.
최종 RDF 압축부(22)는 사전 인코딩부(21)에서와 같이 인코딩 동작을 실시하지만 사전 인코딩부(10)에서 사용되는 인코딩 방식과는 다른 방식을 이용하여 최종 문서를 인코딩한다.
즉, 최종 문서 압축 시, 주어(S)와 목적어(O)는 같이 인코딩되지만 술어(P)는 따로 인코딩된다. 이때, 동일한 패턴을 검색하고, 검색된 동일한 패턴을 이용하여 최종 문서를 압축한다. 여기서 동일한 패턴이란 주어(S)와 목적어(O)는 상이하더라고 술어(P)의 사용이 동일하면 동일한 패턴으로 간주한다.
마지막으로, 프로버넌스 패턴 압축부(23)는 프로버넌스 그래프에서 PROV 모델의 활동을 기준으로 서브 그래프를 추출한다. 서브 그래프 추출 후, 추출된 서브 그래프의 빈도수에 따라 일정 수치 값 이상이 나오면 패턴화하고, 패턴화된 정보를 통해 최종 그래프를 변경한다.
PROV 모델은 프로버넌스 데이터를 관리하기 위해 W3C에서 제안된 표준 모델이다. PROV 모델은 시맨틱 웹에서 프로버넌스 데이터를 관리하는 방법이 상이할 경우 호환성이 결여될 뿐만 아니라 대부분의 시맨틱 웹 데이터는 표준 규격인 PROV 모델로 표현이 가능하다.
그래서 본 예서는 프로버넌스의 흐름을 나타내기 위해서 PROV 모델을 이용한 프로버넌스 압축 방법이 사용된다.
PROV 모델은 프로버넌스 데이터를 관리하기 위한 모델로서 데이터의 흐름을 나타낸다. 기존의 PROV 모델은 기존의 프로버넌스 데이터를 표현하는데 용이하지만 웹 상의 RDF 문서(즉, RDF 데이터 구조를 갖는 문서)를 표현하는 노드가 없기 때문에 RDF 문서를 표현하기에는 부족하다. 또한, 시간에 흐름에 따라 작성되지만 언제 변경하였는지에 관한 정확한 정보를 표시하지 않는다.
이로 인해, 본 예는 기존의 PROV 모델을 확장하여 메타데이터를 표현하는 부분을 추가한다. 이 과정을 통해 기존 모델과는 달리 시맨틱 웹 상의 RDF 문서의 변경 부분 및 변경된 시간을 알 수 있다.
따라서, 본 예에 따른 프로버넌스 생성부(10)는 도 3에 도시한 확장된 PROV 모델을 사용한다.
확장된 PROV 모델은 이미 설명한 객체(Entity), 활동(Activity) 및 에이전트(Agent)로 이루어진 노드(N11-N13)과 속성들(used, wasGeneratedBy, wasDerivedFrom, wasInformedBy, wasAttributedTo, ActedOneBehalfOf, wasAssociatedWith, time, source)을 구비한 기존의 PROV 모델에서 메타데이터(MetaData)의 노드(N14)를 추가하여 구성된 것으로서, 이로 인해, 확장된 PROV 모델에 의해 생성된 데이터 프로버넌스에는 RDF 문서가 언제 변형되었는지, 무슨 RDF 문서가 변형하였는지에 관한 정보가 추가로 표현된다.
에이전트는 개인과 조직으로 구성되며 해당 활동을 실행한 개인이나 조직을 표현한다.
메타데이터는 시간과 소스로 구성되며 해당 활동이 언제 실행되었는지 어떤 RDF 문서를 수정하였는지를 확인한다.
객체는 RDF 문서를 나타내며, 활동은 해당 RDF 문서에 어떤 작업을 수행하였는지를 나타낸다.
도 3에서, ‘used’ 속성은, 그래프에서, 활동에서 객체로 연결하는 것으로 객체(N11)의 실행에 필요한 객체를 나타낸다.
‘wasGeneratedBy’ 가지(즉, 속성)는 객체에서 활동을 연결한 것으로 활동(N12)으로 인해 나온 결과물인 객체가 해당 활동을 나타낸다.
‘wasDerivedFrom’ 속성은 객체에서 객체를 연결하는 속성이다.
‘wasInformedBy’속성은 하나의 활동에 의해 생성된 객체가 다른 객체와의 교환을 나타내는 속성이며, ‘wasAttributedTo’ 속성은 에이전트가 객체의 영향을 주는 것을 말한다.
‘ActedOneBehalfOf’속성은 에이전트가 특정 에이전트를 대신하는 것을 의미한다. 그 다음으로 에이전트와 활동을 연결하는 속성으로 ‘wasAssociatedWith’가 있다.
‘time’속성은 활동과 메타데이터의 시간을 연결하는 속성으로 해당 활동이 언제 행해졌는지 알 수 있다. ‘source’속성 는 메타데이터의 소스와 활동을 연결하는 속성으로 해당 활동이 행해지는 RDF 문서를 뜻한다.
다음의 [표 1]에 도 3에 도시된 확장된 PROV 모델에서 사용되는 요소들에 대한 정의가 기재되어 있다.
클래스 서브클래스 설명
객체
(entity)
문서
(document)
RDF으로 구성된 문서
에이전트
(agent)
개인
(person)
활동 행하는 개인
조직
(organization)
활동 행하는 조직
활동
(activity)
삽입
(insert)
기존의 문서에서 RDF 데이터가 삽입될 때
삭제
(delete)
기존의 문서에서 RDF 데이터가 삭제될 때
변경
(modify)
기존의 RDF 문서가 새로운 RDF 문서로 변형될 때
버저닝
(revision)
기존의 RDF 문서가 새롭게 버저닝 될 때
메타데이터
(metadata)
시간
(time)
활동이 행해지는 시간
소스
(source)
활동에 의해 추가, 삭제 또는 변경될 RDF 데이터나 RDF 문서
[표 1]에서, 에이전트는, 이미 설명한 것처럼, 개인과 조직으로 나누어지며 실제 활동을 동작하는 주체에 해당한다.
객체는 문서로서 RDF 데이터 구조를 갖는 RDF 문서를 의미한다.
활동은 삽입, 삭제, 변경 및 버저닝의 총 네 개의 요소로 이루어진다.
메타데이터는 실제 활동이 동작할 때 생성되고 시간이나 변경할 문서(즉, 소스)를 나타낸다.
예를 들어, 위키피디아(Wikipedia)의 변경 이력들을 PRVO 모델로 만든다면 객체들은 위키피디아의 페이지를 뜻하고 에이전트는 페이지를 변경하는 개인을 뜻한다. 또한, 활동은 그 페이지에 내용을 추가하거나 새로운 페이지를 생성하는 활동들을 나타내며, 마지막으로 메타데이터에서 시간이란 그 페이지를 수정하거나 추가한 시간을 뜻하고 소스란 변경하였을 경우에는 변경한 내용, 새로 페이지를 추가하였을 때는 새로 추가된 내용을 뜻한다.
다음, 도 4a를 참고로 하여 기존의 PROV 모델을 이용하여 생성된 프로버넌스의 한 예를 설명한다.
도 4a에 도시한 프로버넌스를 참고로 하면, 어떤 문서(도시하지 않음)에 '문서 C'와 '문서 D를 삽입하여 새로운 '문서 F'를 생성하였고 생성된 '문서 F'는 '지은'이라는 개인에 의해 만들어진다.
또한, 도 4a를 살펴보면, 개인인 '선화'에 의해 '문서 F'에 어떠한 내용이 삽입되어 새로운 문서 X가 생성됨을 나타낸다.
하지만, 도 4a의 경우, '문서 F의 어떤 내용이 삽입되어 어떤 부분이 변경되었는지 알 수 없고 또한, 언제 변경되었는지 알 수 없다.
반면, 도 4b는 도 4a의 경우와 동일한 과정을 통해 '문서 F'와 '문서 X'가 생성될 때, 본 예에 따른 확장된 PROV 모델을 이용하여 생성된 데이터 프로버넌스를 도시한다.
즉, 도 4b의 프로버넌스를 참고로 하면, 어떤 문서(도시하지 않음)에 '문서 C'와 '문서 D'를 삽입하여 새로운 '문서 F'를 생성하였고 생성된 '문서 F'는 '지은'이라는 개인에 의해 만들어졌는데, 이때, 시간에 대한 메타데이터(M11)와 소스에 대한 메타데이터(M12)로 인해 '문서 F'는 2015년 09월 02일에 만들어졌고, RDF데이터가 추가되었음을 알 수 있다.
또한, 새로 생성된 '문서 F'에 메타데이터(M21, M22)와 같이 2015년 09월 03일에 해당 RDF 데이터를 개인인 '선화'에 의해 추가되어 새로운 '문서 X'가 생성됨을 알 수 있다.
이미 설명한 것처럼, 소스를 나타내는 메타데이터(M12, M22)를 이용하여 RDF 데이터가 표현되고, 시간을 나타내는 메타데이터(M11, M21)를 이용하여 변경된 시간을 기록하여 해당 프로버넌스 데이터가 언제 생성되었는지 확인하게 된다.
이처럼, 본 예의 경우, 프로버넌스 생성부(10)는 시간과 소스를 나타내는 메타데이터 노드를 추가로 추가하여 해당 문서(또는 데이터)에 대한 데이터 프로버넌스를 생성하여 프로버넌스 압축 유닛(20)으로 인가한다(S10).
이미 설명한 것처럼, 데이터 프로버넌스는 원본 데이터에 비해 수십 배에 달하는 대용량 데이터로 구성되며 문자열 데이터로 이루어져 있다.
예를 들어, 위키피디아의 경우를 살펴보면, 한 페이지에도 여러 명의 사용자가 내용을 변경한 것이 문자열 데이터로 나타내진다. 그렇기 때문에 해당 데이터 프로버넌스의 문자열 데이터를 저장할 경우 많은 저장 공간이 필요하다.
따라서, 이미 설명한 것처럼, 사전 인코딩부(21)는 데이터 프로버넌스의 문자열 데이터를 숫자 데이터로 변경한다(S20).
이를 위해, 사전 인코딩부(21)는 입력된 프로버넌스 데이터를 분석하여 각 노드들과 가지들을 인코딩한다.
활동 노드의 수와 속성의 수는 다른 노드의 수에 비해 적은 개수를 가지고 있고, 프로버넌스 패턴 압축 시 활동 노드를 기반으로 압축하기 때문에 에이전트 노드, 메타데이터 노드 및 객체 노드를 인코딩하여 인코딩한 값을 저장한 데이터 테이블, 활동 노드를 인코딩하여 인코딩한 값을 저장한 활동 테이블, 속성을 인코딩하여 인코딩한 값을 저장한 술어 테이블로 나눠서 총 3개의 테이블에 인코딩 값을 저장한다.
이들 데이터 테이블, 활동 테이블 및 술어 테이블은 저장부(30)에 저장되거나 사전 인코딩부(21)에 저장될 수 있다.
사전 인코딩에서는 입력된 프로버넌스 데이터를 분석하여 텍스트 인코딩을 통해 데이터를 인코딩한다.
텍스트 인코딩은 3개의 인코딩 방식으로 구분된다.
즉, 텍스트 인코딩은 입력된 순서로 인코딩이 되며 처음 데이터가 입력되면 데이터를 분석하여 인코딩 테이블에 이미 인코딩된 데이터가 있는지 확인한다. 확인 후 인코딩된 데이터가 없으면 술어 테이블, 활동 테이블 및 데이터 테이블에 각각 해당하는 노드와 속성에 대한 데이터를 각각 인코딩하여 저장한다.
도 5와 같은 데이터 프로버넌스가 사전 인코딩 유닛(21)에 입력되는 경우를 가정한다.
도 5에 도시한 데이터 프로버넌스를 참고로 하면, 기존 '문서 B'에 메타데이터(M31)에 대응하는 DF 문서가 삽입되어 새로운 '문서 A'가 생성됨을 알 수 있다.
이처럼, 해당 형태의 데이터 프로버넌스가 입력되면 사전 인코딩부(21)는 저장부(30)에 저장되어 있는 사전 인코딩 테이블을 검색한다.
[표 2]는 저장부(30)에 저장된 사전 인코딩 테이블의 한 예이다. 만약 문서 A를 인코딩을 하면 우선적으로 사전 인코딩 테이블에서 데이터를 확인한 후 해당 데이터가 없을 경우 새로 ID를 부여한다. 새로운 ID로 인코딩 할 때는 |ID+1|을 한다.
사전 인코딩부(21)에서 텍스트 인코딩을 통해 문자열을 숫자로 변환하는 인코딩함으로써 프로버넌스 데이터의 저장량이 감소된다. [표 2]의 사전 인코딩된 데이터와 같이 '문서 B'는 1, '2015.09.01.'은 2번에 인코딩된다. 추가적으로 입력된 '문서 A'의 ID는 데이터 테이블의 마지막 ID인 2에서 1을 더하여 3이 된다. 또한, 활동테이블은 별도의 테이블로 따로 사전 인코딩되기 때문에 삽입의 경우 기존의 변경이 ID가 1이기 때문에 ID는 2가 부여된다.
ID 스트링(string) 서브클래스
1 문서 B 데이터
2 2015.09.01
3 문서 A
4 지은
5 [a z b] [a y c]
1 변경 활동
2 삽입
1 used 술어
2 wasAssociatedWith
3 time
4 source
5 wasGeneratedBy
위의 [표 2]와 같은 사전 인코딩 테이블에서, 각 해당 테이블(즉, 데이터 테이블, 활동 테이블 및 술어 테이블)에 해당하는 대상이 식별 번호(ID)를 순차적으로 '1'씩 증가시키면서 저장된다.
데이터 테이블에는 객체 노드, 에이전트 노드 및 메타데이터 노드의 정보가 저장되고, 활동 테이블에는 활동 노드에 대한 정보가 저장되며, 술어 테이블에는 속성 정보가 저장된다.
사전 인코딩된 데이터는 그래프와 인코딩에 반영된다.
[표 2]와 같은 형태로 각 노드와 속성 등이 숫자열 데이터로 변경하면, 도 6와 같이 노드와 속성 등과 같은 PROV 모델의 모든 구성 요소들이 대응하는 숫자로 표기되는 숫자열 데이터 프로버넌스가 생성되어 프로버넌스 압축 유닛(20)으로 입력된다.
확장된 PROV 모델을 통해 생성된 데이터 프로버넌스에서는 변경할 RDF 데이터도 관리하고 있다.
또한, RDF 데이터는 수많은 트리플로 구성되어 있기 때문에 많은 용량을 차지한다. 이에 따라, RDF 데이터가 대용량일 경우 많은 저장 공간을 차지하므로 압축 저장한다. 또한, 일반적으로 RDF 데이터는 주어와 목적어에 비해 술어의 양이 적다.
따라서, 본 예의 경우, 최종 RDF 데이터(예, 최종 문서)에서 술어를 기준으로 동일한 술어 패턴을 가지는 RDF 그래프를 패턴으로 만든다.
해당 패턴에 포함된 변수는 저장부(30)에 변수 테이블을 만들어 관리하고, 만들어진 패턴으로 각각의 최종 RDF 데이터를 변환하여 압축 저장한다.
이를 위해 최종 RDF 압축부(22)는 도 2와 같이 RDF 데이터 분석 단계(S311)와 텍스트 인코딩 단계(S312)로 이루어진 RDF 인코딩 단계(S31)와 패턴 추출 단계(S321)와 최종 문서 패턴 압축 단계(S322)로 이루어진 RDF 패턴 압축 단계(S32)를 구비하는 최종 RDF 압축 단계(S20)를 실시한다.
처음 메타데이터에서 소스가 가리키고 있는 최종 문서(즉, 최종 RDF 문서)가 존재하며, 이 최종 문서는 시맨틱 웹 상의 문서를 뜻한다.
처음 메타데이터에 의해 최종 RDF 문서가 입력되면 RDF 데이터 분석 단계(S311)를 통해 문자열 데이터가 숫자 데이터로 변경된다.
이러한 숫자 데이터로의 변환 동작은 사전 인코딩부(21)에서 행해지는 인코딩 방식과 다른 방식으로 행해진다.
즉, 사전 인코딩부(21)는 입력된 순으로 순차적으로 데이터가 인코딩 되지만 최종 RDF 압축부(22)는 주어와 목적어는 동일하게 숫자열로 인코딩하고 술어만 따로 숫자열로 인코딩한다. 인코딩된 최종 RDF 문서는 RDF 패턴 압축을 통해 압축된다. RDF 패턴 압축에서는 동일한 술어를 사용한 경우 패턴으로 만들어 저장부(30)에 압축 저장한다.
이러한 최종 RDF 압축부(22)의 동작을 좀더 상세히 설명한다.
최종 RDF 압축부(22)는 해당 데이터가 입력되면 저장부(30)에 저장되어 있는 최종 RDF 데이터 인코딩 테이블에서 해당하는 인코딩 ID가 있는지 검색한다. 만약 최종 RDF 데이터 인코딩 테이블에 해당 인코딩 ID가 존재하지 않을 경우 마지막 ID에서 더하기 1을 하여 인코딩한다.
이미 설명한 것처럼, 사전 인코딩 기법과 달리, 최종 RDF 압축부(22)의 인코딩은 주어와 목적어가 같이 인코딩되고 술어만 구별하여 인코딩되므로, 동사는 들어온 순서대로 각각 인코딩을 하고 주어와 목적어는 함께 인코딩한다.
다음, [표 3]에 최종 RDF 압축부(21)의 RDF 데이터 분석 단계의 동작을 통해 생성된 최종 RDF 데이터 인코딩 테이블의 한 예를 도시한다.
[표 3]에서 서브 클래스 '주어, 목적어' 부분의 스트링 부분에 기재된 요소들(A, B, G, C, O, X, P, J, Q, S, H, K, V)은 최종 RDF 문서에서 주어나 목적어로 사용된 단어(즉, 명사)(예를 들어, 논문, 김영철 등)이고, '술어' 부분의 스트링 부분에 기재된 요소들(D, F, G, Q, W, S)은 최종 RDF 문서에 술어로 사용되는 동사(예, 제출하다, 작성하다 등)이지만, 도시의 편의를 위해 이들 명사와 동사를 알파벳으로 도시한다.
서브클래스 ID 스트링 ID 스트링
주어, 목적어 1 A 8 P
2 B 9 J
3 G 10 Q
4 C 11 S
5 O 12 H
6 W 13 K
7 X 14 V
술어 1 D 5 Q
2 F 6 W
3 G 7 S
4 P 8 X
[표 3]을 참고로 하면, 최종 RDF 문서에서는 총 14의 다른 주어나 목적어 (A, B, G, C, O, X, P, J, Q, S, H, K, V)가 기재되어 있고, 총 8의 동사가 기재되어 있음을 알 수 있다.
예를 들어, [표 3]에서 A가 이미 저장부(30)에 저장되어 있는 기존의 최종 RDF 데이터 인코딩 테이블에 존재할 경우, 기존의 테이블에 있는 것을 가져와 사용하지만 기존의 테이블에 존재하지 않는 주어나 목적어가 나타나면(예, K) 기존 테이블의 마지막 ID의 값(예, 12)에서 더하기 1(12+1=13)을 하여 새로운 값(13)을 갖는 ID로 인코딩된다.
술어의 경우, 반복적으로 나타나는 데이터가 많을 경우에도 한 번씩만 ID가 부여된다. 예를 들어, 술어 'D'와 'F'는 반복적으로 추출되더라고, 술어 'D'에는 1의 값을 갖는 ID가 부여되고 'F'에는 '2'의 값의 ID가 부여된다.
이처럼, 최종 RDF 문서가 분석되어 최종 RDF 데이터 인코딩 테이블이 작성되면(S311), 최종 RDF 압축부(22)는 텍스트 인코딩 단계(S312)로 넘어가 인코딩된 데이터를 이용한 프로버넌스 그래프(즉, 인코딩 프로버넌스 그래프)를 재작성한다.
인코딩 프로버넌스 그래프의 한 예를 도 7에 도시한다. 일반적으로 알려진 것처럼, 도 7에서, 각 노드의 값은 '주어, 목적어' 부분에 부여된 해당하는 ID의 값이고, 두 노드 사이에 연결된 화살표의 방향은 해당 스트링이 주어나 목적어냐에 따라 정해지며, 화살표 위에 기재되는 숫자는 '술어' 부분에서 부여된 해당하는 ID의 값이다.
RDF 데이터는 동사의 개수가 주어와 목적어의 개수보다 적고, 동일한 패턴의 동사를 가지는 특징이 있다. 이때, 동일한 패턴이란 주어와 목적어의 변수만 상이하고 동사의 순서가 동일한 것을 의미한다. 본 예에서는 이러한 특성을 이용하여 동일한 패턴이 나온 경우 주어와 목적어를 변수로 두어 패턴으로 추출한다.
따라서, 최종 RDF 압축부(22)는 패턴 추출 단계(S321)에서 인코딩 프로버넌스 그래프를 이용하여 반복적으로 나타나는 그래프 패턴을 추출하고, 반복적으로 사용되고 있는 횟수가 설정 횟수 이상인 그래프 패턴을 저장부(30)의 패턴 저장부에 저장한다.
도 8에, 한 예로서, 최종 RDF 문서에서 추출될 수 있는 그래프 패턴을 나타낸다. 도 8에서, 세 번 반복적으로 사용되고 있는 그래프 패턴 1(pattern1)은 동사 1과 동사 2이 반복되어 사용되고 있고, 두 번 반복되는 그래프 패턴 2(pattern2)는 동사 4와 동사 5가 반복되게 사용되고 있다.
따라서, 도 9의 (a)와 (b) 처럼 두 개의 반복적인 그래프 패턴(pattern1, pattern2)이 추출되고, 이때, 추출된 그래프 패턴의 형태와 반복 횟수는 [표 4]와 같은 형태의 패턴 통계 테이블로 저장부(30)에 저장된다.
그래프 패턴 번호(ID) 반복 횟수
pattern 1 3
pattern 2 3
패턴화하여 저장되는 그래프 패턴은 동사가 동일하게 사용됨으로 주어와 목적어만 변수로 관리하면 되므로, 추출된 그래프 패턴(pattern1, pattern2)의 각 노드에 대한 정보(주어 또는 목적어)는 [표 5]와 같은 형태의 그래프 패턴 변수 테이블에 저장된다.
[표 5]는 도 9의 (a)에 도시한 그래프 패턴 1(pattern1)에 대한 그래프 패턴 변수 테이블의 일 예이다.
변수 그래프 패턴을 찾은 순서 ID
?x 1 1
2 3
3 9
?y 1 4
2 1
3 10
?z 1 2
2 12
3 8
[표 5]을 참고로 하면, 그래프 패턴 1을 찾은 순서대로, 노드(?x)에 들어가는 정보(즉, 주어나 목적어)는 식별번호(ID) 1, 3, 9를 갖는 정보(표 3을 참고로 하면, A, G, J)이고, 노드(?y)에 들어가는 정보는 식별번호(ID) 1, 2, 3를 갖는 정보(표 3의 경우, A, B, G)이며, 노드(?z)에 들어가는 정보는 식별번호(ID) 2, 12, 8를 갖는 정보(표 3의 경우, B, H, P)이다.
이와 같은, 그래프 변수 테이블이 생성되면, 최종 RDF 압축부(22)는 최종 문서 패턴 압축 단계(S322)로 넘어가 추출된 반복되는 그래프 패턴(pattern1, pattern2)을 이용하여 최종 RDF 문서에 대한 데이터 패턴 압축 그래프(도 10 참조)를 생성한다.
최종 RDF 문서에 대한 프로버넌스는 데이터 압축 그래프로 압축되어 저장된다.
이미 설명한 것처럼, 추출된 각 그래프 패턴에 해당하는 데이터는 그래프 패턴 변수 테이블에 저장되고 각 그래프 패턴 ID는 그래프 패턴 변수 테이블과 패턴 통계 테이블에 의해 저장되어 관리되므로, 최종적으로, 최종 RDF 압축부(22)는 추출된 반복되는 그래프 패턴을 기준으로 변경된 노드로 저장하여 최종 RDF 문서의 그래프를 압축 저장한다(도 10 참조). 이때, [표 5]에 도시된 테이블을 기준으로 그래프 패턴의 이름이 정해지는데, 그래프 패턴의 이름과 함께 순서에 따라 이름이 정해진다.
프로버넌스 데이터를 처리하는 패턴은 동일하게 반복되는 경우가 많다. 예를 들어, 문서 사용의 패턴을 보면 그 문서를 생성한 후 사용자들이 사용하다가 필요한 부분을 변경 하는 등 여러 가지의 문서에 대해 유사하거나 동일한 사용 패턴을 보인다. 따라서, 본 예의 프로버넌스 패턴 압축부(23)는 이를 이용하여 반복되는 사용 패턴을 추출하여 압축 저장한다.
최종 RDF 압축부(22)와 비교 시, 프로버넌스 패턴 압축부(23)의 압축 동작은 처리되는 대상만 상이할 뿐 최종 RDF 압축부(22)와 실질적으로 동일한 방식으로 압축되지만, 압축할 때의 규칙이 다르다.
최종 RDF 압축부(22)에서는 술어를 기준으로 동일한 패턴을 추출하지만 프로버넌스 패턴 압축부(23) 에서는 활동 노드를 기준으로 동일한 패턴을 추출한다.
처음 사전 인코딩부(21)에서 출력되는 문자열 데이터가 숫자 데이터로 변경된 숫자열 데이터 프로버넌스가 프로버넌스 패턴 압축부(23)로 입력되면, 프로버넌스 패턴 압축부(23)는 숫자열 데이터 프로버넌스에서 활동(activity)을 기준으로 서브 그래프를 생성한다(S41).
다음, 프로버넌스 패턴 압축부(23)는 생성된 서브 그래프를 저장부(30)의 서브 그래프 통계 테이블에 저장하고 동일하게 반복되는 서브 그래프를 추출한다(S42).
예를 들어, 문서의 이력 중 '삽입'이라는 활동 뒤에 항상 '변경'이 일어나면, '삽입'과 '변경' 순으로 표현된 프로버넌스 그래프를 서브 그래프로 추출한다.
이때, 프로버넌스 패턴 압축부(23)는 추출된 해당 서브 그래프의 출현 횟수와 설정 횟수를 비교하여 출현 횟수가 설정 횟수 이상이면 해당 서브 그래프를 기준 패턴이라 명하고 이를 압축하여 저장부(30)에 저장한다.
도 11은 숫자열 데이터 프로버넌스에서 서브 그래프를 추출하는 과정을 나타낸다. 도 11에 도시한 것처럼 활동 데이터를 기준으로 서브 그래프가 생성되고, 서브 그래프가 생성된다.
반복되는 패턴을 갖는 서브 그래프를 추출할 때, 최근에 사용되지 않는 패턴(즉, 정해진 시간 동안 사용되지 않는 패턴)은 저장부(30)에서 삭제한다.
반복되는 서브 그래프가 설정 횟수 이상 추출되면, 해당 서브 그래프에 관련된 통계 데이터는 저장부(30)에 저장되어 있는[표 6]과 같은 형태의 서브 그래프 통계 테이블에 기록된다.
서브 그래프 반복 횟수
sub1 2
sub2 1
sub3 1
sub4 1
이처럼, 서브 그래프가 생성된 뒤 각 서브 그래프의 횟수 정보는 서브 그래프 통계 테이블로 관리된다.
[표 6]과 같이, 서브 그래프 통계 테이블에는 서브 그래프가 나타난 횟수가 기록되며, 이미 설명한 것처럼 나타난 횟수가 설정 횟수 이상이면 기준 패턴으로 압축된 후 저장부(30)에 저장된다. 이때, 설정 횟수는 한계 값으로 지정되며 처리 데이터에 따라 이 값은 변경된다. 도 11에서 추출 될 수 있는 모든 서브 그래프는 서브 그래프 통계 테이블에 계수된다.
도 12에 기준 패턴의 한 예를 도시한다.
이처럼, 기준 패턴이 생성되면, 프로버넌스 패턴 압축부(23)는 그림 13와 같이 패턴 압축된 후 저장된다(S43).
도 13은 본 예에 따라 패턴 압축된 프로버넌스 그래프이다.
본 예의 경우, 추출된 서브 그래프 중 동일한 서브 그래프가 나오면 반복되는 서브 그래프를 기준 패턴으로 하여 저장한다. 기준 패턴으로 생성되며 표 7과 같이 스트링 데이터로 변환되어 저장된다. 최종 결과는 기준패턴으로 변환된 노드로 저장하여 프로버넌스 데이터의 그래프를 압축 저장한다.
기준패턴1-1 기준패턴1-2 기준패턴2-1 기준패턴2-1
문서C/문서F/문서X 문서W/문서Q/문서P 문서A/문서P/문서V 문서K/문서Y/문서F
[표 7]에서, 기준 패턴은 두 개(기준패턴1, 기준패턴 2)이고, 첫 번째로 나타난 기준 패턴1(기준패턴1-1)은 문서 C, 문서 F 및 문서 X가 관련되어 있고, 기준 패턴은 두 개(기준패턴1, 기준패턴 2)이고, 첫 번째로 나타난 기준 패턴1(기준패턴1-1)은 문서 C, 문서 F 및 문서 X가 관련되어 있고, 두 번째로 나타난 기준 패턴1(기준패턴1-2)은 문서 W, 문서 Q 및 문서 P가 관련되어 있다.
또한, 첫 번째로 나타난 기준 패턴2(기준패턴2-1)은 문서 A, 문서 P 및 문서 V가 관련되어 있고, 두 번째로 나타난 기준 패턴2(기준패턴2-2)은 문서 K, 문서 Y 및 문서 F가 관련되어 있다.
이와 같이, 최종 RDF 문서 자체에 대한 처리를 최종 RDF 압축부(22)서 이루어지고, 최종 RDF 문서의 이력 정보에 대한 처리는 프로버넌스 패턴 압축부(23)에서 행해져, 최종 RDF 문서와 이력 정보의 관리 동작이 별개로 이루어진다.
기존의 PROV 모델은 변경한 시간과 변경된 원본 RDF 문서를 표현하지 못하기 때문에, 본 예에서는 프로버넌스 데이터를 표현하기 위해 기준의 PRVO 모델을 확장한 확장된 PROV 모델을 이용하여 대용량의 RDF 프로버넌스 데이터를 관리하기 위한 압축 방법을 제안한다.
또한, 프로버넌스 데이터가 문자열 데이터로 표현되기 때문에 사전 인코딩을 통해 PROV 모델의 모든 데이터를 숫자 데이터로 저장하고, 이로 인해, 사전 인코딩을 통해 문자열 데이터를 숫자 데이터로 저장함으로써 저장량이 감소된다.
또한, 기존의 PROV 모델과는 달리 확장된 PROV 모델에서는 변경되거나 추가될 최종 RDF 문서를 다루고 있으므로 이력 추적이 용이하다.
더욱이, 본 예는 기존의 PROV 모델과 달리 최종 RDF 문서를 관리하기 때문에 최종 RDF 문서의 저장 공간이 많이 차지하는 것을 방지하기 위해 원본 RDF 압축을 통해 원본 RDF 문서를 압축한다.
마지막으로, 본 예의 경우, PROV 모델에서 데이터 활동 노드의 중복되는 부분은 서브 그래프로 만들어 압축 저장함으로써 데이터의 사용 이력을 고려하여 프로버넌스 데이터를 압축한다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
10: 프로버넌스 생성부 20: 프로버넌스 압축 유닛
21: 사전 인코딩부 22: 최종 RDF 압축부
23: 프로버넌스 패턴 압축부 30: 저장부

Claims (5)

  1. 이력 정보와 최종 문서를 입력받아 프로버넌스 모델을 이용하여 데이터 프로버넌스를 생성하는 프로버넌스 생성부,
    상기 프로버넌스 생성부와 연결되어 있고, 상기 데이터 프로버넌스의 문자열 데이터를 숫자열 데이터로 사전 인코딩하여 사전 인코딩 테이블에 저장하고 숫자열 데이터 프로버넌스를 출력하는 사전 인코딩부,
    상기 사전 인코딩부와 연결되어 있고, 상기 숫자열 데이터 프로버넌스를 입력받아 주어와 목적어를 함께 숫자열로 인코딩하고 술어만을 따로 숫자열로 인코딩하여 최종 RDF 데이터 인코딩 테이블에 저장하고, 상기 최종 RDF 데이터 인코딩 테이블에 저장된 데이터를 이용하여 인코딩 프로버넌스 그래프를 생성하며, 생성된 인코딩 프로버넌스 그래프를 이용하여 반복되는 그래프 패턴을 추출한 후, 추출된 그래프 패턴의 반복 횟수를 패턴 통계 테이블에 저장하고, 추출된 그래프 패턴을 찾은 순서에 대응하게 추출된 그래프 패턴의 각 노드에 대한 주어나 목적어를 그래프 패턴 변수 테이블에 저장하고, 상기 그래프 패턴 변수 테이블에 저장된 값을 이용하여 최종 문서에 대한 데이터 패턴 압축 그래프를 생성하는 최종 RDF 압축부, 그리고
    상기 사전 인코딩부와 연결되어 있고, 상기 숫자열 데이터 프로버넌스를 입력받아 숫자열 데이터 프로버넌스의 활동 노드를 기준으로 하여 상기 숫자열 데이터 프로버넌스에서 반복되는 패턴을 갖는 서브 그래프를 생성하고, 반복되는 패턴을 갖는 서브 그래프의 출현 횟수 정보를 서브 그래프 통계 테이블에 저장하며, 상기 반복되는 패턴을 갖는 서브 그래프의 출현 횟수가 설정 횟수 이상 나타나면, 상기 반복되는 패턴을 갖는 서브 그래프를 기준 패턴으로 정하고 이를 압축하여 저장하는 프로버넌스 패턴 압축부
    를 포함하는 프로버넌스 관리를 위한 압축 장치.
  2. 제1항에서,
    상기 프로버넌스 모델은 객체 노드, 에이전트 노드, 활동 노드 및 시간에 대한 정보와 소스에 대한 정보를 구비한 메타데이터 노드를 포함하는 프로버넌스 관리를 위한 압축 장치.
  3. 제1항에서,
    사전 인코딩부는 에이전트 노드, 메타데이터 노드 및 객체 노드를 인코딩하하여 인코딩 값을 데이터 테이블에 저장하고, 활동 노드를 인코딩하여 인코딩 값을 활동 테이블에 저장하며, 속성을 인코딩하여 인코딩 값을 술어 테이블에 저장하는 프로버넌스 관리를 위한 압축 장치.
  4. 이력 정보와 최종 문서를 입력받아 프로버넌스 모델을 이용하여 데이터 프로버넌스를 생성하는 단계,
    상기 데이터 프로버넌스의 문자열 데이터를 숫자열 데이터로 사전 인코딩하여 사전 인코딩 테이블에 저장하고 숫자열 데이터 프로버넌스를 출력하는 단계,
    상기 숫자열 데이터 프로버넌스를 입력받아 주어와 목적어를 함께 숫자열로 인코딩하고 술어만을 따로 숫자열로 인코딩하여 최종 RDF 데이터 인코딩 테이블에 저장하고, 상기 최종 RDF 데이터 인코딩 테이블에 저장된 데이터를 이용하여 인코딩 프로버넌스 그래프를 생성하는 단계,
    생성된 인코딩 프로버넌스 그래프를 이용하여 반복되는 그래프 패턴을 추출한 후, 추출된 그래프 패턴의 반복 횟수를 패턴 통계 테이블에 저장하고, 추출된 그래프 패턴을 찾은 순서에 대응하게 추출된 그래프 패턴의 각 노드에 대한 주어나 목적어를 그래프 패턴 변수 테이블에 저장하는 단계, 그리고
    상기 그래프 패턴 변수 테이블에 저장된 값을 이용하여 최종 문서에 대한 데이터 패턴 압축 그래프를 생성하는 단계
    를 포함하는 프로버넌스 관리를 위한 압축 방법.
  5. 제4항에서,
    상기 프로버넌스 모델은 객체 노드, 에이전트 노드, 활동 노드 및 시간에 대한 정보와 소스에 대한 정보를 구비한 메타데이터 노드를 포함하는 프로버넌스 관리를 위한 압축 방법.
KR1020160053651A 2016-05-01 2016-05-01 프로버넌스 관리를 위한 압축 장치 및 방법 KR101783791B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160053651A KR101783791B1 (ko) 2016-05-01 2016-05-01 프로버넌스 관리를 위한 압축 장치 및 방법
PCT/KR2016/013271 WO2017191877A1 (ko) 2016-05-01 2016-11-17 프로버넌스 관리를 위한 압축 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160053651A KR101783791B1 (ko) 2016-05-01 2016-05-01 프로버넌스 관리를 위한 압축 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101783791B1 true KR101783791B1 (ko) 2017-10-11

Family

ID=60139054

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160053651A KR101783791B1 (ko) 2016-05-01 2016-05-01 프로버넌스 관리를 위한 압축 장치 및 방법

Country Status (2)

Country Link
KR (1) KR101783791B1 (ko)
WO (1) WO2017191877A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727683A (zh) * 2019-09-30 2020-01-24 杭州久益机械股份有限公司 一种分布式压缩机状态监测数据编码方法及监测方法
KR20220094797A (ko) * 2020-12-29 2022-07-06 케이웨어 (주) 메타정보를 관리하는 데이터 관리 서버 및 그 제어방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4199361A1 (en) * 2021-12-17 2023-06-21 Dassault Systèmes Compressed graph notation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120179510A1 (en) 2008-11-06 2012-07-12 International Business Machines Corporation Processing of provenance data for automatic discovery of enterprise process information
US20130238316A1 (en) 2012-03-07 2013-09-12 Infosys Limited System and Method for Identifying Text in Legal documents for Preparation of Headnotes

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126399A1 (en) * 2006-06-29 2008-05-29 Macgregor Robert M Method and apparatus for optimizing data while preserving provenance information for the data
US9053437B2 (en) * 2008-11-06 2015-06-09 International Business Machines Corporation Extracting enterprise information through analysis of provenance data
US9069808B2 (en) * 2009-05-20 2015-06-30 International Business Machines Corporation Indexing provenance data and evaluating provenance data queries in data processing systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120179510A1 (en) 2008-11-06 2012-07-12 International Business Machines Corporation Processing of provenance data for automatic discovery of enterprise process information
US20130238316A1 (en) 2012-03-07 2013-09-12 Infosys Limited System and Method for Identifying Text in Legal documents for Preparation of Headnotes

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727683A (zh) * 2019-09-30 2020-01-24 杭州久益机械股份有限公司 一种分布式压缩机状态监测数据编码方法及监测方法
CN110727683B (zh) * 2019-09-30 2024-04-26 杭州久益机械股份有限公司 一种分布式压缩机状态监测数据编码方法及监测方法
KR20220094797A (ko) * 2020-12-29 2022-07-06 케이웨어 (주) 메타정보를 관리하는 데이터 관리 서버 및 그 제어방법
KR102597181B1 (ko) * 2020-12-29 2023-11-02 케이웨어 (주) 메타정보를 관리하는 데이터 관리 서버 및 그 제어방법

Also Published As

Publication number Publication date
WO2017191877A1 (ko) 2017-11-09

Similar Documents

Publication Publication Date Title
US9201956B2 (en) Patent mapping
CN112037920A (zh) 医疗知识图谱构建方法、装置、设备及存储介质
CN106991276B (zh) 一种基于openEHR模板的数据接口动态生成方法
JP2017513134A (ja) オントロジーマッピング方法及び装置
JP4862072B2 (ja) 設計チェック知識構築方法及びシステム
DE112018006345T5 (de) Abrufen von unterstützenden belegen für komplexe antworten
CN101710343A (zh) 一种基于文本挖掘的本体自动构建系统及方法
JP2017521748A (ja) 推定オントロジを生成する方法及び装置
US20110184959A1 (en) Summarizing medical content with iterative simplification rules
US10666731B2 (en) IRC-infoid data standardization for use in a plurality of mobile applications
KR101783791B1 (ko) 프로버넌스 관리를 위한 압축 장치 및 방법
Jin et al. Foofah: A programming-by-example system for synthesizing data transformation programs
AU2013270517B2 (en) Patent mapping
Kamalabalan et al. Tool support for traceability of software artefacts
CN113486187A (zh) 佛学知识图谱构建方法、装置、设备及存储介质
Lesmo et al. TULSI: an NLP system for extracting legal modificatory provisions
CN111951079A (zh) 一种基于知识图谱的信用评级方法、装置及电子设备
CN111831624A (zh) 数据表创建方法、装置、计算机设备及存储介质
Rajbhoj et al. A RFP system for generating response to a request for proposal
Ouaret et al. AuMixDw: Towards an automated hybrid approach for building XML data warehouses
Mao et al. Dynamic sub-ontology evolution for traditional Chinese medicine web ontology
Margitus et al. RDF versus attributed graphs: The war for the best graph representation
KR101107582B1 (ko) 웹기반의 온톨로지 편집 운영 시스템
Gultom et al. Implementing web data extraction and making Mashup with Xtractorz
Kiong et al. Health Ontology Generator: Design And Implementation

Legal Events

Date Code Title Description
GRNT Written decision to grant