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

时间:2013-03-06 15:17:33

标签: rdf jena ontology

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

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

1 个答案:

答案 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