RDF, допустимо ли иметь один оператор rdf: Statement с несколькими присоединенными тройками предикатов rdf:? - PullRequest
1 голос
/ 19 июня 2020

По предмету, допустимо ли утверждать один rdf:Statement с несколькими rdf:predicate троек, прикрепленных к нему?

Справочная информация: я пытаюсь построить предполагаемые тройки с помощью простых правил, основанных на SPARUL (ie, INSERT <inferred triples> WHERE <preconditions>). В моем наборе данных я овеществлял утверждения на основе словаря rdf:, и имеет смысл делать выводы вроде:

?stmt rdf:predicate ?p; ?p rdfs:subPropertyOf ?p1 => 
  => a statement with rdf:predicate ?p1 is also asserted.

Цель такого вывода - в основном отображение словаря: люди, выполняющие поиск с использованием словаря, определяющего ?p1 также найдет утверждения, сформулированные людьми, использующими словарь, в котором определено ?p (например, skos:prefLabel(?p) rdfs:subPropertyOf schema:name(?p1)).

Я не могу найти никакой документации, в которой говорится, что в операторе может быть только один rdf:predicate или наоборот. Мне кажется, что только один предикат был бы более чистым вариантом, однако, если бы это было так, мне нужно было бы дублировать почти весь существующий оператор (включая дополнительные тройки, такие как происхождение или оценка значимости) и использовать ?p1 в качестве предикат для нового.

Если вместо этого я просто добавлю rdf:predicate к существующему, подразумеваемая семантика будет: «есть два, которые отличаются только предикатом» и все запросы, ищущие ?p или ?p1 должны работать без проблем, но я не уверен, что я ничего не упускаю.

На самом деле, я вижу одну вещь: подсчет овеществленных операторов не может быть основан на подсчете утраивается, как ?s a rdf:Statement, но в моем случае это не имеет большого значения.

Ответы [ 2 ]

3 голосов
/ 19 июня 2020

в этом случае, я думаю, можно было бы легко выполнить сопоставление словаря, просто заявив, что <p> эквивалентно <p1> с использованием owl: sameAs.

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

0 голосов
/ 24 июня 2020

Собираюсь ответить информацией, которую я собрал из веб-группы Semanti c на Facebook (большое спасибо тем, кто внес свой вклад).

Обычная практика такова, что одно овеществленное утверждение представляет только одно утверждение. Предложенная мною интерпретация не очень хорошо работает с тем фактом, что один URI должен представлять только одну сущность.

Кроме того, такую ​​уникальность можно вывести из спецификаций (акцент на конкретной статье принадлежит мне):

Предикат оператора RDF является экземпляром rdf: Свойство, идентифицированное предикатом тройки.

Более того , маловероятно, что фреймворки вроде Jena будут хорошо работать с моим подходом.

Так что, определенно не лучшая идея, я go с дубликатами.

...