почему запрос DBPedia для заданных URL-адресов в Википедии работает только для некоторых URL? - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть список URL-адресов на страницы Википедии и запрос данных dbpedia на lod.openlinksw.com конечной точке.Код такой же, как в этом вопросе .Что было бы полезно понять: как это возможно, что для некоторых URL-адресов это не работает, хотя страницы dbpedia имеют правильный foaf: isPrimaryTopicOf urls?

Здесь упрощенный запрос для соответствующих страниц dbpedia и wikipedia .

   PREFIX foaf: <http://xmlns.com/foaf/0.1/>
   PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
   PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

   SELECT Distinct ?name ?s ?url WHERE {
   ?s a foaf:Person .
   FILTER NOT EXISTS { ?s  rdf:type  dbo:FictionalCharacter }.
   ?s foaf:isPrimaryTopicOf ?url.
   ?s rdfs:label ?name.
   filter(langMatches(lang(?name), "en")).
   ?s foaf:isPrimaryTopicOf <http://en.wikipedia.org/wiki/Adi_Shankara>.
   }
   LIMIT 1

Из списка с ~ 40 URL, которые были извлечены из Википедии, я получаю ~ 10 пустых ответов.Сначала я подумал, что может быть что-то не так с URL-адресами, но большинство из них, кажется, в порядке.Вот еще несколько «не работающих» случаев:

  • , использованных в запросе >> en.wikipedia.org/wiki/Harald_I_of_Norway,
    dbpedia.org/page/Harald_Fairhair >>
    ru.wikipedia.org/wiki/Harald_Fairhair
  • используется в запросе >> en.wikipedia.org/wiki/Ivar_the_Boneless,
    dbpedia.org/page/Ivar_the_Boneless >>
    en.wikipedia.org/wiki/ Ivar_the_Boneless
  • используется в запросе >> en.wikipedia.org/wiki/Jayarāśi_Bhaṭṭa,
    dbpedia.org/page/Jayarāśi_Bhaṭṭa >>
    en.wikipedia.org/wiki/Jayarāśi_Bhaa
  • используется в запросе >> en.wikipedia.org/wiki/Kenneth_I_of_Scotland,
    dbpedia.org/page/Kenneth_MacAlpin >>
    en.wikipedia.org/wiki/Kenneth_MacAlpin
  • используется вquery >> en.wikipedia.org/wiki/Li_Deyu,
    dbpedia.org/page/Li_Deyu >>
    en.wikipedia.org/wiki/Li_Deyu

в 1-м (Harald_Fairhair) и в 4-м (Kenneth_MacAlpin) случаях существуют разные URL-адреса, указывающие на одну и ту же вики-страницу, поэтому мне нужно выяснить, как бороться с suч случаев.Но я не понимаю, почему остальные не работают.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 20 декабря 2018

Пересмотренный запрос на основе цепочки комментариев

   PREFIX foaf: <http://xmlns.com/foaf/0.1/>
   PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
   PREFIX  rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

   SELECT DISTINCT ?name ?s ?url 
   WHERE {
     VALUES ?url { <http://en.wikipedia.org/wiki/Adi_Shankara> 
                   <http://en.wikipedia.org/wiki/Harald_I_of_Norway> 
                   <http://en.wikipedia.org/wiki/Ivar_the_Boneless> 
                   <http://en.wikipedia.org/wiki/Jayarāśi_Bhaṭṭa> 
                   <http://en.wikipedia.org/wiki/Kenneth_I_of_Scotland> 
                   <http://en.wikipedia.org/wiki/Li_Deyu> 
                 }

                       ?s ^dbo:wikiPageRedirects*
                          /foaf:isPrimaryTopicOf  ?url .
   FILTER NOT EXISTS { ?s  rdf:type               dbo:FictionalCharacter }
                       ?s  rdfs:label             ?name .
   FILTER(langMatches(LANG(?name), "en")).
   }

Оригинальный ответ

Как работает этот запрос живые результаты из DBpedia)для вас?

   PREFIX foaf: <http://xmlns.com/foaf/0.1/>
   PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
   PREFIX  rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

   SELECT Distinct ?name ?s ?url WHERE {
   VALUES ?url { <http://en.wikipedia.org/wiki/Adi_Shankara> 
                 <http://en.wikipedia.org/wiki/Harald_I_of_Norway> 
                 <http://en.wikipedia.org/wiki/Ivar_the_Boneless> 
                 <http://en.wikipedia.org/wiki/Jayarāśi_Bhaṭṭa> 
                 <http://en.wikipedia.org/wiki/Kenneth_I_of_Scotland> 
                 <http://en.wikipedia.org/wiki/Li_Deyu> 
               }

                       ?s  foaf:isPrimaryTopicOf  ?url .
#                      ?s  rdf:type               foaf:Person .
   FILTER NOT EXISTS { ?s  rdf:type               dbo:FictionalCharacter }
                       ?s  rdfs:label             ?name .
   FILTER(langMatches(LANG(?name), "en")).
#  ?s foaf:isPrimaryTopicOf <http://en.wikipedia.org/wiki/Adi_Shankara>.
   }
#   LIMIT 10

Помогает ли что-нибудь из этого понять, что происходило раньше?

...