2

Sparql エンドポイントでdbpediaにクエリを実行すると、結果がオブジェクトとして取得されます。次に、このリソースの詳細を取得するにはどうすればよいですか? たとえば、このリソースが人である場合。どうすれば彼/彼女を手に入れることができますか?Jena ResourceImplbirthDate

これを試しました。ただし、常に null を返します。

QuerySolution querySolution = resultSet.next();
RDFNode x = querySolution.get("x");
ResourceImpl resource = (ResourceImpl) x;
Property property = new PropertyImpl("http://dbpedia.org/property/birthDate");
Resource propertyResourceValue = resource.getPropertyResourceValue(property); // NULL
4

2 に答える 2

2

リソースに関する詳細を取得したい場合は、おそらく後続の SPARQL クエリを作成する必要があります。例えば、

String nextQuery = "DESCRIBE " + FmtUtils.stringForNode(resource.asNode(), (SerializationContext)null);
Query describeQuery = QueryFactory.create(nextQuery);
QueryExecution exec = QueryExecutionFactory.sparqlService("http://endpoint", describeQuery);
Model m = exec.execDescribe();

その後、結果のモデルに対してリソース API を使用して、必要な情報を取得できるはずです。

于 2013-04-09T17:50:51.587 に答える