Как отличить два пустых узла в RDF? - PullRequest
1 голос
/ 12 июля 2011

Мне трудно понять отрывок из w3.org. Запутанный отрывок может быть ошибкой, или я могу просто запутаться.

Ниже приведено Раздел 6.6 Спецификации концепций RDF ,

6,6 пустых узлов

пустые узлы в RDF-графе взяты из бесконечного множества. Этот набор пустых узлов, набор всех ссылок RDF URI и набор всех литералов попарно не пересекаются.

В противном случае этот набор пустых узлов является произвольным.

RDF не ссылается на какую-либо внутреннюю структуру пустых узлов. Учитывая два пустых узла, можно определить, являются ли они одинаковыми.

Итак, вот что меня смущает: Если нет способа узнать «внутреннюю структуру пустых заметок», как можно отличить их друг от друга? Это опечатка?

Ответы [ 3 ]

3 голосов
/ 12 июля 2011

Это не опечатка, и я согласен, это не просто понять.Это также повторяющаяся проблема.Пустые узлы существуют, потому что иногда нет способов создать URI для представления узла.Этот случай все время происходит в OWL при построении ограничений, например.

Пустой идентификатор узла создается, как правило, когда файл RDF анализируется, и он должен быть уникальным.Поэтому по определению вы не должны находить два пустых узла с одинаковыми идентификаторами.Один из способов различения двух пустых узлов состоит в том, чтобы просмотреть все входящие / исходящие предикаты, а также их объекты / субъекты, чтобы увидеть, идентичны ли подключенные подграфы.Это сложно реализовать, и это может быть очень дорого для больших графов.

Эта проблема широко обсуждалась в связи с поиском различий между RDF-графами.Одна очень интересная статья - одна из проблем разработки TimBL Delta: онтология для распределения различий между графами RDF .Также взгляните на Как отличить вики-графики RDF от w3c .

Если вы являетесь издателем данных, то старайтесь избегать пустых узлов, если это возможно.Если вам нужны пустые узлы, попробуйте создать хеш-функцию, которая дает вам уникальный идентификатор для различных конструкций пустых узлов таким образом, чтобы два разных пустых узла с одинаковой структурой графа имели одинаковый идентификатор, и поэтому вы можете поместить ихаппарт.

1 голос
/ 15 апреля 2014

Обратите внимание, что RDF 1.1, стандартизированный в феврале 2014 года, слегка редактирует этот текст:

Пустые узлы не пересекаются с IRI и литералами.В противном случае набор возможных пустых узлов является произвольным.RDF не ссылается на какую-либо внутреннюю структуру пустых узлов.

и добавляет примечание об пустых идентификаторах узлов:

Примечание. Пустые идентификаторы узлов - это локальные идентификаторы, которые используютсяв некоторых конкретных синтаксисах RDF или реализации хранилища RDF.Они всегда локально ограничиваются файлом или хранилищем RDF и не являются постоянными или переносимыми идентификаторами для пустых узлов.Пустые идентификаторы узлов не являются частью абстрактного синтаксиса RDF, но полностью зависят от конкретного синтаксиса или реализации.Поэтому синтаксические ограничения на пустые идентификаторы узлов, если таковые имеются, также зависят от конкретного синтаксиса или реализации RDF.Реализации, которые обрабатывают пустые идентификаторы узлов в конкретных синтаксисах, должны быть осторожны, чтобы не создавать один и тот же пустой узел из нескольких вхождений одного и того же пустого идентификатора узла, за исключением случаев, когда это поддерживается синтаксисом.

Тамэто также новая спецификация, которая рекомендует схему сколемизации для управления пустыми узлами .

В любом случае, вы говорите, что:

нет никакого способазнать «внутреннюю структуру пустых узлов»

, но это не то, что сказано в спецификации.В спецификации просто говорится, что она не определяет такой способ, а это означает, что исполнители несут ответственность за решение о том, как они хотят внутренне представлять и идентифицировать пустые узлы.Но я согласен, что формулировка спецификации 2004 года сбивает с толку.

0 голосов
/ 24 февраля 2017

В этом проекте отчета группы сообщества W3C рассмотрен алгоритм:

Нормализация набора данных RDF

Стандартный алгоритм нормализации набора данных RDF

...

В этом документе описан алгоритм генерации нормализованного набора данных RDF с учетом набора данных RDF в качестве входных данных.Этот алгоритм называется Универсальный алгоритм нормализации набора данных RDF 2015 или URDNA2015 .

...

В этой спецификации определяется алгоритм создания стабильных пустые идентификаторы узлов повторяемо для различных сериализаций, возможно, используя индивидуализированные пустые идентификаторы узлов того же графа RDF (набора данных), заземляя каждый пустой узел через узлы, к которым он относитсяподключен, по сути создавая Сколем пустые идентификаторы узлов .В результате подпись графа может быть получена путем хэширования канонической сериализации результирующего нормализованного набора данных , что позволяет использовать изоморфизм и варианты использования цифровой подписи.Поскольку идентификаторы пустых узлов могут быть стабильными даже при других изменениях в графике (наборе данных), в некоторых случаях можно вычислить разницу между двумя графиками (наборами данных), например, если изменения вносятся только в наземные тройки или если новый пустойвведены узлы, которые не создают автоморфную путаницу с другими существующими пустыми узлами.

- https://json -ld.github.io / normalization / spec /

...