티스토리 뷰
TBC에서 RDF 파일을 TDB에 임포트 하는 과정을 지난 포스팅에서 이야기했었다.
https://joyhong.tistory.com/90
그런데 과연 TBC에서 만들어진 TDB의 내용이 다른 애플리케이션에서도 사용이 가능한지에 대한 의구심에서
직접 Java API를 사용하여 TDB에 적재된 내용을 확인해보고자 한다.
TDB를 사용하는 기본 사용법이라고도 볼 수 있다.
우선 나는 이클립스를 주로 사용하기 때문에 이클립스를 준비하고, gradle 프로젝트를 하나 생성한다.
gradle 프로젝트가 생성되면 build.gradle 파일에 의존성을 주입해야 한다.
메이븐 리파지토리 사이트에서 Jena에 대한 것을 검색하면
Apache Jena Core 와 Apache Jena TDB1(Native Triple Store) 를 찾을 수 있다.
이 두개를 복사하여 build.gradle에 입력한다.
// https://mvnrepository.com/artifact/org.apache.jena/jena-tdb compile group: 'org.apache.jena', name: 'jena-tdb', version: '3.13.1' // https://mvnrepository.com/artifact/org.apache.jena/jena-core compile group: 'org.apache.jena', name: 'jena-core', version: '3.13.1' |
그럼 이제 준비는 끝났으니 자바 클래스 파일을 하나 만들고
지난 포스팅 마지막에 INSERT 구문으로 추가한 트리플 하나를 찾아보는 SELECT 질의를 해보는 코드를 생성한다.
여기서 주의할 점은 TDB가 있는 디렉토리 경로와 데이터셋을 생성한 Base URI를 정확히 입력해야 한다.
전체 코드는 아래와 같다.
import org.apache.jena.query.Dataset; import org.apache.jena.query.Query; import org.apache.jena.query.QueryExecution; import org.apache.jena.query.QueryExecutionFactory; import org.apache.jena.query.QueryFactory; import org.apache.jena.query.ResultSet; import org.apache.jena.query.ResultSetFormatter; import org.apache.jena.rdf.model.Model; import org.apache.jena.tdb.TDBFactory; public class Test { public static void main(String[] args) { String directory = "D:/workspace/TBC/MyProjectTDB/firstTDB.tdb.data"; Dataset dataset = TDBFactory.createDataset(directory); try { Model model = dataset.getNamedModel("http://joyhong.tistory.com/library/"); System.out.println(model.size()); String sparqlQueryString = "SELECT * { <http://test.com/resource/library_0> ?p ?o }"; Query query = QueryFactory.create(sparqlQueryString); QueryExecution qexec = QueryExecutionFactory.create(query, model); ResultSet results = qexec.execSelect(); ResultSetFormatter.out(results) ; } finally { dataset.close(); } } } |
이 코드를 실행한 결과는 아래와 같다.
'O:::Jena 다루기' 카테고리의 다른 글
O_6. Jena TDB에 Select하기 (0) | 2019.12.16 |
---|---|
O_5. Triple 단위를 Statement 단위로 변경하기 (0) | 2019.12.13 |
O_3. Jena LARQ Test (0) | 2013.01.23 |
O_2. Jena TDBLoader Test (0) | 2013.01.18 |
O_1. SPARQL 실행 (0) | 2012.12.05 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- property graph
- stardog
- 트리플 변환
- 장고
- LOD
- RDF 변환
- sparql
- 트리플
- Knowledge Graph
- 그래프 데이터베이스
- cypher
- Linked Data
- 지식 그래프
- networkx
- pyvis
- 지식그래프
- Thymeleaf
- TopBraid Composer
- 온톨로지
- Ontology
- TBC
- 타임리프
- TDB
- 사이퍼
- 스프링부트
- RDF
- django
- rdfox
- neosemantics
- Neo4j
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함