Как найти правильный ресурс среди неоднозначностей / опросить подресурсы в DBPedia, используя SPARQL? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть название музыкального видео на Youtube, и мне нужно собрать дополнительную информацию из DBPedia, такую ​​как альбом, исполнитель, дата выпуска и т. Д. Я также хотел бы получить «конспект» всех этих сущностей из DBPedia.Я уже использую Musicbrainz, чтобы различать песню и исполнителя в названии, и это работает довольно хорошо, за исключением нескольких случаев.

Однако моя главная проблема заключается в следующем: когда я передаю песню для запроса DBPedia (используя запрос с ресурсом / {song}), иногда я не получаю ответа, потому что {song} вызывает неоднозначность.Пример: resource / It's_My_Life имеет 11 двусмысленностей, 6 из которых - песни.Мне нужен ресурс "It's_My_Life_ (Bon_Jovi_song)".Как я могу сказать DBPedia, что мне нужен ресурс типа MusicalWork определенного исполнителя?

Я пытался сделать это с помощью SPARQL разными способами, но я всегда получаю пустой результат и не знаючто я делаю не такДо сих пор мне удавалось получить только резюме каждой неоднозначности, но я не могу получить конкретное свойство (например, резюме) подресурса неоднозначности.

SELECT ?x ?y WHERE {
    <http://dbpedia.org/resource/It's_My_Life>  dbo:wikiPageDisambiguates ?x .
    ?x dbo:abstract ?y .
}

Кажется, я не могу стать отцомэтот.Я пытался с:

SELECT ?x ?y WHERE {
    <http://dbpedia.org/resource/It's_My_Life>  dbo:wikiPageDisambiguates ?x .
    ?x dbo:MusicalArtist ?y .
    { SELECT ?z WHERE { 
        ?y dbo:abstract ?z}
    }
}

и

SELECT ?x ?y WHERE {
    <http://dbpedia.org/resource/It's_My_Life>  dbo:wikiPageDisambiguates ?x
    ?x rdfs:type ?y .
}

Но результаты всегда пусты.Как я должен опросить подресурс ресурса?Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 30 октября 2018

Решение, полученное из комментариев @AKSW -

SELECT ?x ?y 
WHERE
  { 
    <http://dbpedia.org/resource/It's_My_Life>  dbo:wikiPageDisambiguates  ?x              . 
    ?x                                          rdf:type                   dbo:MusicalWork . 
    ?x                                          dbo:abstract               ?y              . 
    FILTER ( LANGMATCHES ( LANG (?y), 'en' ) ) 
  }
...