ГОСТ Р ИСО/МЭК 13250-6—2016
Если type не указан, свойство [type] элемента наименования темы задается как тематический эле
мент. свойство [subject identifiers] которого содержит
http://psi.topicmaps.org/iso13250/model/topic-name;
если такого тематического элемента не существует, то он создается.
john-lennon
- «John Lennon»;# Namewith the default nametype
- fullname: «John Winston Lennon». # Name oftype ’fullname’
3.12 Варианты
Конструкция вариант (variant) используется для того, чтобы добавить наименование варианта в
элемент наименования темы. Синтаксис выглядитследующим образом.
Во время десериализации конструкция вариант вызываетсоздание элемента вариант идобавле
ние его к свойству [variants] элемента наименования темы, созданного процедурой, описанной в 3.11.
После того, какscope был обработан, темы всвойстве [scope] элементанаименования темыдобавляют
ся ксвойству [scope] элемента наименования варианта.
%prefixtm
http://psi.topicmaps.org/iso13250/model/
# a topicwith a sort name variant
john
- «John Lennon» («lennon. john» @ tm:sort).
3.13 Ассоциации
Конструкция ассоциация (associatkxi) используется для добавления ассоциаций к тематической
карте. Синтаксис выглядитследующим образом.
Вовремядесериализацииэлементассоциациисоздаетсядля каждой ассоциациии добавляется к
свойству [associations] элементатематической карты.
Во время десериализации элемент роли ассоциации создается для каждого role. Элемент роли
добавляется ксвойству[roles] элемента ассоциации.
member_of(group: The_Beatles. member: John_Lennon)
3.14 Шаблоны
Шаблоны являются контейнерамидля произвольных тем и заявлений и предоставляют механизм
для повторного использования заявлений в различных контекстах.
Тело шаблона состоит из обычных тем и ассоциаций и позволяет тематическим ссылкам (3.3.7) и
литералам (3.4)бытьзамененныминапеременные. Синтаксисдля шаблоновопределяется следующим
образом.
В template-bodyпеременные разрешены везде, где разрешены topic-refs или literals.
Декларация шаблона не меняет тематическую карту до тех пор. пока шаблон не был вызван
template-invocation (3.15).
Если шаблон с таким же идентификатором и тем же количеством аргументов уже определен, это
является ошибкой.
# Declaration ofa template thatsets thetopic type to ‘person’,creates an
# occurrence oftype birthday’, and creates an association oftype ’born-in’
defborn($person. $date, Splace)
Sperson isa person;
birthday: Sdate.
born-in(person:Sperson. birthplace:Splace).
end
# Invocation ofthe template inside a topic block
mccartney
born(1942-06-12. Liverpool).
# Invocation ofthetemplateoutside topic block
born(mccartney. 1942-06-12. Liverpool)
7