Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用现有的本体从XML文件中提取RDF三元组?_Java_Rdf_Jena_Semantic Web_Owl - Fatal编程技术网

Java 如何使用现有的本体从XML文件中提取RDF三元组?

Java 如何使用现有的本体从XML文件中提取RDF三元组?,java,rdf,jena,semantic-web,owl,Java,Rdf,Jena,Semantic Web,Owl,我试图使用现有的本体从XML文件中提取RDF三元组。我使用的是Java,可以使用XPath从XML和Jena中提取数据来读写RDF文档和本体。如何根据现有的本体从XML中提取相关的三元组?忘记XPath提取三元组,Jena更容易,问题更少 您可以将界面SimpleSelector与Jena提供的model.listStatements一起使用 在本例中,我使用SimpleSelector查找具有单个属性的所有三元组,但您可以通过自定义方法selects实现所需的任何搜索 FileManager

我试图使用现有的本体从XML文件中提取RDF三元组。我使用的是Java,可以使用XPath从XML和Jena中提取数据来读写RDF文档和本体。如何根据现有的本体从XML中提取相关的三元组?

忘记XPath提取三元组,Jena更容易,问题更少

您可以将界面
SimpleSelector
与Jena提供的
model.listStatements
一起使用

在本例中,我使用SimpleSelector查找具有单个属性的所有三元组,但您可以通过自定义方法
selects
实现所需的任何搜索

FileManager fManager = FileManager.get();
Model model = fManager.loadModel("some_file.rdf");

Property someRelevantProperty = 
    model. createProperty("http://your.data.org/ontology/",
                          "someRelevantProperty");

SimpleSelector selector = new SimpleSelector(null, null, (RDFNode)null) {
    public boolean selects(Statement s)
        { return s.getPredicate().equals(someRelevantProperty);}
}

StmtIterator iter = model.listStatements(selector);
while(it.hasNext()) {
   Statement stmt = iter.nextStatement();
   System.out.print(stmt.getSubject().toString());
   System.out.print(stmt.getPredicate().toString());
   System.out.println(stmt.getObject().toString());
}
你会发现更多的信息

如果您对所使用的本体和所需的搜索类型进行更多描述,我们可能会提供更多帮助。

几年后,我们会从一个问题中进一步说明原因。