【问题标题】:Find out the missing properties resources找出缺失的房产资源
【发布时间】:2013-11-18 17:27:51
【问题描述】:

我对这个语义网很陌生,我正在用 Sparql 和 DBPEDIA 做一些实验。我写了一个查询来找出所有有 firstName(givenName) 和 lastName(surName) 的记录。

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
select count(DISTINCT ?x) where {
?x foaf:givenName ?y;
foaf:surname ?z.
}

当我运行这个查询时,我得到了 9,80,000 条记录。但是,当我运行单个查询(针对名字和姓氏)时,我得到了 9,92,000 条名字记录和 9,80,000 条姓氏记录。

我的问题是如何获得只有名字但没有姓氏的资源...???

【问题讨论】:

    标签: sparql dbpedia


    【解决方案1】:

    您可以使用带有FILTERNOT EXISTS 子句来实现此目的:

    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    SELECT (COUNT(DISTINCT ?x) AS ?count)
    WHERE
    {
      ?x foaf:givenName ?y .
      FILTER(NOT EXISTS { ?x foaf:surname ?z. })
    }
    

    这会过滤掉?x 的匹配项,其中NOT EXISTS 模式也匹配。

    或者,您可以使用MINUS 子句,它与minor differences 的作用大致相同,不会影响您的查询:

    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    SELECT (COUNT(DISTINCT ?x) AS ?count)
    WHERE
    {
      ?x foaf:givenName ?y .
      MINUS { ?x foaf:surname ?z. }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-16
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 2020-09-27
      相关资源
      最近更新 更多