API 또는 CMD를 사용하여 tdb에 데이터를로드하는 두 가지 방법이 있습니다. 많은 @ASKW에 대한 감사와 API를 통해 @AndyS
1로드 데이터는
이러한 코드는 의지가 시간이 오래 걸립니다 번만 특히 readModel
라인을 실행해야합니다. 데이터가 TDB에로드 된 후
String directory = "tdb";
Dataset dataset = TDBFactory.createDataset(directory);
dataset.begin(ReadWrite.WRITE);
Model tdb = dataset.getDefaultModel();
String source = "yagoMetaFacts.ttl";
FileManager.get().readModel(tdb, source);
dataset.commit(); //Important!! This is to commit the data to tdb.
dataset.end();
, 우리는 쿼리 코드를 사용할 수 있습니다. 그리고 데이터를 다시로드 할 필요가 없습니다.
CMD를 통해
String directory = "path\\to\\tdb";
Dataset dataset = TDBFactory.createDataset(directory);
Model tdb = dataset.getDefaultModel();
String queryString = "SELECT DISTINCT ?p WHERE { ?s ?p ?o. }";
Query query = QueryFactory.create(queryString);
try(QueryExecution qexec = QueryExecutionFactory.create(query, tdb)){
ResultSet results = qexec.execSelect();
ResultSetFormatter.out(System.out, results, query) ;
}
2로드 데이터는 데이터가
>tdbloader --loc=path\to\tdb path\to\dataset.ttl
>tdbquery --loc=path\to\tdb --query=q1.rq
q1.rq를 조회하려면로드하려면 쿼리를 저장하는 파일입니다 결과를 얻을해야 좋아요
-------------------------------------------------------
| p |
=======================================================
| <http://yago-knowledge.org/resource/hasGloss> |
| <http://yago-knowledge.org/resource/occursSince> |
| <http://yago-knowledge.org/resource/occursUntil> |
| <http://yago-knowledge.org/resource/byTransport> |
| <http://yago-knowledge.org/resource/hasPredecessor> |
| <http://yago-knowledge.org/resource/hasSuccessor> |
| <http://www.w3.org/2000/01/rdf-schema#comment> |
-------------------------------------------------------
물론'readModel'을 호출하면됩니다. 이 줄을 써 보지 않으시겠습니까? – AKSW
안녕하세요, 나는 readModel 행없이 실행하려고하지만 결과가 표시되지 않습니다. 내가 필요한 데이터 집합을 나타내지 않는다면, tdb는 사용할 데이터 집합을 어떻게 알 수 있습니까? – Charlotte
'tdb.commit'을 호출해야한다고 생각합니다. https://jena.apache.org/documentation/tdb/tdb_transactions.html#write-transactions – AKSW