SPARQL: получить все свойства, которые мы видим в некоторой сущности DBpedia - PullRequest
1 голос
/ 06 апреля 2019

Я в основном пытаюсь восстановить с помощью sparql все свойства сущности компании «Apple_Inc». глядя на http://dbpedia.org/page/Apple_Inc. Например, я вижу свойства "is dbo: developer of", а "is dbo: cpu of".

Но с этим кодом

select distinct ?property where {
  ?instance a <http://dbpedia.org/ontology/Company> . 
  ?instance rdfs:label ?name.
  filter(regex(?name, "Apple Inc")).
  ?instance ?property ?obj .
}

Я восстановил только часть свойств, и ни один из двух примеров.

1 Ответ

1 голос
/ 08 апреля 2019

Эй, простое решение вашей проблемы.Когда в интерфейсе DBpedia отображается is <something> of, это означает, что объект, который описан на странице, которую вы ищете, является объектом свойства, а не субъектом.

Например, тройка (dbr:IOS_8,dbo:developer,dbr:Apple_Inc.) будет отображаться во внешнем интерфейсе как is developer of, поскольку яблоко - это объект, а не субъект тройки.

Следующий запрос должен выполнить работу:

  select distinct ?prop where {
  {?apple a <http://dbpedia.org/ontology/Company> . 
  ?apple rdfs:label ?name.
  filter(regex(?name, "Apple Inc"))}.

  {{?x ?prop ?apple} union {?apple ?prop ?y}}}
...