我有个问题。
我正在尝试在Jena TDB上加载我的RDF文件。
我写了这段代码:
public void store(){ String directory = "C:\\tdb"; String source = "C:\\file1.rdf"; String source1 = "C:\\file2.rdf"; Dataset dataset = openTDB(directory); Model tdb = loadModel(source, dataset); dataset.addNamedModel("File1", tdb); Model tdb1 = loadModel(source1, dataset); dataset.addNamedModel("File2", tdb1); queryTDB(tdb, dataset); queryTDB(tdb1, dataset); tdb.close(); tdb1.close(); dataset.close(); } public Dataset openTDB(String directory) { // open TDB dataset Dataset dataset = TDBFactory.createDataset(directory); return dataset; } public Model loadModel(String source, Dataset dataset) { Model tdb = dataset.getDefaultModel(); FileManager.get().readModel( tdb, source, "RDF/XML" ); return tdb; }
特别是,我有两个文件,我想将这些文件加载到Jena TDB上。我已经在Internet上阅读到可以使用“ addNamedModel”为模型添加名称的信息。为此,在上面的代码中,我添加了名称“ File1”和“ File2”。
现在,我想查询该数据集,并尝试编写以下代码:
public void queryTDB(Model tdb, Dataset dataset) { String queryStr = "SELECT * { ?s ?p ?o }"; Query query = QueryFactory.create(queryStr); QueryExecution qexec = QueryExecutionFactory.create(query, tdb); /*Execute the Query*/ ResultSet results = qexec.execSelect(); ResultSetFormatter.out(results) ; qexec.close(); }
该代码有效,但是我想知道如何仅对名为“ File1”(或“ File2”)的模型获取查询结果。实际上,用这样编写的查询,我得到了两个模型的结果。
我怎么能实现呢?