如何返回涉及指定资源(作为主题或对象)的模型中的所有属性...?
返回与该资源相关的属性的字符串[]的方法。
答案 0 :(得分:2)
AFAIK没有等价于listSubjectsWithProperty
来返回模型中的所有谓词或给定主题的所有谓词。实现起来很容易:
使用Jena SimpleSelector
,您可以遍历模型并将遍历约束到某些条件。在这种情况下,我只过滤具有主题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
。