티스토리 뷰

TBC에서 RDF 파일을 TDB에 임포트 하는 과정을 지난 포스팅에서 이야기했었다.

https://joyhong.tistory.com/90

 

N_15. TBC에서 RDF 파일을 TDB에 임포트하기

TDB는 Jena 컴포넌트 중 하나로서 RDF 형태의 데이터를 저장하고 질의를 하기 위해 사용한다. https://jena.apache.org/documentation/tdb/ Apache Jena - TDB TDB TDB is a component of Jena for RDF storage an..

joyhong.tistory.com

그런데 과연 TBC에서 만들어진 TDB의 내용이 다른 애플리케이션에서도 사용이 가능한지에 대한 의구심에서

직접 Java API를 사용하여 TDB에 적재된 내용을 확인해보고자 한다.

 

TDB를 사용하는 기본 사용법이라고도 볼 수 있다.

 

우선 나는 이클립스를 주로 사용하기 때문에 이클립스를 준비하고, gradle 프로젝트를 하나 생성한다.

gradle 프로젝트가 생성되면 build.gradle 파일에 의존성을 주입해야 한다.

https://mvnrepository.com/

 

Maven Repository: Search/Browse/Explore

An Ehcache wrapper providing Metrics instrumentation of caches. Last Release on Dec 7, 2019

mvnrepository.com

메이븐 리파지토리 사이트에서 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
«   2024/12   »
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
글 보관함