首页 文章

将.trig文件加载到TDB中?

提问于
浏览
0

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

我希望能够将(大).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查询是:

PREFIX xsd:http://www.w3.org/2001/XMLSchema#PREFIX dc:http://purl.org/dc/elements/1.1/ PREFIX:< . > SELECT * {{?s?p?o UNION {GRAPH?g {?s?p?o}}}

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

查询什么都不返回 .

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

1 回答

  • 2

    您只需阅读数据集:

    RDFDataMgr.read(dataset, inputFilePath);
    

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

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

相关问题