Rdf 对DBpedia的Sparql查询

Rdf 对DBpedia的Sparql查询,rdf,sparql,semantic-web,dbpedia,linked-data,Rdf,Sparql,Semantic Web,Dbpedia,Linked Data,我们可以使用SPARQL查询从DBpedia获取美国的位置列表吗?我尝试了以下查询,但它(根据设计)只提供英文摘要。我要美国的地名。我怎样才能做到这一点 SELECT?摘要 从命名 哪里{?抽象的。 过滤语言匹配(lang(?abstract),'en')} 通常最简单的方法是迭代编写这些查询,并在执行过程中探索数据。例如,在本例中,您可以从以下内容开始: select ?place where { ?place a dbpedia-owl:PopulatedPlace } limit 10

我们可以使用SPARQL查询从DBpedia获取美国的位置列表吗?我尝试了以下查询,但它(根据设计)只提供英文摘要。我要美国的地名。我怎样才能做到这一点

SELECT?摘要
从命名
哪里{?抽象的。
过滤语言匹配(lang(?abstract),'en')}

通常最简单的方法是迭代编写这些查询,并在执行过程中探索数据。例如,在本例中,您可以从以下内容开始:

select ?place where {
  ?place a dbpedia-owl:PopulatedPlace
}
limit 100

这不仅仅是美国的一些地方,你还可以浏览结果,直到你找到一个。然后你可以检查它,看看如何识别这些地方。在本例中,您可能会找到西弗吉尼亚州的熔炉,并注意到它是属性dbpedia owl:country的值dbpedia:United\u States。因此,我们可以优化查询:

select ?place where {
  ?place a dbpedia-owl:PopulatedPlace ;
         dbpedia-owl:country dbpedia:United_States 
}
limit 100

看起来好多了,但你说你想要的是地名,而不是识别它们的真正虹膜。根据您的筛选器,您似乎只需要英文名称。然后我们进一步细化:

select ?label where {
  ?place a dbpedia-owl:PopulatedPlace ;
         dbpedia-owl:country dbpedia:United_States ;
         rdfs:label ?label
  filter langMatches( lang(?label), 'en' )
}
limit 100

这些名称是语言标记的文字。如果只需要字符串部分,可以在变量投影中执行此操作:

select (str(?label) as ?strLabel) where {
  ?place a dbpedia-owl:PopulatedPlace ;
         dbpedia-owl:country dbpedia:United_States ;
         rdfs:label ?label
  filter langMatches( lang(?label), 'en' )
}
limit 100

您浏览过网站上的数据吗?它实际上并不包含你想要的东西。您需要找到一种不同的方法来表达您的查询。我非常感谢您提供如此详细的解释,这就是我要寻找的……我还有一个问题,如果我需要将其添加到java中,我是否需要将SPARQL端点添加到其中?