2013-03-06 61 views
1

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

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

+2

我建议不要过早地从RDF对象映射到字符串,Java集合比数组更有用。我建议你用'Collection '来思考,而不是'String []'来保存你想要的谓词。 – 2013-03-07 08:24:26

回答

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

+0

谢谢...... – user2057437 2013-03-13 19:40:40