无法从Sparql获取印度城市摘要

无法从Sparql获取印度城市摘要,sparql,dbpedia,Sparql,Dbpedia,我正在尝试使用Sqarql和dbpedia数据集来获取摘要。 当我在Virtuoso上运行以下查询时 PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> SELECT DISTINCT ?abstract WHERE { [ rdfs:label ?name ; dbpedia-owl:abstract ?abstract ] . FILTER langMatches(lang(?abstract),"en")

我正在尝试使用Sqarql和dbpedia数据集来获取摘要。 当我在Virtuoso上运行以下查询时

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT DISTINCT ?abstract WHERE { 
   [ rdfs:label ?name
  ; dbpedia-owl:abstract ?abstract
  ] .
  FILTER langMatches(lang(?abstract),"en")
  VALUES ?name { "London"@en }
}
LIMIT 10
前缀dbpedia owl: 选择DISTINCT?abstract,其中{ [rdfs:标签?名称 ;dbpedia猫头鹰:摘要?摘要 ] . 过滤语言匹配(语言(?摘要),“en”) 值?名称{“伦敦”@en} } 限制10
我得到了结果,但是如果我把名字改成“Gokarna”,这是一个南印度旅游景点,我就得不到任何数据。但是,我确实看到了dbpedia上关于Gokarna()的在线资源页面。我做错了什么?我需要得到接近800个印度地方的类似数据

我没有使用Sqarql的经验,但我可以从您的代码中看到并通过dbpedia库进行检查。。。 不仅仅是戈卡纳。这是“印度戈卡纳”

这应该行得通

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT DISTINCT ?abstract WHERE { 
   [ rdfs:label ?name
  ; dbpedia-owl:abstract ?abstract
  ] .
  FILTER langMatches(lang(?abstract),"en")
  VALUES ?name { "Gokarna,_India"@en }
}
LIMIT 10
前缀dbpedia owl: 选择DISTINCT?abstract,其中{ [rdfs:标签?名称 ;dbpedia猫头鹰:摘要?摘要 ] . 过滤语言匹配(语言(?摘要),“en”) 价值观?名称{“Gokarna,_India”@en} } 限制10
如果您浏览链接到的印度戈卡纳的DBpedia页面,您会注意到它的
rdfs:label
是“印度戈卡纳”。但是它的
foaf:name
只是“Gokarna”。这意味着您应该将查询修改为:

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT DISTINCT ?abstract WHERE { 
   [ foaf:name ?name
  ; dbpedia-owl:abstract ?abstract
  ] .
  FILTER langMatches(lang(?abstract),"en")
  VALUES ?name { "Gokarna"@en }
}
LIMIT 10
前缀dbpedia owl: 选择DISTINCT?abstract,其中{ [foaf:姓名?姓名 ;dbpedia猫头鹰:摘要?摘要 ] . 过滤语言匹配(语言(?摘要),“en”) 值?名称{“Gokarna”@en} } 限制10
虽然这也将返回其他戈卡纳:戈卡纳,尼泊尔,戈卡纳,孟加拉国和戈卡纳(电影)。如果要删除这些值,则必须找出另一个过滤器(可能是
dbo:country dbr:India
)。

使用
值时,只能得到与字符串完全匹配的值。对于Gokarna来说,这适用于@de、@it、@fr,但不适用于@en,因为这里的标签是不同的,正如您在前面的答案中所看到的

我建议使用
包含
,而不是

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT DISTINCT ?abstract WHERE { 
   [ rdfs:label ?name
  ; dbpedia-owl:abstract ?abstract
  ] .
  FILTER langMatches(lang(?abstract),"en")
  FILTER langMatches(lang(?name),"en")
  FILTER CONTAINS (?name, "Gokarna" )
}
LIMIT 10
前缀dbpedia owl: 选择DISTINCT?abstract,其中{ [rdfs:标签?名称 ;dbpedia猫头鹰:摘要?摘要 ] . 过滤语言匹配(语言(?摘要),“en”) 筛选器语言匹配(语言(?名称),“en”) 过滤器包含(?名称,“Gokarna”) } 限制10