【问题标题】:Loading a .trig file into TDB?将 .trig 文件加载到 TDB 中?
【发布时间】:2014-06-13 21:22:09
【问题描述】:

我目前正在用 Java 编写一些代码,在 Windows 7 上使用 Jena 和 TDB。

我希望能够将(大).trig 文件加载到 TDB 数据集中,以便查询更快一些。我目前拥有的代码是:

Dataset dataset = TDBFactory.createDataset(directoryPath);
Model tdb = dataset.getDefaultModel();
RDFDataMgr.read(tdb, inputFilePath);
try {
        String theQuery = readFile(testQueryPath, Charset.defaultCharset());        
        Query query = QueryFactory.create(theQuery);
        QueryExecution qe = QueryExecutionFactory.create(query, dataset);
        com.hp.hpl.jena.query.ResultSet results =  qe.execSelect();

        // Output query results    
        ResultSetFormatter.out(System.out, results, query);
        qe.close();

} catch (IOException e) {
        e.printStackTrace();
}

我也试过了:

FileManager.get().readModel( tdb, inputFilePath);

代替:

RDFDataMgr.read(tdb, inputFilePath);

我收到以下警告:

2014-06-13 13:02:26 WARN riot:77 - 仅预期三元组或默认图形数据:已忽略命名图形数据

我运行的 SPARQL 查询是:

前缀xsd:http://www.w3.org/2001/XMLSchema#

前缀直流:http://purl.org/dc/elements/1.1/

前缀:<.>

选择 *

{

{ ?s ?p ?o } UNION { 图 ?g { ?s ?p ?o } }

}

也是同一个,但没有 UNION 和 GRAPH 的东西。

查询不返回任何内容。

有没有人发现明显的问题或知道如何将 .trig 文件加载到 TDB 中?

【问题讨论】:

    标签: jena semantic-web tdb


    【解决方案1】:

    您刚刚读入数据集:

    RDFDataMgr.read(dataset, inputFilePath);
    

    内部写事务会更好,否则在退出之前调用TDB.sync(dataset)

    您的代码在每次运行时都会加载它。如果文件真的很大,请在运行查询程序之前使用批量加载程序 tdbloader。

    【讨论】:

    • 成功了!谢谢!我会查看 tdbloader,因为文件大约 300MB。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多