Rdf 如何在Java中使用jena API返回资源的属性?

Rdf 如何在Java中使用jena API返回资源的属性?,rdf,jena,ontology,Rdf,Jena,Ontology,如何返回模型中涉及指定资源(作为主题或对象)的所有属性 返回与该资源相关的属性字符串[]的一种方法。如果要返回模型中的所有谓词或给定主题的所有谓词,没有与listSubjectsWithProperty等效的方法。不过,这很容易实现: 使用JenaSimpleSelector可以遍历模型并将遍历约束到特定条件。在这种情况下,我只过滤作为subjectsomeRelevantSubject的语句: SimpleSelector selector = new SimpleSelector(null,

如何返回模型中涉及指定资源(作为主题或对象)的所有属性


返回与该资源相关的属性字符串[]的一种方法。

如果要返回模型中的所有谓词或给定主题的所有谓词,没有与
listSubjectsWithProperty
等效的方法。不过,这很容易实现:

使用Jena
SimpleSelector
可以遍历模型并将遍历约束到特定条件。在这种情况下,我只过滤作为subject
someRelevantSubject
的语句:

SimpleSelector selector = new SimpleSelector(null, null, (RDFNode)null) {
    public boolean selects(Statement st)
        { return st.getSubject().equals(someRelevantSubject);}
}
使用选择器,迭代模型并添加谓词,然后将谓词添加到标准Java集合中:

StmtIterator iter = model.listStatements(selector);
while(it.hasNext()) {
   Statement stmt = iter.nextStatement();
   some_set.add(stmt.getPredicate().toString());
}

如果您想要所有不同的谓词,而不考虑主题,只需始终在选择器中返回
true

我建议不要过早地将RDF对象映射到字符串,Java集合比数组有用得多。我建议您考虑使用
集合
,而不是
String[]
来保存所需的谓词。