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

Sathish Kumar:

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

曼努埃尔·萨尔瓦多(Manuel Salvadores):

不用担心XPath提取三元组,它对Jena来说将变得更容易且问题更少。

您可以将界面SimpleSelectormodel.listStatementsJena 一起使用

在此示例中,我使用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());
}

您可以在此处找到更多信息

如果您多描述一下您正在使用的本体以及所需的搜索类型,我们也许可以提供更多帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Sparql使用特定谓词提取RDF三元组

RDF文件未按预期生成三元组

针对本体验证RDF三元组,以检查结构是否正确

尝试使用rdf_save将单个rdf三元组保存到文件时抛出错误

Freebase RDF API:使用特定尾部获取RDF三元组

SPARQL 查询使用 Protégé 本体方法创建的具有对象属性的不同类的三元组

在耶拿阅读嵌套的RDF三元组

如何使用 Python 中的 RDFlib 从字典(三元组)列表中制作多个 RDF 图?

从GraphDB存储库中导入的rdf文件中删除三元组

如何区分SQL三元组与显式三元组?

RDF,具有一个附加多个rdf:predicate三元组的rdf:Statement是否有效?

SPARQL:如何使用仅存在一个方向的谓词获取所有三元组

在rdflib中嵌套具有值的单位的三元组-> turtle文件

从命令行将RDF三元组转换为四元组?

Sparql-如何获得三元组数?

如何从MySql创建三元组

如何在数组中打印所有递增索引的三元组?

使用LINQ获取所有可能的不同三元组

从RDF4j Native Store删除三元组似乎很慢

如何仅使用三元组值对给定列的向量进行排序?

三元组的最佳合并

Java三元组

三元组的QName(MarkLogic)

三元组的依赖树

处理三元组的重复

编号三元组

将RDF .ttl文件合并到一个文件数据库中-过滤并仅保留所需的数据/三元组

如何在Haskell中转置由三元组组成的三元组

如何在不使用构建脚本的情况下将可执行文件的完整目标三元组作为编译时常量?