Получить все свойства для класса DBpedia - PullRequest
19 голосов
/ 04 августа 2011

Как получить список свойств для определенного класса?Рассмотрим класс dbpedia-owl:Person.Все экземпляры класса Person имеют некоторые свойства с префиксом dbpprop:.Как я могу получить все свойства dbpprop:, которые мы можем найти для всех экземпляров класса Person?

Ответы [ 2 ]

28 голосов
/ 04 августа 2011

То, что работает:

select distinct ?property where { 
   ?property <http://www.w3.org/2000/01/rdf-schema#domain> 
                             <http://dbpedia.org/ontology/Person> . }

В этом запросе вы запрашиваете все свойства, которые имеют dbpedia:Person как rdfs:domain.Этот запрос требует определения схемы для работы, и иногда наборы данных не совсем соответствуют схемам.Для этих наборов данных вы можете попробовать этот другой запрос

select distinct ?property where {
         ?instance a <http://dbpedia.org/ontology/Person> . 
         ?instance ?property ?obj . }

Этот запрос просматривает каждый экземпляр лица, связывающего каждое свойство, которое выходит из него.Это намного сложнее, чем первый, и в общедоступном экземпляре dbpedia вы получите время.Поэтому вам лучше использовать первый, если вы хотите использовать общедоступную конечную точку.

5 голосов
/ 16 декабря 2013

Чтобы получить все переходные свойства, вы можете задать этот запрос

select distinct ?property where{
{
  ?property rdfs:domain ?class . 
  dbpedia-owl:Person rdfs:subClassOf+ ?class.
} UNION {
  ?property rdfs:domain dbpedia-owl:Person.
}}

'+' в 'rdfs: subClassOf' является выражением пути свойства [1], которое также извлекает все верхние классы Person. Эти свойства также действительны для персоны.

Также обратите внимание, что пространство имен dbprop не рекомендуется, поскольку данные являются необработанными и не нормализованы по типу данных.

[1] http://www.w3.org/TR/2010/WD-sparql11-property-paths-20100126/

Раскрытие информации: я разработчик DBpedia

...