【问题标题】:How to extract RDF triples from XML file using an existing ontology?如何使用现有本体从 XML 文件中提取 RDF 三元组?
【发布时间】:2011-08-05 21:07:40
【问题描述】:

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

【问题讨论】:

    标签: java rdf jena semantic-web owl


    【解决方案1】:

    忘记使用 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());
    }
    

    您会发现更多信息here

    如果您详细描述您正在使用的本体以及您需要的搜索类型,我们可能会提供更多帮助。

    【讨论】:

    猜你喜欢
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    相关资源
    最近更新 更多