тройной как предмет - PullRequest
       20

тройной как предмет

1 голос
/ 18 октября 2019

PROV-O позволяет представлять данные о происхождении. Но это происходит на том же уровне, что и любые другие данные на графике. Я имею в виду, что могу утверждать, что сгенерированный Дейвом документ # 01221 , но это ничего не говорит о фактическом происхождении самого утверждения. Мне нужно иметь утверждения о других утверждениях внутри того же магазина.

Вот сценарий реального мира: внешнее приложение, действующее от имени Дейва, записывает некоторые факты в магазине во времясеанс, который является частью проекта, который длится три года. Конечно, во время этого проекта многие другие сессии влияют на многие другие или даже на эти факты. Онтология Provenance позволяет мне утверждать, что произошло, но ограничено только узлами. Я не могу выразить, какие факты были созданы / изменены / удалены во время определенного сеанса или действия ... и, наконец, получить график действий проекта в отношении фактов в магазине.

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

Этого можно достичь, добавив утверждения о самих утверждениях. Насколько я знаю, в RDF триплеты не имеют автономных идентификаторов, и SPARQL не выглядит так, чтобы поддерживать что-то подобное. Таким образом, я не вижу шансов достичь того, чего я хочу, с помощью RDF. Но есть ли другая метамодель, которая обладает гибкостью RDF и поддерживает мои потребности.

1 Ответ

2 голосов
/ 18 октября 2019

В мире RDF то, о чем вы говорите, называется reification .

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

_:b1  rdf:type       rdf:Statement ;
      rdf:subject    :moon ;
      rdf:predicate  :consistsOf ;
      rdf:object     :greenCheese .

Другой путь - переход к квад-модели, обычно с использованием «именованных графов» (которые поддерживаются SPARQL). Именованный граф может состоять из одной тройки и часто выражается как { Subject Predicate Object Graph }, что-то вроде -

{ :moon :consistsOf :greenCheese _:b1 }

- или как { Graph { Subject Predicate Object } } что-то вроде -

{ _:b1 { :moon :consistsOf :greenCheese } }

Теперь вы можете сказать, что с любым из них _:b1 утверждал Джо 1958-12-24, отрицал Нил 1969-07-21 и т. Д.

Существуют различные способысбора графов с одним утверждением в графы с несколькими утверждениями - например, описание графа X как составленного из графов M, N, O и графа Y, составленного из графов X, P, Q - таким образом, что вы можетеописать (включая предоставление происхождения) одно утверждение, набор утверждений и т. д., в зависимости от ситуации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...