ОПИСАТЬ запрос SPARQL в Dbpedia

Я хочу извлечь данные dbpedia в RDF с помощью запроса «DESCRIBE».

Например, если я наберу:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX db: <http://dbpedia.org/ontology/> 
PREFIX prop: <http://dbpedia.org/property/>
DESCRIBE ?movie ?author ?genre
WHERE { 
?movie rdf:type db:Film ;
prop:author ?author ;
prop:genre ?genre .
}
LIMIT 50
OFFSET 0

все работает нормально.

Однако, если я добавлю свойства актера и продолжительности:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX db: <http://dbpedia.org/ontology/> 
PREFIX prop: <http://dbpedia.org/property/>
DESCRIBE ?movie ?author ?genre ?actor ?duration
WHERE { 
?movie rdf:type db:Film ;
prop:author ?author ;
prop:genre ?genre;
prop:actor ?actor;
prop:duration ?duration .
}
LIMIT 50
OFFSET 0

У меня пустой RDF.

Вот схема для фильма: http://schema.org/Movie

Кто угодно?


person expx    schedule 23.09.2012    source источник
comment
Можете ли вы предоставить входные данные RDF?   -  person Raffaele    schedule 23.09.2012
comment
Я не уверен, о чем вы меня просите. извините, я вроде как новичок в rdf и sparql :)   -  person expx    schedule 23.09.2012
comment
У вас есть локальный файл? Вы проверяете свои запросы онлайн на сайте dbpedia?   -  person Raffaele    schedule 23.09.2012
comment
Я делаю запросы на dbpedia.org/sparql с выбранным форматом результатов RDF / XML. Как я уже сказал, первый запрос возвращает rdf с некоторыми данными, а второй возвращает пустой rdf.   -  person expx    schedule 24.09.2012


Ответы (1)


Думаю проблема с вводом. Предполагая, что вы снова тестируете dbpedia через веб-интерфейс SPARQL, вы можете получить что-то,

  • Маркировка duration и genre как необязательных (поэтому указывать их не обязательно)
  • Использование dbpprop:starring вместо dbpprop:actor

Итак, следующий запрос

DESCRIBE ?movie ?author ?genre ?actor ?duration
WHERE { 
  ?movie a dbpedia-owl:Film ;
    dbpprop:author ?author ;
    dbpprop:starring ?actor .
  OPTIONAL {
   ?movie dbpprop:duration ?duration ;
     dbpprop:genre ?genre
  }
}
LIMIT 5
OFFSET 0

даст вам некоторые графики. Также обратите внимание, что я думаю, вам следует ввести префикс http://schema.org/ для использования этой схемы Movie (но, похоже, они не используются так глубоко в наборе данных dbpedia)

И здесь является результатом SELECT вместо DESCRIBE (зачем вам формат результата DESCRIBE? ) - Думаю, в этом есть смысл.

Думаю, я тоже нахожу кое-что интересное. Если вы спросите

DESCRIBE dbpparam:starring

Вы получить интересное сообщение об ошибке

Ошибочное выражение для предиката 'http://www.w3.org/2002/07/owl#equivalentProperty': схема: акторы

Думаю, именно поэтому schema:actor (а может, и dbpprop:actor тоже) не работает. Похоже на ошибку в программе индексирования.

person Raffaele    schedule 23.09.2012
comment
спасибо, теперь лучше. Мне нужно описать результат, потому что я хочу вставить этот rdf в базу данных sql и использовать его в моем сервисном проекте RESTful. могу я сделать это с выбором формата результата? - person expx; 24.09.2012
comment
Я думаю, что SELECT - это правильный путь. DESCRIBE возвращает данные некоторым образом, определенным агентом, и, как вы можете видеть, это полезно, когда человек исследует что-то, но затрудняет программе сделать что-то полезное с результатом. Набор результатов, полученный из SELECT, идеально подходит для базы данных SQL. - person Raffaele; 24.09.2012
comment
еще раз, чтобы быть уверенным, я могу использовать запрос SELECT, а затем импортировать результат RDF в базу данных SQL с помощью JENA RDF API? как-то я подумал, что должен использовать DESCRIBE :) - person expx; 24.09.2012
comment
Вывод DESCRIBE нестандартный и также содержит ненужную информацию. Это полезно, когда человек хочет изучить базу данных, но для загрузки программы вы должны использовать SELECT. См. ResultSet API. - person Raffaele; 24.09.2012
comment
еще раз спасибо. однако я не могу проголосовать за ваш ответ, требуется 15 репутации, а у меня ее нет в банкомате: / - person expx; 24.09.2012
comment
@expx Не беспокойтесь об этом :) - person Raffaele; 24.09.2012