代码之家  ›  专栏  ›  技术社区  ›  sollniss

即使数据存在,结果也会被过滤掉

  •  0
  • sollniss  · 技术社区  · 6 年前

    我的问题是:

    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
    PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
    PREFIX : <http://dbpedia.org/resource/> 
    PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
    
    SELECT DISTINCT ?resource ?parentOrSpouse
    WHERE { 
    ?resource a dbo:Royalty ; 
    rdfs:label ?label ; 
    dbo:parent ?parent ; 
    dbo:birthDate ?bd ; 
    dbo:birthPlace ?bp . 
    ?bp dbo:isPartOf :England . 
    FILTER(?bd < '1900-01-01'^^xsd:dateTime) . 
    FILTER(?bd > '1800-01-01'^^xsd:dateTime) . 
    FILTER(LANGMATCHES(LANG(?label), 'en')) . 
    { ?resource dbo:parent ?parentOrSpouse } UNION { ?resource dbo:spouse ?parentOrSpouse }
    ?parentOrSpouse dbo:birthPlace ?psbp .
    ?psbp dbo:isPartOf :England . 
    }
    ORDER BY(?bd)
    

    这将搜索所有1800年至1900年间出生在英国的王室成员,他们的配偶或父母都出生在英国。

    Result


    http://dbpedia.org/page/George_V http://dbpedia.org/page/Mary_of_Teck 列为配偶,但不是列为玛丽特克,而乔治显然出生在英国。

    玛丽为什么不见了?当我看数据的时候,还有很多其他人消失了,这些人显然应该在名单上。

    1 回复  |  直到 6 年前
        1
  •  1
  •   sollniss    6 年前

    所以解决玛丽不出现的办法就是 dbo:parent|dbo:spouse/dbo:wikiPageRedirects? ,因为乔治是由玛丽通过重定向转介。

    另一个问题是 dbo:birthPlace/dbo:location?/dbo:isPartOf dbr:England 抛出一个可能是(?)与编译器中的错误相关。使用 ?parentOrSpouse dbo:birthPlace|dbo:birthPlace/dbo:location/dbo:isPartOf :England . 相反,它似乎工作得很好。