К сожалению, до сих пор экземпляры отношений, то есть то, что в документах W3C называют элементами расширения отношения, или то, что в математике вы бы назвали парами, которые являются элементами отношения, не считаются быть первоклассными гражданами.
Экосистема семантической сети претендует на лозунг ААА, что любой может сказать что угодно о чем угодно. Но это не так, если первое «что-нибудь» здесь - это одно ребро графа. Даже если сам RDF имеет средства для выражения знаний об одном ребре, документ семантики R3F W3C делает все возможное, чтобы не поддерживать эту выразительность.
В принципе, есть 4 подхода, чтобы сказать что-то о ребре:
- непопулярные, вздутые слабо связанные заявления RDF
- недвижимость синглтонов
- одиночный оператор с именем graphs (4-й элемент в квадрате - идентификатор графа)
- узлы ассоциации (аналогично классам ассоциации UML)
Одиночные свойства - безусловно, самое простое решение проблемы, так как они ничего не добавляют - вы просто избегаете ошибки, чтобы [повторно] использовать идентификатор свойства уровня класса для ребер экземпляра снова и снова. Другие моделирующие экосистемы, которые имеют четкое понимание метамоделирования (например, MOF), гораздо менее склонны совершать такую ошибку. Ребра уровня класса соединяют узлы уровня класса, а ребра уровня экземпляра соединяют узлы уровня экземпляра. Вот и все.
Если вы сделаете это правильно (как предлагают Винь и его коллеги), вы окажетесь на пути конфликта с аргументами, которые жестко запрограммированы в документе семантики W3C RDF.
Вы можете временно обойти это (до тех пор, пока W3C еще не стандартизировал синглоны свойств), сделав еще один недостаток дизайна и реализовав синглеты своего свойства как subPropertyOf-s свойства уровня класса [вместо того, чтобы делать их экземплярами этого] ,
Тогда существующий RDFS-мыслитель мог бы сделать вывод из
: my_label_0815 rdfs: subPropertyOf rdfs: label.
: some_node: my_label_0815 "some_string".
тот
: some_node rdfs: метка "some_string".
Это грязный обходной путь, поскольку он нарушает четкое разделение метауровней.
У нас так много ужасно разработанных моделей, просто потому, что у нас нет простого способа что-то сказать о ссылках (ребрах уровня экземпляра).