为什么不同的端点不查询相同的数据集?

Why different endpoints do not query same datasets?

我想查询FOAF、DBPedia等数据集。目的是 运行 非常简单的请求,例如“马格利特画了哪些画作?”,“在美国电影中扮演的美国演员有哪些?” …

所以我写了查询,并使用 DBpedia snorql to run them. Then, for some other reasons, I tried Live DBpedia and OpenLinks demo.openlinksw.com 发现结果因端点而异。

这里有 2 个例子:

1) 使用 DBpedia SnorQL 回答,但既不使用 Live DBpedia,也不使用 OpenLinks demo.openlinksw.com

#works of Magritte
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dbp: <http://dbpedia.org/property/>

SELECT * WHERE {
?person a dbo:Artist .
?person foaf:surname "Magritte"@en .
?work dbo:author ?person .
OPTIONAL {?work dbp:year ?year ; dbo:museum ?museum .}
}
ORDER BY ?year

2) 使用 Live DBpedia 回答,但既不是 DBpedia SnorQL 也不是 OpenLinks demo.openlinksw.com

#来自 Willem Robert van Hage R tutorial

的美国演员
SELECT ?actor ?movie ?director ?movie_date
       WHERE {
       ?m dc:subject <http://dbpedia.org/resource/Category:American_films> .
       ?m rdfs:label ?movie .
       FILTER(LANG(?movie) = "en")
       ?m dbp:released ?movie_date .
       FILTER(DATATYPE(?movie_date) = xsd:date)
       ?m dbp:starring ?a .
       ?a rdfs:label ?actor .
       FILTER(LANG(?actor) = "en")
       ?m dbp:director ?d .
       ?d rdfs:label ?director .
       FILTER(LANG(?director) = "en")
       }
       LIMIT 1000

我认为端点只是一种查询数据集的工具。所以我认为您可以从 dbpedia、live dbpedia 或 openlinks demo.openlinksw.com ..

查询 DBPedia 和 FOAF

我读到实际上不同的端点使用不同的数据集,但我不明白为什么,因为您给出了要访问的特定 URI。

为什么相同的查询 returns 根据 SPARQL 端点不同的结果?

很像 SQL DBMS 的不同实例(例如 [排名不分先后且不暗示认可] OpenLink Virtuoso、Oracle、MySQL、Informix、SQL Server、 Sybase、DB2、PostgreSQL、Ingres、Progress OpenEdge 和许多其他)保存不同的数据、RDF RDBMS 的不同实例(阅读:SPARQL 端点),也称为 Quadstores 或 Triplestores(例如 [排名不分先后)并且不暗示背书] OpenLink Virtuoso、AllegroGraph、Stardog、Neo4J、MarkLogic 等)持有不同的数据。

您不能通过 DBMS B 中 Fred 的数据库查询 DBMS A 中 Joe 的数据库 -- 除非有人已经告诉 Fred 的数据库 and/or DBMS 关于 Joe 的数据库 and/or DBMS(例如,VDBMS 功能),或者您在查询中包含有关 Joe 的数据库 and/or DBMS 的一些信息(例如 SPARQL Federation)等

(A "DBMS" 是数据库管理系统,如上面所列。A "database" 是数据集合,通常存储在 [large] 文档中,由 DBMS 管理.)

与您的问题相关的特别说明 --

  • FOAF是一个ontology,一个词汇表,用来描述实体。
  • DBpedia 是一个数据集(随着时间的推移有不同的版本),一个项目,一个组织,以及各种其他东西(文字标识符的歧义!)。
  • OpenLink Software (not "openlinks") is a company which produces OpenLink Virtuoso, among other data-related software and services, and which provides a number of live endpoints on the web -- including the main DBpedia endpoint. (ObDisclaimer: OpenLink Software也是我的雇主。)