2010-06-02 2 views
2

Почему конечная точка имеет большое значение для конечных результатов запроса.Связанные данные и конечная точка

По данному запросу:

 

SELECT ?episode,?chalkboard_gag WHERE { 
    ?episode skos:subject 
    http://dbpedia.org/resource/Category:The_Simpsons_episodes%2C_season_12 . 
    ?episode dbpedia2:blackboard ?chalkboard_gag 
} 
 
Конечная точка «OpenLink Virtuoso SPARQL protocol» возвращает 1 результат.
« http://dbpedia.org/snorql» (« http://dbpedia.org/sparql», я использую также jena) дает 4 результата, что является правильным, так как только 4 из эпизодов имеют информацию о доске.

Почему различия?

ответ

1

Для первой конечной точки, вы имеете в виду http://lod.openlinksw.com/sparql? Я не вижу различных результатов между этим и http://dbpedia.org/sparql. Например, этот запрос, расширяющийся на вашем, как представляется, возвращает один и тот же материал с обеих конечных точек (если они действительно разные серверы, я не могу сказать).

prefix skos: <http://www.w3.org/2004/02/skos/core#> 
prefix category: <http://dbpedia.org/resource/Category:> 
prefix dbpedia2: <http://dbpedia.org/property/> 
prefix xsd: <http://www.w3.org/2001/XMLSchema#> 

SELECT DISTINCT ?airdate ?chalkboard_gag ?episode 
WHERE { 
    ?episode skos:subject ?cat . 
    ?cat skos:broader category:The_Simpsons_episodes . 
    ?episode dbpedia2:airdate ?airdate . 
    ?episode dbpedia2:blackboard ?chalkboard_gag . 
    FILTER langMatches(lang(?chalkboard_gag), 'en') . 
    FILTER xsd:dateTime(?airdate) 
} 
ORDER BY ?airdate 

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


 
Я отмечаю мимоходом, что если эти данные были в Needle, и запрашиваются в тему вместо SPARQL, этот запрос может быть столь же просто, как:

Episode:(.Subject:<~The Simpsons)^Airdate|Airdate,Blackboard 

За исключением Needle вы бы вероятно, на самом деле моделируют телевизионные шоу, такие как телешоу, вместо того, чтобы полагаться на уровни общего предмета SKOS/более широкие абстракции и, следовательно, могут иметь:

Show:=The Simpsons.Season.Episode|Airdate,Blackboard 
Смежные вопросы