6

国内の州について、linkedgeodata.org から RDF データを照会しようとしています。RDF では、次のように表されます。

<http://linkedgeodata.org/triplify/node1055351027>  <http://linkedgeodata.org/property/is_in%3Acountry> "LT" .

お気づきかもしれませんが、述語にはエスケープされたコロンが含まれているため、「:」の代わりに「%3A」がこれに適した SPARQL クエリを見つけることができませんでした。これらは私の試みの一部です。

?node lgdp:is_in "LT".
?node lgdp:is_in:country "LT".
?node lgdp:is_in%3Acountry "LT".
?node lgdp:is_in\u003Acountry "LT".
?node lgdp:is_in"\u003A"country "LT".

私は virtuoso のオープンソース バージョンをトリプル ストアとして使用しています。これは、最初のフォームを除くすべてで受け取るエラー メッセージです。

    Virtuoso 37000 Error SP030: SPARQL compiler, line 0: Invalid character in SPARQL expression at '\'

SPARQL query:
define sql:big-data-const 0 
#output-format:text/html
define input:default-graph-uri  PREFIX lgdo: 
PREFIX lgdp: 
PREFIX lgd: 
PREFIX pos: 
PREFIX rdf: 

SELECT ?node, ?label
Where {
 ?node a lgdo:State .
 ?node lgdp:is_in\u003Acountry "LT".
 ?node rdfs:label ?label .
} 
4

1 に答える 1

7

名前空間を使用する場合、 でエンコードされた文字%は許可されません。この場合、完全な述語を (名前空間なしで) 直接使用する必要があります。次のクエリが機能します。

Prefix lgdo:<http://linkedgeodata.org/ontology/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?node, ?label
Where {
 ?node a lgdo:State .
 ?node <http://linkedgeodata.org/property/is_in%3Acountry> "LT".
 ?node rdfs:label ?label
}

ここで結果を参照してください。

于 2011-04-28T20:15:04.003 に答える