2

最初は些細なことに思えましたが、これまでのところ、SPARQL を使用して特定のリソースの一意の識別子を取得できていません。つまり、たとえば、rdf:Description rdf:about="http://..."このリソースを識別するいくつかのプロパティが与えられます。私がやりたいことは、最初にこのリソースを見つけてから、URI を指定してすべてのトリプルを取得することです。

WHERE私は、次のような節でステートメントを書くことによって、素朴なアプローチを試みました。

?x rdf:about ?y and ?x rdfs:about ?y

私が正確であることを願っています。

4

1 に答える 1

7

あなたは古典的な間違いを犯しています: RDF (SPARQL クエリ) をそのシリアル化 (の 1 つ)、つまり RDF/XML と混同しています。rdf:about(およびrdf:ID、、、 ) は RDF/XML の一部でありrdf:Descriptionrdf:resourceRDF を書き留める方法です。RDF Validatorをいじって、RDF/XML の一部からどのような RDF トリプルが生成されるかを確認できます。

あなたの場合、次から始めましょう。

<?xml version="1.0"?>
<rdf:RDF 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/terms/">
  <rdf:Description rdf:about="http://www.example.org/">
    <dc:title>Example for Donal Fellows</dc:title> 
  </rdf:Description>
</rdf:RDF>

それをバリデーターにプラグインすると、次のようになります。

Number      Subject                      Predicate                        Object
1           http://www.example.org/      http://purl.org/dc/terms/title   "Example for Donal Fellows"

(絵柄のご依頼も可能です)

存在しないことに注意してくださいrdf:about。その値は、トリプルの主語を提供します。

に関連付けられたプロパティを検索するクエリを実行するにはどうすればよいhttp://www.example.orgですか? このような:

select * {
    <http://www.example.org/> ?predicate ?object
}

あなたは得るでしょう:

?predicate                        ?object
<http://purl.org/dc/terms/title>  "Example for Donal Fellows"

?vクエリは、値を検索したい場所にある変数 ( ) とのトリプル マッチであることがわかります。次のように尋ねることで、どの述語がリンクhttp://www.example.org/しているかを尋ねることもできます"Example for..."

select * {
    <http://www.example.org/> ?predicate "Example for Donal Fellows"
}

このパターン マッチングは、SPARQL の心臓部です。

RDF/XML はトリッキーな獣です。N-Triplesは非常に冗長ですが明確です。または、turtleは N-Triples に似ており、多数の略記と略語があります。Turtle は多くの場合、rdf コミュニティに好まれます。

PSrdfs:aboutはどこにも存在しません。

于 2010-05-03T22:50:27.460 に答える