2015-11-17 3 views
0

Попытка выполнить некоторые запросы, но при поиске foaf: name resultset пуст. Вот мой код:SPARQL DbPedia foaf: name

SELECT DISTINCT ?uri ?string 
WHERE { 
    ?uri rdf:type ?x.  
     ?uri foaf:name 'Cavallo domestico'@it . 
     OPTIONAL { ?uri rdfs:label ?string . FILTER (lang(?string) = 'it') } 
} 

страница существует http://it.dbpedia.org/resource/Equus_caballus/html

По-видимому, кажется, это не связано с языками, отличными английский, но с FOAF: имя запроса. Если я выполнить следующее, получение общего FOAF: GivenName, он работает:

SELECT DISTINCT ?uri ?string 
WHERE { 
    ?uri rdf:type ?x.  
     ?uri foaf:givenName 'Jimmy'@en . 
     OPTIONAL { ?uri rdfs:label ?string . FILTER (lang(?string) = 'en') } 
} 
+0

ли вы запустить это против HTTP://it.dbpedia.org/sparql? Меня устраивает. – Joe

+0

Возможный дубликат [dbpedia fetch entitites на языке, отличном от английского] (http://stackoverflow.com/questions/29069479/dbpedia-fetch-entitites-in-language-other-than-english) – Joe

+1

какой? первый, второй или оба? Первый запрос не возвращает никаких результатов, если вы запустите его в http://dbpedia.org/snorql/. Если вы запустите в it.dbpedia.org/sparql, как вы предлагаете, он работает ..... – RobMor

ответ

1

Я думаю, что это не работает, когда я первый упомянул, что это не in a comment, но, as AKSW points out, это, кажется, работает. RDFS: свойство этикетка имеет названия статей на разных языках, а не FOAF: имя, так что вы можете сделать это, чтобы получить типы лошади:

select ?x ?type { 
    ?x a ?type ; 
    rdfs:label "Equus caballus"@it 
} 

SPARQL results

+0

да это работает проблема в конечной точке, которую вы запрашиваете: In: dbpedia.org/snorql это не В: it.dbpedia.org/sparql это так! – RobMor