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 添加^到子句?r中,where但它在语法上不喜欢那样。

谢谢,

4

0 回答 0