JenaFrameworkを使用してRDFからいくつかの情報を取得するためのヘルプが必要です。私はこのような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>
</rdf:RDF>
今の私の考えは、ts:Entityから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で行うことができますか?