作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个应用程序,它显示有关给定文本的实体的信息。我正在使用 Python 的 sparqlwrapper 库来查询 DBpedia。当我获取 Person
实体时,我使用以下代码:
def get_person_data(einfo):
data = {}
try:
uri = einfo['disambiguated']['dbpedia']
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
query = u"""
SELECT ?birthDate, ?birthName, ?birthPlace
WHERE { <%s>
dbpprop:birthDate ?birthDate ;
dbpprop:birthName ?birthName ;
dbpprop:birthPlace ?birthPlace
}
""" % uri
sparql.setQuery(query)
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
这段代码的问题是,当 DBpedia 页面中缺少某个字段时,结果不会返回任何内容。很难知道给定类型的所有实体中都存在哪些属性,因此我想定义一些所需的属性,然后获取存在的属性。我尝试使用以下内容进行查询:
SELECT * WHERE {
?x rdfs:label "New York"@en.
?x dbpedia-owl:abstract ?abstract.
OPTIONAL {
?x dbpedia-owl:areaTotal ?areaTotal.
?x dbpprop:governor ?governor.
?x dbpprop:birthPlace ?birthPlace.
}
FILTER (LANG(?abstract) = 'en')
}
在本例中,纽约没有 birthPlace
,因此我最终只获得了abstract
信息。我也想获得 areaTotal
和 governor
。
最佳答案
整个可选 block 要么匹配,要么不匹配。如果你想选择性地匹配一些不同的东西,你需要多个可选 block ,如
SELECT * WHERE {
?x rdfs:label "New York"@en.
?x dbpedia-owl:abstract ?abstract.
OPTIONAL { ?x dbpedia-owl:areaTotal ?areaTotal. }
OPTIONAL { ?x dbpprop:governor ?governor. }
OPTIONAL { ?x dbpprop:birthPlace ?birthPlace. }
FILTER (LANG(?abstract) = 'en')
}
关于python - 使用可选属性获取 dbpedia 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18190648/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!