0

モデル構造の関係の片側のみを実装するグラフ データベースがあります。たとえば、すべての広範な関係は としてマッピングされ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^を単純に追加しようとしましたが、構文的には好きではありません。?rwhere

ありがとう、

4

0 に答える 0