Связанные данные и конечная точка - PullRequest
2 голосов
/ 02 июня 2010

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

Для этого запроса:


SELECT ?episode,?chalkboard_gag WHERE {
  ?episode skos:subject 
    <a href="http://dbpedia.org/resource/Category:The_Simpsons_episodes%2C_season_12" rel="nofollow noreferrer">http://dbpedia.org/resource/Category:The_Simpsons_episodes%2C_season_12</a>.
  ?episode dbpedia2:blackboard ?chalkboard_gag
}

Конечная точка «Протокол OpenLink Virtuoso SPARQL» возвращает 1 результат.
«http://dbpedia.org/snorql" (« http://dbpedia.org/sparql", я также использую Джену) дает 4 результата, что является правильным, поскольку только в 4 эпизодах создана информация на доске ».
Почему различия?

1 Ответ

1 голос
/ 02 июня 2010

Для первой конечной точки вы имеете в виду 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 и запрашивались в Thread вместо SPARQL, этот запрос мог бы быть таким простым:

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

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

Show:=The Simpsons.Season.Episode|Airdate,Blackboard
...