我需要从DBPedia获取人名,但问题是并非每个人都拥有dbpprop:fullname
属性,有时它只有dbpprop:name
或rdfs: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])
答案 0 :(得分:3)
您可以使用RACSignal *loginSignal = [[loginButton
rac_signalForControlEvents:UIControlEventTouchUpInside]
merge:[self textFieldReturnPressed]];
函数执行此操作:
COALESCE
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
将参数列表作为输入,并输出与错误不对应的第一个参数。由于未绑定变量对应于错误,如果存在,则返回全名,否则返回名称(如果存在),否则返回标签。