如何使用 apache jena tdb 创建新数据库?

问题描述 投票:0回答:1

我是 RDF 存储/语义 Web 方面的初学者,所以这是一个相当基本的问题。在 RDBMS 或 Neo4j 中,您可以使用“CREATE DATABASE”命令创建新数据库。但它如何与 apache jena tdb 一起工作呢?

我找不到任何具体的东西,或者答案可能太明显了:我不知道这是否是正确的方法,但似乎可以使用 TDB Datasets 来完成?虽然我不确定这是否与在 RDBMS 中创建数据库相同。

jena tdb rdfstore
1个回答
0
投票

数据集可以看作是 RDBMS 或 Neo4j 数据库的等价物。

您可以创建一个 TDB 数据集并在其中添加 RDF 三元组,如下所示:

String directory = "/Users/orto/tmp/tdbTest";
Dataset dataset = TDBFactory.createDataset(directory);
dataset.begin(org.apache.jena.query.ReadWrite.WRITE);
try {
  Model model = dataset.getDefaultModel();
  String personURI = "https://example.com/JohnDo";
  model.createResource(personURI)
          .addProperty(VCARD.FN, "John Do")
          .addProperty(VCARD.N,
                  model.createResource()
                          .addProperty(VCARD.Given, "John")
                          .addProperty(VCARD.Family, "Do"));
  dataset.commit();
} finally {
  dataset.end();
}

要使用 SPARQL 查询来查询数据集,您可以这样做:

String directory = "/Users/orto/tmp/tdbTest";
String queryString = "SELECT ?x WHERE {?x <http://www.w3.org/2001/vcard-rdf/3.0#FN> \"John Do\"}";
Dataset dataset = TDBFactory.createDataset(directory);
Query query = QueryFactory.create(queryString);
dataset.begin(ReadWrite.READ) ;
try (QueryExecution qexec = QueryExecutionFactory.create(query, dataset)) {
  ResultSet results = qexec.execSelect();
  ResultSetFormatter.out(System.out, results, query);
} finally {
  dataset.end();
}

有关更多信息,请阅读文档

© www.soinside.com 2019 - 2024. All rights reserved.