RDF, допустимо ли иметь один rdf:Statement с несколькими присоединенными тройками rdf:predicate?

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

Предыстория: я пытаюсь построить предполагаемые тройки с помощью простых правил, основанных на SPARUL (т.е. 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, но в моем случае это не имеет большого значения.


person zakmck    schedule 18.06.2020    source источник


Ответы (2)


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

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

person William    schedule 18.06.2020
comment
спасибо, я также думаю, что сопоставление 1-1 является обычным явлением. Re: owl:sameAs, на самом деле у нас обычно есть несколько случаев сопоставления (rdfs:subPropertyOf, owl:equivalentProperty, owl:inverseOf) - person zakmck; 19.06.2020

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

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

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

Предикатом оператора RDF является экземпляр rdf:Property, определяемый предикатом тройки.

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

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

person zakmck    schedule 23.06.2020