2

我试过这个查询,它编译并运行。但它只检索没有它们的值的列名。我怎样才能检索它们的值?有什么特殊的方法吗?

String str = "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>"+
    "PREFIX dbo: <http://dbpedia.org/ontology/>"+
    "PREFIX dbpprop: <http://dbpedia.org/property/>"+
    "PREFIX foaf: <http://xmlns.com/foaf/0.1/>"+
    "SELECT DISTINCT ?label ?abstract ?placeOfBirth"+
        "?birthPlace ?birthDate ?deathDate ?page ?thumbnail WHERE {"+
        "OPTIONAL {<http://dbpedia.org/resource/Neil_Simon> dbpprop:placeOfBirth ?placeOfBirth ; dbo:abstract ?abstract ; foaf:page ?page .}"+
        "OPTIONAL {<http://dbpedia.org/resource/Neil_Simon> dbpprop:placeOfBirth ?placeOfBirth ; dbpprop:birthPlace ?birthPlace ;}"+
        "OPTIONAL {<http://dbpedia.org/resource/Neil_Simon> dbpprop:placeOfBirth ?placeOfBirth ;  dbo:birthDate ?birthDate ;}"+
        "OPTIONAL {<http://dbpedia.org/resource/Neil_Simon> dbpprop:placeOfBirth ?placeOfBirth ;  dbo:deathdate ?deathDate ;}"+
        "OPTIONAL {<http://dbpedia.org/resource/Neil_Simon> dbpprop:placeOfBirth ?placeOfBirth ; dbo:thumbnail ?thumbnail .}"+
        "FILTER (LANG(?label) = 'en')"+    
        "FILTER (LANG(?abstract) = 'en')}"+
    "LIMIT 1";
4

1 回答 1

3

如果您得到列名但没有值,则可能意味着您的查询没有答案。

尝试删除部分查询,直到得到答案 - 开始的主要部分是FILTER子句。您正在过滤实际上并未在任何地方的查询中绑定的变量,因此它们将始终评估为 false 并导致没有结果

于 2012-05-12T10:35:45.480 回答