Недавно я наткнулся на рабочий проект SPARQL 1.1 Federation Extensions и задался вопросом, возможно ли это уже с помощью именованных графов (не умаляя полезности вышеупомянутого проекта).
Мое понимание именованных графов немного расплывчато, за исключением того, что единственное, что я понял, прочитав спецификации, касается правил слияния, а не слияния по отношению к другим графам во время запроса. Поскольку это не полностью удовлетворяет мое понимание, мой вопрос заключается в следующем:
Учитывая следующий запрос:
SELECT ?something
FROM NAMED <http://www.vw.co.uk/models/used>
FROM NAMED <http://www.autotrader.co.uk/cars/used>
WHERE {
...
}
Разумно ли предположить, что обработчик/конечная точка запросов может или должна в контексте именованных графов делать следующее:
Проверить, существует ли указанный граф локально
Если это не так, выполните следующую операцию (в случае вышеуказанного запроса я буду использовать второй именованный граф)
GET /sparql/?query=EncodedQuery HTTP/1.1 Хост: www.autotrader.co.uk Агент пользователя: my-sparql-client/0.1
Где EncodedQuery включает только второй именованный граф в предложении FROM NAMED
, а предложение WHERE
изменяется соответствующим образом по отношению к предложениям GRAPH
(например, если используется GRAPH <http://www.vw.co.uk/models/used> {...}
).
Только если он не может выполнить описанное выше, выполните одно из следующих действий:
GET /cars/used HTTP/1.1
Host: www.autotrader.co.uk
or
LOAD <http://www.autotrader.co.uk/cars/used>
- Вернуть соответствующие результаты поиска.
Очевидно, что могут быть некоторые дополнительные соображения относительно OFFSET
и LIMIT
.
Я также помню, как давным-давно в далекой-далекой галактике читал, что граф по умолчанию любой конечной точки SPARQL должен быть именованным графом в соответствии со следующим соглашением:
Для: http://www.vw.co.uk/sparql/ должно быть именованный график: http://www.vw.co.uk, представляющий график по умолчанию и таким образом, по приведенной выше логике уже должна быть возможность объединять конечные точки SPARQL с использованием именованных графов.
Причина, по которой я спрашиваю, заключается в том, что я хочу начать продвигать федерацию между доменами в приведенном выше примере, не дожидаясь стандарта, убедившись, что я не буду делать что-то, выходящее за рамки или несовместимое с чем-то еще в будущее.
SERVICE
. Насколько я знаю, Jena Assembler позволяет сопоставлять именованные графы с локальными файлами, и, возможно, другие хранилища триплетов позволяют сопоставлять именованные графы с удаленными тройками, но эти решения зависят от поставщика. Что касается имен по умолчанию для графиков по умолчанию, эта спецификация в настоящее время не содержит что-то в этом роде. - person Stanislav Kralin   schedule 15.10.2017