是否可以使用DBpedia JSON API快速轻松地在DBpedia中查找仅维基百科光泽文本中的特定URI?
e.g。我可以通过下载http://dbpedia.org/data/Cat.json获取DBpedia对猫的所有三元组,但我想要的只是{"type" : "literal" ...}
的三元组。我可以在不下载和解析整个JSON输出的情况下获得这个吗? JSON API似乎不支持任何类型的过滤,我找不到任何文档。
答案 0 :(得分:5)
听起来你正在寻找的是形式的所有三元组[dbpedia:Cat?p?o]其中?o是文字。您可以使用针对public DBpedia endpoint的SPARQL CONSTRUCT查询并以RDF / JSON请求结果。
construct where {
dbpedia:Cat ?p ?o
filter isLiteral(?o)
}
构造查询是SPARQL标准的一部分,在16.2 CONSTRUCT中有描述。 如果您正在使用sparql-client for Python(此问题上没有语言标记,那么没有理由假设普通读者会这样做),请注意{{3说:
its documentation是一个SPARQL查询库,它通过HTTP对SPARQL端点执行 SELECT 和 ASK 查询。
由于此特定客户端不支持CONSTRUCT查询,因此您需要使用SELECT查询。您可以使用:
select ?p ?o {
dbpedia:Cat ?p ?o
filter isLiteral(?o)
}
生成的JSON形式并不完全相同,但它仍然非常规则,您可以毫不费力地处理它:
{ "head": { "link": [], "vars": ["p", "o"] },
"results": { "distinct": false, "ordered": true, "bindings": [
{ "p": { "type": "uri", "value": "http://dbpedia.org/ontology/abstract" } , "o": { "type": "literal", "xml:lang": "nl", "value": "De kat of huiskat (Felis catus) is een van de oudste huisdieren van de mens. De gedomesticeerde kat behoort tot de familie der katachtigen (Felidae). De oude soortnaam was Felis domesticus, tegenwoordig is deze vervangen door Felis catus. Eind 2009 waren in Nederland ongeveer 3,6 miljoen katten aanwezig." }},
…
{ "p": { "type": "uri", "value": "http://dbpedia.org/ontology/conservationStatus" } , "o": { "type": "literal", "xml:lang": "en", "value": "DOM" }},
{ "p": { "type": "uri", "value": "http://dbpedia.org/ontology/synonym" } , "o": { "type": "literal", "xml:lang": "en", "value": "Felis catus domestica (invalid junior synonym)" }},
{ "p": { "type": "uri", "value": "http://dbpedia.org/ontology/synonym" } , "o": { "type": "literal", "xml:lang": "en", "value": "Felis silvestris catus (subjective synonym)" }},
{ "p": { "type": "uri", "value": "http://dbpedia.org/ontology/wikiPageID" } , "o": { "type": "typed-literal", "datatype": "http://www.w3.org/2001/XMLSchema#integer", "value": "6678" }},
{ "p": { "type": "uri", "value": "http://dbpedia.org/ontology/wikiPageRevisionID" } , "o": { "type": "typed-literal", "datatype": "http://www.w3.org/2001/XMLSchema#integer", "value": "547667240" }},
{ "p": { "type": "uri", "value": "http://www.w3.org/2000/01/rdf-schema#label" } , "o": { "type": "literal", "xml:lang": "zh", "value": "\u732B" }},
{ "p": { "type": "uri", "value": "http://www.w3.org/2000/01/rdf-schema#label" } , "o": { "type": "literal", "xml:lang": "de", "value": "Hauskatze" }},
…