我试过这个查询,编译并运行。但它只检索没有值的列名。我该如何检索他们的价值观?那有什么特别的方法吗?
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";
答案 0 :(得分:3)
如果您获得列名而没有值,则可能意味着您的查询没有答案。
尝试删除部分查询,直到得到答案 - 开头的主要部分是FILTER
子句。您正在过滤实际上未在查询中绑定的变量,因此它们将始终评估为false并导致无结果