为什么不同的端点不查询相同的数据集?
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也是我的雇主。)
我想查询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 ..
我读到实际上不同的端点使用不同的数据集,但我不明白为什么,因为您给出了要访问的特定 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也是我的雇主。)