Я пытаюсь извлечь сущность словаря, содержит имя человека и т. Д. Из dbpedia, используя sparql.dbpedia fetch entitites на языке, отличном от английского
PREFIX owl: <http://dbpedia.org/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
SELECT ?name
WHERE {
?person a owl:Person .
?person dbpprop:name ?name . FILTER(lang(?name) = "en")
}
Запрос выше сделал успешно, но когда я изменить название языка для fr
, нет ничего, чтобы принести.
Как я могу получить имена на других языках?
Кроме того, почему я не могу фильтровать язык, используя запрос ниже?
SELECT ?name
WHERE {
?person a owl:Person .
?person dbpprop:language "English"
?person dbpprop:name ?name .
}
// this query returns nothing
Я попытался извлечь все языки, используя
SELECT DISTINCT ?lanName
WHERE {
?person a owl:Person .
?person dbpprop:language ?lanName .
}
и результирующий набор содержит English
.
Выполнение 'select? Label {dbpedia: England rdfs: label? Label}' на http://dbpedia.org/sparql/ возвращает [двенадцать различных результатов] (http://goo.gl/ZGVXrB) и только один находится на английском языке. Не совсем ясно, что «** Вы ищете rdfs: ярлык для имени, конечно, все имена - английский **». –
И лучше использовать 'langMatches (lang (? Name)," fr ")' than 'lang (? Name) =" fr "'. –
Спасибо, есть ли какие-либо подробные документы по этим свойствам? Официальная онтологическая иерархия (например, http://mappings.dbpedia.org/server/ontology/classes/Person) содержит только простые комментарии. – Tilney