Это хорошая возможность, чтобы узнать немного больше о том, как получить произвольную информацию из DBpedia. Ваш первый запрос (с ограничением добавленной) является:
select ?type {
?type a owl:Class .
}
limit 10
SPARQL results
Одним из результатов http://dbpedia.org/ontology/Animal, которые вы можете посетить в веб-браузере, и соответствующая страница будет отображать все, что ресурсы свойства. Для animal
, есть не все, что много, но те из них, представляющие интерес для нас
rdfs:label Tier
rdfs:label animal
rdfs:label animal
rdfs:label žival
rdfs:label 동물
свойство, которое нас интересует здесь rdfs:label
, поэтому мы можем расширить запрос
select ?type ?label {
?type a owl:Class .
?type rdfs:label ?label .
}
limit 10
, который мы можем на самом деле сокращаем немного, используя точку с запятой:
select ?type ?label {
?type a owl:Class ;
rdfs:label ?label .
}
limit 10
SPARQL results
Этот запрос, хотя и будет возвращать несколько результатов для каждого ?type
; на самом деле, один за ?label
, так что мы получаем результаты, включая:
http://dbpedia.org/ontology/Animal "Tier"@de
http://dbpedia.org/ontology/Animal "animal"@en
Обратите внимание, что метки не просто строки, но RDF литералы с языка тегов. В SPARQL мы можем получить языковой тег литерала RDF (если он есть), используя функцию lang
. Можно сравнить тег языка для "en"
с оператором =
, но более надежным решением является использование langMatches
, который будет обрабатывать сложнее случаи, как один, указанные в документации, где
filter langMatches(lang(?title), "FR")
может быть использован для поиска выберите оба следующие значения для ?title
, в то время как filter(lang(?title) = "fr")
бы найти только первое:
"Cette Série des Années Soixante-dix"@fr
"Cette Série des Années Septante"@fr-BE
Использование langMatches, Ланг и фильтр, мы можем обновить запрос еще раз, чтобы
select ?type ?label {
?type a owl:Class ;
rdfs:label ?label .
filter(langMatches(lang(?label),"EN"))
}
limit 10
SPARQL Results
который извлекает типы DBpedia и их английские надписи.
Обратите внимание, что ответы на этот вопрос также позволяют решить [ваш вопрос из комментариев другого сообщения] (http://stackoverflow.com/questions/18579620/extract-date-time-based-predicates-from -dbpedia # comment27385469_18594277). –