ko444evnik (ko444evnik) wrote,
ko444evnik
ko444evnik

Categories:

Еще чуток аксиомок...

//копия поста в dot15926.


Результаты компиляции некоторых примеров из части 7 стандарта.

Простые случаи проблем не доставляют.
№1


№2


Примеры с ссылочными переменными (типа SetOf3Classes или UomSymbolAssignment) концепцию несколько портят - из-за длины имен их сложно приткнуть, не нарушив изящства. Но для них по крайней мере можно заранее определить типизацию.

№3

№4


А вот для примеров наподобие 6.3.6, такая роскошь пока не доступна (идентифицировать и использовать ActivityLocation как переменную на текущей момент нет возможности)...

LocationOfActivity(x1, x2) <->
Activity(x1) &
SpatialLocation(x2) &
InstanceOfRelation(ActivityLocation, x1, x2)


По этой же причине, внутренние переменные, у которых отсутствуют явная дескрипция через тип-сущности-из-части-2 - получает по умолчанию тип Thing.

Шаблоны с единственной внешней переменной выглядят где-то так:
№5


Просто еще один пример:
№6


Все предыдущие примеры получены из определений аксиом шаблонов. Так как имена ролей в них не содержатся, в айтемах они отражаются как "?" и их придется править вручную. В качестве альтернативы возможно компилить и сигнатуры шаблонов. Тогда имена ролей имеются, но чтобы жизнь не казалась медом, соотвественно отсутствует какая-либо информация о внутренних шаблонах.

Такая вот заготовка аксиомы, которую можно править, добавляя кнопочками внутренние переменные и внутренние шаблоны:
№7


Этот же шаблон, но полученный через компиляцию аксиомы:


№8



Текст той самой аксиомы:
№9


Отдельное коленце приходится выделывать на внутренних шаблонах с единственной переменной, и в частности на мелких шаблонах наподобие INTEGER. Приходится применять дизайн типа "Кольцо-в-носу-туземного-вождя"...

№10

Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 6 comments