В спецификации SPARQL упоминается, что для указания набора данных можно использовать предложение FROM
.
В запросе SPARQL можно указать набор данных, который будет использоваться для сопоставления с помощью предложение FROM
и предложение FROM NAMED
для описания набора данных RDF.
Что такое "набор данных" в контексте SPARQL? Я очень хорошо знаком с базами данных в целом, и я в принципе понимаю, что запрос данных, выраженных на языке, таком как SQL, затем выполняется для набора данных для разрешения некоторого подмножества этого набора данных.
I пытаюсь понять следующий запрос:
prefix cpmeta: <...some_domain>
select distinct
?uri
?label
?stationId
from <...some_domain>
from <...some_domain>
from <...some_domain>
from <...some_domain>
from named <...some_domain>
where {
{ ?uri rdfs:label ?label }
UNION
{ ?uri cpmeta:hasName ?label }
UNION
{
graph <...some_domain> {
?uri a cpmeta:Station .
?uri cpmeta:hasName ?label .
}
}
?uri cpmeta:hasStationId ?stationId
}
limit 100
Итак, из документации по спецификации я в принципе понимаю, что
- Указано 4 набора данных и (я думаю)
- Определен один «набор данных RDF»
Однако. Запрос фактически выполняется (но с немного отличающимися результатами), если я пропущу предложения FROM
и FROM NAMED
:
prefix cpmeta: <...some_domain>
select distinct
?uri
?label
?stationId
where {
{ ?uri rdfs:label ?label }
UNION
{ ?uri cpmeta:hasName ?label }
UNION
{
graph <...some_domain> {
?uri a cpmeta:Station .
?uri cpmeta:hasName ?label .
}
}
?uri cpmeta:hasStationId ?stationId
}
limit 100
Так ясно ??? уже указан набор данных. Это через prefix
?
Вопросы:
- Почему
RDF dataset
идентифицируется иначе, чем обычный набор данных (FROM
против FROM NAMED
) - URI для префикса фактически повторно используется в операторе
FROM
. В чем разница между префиксом и предложением FROM
?
Этот вопрос - Указание набора данных в запросе SPARQL - показывает, как указать набор данных, но не объясняется, что это означает в контексте запроса SPARQL и, тем не менее, в контексте того, что запрос SPARQL разрешается для фактических данных.
Этот вопрос - Предложение FROM в запросах SPARQL - упоминает, что запрос SPARQL без предложения FROM выполняется для набора данных по умолчанию. Но тогда почему пропуск всех наборов данных по-прежнему приводит к данным, возвращаемым запросом?