gpt4 book ai didi

java - 如何使用Jena TDB存储本地版本的Linked Movie Database

转载 作者:行者123 更新时间:2023-11-29 03:57:18 26 4
gpt4 key购买 nike

我有一个N-Triples格式的LinkedMDB本地版本,想查询它。现在,我想使用Jena TDB,它可以存储数据以供以后查询使用。我检查了 documentation for TDB Java API , 但无法加载 N-Triples 文件然后使用 SPARQL 进行查询。我使用了以下代码:

String directory = "E:\\Applications\\tdb-0.8.9\\TDB-0.8.9\\bin\\tdb";
Dataset dataset = TDBFactory.createDataset(directory);

// assume we want the default model, or we could get a named model here
Model tdb = dataset.getDefaultModel();

// read the input file - only needs to be done once
String source = "E:\\Applications\\linkedmdb-18-05-2009-dump.nt";
FileManager.get().readModel( tdb, source, "N-TRIPLES" );

并得到以下异常

Exception in thread "main" com.hp.hpl.jena.tdb.base.file.FileException: Not a directory: E:\Applications\tdb-0.8.9\TDB-0.8.9\bin\tdb
at com.hp.hpl.jena.tdb.base.file.Location.<init>(Location.java:83)
at com.hp.hpl.jena.tdb.TDBFactory.createDataset(TDBFactory.java:79)
at tutorial.Temp.main(Temp.java:14)

最佳答案

从 Java 读入 TDB 支持的 Model 很简单,参见 the TDB wiki了解详情。例如,您可以:

// open TDB dataset
String directory = "./tdb";
Dataset dataset = TDBFactory.createDataset(directory);

// assume we want the default model, or we could get a named model here
Model tdb = dataset.getDefaultModel();

// read the input file - only needs to be done once
String source = "path/to/input.nt";
FileManager.get().readModel( tdb, source, "N-TRIPLES" );

// run a query
String q = "select * where {?s ?p ?o} limit 10";
Query query = QueryFactory.create(q);
QueryExecution qexec = QueryExecutionFactory.create(query, tdb);
ResultSet results = qexec.execSelect();
... etc ...

如 user205512 所述,您可以在 Linux 或 Mac 上从命令行使用 tdbloader2,这在大型 RDF 文件上会更快。创建 TDB 索引后,您可以将文件复制到其他机器。因此,您可以将数据加载到 Linux 服务器上,然后将 tdb 目录中的所有文件传送到您的 Windows 机器上以继续开发。

要从 Windows 机器上的命令行运行 tdbloader,您需要类似 cygwin 的东西允许您运行 Unix 风格的脚本。您还需要设置环境变量 TDBROOT

关于java - 如何使用Jena TDB存储本地版本的Linked Movie Database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5622890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com