Получить фильм (ы) на основе книги (книг) из DBpedia - PullRequest
0 голосов
/ 03 июня 2018

Я новичок в SPARQL и пытаюсь получить фильм, адаптированный из определенной книги из dbpedia.Это то, что у меня есть:

PREFIX onto: <http://dbpedia.org/ontology/>
SELECT *
WHERE 
{
  <http://dbpedia.org/page/2001:_A_Space_Odyssey> a ?type.
  ?type onto:basedOn ?book .
  ?book   a  onto:Book 
}

Я не могу получить никаких результатов.Как я могу это сделать?

1 Ответ

0 голосов
/ 03 июня 2018

При использовании любого веб-ресурса и в вашем случае свойства :basedOn необходимо убедиться, что вы указали правильный префикс.Если вы запрашиваете данные из конечной точки DBpedia SPARQL, вы можете напрямую использовать dbo:basedOn, даже не объявляя его, так как он находится среди предопределенных .В качестве альтернативы, если вы хотите использовать свой собственный или если вы используете другой клиент SPARQL, убедитесь, что любое короткое имя, выбранное для этого свойства, вы объявляете префиксом для http://dbpedia.org/ontology/.

Затем,Во-первых, чтобы получить больший результат, вы не можете ограничивать тип объекта этого тройного шаблона, поскольку могут быть фильмы, которые на самом деле не напечатаны как таковые.Таким образом, такой запрос

select distinct *

{

?movie dbo:basedOn ?book .

?book a dbo:Book .

}

даст вам много хороших результатов, но не все.Например, ресурс из вашего примера будет отсутствовать.Вы можете легко проверить тестирование доступных свойств между этими двумя ресурсами с помощью следующего запроса:

select  ?p

{
{<http://dbpedia.org/resource/2001:_A_Space_Odyssey_(film)> ?p <http://dbpedia.org/resource/2001:_A_Space_Odyssey> }

UNION

{ <http://dbpedia.org/resource/2001:_A_Space_Odyssey> ?p <http://dbpedia.org/resource/2001:_A_Space_Odyssey_(film)>}
}

Вы получите только один результат: http://www.w3.org/2000/01/rdf-schema#seeAlso

(обратите внимание, что URIс помощью «ресурса», а не «страницы»)

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

...