如何使用SPARQL在DBPedia中为多个名称属性获取单个名称?

时间:2015-06-17 15:08:56

标签: sparql owl dbpedia

我需要从DBPedia获取人名,但问题是并非每个人都拥有dbpprop:fullname属性,有时它只有dbpprop:namerdfs:label属性。

澄清:我想查询具有第一个属性的首选项的名称,如果不存在则获取第二个属性,如果不存在则获取第三个属性,等等。

那么我怎样才能从

中获取人名
   dbpprop:name (person name = [dbpprop:name] if no [dbpprop:fullname])

  rdfs:name (person name = [rdfs:name] if no both [dbpprop:fullname] and [dbpprop:name])

1 个答案:

答案 0 :(得分:3)

您可以使用RACSignal *loginSignal = [[loginButton rac_signalForControlEvents:UIControlEventTouchUpInside] merge:[self textFieldReturnPressed]]; 函数执行此操作:

COALESCE

Result

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dbpprop: <http://dbpedia.org/property/> SELECT DISTINCT ?x (COALESCE(?dbpfn, ?dbpn, ?label) as ?name) WHERE { ?x a foaf:Person . OPTIONAL { ?x dbpprop:fullname ?dbpfn } OPTIONAL { ?x dbpprop:name ?dbpn } OPTIONAL { ?x rdfs:label ?label } } LIMIT 100 将参数列表作为输入,并输出与错误不对应的第一个参数。由于未绑定变量对应于错误,如果存在,则返回全名,否则返回名称(如果存在),否则返回标签。