当前位置: 首页 > 知识库问答 >
问题:

如何在给定名称的Jena TDB上查询模型

宇文良骏
2023-03-14
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;
}
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”)的模型获得查询结果。事实上,使用这样编写的查询,我得到了两个模型的结果。

我怎么才能意识到?

共有1个答案

融焕
2023-03-14
select * {
  graph ?g {  
    ?s ?p ?o
  }
}
select *
from named <name-of-graph>
{
  ?s ?p ?o
}

select * {
  graph <name-of-graph> {  
    ?s ?p ?o
  }
}
 类似资料:
  • 问题内容: 实现目标: 我想要名称属性包含列表中任何单词的所有对象。 我有: 例如: 然后应返回具有该名称的对象,因为word2在列表中。 请帮忙! 问题答案: 您可以使用对象来构造如下查询: 编辑: 是一种奇特的写作方式 您还可以使用显式的for循环来构造对象。

  • 问题内容: 对于Java开发人员来说,这必须是一个非常基本的问题,但是在给定 类名* 的情况下找到合适的 jar文件 的最佳方法是什么? * 例如,给定“ com.ibm.websphere.security.auth.WSSubject ”,您如何跟踪适当的jar文件?(“ google”不是我要找的答案!) 在Java文档不给jar文件的任何暗示,明显的jar文件的名称本身不提供线索。 在Ja

  • 问题内容: 我正在编写一个以命令作为参数的Python应用程序,例如: 我希望应用程序是可扩展的,也就是说,能够添加实现新命令的新模块而不必更改主应用程序源。这棵树看起来像: 因此,我希望应用程序在运行时找到可用的命令模块并执行相应的命令模块。 Python定义了函数,该函数使用一个字符串作为模块名称: 该函数导入模块名称,可能使用给定的全局变量和局部变量来确定如何在包上下文中解释该名称。from

  • 我正在使用swagger编辑器记录一个现有的API,该API允许一个路径支持两个不同的请求,这两个请求仅在查询参数名上有所不同。例如: 这里我支持对和的请求。 swagger编辑器不会显示上述yaml的任何错误,但它只为第二个路径(具有UserId和令牌queryparams的路径)生成文档,而不是同时生成。有人能指出我哪里出了问题吗?谢了。 编辑: 如果我将第二个路径更改为(例如),那么我会在文

  • 问题内容: 我有以下格式的xml文档: 我需要使用lxml中的xpath检索所有元素。我的问题是我不知道如何使用空的名称空间。我尝试了以下示例,但没有用。请指教。 我尝试过的各种方法是: 要么 要么 在这一点上,我只是不知道该尝试什么。任何帮助是极大的赞赏。 问题答案: 这样的事情应该起作用: 另请参见http://lxml.de/xpathxslt.html#namespaces-and- pr

  • 问题内容: 很抱歉提出这样的问题,但我确实无法在Google中找到答案。假设我有一个课程,并且有一个字符串“ myColor”。现在,我想操纵属性。我怎样才能做到这一点? 编辑: 对不起,一个不清楚的问题,我想最好的方法是解释我需要什么。我有一个Swing表单,想在加载gui时使用首选项api设置字段的值。因此,我可以读取所有字段,然后对每个字段进行处理,但这似乎是不需要的编码,因此我想使用带有字