我需要一个帮助,通过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