私は SPARQL を初めて使用し、SQL 結合方式でトリプルからいくつかの結果を取得しようとしています。
たとえば、特定の画像が属するオブジェクトの ID や、オブジェクトの作成者の ID などを探しています。
RDF 関係は次のように定義されます。
<image> <isResourceOf> <object>
<person> <isAuthorOf> <object>
私はこれを試しました:
SELECT ?o ?a from <#ri>
WHERE {
{<myns:myImageID> <myns:isResourceOf> ?o}
UNION
{?a <myns:isAuthorOf> ?o}
}
?o
ただし、2 つの変数がバインドされていないため、これはすべての作成者をフェッチします。
最初の一致セットに対してのみ著者を一致させるにはどうすればよいですか?
ありがとう
gm
編集:
より完全な例:
PREFIX aic: <http://mydomain.org/definitions/1.0/fedora/3#>
SELECT *
WHERE {
<info:fedora/AICTEST:DOResImg-G38562> aic:isResourceOf ?o .
?a aic:isAuthorOf ?o .
}
結果がありません。
SELECT *
WHERE {
<info:fedora/AICTEST:DOResImg-G38562> aic:isResourceOf ?o .
}
結果 (CSV):
"o"
AICTEST:DOArtObj-1946.479
これとともに:
SELECT *
WHERE {
?a aic:isAuthorOf ?o .
}
結果:
"a","o"
info:fedora/AICTEST:DOAgent-35729,info:fedora/AICTEST:DOArtObj-1946.479
info:fedora/AICTEST:DOAgent-35729,AICTEST:DOObjSet-1946.494