Именованные графы и URL-адреса, используемые в федеративных запросах (с использованием SERVICE или FROM), - это две разные вещи. Последние указывают на конечные точки SPARQL, именованные графы находятся в тройном хранилище и выполняют основную функцию разделения различных наборов данных. Это, в свою очередь, может быть полезно как для повышения производительности, так и для представления знаний, например, для представления того, что является источником набора утверждений.
Например, у вас может быть два источника данных, каждый из которых указывает, что ?movie has-rating ?x
, и вы можете захотеть узнать, какой источник указывает какой рейтинг, в этом случае вы можете использовать два именованных графика, связанных с двумя источниками (например, http://www.example.com/rotten-tomatoes
и http://www.example.com/imdb
). Если вы храните оба набора данных в одном и том же тройном хранилище, возможно, вы захотите использовать NG, а удаленные конечные точки - это другое. Кроме того, URL именованного графа можно использовать со словарями, такими как VoID , чтобы описать набор данных в целом (например, имя набора данных, откуда и когда импортируются тройки, кто является сопровождающим, пользовательская лицензия). Это еще одна причина для разделения вашего тройного магазина на NG.
Тем не менее, ваш механизм привязки NG к URL-адресам конечных точек может быть реализован как опция, но я не думаю, что было бы хорошо иметь его как обязательный, поскольку управление URL-адресами удаленных конечных точек и NG по отдельности может быть более полезным.
Более того, реальная проблема в федеративных запросах состоит в том, чтобы предлагать прозрачные для конечных точек запросы, делая механизм запросов достаточно умным для анализа запроса и понимания, как его разбить и выполнять частичные запросы на правильных конечных точках (а затем объединить результаты, эффективным способом). В настоящее время проводится много исследований, один из наиболее значимых результатов (насколько мне известно) - FedX , который был использован для реализации нескольких оптимизаций распределения запросов ( пример ).
Последнее, что нужно добавить, я смутно помню соглашение, которое вы упоминаете о $ url, $ url / sparql. Существует несколько подходов (например, LOD cloud ). Тем не менее, в большинстве современных тройных хранилищ (например, Virtuoso) запросы, которые не указывают именованный граф (не используют GRAPH), работают не так, как в случае графа по умолчанию, они фактически запрашивают объединение всех именованные графы в хранилище, что обычно гораздо полезнее (когда вы не знаете, где что-то указано, или хотите интегрировать кросс-графические данные).