2016-05-29 5 views
0

私はヨーロッパの首都とその人口を返すSPARQLクエリを持っています。クエリは次のようになります。SPARQL最終ラベルの照会

select ?s ?pop 
where { 
    ?s <http://dbpedia.org/ontology/populationTotal> ?pop . 
    ?s a <http://dbpedia.org/ontology/place> 
} 

この状態では、次の形式で都市の名前を返します。 "<http://dbpedia.org/resource/London>"としたいのですが、この場合はLondonしか表示されません。だから、最終的なラベルだけを欲しいというSPARQLに伝える方法はありますか?

私はこのエンドポイントに対してクエリを実行しています:ここhttps://rdf.s4.ontotext.com/4730361296/demo01/repositories/test01

答えて

0

アドバイスは他の質問に似ている - データを検査するSPARQLを使用しています。だから、最初に定義された任意のラベルのプロパティがあるかどうかを確認するために、このクエリを試してみてください。

select * 
where { 
    ?s <http://dbpedia.org/ontology/populationTotal> ?pop . 
    ?s a <http://dbpedia.org/ontology/place> . 
    ?s ?p ?o . 
} 

この場合、あなたは何のラベルプロパティがplaceクラス定義のために定義されていないことがわかります。必要に応じてローカル名(最後のスラッシュ(またはハッシュ)の後のテキスト)を名前として使用できます。このクエリを試す:

select * 
where { 
    ?s <http://dbpedia.org/ontology/populationTotal> ?pop . 
    ?s a <http://dbpedia.org/ontology/place> . 
    BIND(REPLACE(xsd:string(?s), ".*[/#]", "") AS ?label) 
} 
関連する問題