【问题标题】:Select singers whose spouse is/was also singer using SPARQL使用 SPARQL 选择配偶是/曾经是歌手的歌手
【发布时间】:2017-11-26 15:40:18
【问题描述】:

我在DBpedia 尝试了以下查询,但它不起作用。

PREFIX dbo: <http://dbpedia.org/ontology/><br/>
PREFIX dbr: <http://dbpedia.org/resource/><br/>

    SELECT Distinct (?singer),?wife 
    WHERE { 
            ?x dbo:musicalArtist ?singer.
            ?singer dbo:spouse ?wife.
            FILTER(?wife a dbo:MusicalArtist)
    }

【问题讨论】:

    标签: sparql rdf ontology dbpedia


    【解决方案1】:

    您的查询不是合法的 SPARQL 查询。最明显的方法是简单地使用另一个连接:

    PREFIX dbo: <http://dbpedia.org/ontology/>
    PREFIX dbr: <http://dbpedia.org/resource/>
    
    SELECT ?singer ?wife 
    WHERE { 
     ?x dbo:musicalArtist ?singer.
     ?singer dbo:spouse ?wife.
     ?wife a dbo:MusicalArtist
    }
    

    或者,您可以通过以下方式使用过滤器来确定三重模式的存在:

    FILTER EXISTS {?wife a dbo:MusicalArtist}

    【讨论】:

    • 好的。如果这回答了您的问题,请不要忘记“接受”它。这会将这个问题标记为已完成
    【解决方案2】:

    这里的查询是寻求重新,配偶不是(或不是)音乐家的音乐家。

    PREFIX dbo: <http://dbpedia.org/ontology/>
    PREFIX dbr: <http://dbpedia.org/resource/>
    
        SELECT DISTINCT ?musicArtist ?musicArtistSpouse 
        WHERE { 
                ?x dbo:musicalArtist ?musicArtist.
                ?musicArtist dbo:spouse ?musicArtistSpouse.
                FILTER(! EXISTS {?musicArtistSpouse a dbo:MusicalArtist} )
        }
    

    Live Query Solution Page Link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-28
      • 2020-06-16
      • 2020-01-25
      • 1970-01-01
      • 2017-08-28
      • 2012-12-07
      • 2011-05-14
      • 2021-07-28
      相关资源
      最近更新 更多