2013-03-06 40 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