ГОСТ Р ИСО/МЭК 13250-6—2016
# Both ofthe above have the same effect as the following
mccartney
isa person;
birthday: 1942-06-12.
born-in(person: mccartney. birthplace: Liverpool)
Если named-wildcard используется внутри тела шаблона, он доступентолько внутришаблона. Каж
дый раз. когда шаблон вызывается, named-wildcard вызываетсоздание темы. Этодолжно быть обрабо
тано по-другому.
Наименования шаблонов и identifiers темы имеют разные пространства имен. Если существует
шаблон с именем А. то все еще возможно задекларироватьтему с идентификатором А.
3.15 Вызов шаблона
Для вызова шаблона необходимо выполнитьследующиедействия:
- если в вызов шаблона происходит внутри topic-tail (3.9), следует вставить topic-identity темы,
которая была использована в качестве первого аргумента входныхданных:
- осуществить поиск определения шаблона с template-name и количеством предоставленных
arguments. Если такой шаблон неопределен, то это является ошибкой;
- привязать каждую переменную шаблона к аргументу согласно позиции аргумента (первая пере
менная связывается с первым аргументом ит. д.);
- добавить каждое заявление тела шаблона к тематической карте так. чтобы любая переменная
была заменена аргументом привязки.
П р и м е ч а н и е — Внутри шаблонов можно сослаться на другие шаблоны, которые еще не были опреде
лены (ссылка вперед). Если шаблон вызывается, то шаблоны,на которые он ссылается, должны быть определены.
Пример 1
It Template Invocation within a topic declaration
mccartney
plays-for(The_Beatles, piano);
has-shoeslze(42).
tt Template Invocation outside o f topic declarations
plays-for(john, The_Beatles, guitar)
has-shoeslze(John, 45)
Пример 2
—
Смысл Irl-ret зависит от контекста
defwlkl-entry(Slrl, Sname)
Slritt Used as subject Identifier
Sname;
description: $lrl. tt Used as occurrence value
end
wlkl-entry(<
http://en.wlklpedla.org/wlkl/John_Lennon
>. «John Lennon»)
tt The following template Invocation falls, because a subject locator Is
tt provided which cannot be used as value o f an occurrence.
wlkl-entry(*<
http://en.wlkipedla.org/wlkl/Paut_M cCartney
>, *Slr Paul McCartney») tt ■> ErrorI
Пример 3 — Ш аблоны могут использоват ься для того, чт обы
«
украсит ь» другие шаблоны
def Is-beatle(Sbeatle)
ls-member-of(Sbeatle. The-Beatles)
end
defls-member-ot(Smember, Sgroup)
member-of(member: Smember. group: Sgroup)
end
8