モデル構造の関係の片側のみを実装するグラフ データベースがあります。たとえば、すべての広範な関係は としてマッピングされskos:broader
ます。すべてのより狭い関係は次のようにマッピングされます^skos:broader
(彼らがこれを行うことを選択した理由が何であれ、私はこれを制御することはできません.)
次のようなものを提供するSPARQLクエリを作成しようとしています
指定された IRI のすべての関係と、それらに関連付けられた値を照会します。目標は、すべてのコンテンツの JSON または XML 表現を作成することです。
これが私が取り組んでいるものです。
PREFIX skosxl: <http://www.w3.org/2008/05/skos-xl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?relation ?value
where
{
<CONCEPT_URI> ?r ?c
OPTIONAL {
?r rdfs:label|skosxl:prefLabel ?l
}
OPTIONAL {
?c skosxl:prefLabel/skosxl:literalForm|skosxl:literalForm ?d .
}
BIND ( if (bound(?d), ?d, ?c) as ?value )
BIND ( if (bound(?l), ?l, strafter(?r, '#')) as ?relation )
}
これは、すべての概念関係 (IE: Broader) を提供するために機能しますが、より狭い項目 (IE: ^broader) は提供しません。
とにかく、この一般的なクエリを拡張して、見つかった関係の逆を生成することはできますか? 節に the^
を単純に追加しようとしましたが、構文的には好きではありません。?r
where
ありがとう、