TDB란?
TDB는 RDF 저장 및 쿼리를 위한 Jena의 구성 요소이며 모든 Jena의 API를 지원함.
TDB는 단일 머신에서 고성능 RDF 저장소로 사용될 수 있음.
제공된 명령 줄 스크립트와 Jena API를 통해 TDB 저장소에 액세스하고 관리 할 수 있음.
TDB는 트랜잭션을 사용하여 액세스하면 TDB 데이터 세트가 손상되거나 예기치 않은 프로세스 종료나 시스템 충돌로부터 보호된다.
TDB 데이터 세트는 한번에 하나의 JVM에서만 직접 액세스 해야함. 그렇지 않으면 데이터가 손상될 수 있음.
여러 애플리케이션 간에 TDB 데이터 세트를 공유하려면 영구 스토리지에 TDB를 사용할 수 있는 SPARQL 서버를 제공하고, http를 통한 쿼리, 업데이트 및 REST 업데이트를 위한 SPARQL 프로토콜을 제공하는 Fuseki 컴포넌트를 사용해야함.
TDB의 파일 시스템에는 3가지로 구성된 데이터 세트가 저장된다.
- 노드 테이블
- 트리플과 쿼드 인덱스
- Prefixes 테이블
노드 테이블
Node Table에는 RDF 용어 표현이 저장된다. Node에서 NodeID, NodeID에서 Node로 두가지 매핑을 제공하는데 이것을 사전이라고 함.
Node에서 NodeId로의 매핑은 데이터를 로딩할 때 사용되는데, Jena Node Representation에서 TDB 특정 내부 ID로 쿼리를 변환할 때 사용된다.
NodeID에서 Node로의 매핑은 TDB NodeID로 표현된 쿼리 결과를 Jena Node Representation으로 변환하고, Jena Node Representation이 테스트에 필요한 경우(ex: 정규식) 필터가 적용될 때 사용된다.
노드 테이블 구현은 일반적으로 큰 캐시를 제공한다. NodeID 대 Node 매핑은 쿼리 처리에 많이 사용된다.
NodeID는 8 byte정도 한다.
트리플과 쿼드 인덱스
쿼드는 명명된 그래프에 사용되고, 트리플은 기본 그래프에 사용된다.
트리플은 트리플 인덱스에서 3개의 튜플 NodeID로, 쿼드는 4개의 튜플로 유지된다.
Prefixes Table
Prefixes Table은 노드 테이블과 GPU에 대한 인덱스( 그래프 -> 접두사 -> URI)를 사용한다. 접두사 테이블은 쿼리 처리에는 사용되지 않고, RDF/XML 또는 Turtle에서 트리플의 Presentation과 트리플의 직렬화를 위한 Jena의 PrefixMapping을 지원한다.
https://jena.apache.org/documentation/tdb/
자세한 내용은 TDB 위키를 참조하길 바란다.
'Java > RDF&Jena' 카테고리의 다른 글
[Ontology] 온톨로지란? 시맨틱 웹의 기초 (0) | 2020.03.30 |
---|---|
Jena TDB CRUD 사용 (0) | 2020.03.27 |
[RDF] Parse error: Bad character in IRI(space) 해결 방법 (0) | 2020.03.27 |
[Jena] Apache Jena Fuseki 리눅스 설치 방법 (0) | 2020.03.27 |
Jena SPARQL 사용 방법 및 소스 코드 (0) | 2020.03.20 |