使用JSON API查找DBpedia光泽

Cer*_*rin 3 json semantic-web sparql dbpedia

是否有一个快速简便的查找只是在DBpedia中与DBpedia的JSON API维基百科光泽文本特定URI?

例如,我可以通过下载http://dbpedia.org/data/Cat.json来获取DBpedia对猫的所有三元组,但我想要的只是三元组{"type" : "literal" ...}.我可以在不下载和解析整个JSON输出的情况下获得这个吗?JSON API似乎不支持任何类型的过滤,我找不到任何文档.

Jos*_*lor 5

听起来你正在寻找的是形式的所有三元组[dbpedia:Cat?p?o]其中?o是文字.您可以使用针对公共DBpedia端点的SPARQL CONSTRUCT查询并以RDF/JSON请求结果.

construct where {
  dbpedia:Cat ?p ?o
  filter isLiteral(?o)
}
Run Code Online (Sandbox Code Playgroud)

SPARQL结果

构造查询是SPARQL标准的一部分,并在16.2 CONSTRUCT中进行了描述.如果您正在使用Pythonsparql-client(虽然这个问题上没有语言标记,所以没有理由假设普通读者会这样做),请注意其文档说:

sparql-client是一个SPARQL查询库,它通过HTTP对SPARQL端点执行SELECTASK查询.

由于此特定客户端不支持CONSTRUCT查询,因此您需要使用SELECT查询.您可以使用:

select ?p ?o { 
  dbpedia:Cat ?p ?o 
  filter isLiteral(?o)
}
Run Code Online (Sandbox Code Playgroud)

SPARQL结果

生成的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" }},
    …
Run Code Online (Sandbox Code Playgroud)