我正在尝试使用现有的本体从 XML 文件中提取 RDF 三元组。我正在使用 Java,并且可以使用 XPath 从 XML 和 Jena 中提取数据来读取和写入 RDF 文档和本体。如何根据现有的本体从 XML 中提取相关的三元组?
3026 次
1 回答
9
忘记用 XPath 来提取三元组吧,Jena 更容易而且问题更少。
您可以与from JenaSimpleSelector
一起使用该界面。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());
}
您将在此处找到更多信息。
如果您更多地描述您正在使用的本体以及您需要的搜索类型,我们可能会提供更多帮助。
于 2011-04-14T20:58:15.280 回答