我需要一個幫助,通過Jena框架從RDF獲取一些信息。 我有一個RDF內容是這樣的:RDF/XML Jena getValue
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ts="http://www.test.com/testModel.owl#">
<ts:Entity rdf:ID="1234_test">
<....>
</ts>
</rdf:RDF>
現在我的想法是擺脫來自TS的ID:實體。這是我的代碼:
Model model = ModelFactory.createDefaultModel();
InputStream requestBody = new ByteArrayInputStream(request.getBytes());
String BASE = "http://www.test.com/testModel.owl#";
model.read(requestBody,BASE);
requestBody.close();
StmtIterator iter = model.listStatements();
while (iter.hasNext()) {
Statement stmt = iter.nextStatement(); // get next statement
Resource subject = stmt.getSubject(); // get the subject
Property predicate = stmt.getPredicate(); // get the predicate
RDFNode object = stmt.getObject(); // get the object
System.out.println(subject + " | "+predicate);
}
唯一的問題,在這種情況下,是,我有滾動的所有聲明。有一種方法可以直接從ts:Entity獲取ID嗎?也許在獲取資源之前以及與該資源相關的ID的值之後。
預先感謝幫助。
對不起,我又在這裏,因爲我有一個類似的問題,例如,如果我有這樣的RDF:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ts="http://www.test.com/testModel.owl#">
<ts:Entity rdf:ID="1234_test">
<ts:Resource>
<ts:testProp rdf:datatype="http://www.w3.org/2001/XMLSchema#string">test_ID_test</ts:testProp>
</ts>
</ts>
</rdf:RDF>
我怎麼能提取值test_ID_test ???如果我想使用SPARQL,我該如何處理jena?
非常感謝你......唯一的錯誤是:String entityID = iter.nextStatement()。getSubject()。getURI();因爲你需要獲得主題的聲明。 – Asp1de
我爲提問者留下了進一步的改進:-) – user205512