INTERLIS 2 Relational



Similar documents
Vergleich der Versionen von Kapitel 1 des EU-GMP-Leitfaden (Oktober 2012) 01 July November Januar 2013 Kommentar Maas & Peither

TIn 1: Lecture 3: Lernziele. Lecture 3 The Belly of the Architect. Basic internal components of the Pointers and data storage in memory

SPICE auf der Überholspur. Vergleich von ISO (TR) und Automotive SPICE

Dokumentation über die Übernahme von. "GS-R-3" (The Management System for Facilities and Activities) "Sicherheitskriterien für Kernkraftwerke"

Vergleich der Versionen von Kapitel 7 des EU-GMP-Leitfadens (September 2012)

ida.com excellence in dependable automation

APPLICATION SETUP DOCUMENT

Exchange Synchronization AX 2012

Microsoft Certified IT Professional (MCITP) MCTS: Windows 7, Configuration ( )

IAC-BOX Network Integration. IAC-BOX Network Integration IACBOX.COM. Version English

Diese Liste wird präsentiert von. Netheweb.de

Upgrade-Preisliste. Upgrade Price List

Leitfaden für die Antragstellung zur Förderung einer nationalen Biomaterialbankeninitiative

Marc Grote. OCSP / CRL Schlüssel Archivierung CA-Konsole Certutil PKI Health

Analytics & Marketing 4.0 Wie die Anwendung von BigData die Customer Loyalty von morgen schafft

Microsoft Nano Server «Tuva» Rinon Belegu

Produktfamilienentwicklung

(Incorporated as a stock corporation in the Republic of Austria under registered number FN m)

Semantic Web. Semantic Web: Resource Description Framework (RDF) cont. Resource Description Framework (RDF) W3C Definition:

HYPO TIROL BANK AG. EUR 5,750,000,000 Debt Issuance Programme (the "Programme")

How To Build A Computer System From Scratch

LEARNING AGREEMENT FOR STUDIES

Betrifft: Mögliche Kursabweichung durch fehlerhafte Navigationsdaten aufgrund eines Softwarefehlers.

Dylan Einführung. Hannes Mehnert. Karlsruhe,

RFC's und Internet- Drafts mit URN-Bezug in Zusammenhang mit der Definition von Namen. Nik Klever FB Informatik - FH Augsburg klever@fh-augsburg.

Is Cloud relevant for SOA? Corsin Decurtins

Offizielle Interpretationen zur Schweißerprüfung ISO

Search Engines Chapter 2 Architecture Felix Naumann

1Copyright 2013, Oracle and/or its affiliates. All rights reserved.

The Changing Global Egg Industry

Berufsakademie Mannheim University of Co-operative Education Department of Information Technology (International)

Entwicklungsstufen des Unternehmensarchitekturmanagements

Kapitel 2 Unternehmensarchitektur III

First Environmental Comparison of Rail Transport

Programmieren von Schnittstellen für LiveCycle ES2-Modulen (November 2009)

Synopse: EU-GMP-Leitfaden Kapitel 4 Documentation

QAS DEBUG - User und Computer

Intelligent Systems: Three Practical Questions. Carsten Rother

KIM.

INSRUCTION MANUAL AND GUARANTEE POLICY

LEHMAN BROTHERS SECURITIES N.V. LEHMAN BROTHERS (LUXEMBOURG) EQUITY FINANCE S.A.

Symantec Backup Exec (TM) 13 Installation Log

Certificate SAP INTEGRATION CERTIFICATION

eurex clearing circular 106/12

WHO-Referenzkurven für das Wachstum von Mädchen (Perzentile)

Get Related Schatzsuche in SciFinder Scholar

Contents. What is Wirtschaftsmathematik?

Mit einem Auge auf den mathema/schen Horizont: Was der Lehrer braucht für die Zukun= seiner Schüler

Stefan Engelberg (IDS Mannheim), Workshop Corpora in Lexical Research, Bucharest, Nov [Folie 1]

Building an Architecture Model Entwerfen Sie mit AxiomSys ein Kontextdiagramm, das folgendermaßen aussieht:

CORPORATE DESIGN MANUAL English 5/2015

Rainer Stropek software architects gmbh. Entwicklung modularer Anwendungen mit C# und dem Managed Extensibility Framework (MEF)

AnyWeb AG

(51) Int Cl.: G06F 9/455 ( ) G06F 9/50 ( )

An Incrementally Trainable Statistical Approach to Information Extraction Based on Token Classification and Rich Context Models

Data Warehousing Metadata Management

Data Warehousing Metadata Management

Halter/Reflektor Kombination Holder/Reflector combination

Exemplar for Internal Assessment Resource German Level 1. Resource title: Planning a School Exchange

Overview WebServices Web Services Choreography Languages. WebServices. Jan Krüger

I-Q SCHACHT & KOLLEGEN QUALITÄTSKONSTRUKTION GMBH ISO 26262:2011. Liste der Work Products aus der Norm

Curriculum Master Course in Computational Engineering, Branch 1 of Study (start in winter semester) Stand: (dh)

Software / FileMaker / Plug-Ins Mailit 6 for FileMaker 10-13

:09: [scheduler thread(5)]: AdvancedCardAllocation.GetAvailableCardsForChannel took 7 msec

SAP GLOBAL DIVERSITY POLICY

Release 9.1 & Strategy

Exemplar for Internal Achievement Standard. German Level 1

2010 Users Symposium Berlin

Usability in SW-Engineering-Prozessen und in CMMI

Cisco Instant Access Netzwerk geht auch einfach

Due Diligence and AML Obligations

SharePoint Community Tools fürs Web 2.0

Information Systems 2

Sind Sie bereit für die #GenMobile? Jörg Hofmann Country Manager Switzerland

Wolkige Versprechungen - Freiraum mit Tuecken

Cloud Performance Group 1. Event. 14. Januar 2016 / Matthias Gessenay (matthias.gessenay@corporatesoftware.ch)

SECTION 1: Identification of the substance/mixture and of the company/undertaking

Testen mit Produktionsdaten Fluch oder Segen?

Project Cost Reporting for PPM

1. Wenn der Spieler/die Spielerin noch keine IPIN hat, bitte auf den Button Register drücken

MySQL Cluster: HA als StorageEngine

LEARNING AGREEMENT FOR STUDIES

(51) Int Cl.: H04L 12/56 ( )

INFORMATIONEN (nicht per )

SQL 2014 CTP1. Hekaton & CSI Version 2 unter der Lupe. Sascha Götz Karlsruhe, 03. Dezember 2013

Synopse: EU-GMP- Leitfaden Annex 11 Computerised Systems

Masterseminar Current Trends in Marketing Research

.OR.AT.ATTORNEY.AUCTION.BARGAINS.BAYERN.BERLIN.BLACKFRIDAY.BOUTIQUE.BRUSSELS.BUILDERS

Elena Chiocchetti & Natascia Ralli (EURAC) Tanja Wissik & Vesna Lušicky (University of Vienna)

Information for Ship Masters, Agents and Owners on Ship Waste Disposal

SAP Sourcing/CLM Webcast Query & User/Contact Maintenance Web Service

Das Verb to be im Präsens

Product Availability List Graphic Arts Film Products. September 2007 (version 3.0)

ENTWURF ÖVE/ÖNORM EN

Jeffrey D. Ullman Anfang von: CS145 - Herbst Stanford University Online unter: Folien mit weißem Hintergrund wurden hinzugefügt!

Voraussetzungen/ Prerequisites *for English see below*

NATIVE ADVERTISING, CONTENT MARKETING & CO. AUFBRUCH IN EIN NEUES GOLDENES ZEITALTER DES MARKETINGS?

GETTING FEEDBACK REALLY FAST WITH DESIGN THINKING AND AGILE SOFTWARE ENGINEERING

Cambridge English Prüfungszentrum Sachsen

CobraNet TM User s Manual

Transcription:

Einführung INTERLIS 2 Relational Im folgenden Text ist ein Entwurf für ein INTERLIS 2 Relational Profil. Es wird eine Untermenge von INTERLIS 2 definiert, die einfach durch ein relationales GIS implementiert werden kann. Zur Vereinfachung der Implementierung wurden auch Elemente weggelassen, die nicht spezifisch für das objektorientierte Paradigma sind. Syntaxregeln Im Folgenden sind die Syntaxregeln gem. INTERLIS 2 Referenzhandbuch aufgeführt. Nicht mehr zulässige Syntaxelemente sind durchgestrichen; z.t. sind vereinfachte Alternativformulierungen eingefügt worden (unterstrichener Text). INTERLIS2Def = 'INTERLIS' Version-Dec ';' {[ ModelDef ]}. Nur ein Modell pro ili-datei. ModelDef = [ 'CONTRACTED' ] [ 'TYPE' 'REFSYSTEM' 'SYMBOLOGY' ] 'MODEL' Model-Name [ '(' Language-Name ')' ] 'AT' URI-String 'VERSION' ModelVersion-String [ Explanation ] [ 'TRANSLATION' 'OF' Model-Name '[' ModelVersion-String ']' ] '=' { 'IMPORTS' [ 'UNQUALIFIED' ] Model-Name { ',' [ 'UNQUALIFIED' ] Model-Name } ';' } { MetaDataBasketDef UnitDef FunctionDef LineFormTypeDef DomainDef RunTimeParameterDef ClassDef StructureDef TopicDef } 'END' Model-Name '.'. Kein IMPORTS, d.h. keine Basismodelle. Um auf UnitDef verzichten zu können, muss man das Modell INTERLIS (Anhang A im Referenzhandbuch) um UnitDef für GRADS, DEGREES, u.a. ergänzen. Strukturdefinitionen sind für Linienattribute notwendig. Strukturattribute sind aber nicht zulässig. TopicDef = [ 'VIEW' ] 'TOPIC' Topic-Name Properties<ABSTRACT,FINAL> [ 'EXTENDS' TopicRef ] '=' [ 'BASKET' 'OID' 'AS' OID-DomainRef ';' ] [ 'OID' 'AS' OID-DomainRef ';' ] { 'DEPENDS' 'ON' TopicRef { ',' TopicRef } ';' } Definitions 'END' Topic-Name ';'. ce@eisenhutinformatik.ch 2013-04-21, Seite 1

Definitions = { MetaDataBasketDef UnitDef FunctionDef DomainDef ClassDef StructureDef AssociationDef ConstraintsDef ViewDef GraphicDef }. TopicRef = [ Model-Name '.' ] Topic-Name. ClassDef = 'CLASS' Class-Name Properties<ABSTRACT,EXTENDED,FINAL> [ 'EXTENDS' ClassOrStructureRef ] '=' [ ( 'OID' 'AS' OID-DomainRef 'NO' 'OID' ) ';' ] ClassOrStructureDef 'END' Class-Name ';'. StructureDef = 'STRUCTURE' Structure-Name Properties<ABSTRACT,EXTENDED,FINAL> [ 'EXTENDS' StructureRef ] '=' ClassOrStructureDef 'END' Structure-Name ';'. Strukturdefinitionen werden zur Definition von Linienattributen benötigt. ClassOrStructureDef = [ 'ATTRIBUTE' ] { AttributeDef } { ConstraintDef } [ 'PARAMETER' { ParameterDef } ]. ClassRef = [ Model-Name '.' [ Topic-Name'.' ] ] Class-Name. StructureRef = [ Model-Name '.' [ Topic-Name '.' ] ] Structure-Name. ClassOrStructureRef = ( ClassRef StructureRef ). AttributeDef = [ [ 'CONTINUOUS' ] 'SUBDIVISION' ] Attribute-Name Properties<ABSTRACT,EXTENDED,FINAL,TRANSIENT> ':' AttrTypeDef [ ':=' Factor { ',' Factor } ] ';'. AttrTypeDef = ( 'MANDATORY' [ AttrType ] AttrType ( ( 'BAG' 'LIST' ) [ Cardinality ] 'OF' RestrictedStructureRef ) ). AttrType = ( Type DomainRef ReferenceAttr RestrictedStructureRef ). ReferenceAttr = 'REFERENCE' 'TO' Properties<EXTERNAL> RestrictedClassOrAssRef. RestrictedClassOrAssRef = ( ClassOrAssociationRef 'ANYCLASS' ) [ 'RESTRICTION' '(' ClassOrAssociationRef { ';' ClassOrAssociationRef } ')' ]. ce@eisenhutinformatik.ch 2013-04-21, Seite 2

ClassOrAssociationRef = ( ClassRef AssociationRef ). RestrictedStructureRef = ( StructureRef 'ANYSTRUCTURE' ) [ 'RESTRICTION' '(' StructureRef { ';' StructureRef } ')' ]. RestrictedClassOrStructureRef = ( ClassOrStructureRef 'ANYSTRUCTURE' ) [ 'RESTRICTION' '(' ClassOrStructureRef { ';' ClassOrStructureRef } ')' ]. AssociationDef = 'ASSOCIATION' [ Association-Name ] Properties<ABSTRACT,EXTENDED,FINAL,OID> [ 'EXTENDS' AssociationRef ] [ 'DERIVED' 'FROM' RenamedViewableRef ] '=' [ ( 'OID' 'AS' OID-DomainRef 'NO' 'OID' ) ';' ] { RoleDef RoleDef} [ 'ATTRIBUTE'] { AttributeDef } [ 'CARDINALITY' '=' Cardinality ';' ] { ConstraintDef } 'END' [ Association-Name ] ';'. Nur genau zwei RoleDef. AssociationRef = [ Model-Name '.' [ Topic-Name '.' ] ] Association-Name. RoleDef = Role-Name Properties<ABSTRACT,EXTENDED,FINAL,HIDING, ORDERED,EXTERNAL> ( '--' '-<>' '-<#>' ) [ Cardinality ] RestrictedClassOrAssRef { 'OR' RestrictedClassOrAssRef } [ ':=' Role-Factor ] ';'. Cardinality = '{' ( '*' PosNumber [ '..' ( PosNumber '*' ) ] ) '}'. DomainDef = 'DOMAIN' { Domain-Name Properties<ABSTRACT,FINAL> [ 'EXTENDS' DomainRef ] '=' ( 'MANDATORY' [ Type ] Type ) ';' }. Type = ( BaseType LineType ). DomainRef = [ Model-Name '.' [ Topic-Name '.' ] ] Domain-Name. BaseType = ( TextType EnumerationType EnumTreeValueType AlignmentType BooleanType NumericType FormattedType CoordinateType OIDType BlackboxType ClassType AttributeType ). Constant = ( 'UNDEFINED' NumericConst TextConst FormattedConst EnumerationConst ClassConst ce@eisenhutinformatik.ch 2013-04-21, Seite 3

AttributeConst ). TextType = ( 'MTEXT' [ '*' MaxLength-PosNumber ] 'TEXT' [ '*' MaxLength-PosNumber ] 'NAME' 'URI' ). TextConst = String. EnumerationType = Enumeration [ 'ORDERED' 'CIRCULAR' ]. EnumTreeValueType = 'ALL' 'OF' Enumeration-DomainRef. Enumeration = '(' EnumElement { ',' EnumElement } [ ':' 'FINAL' ] 'FINAL' ')'. EnumElement = EnumElement-Name { '.' EnumElement-Name } [Sub- Enumeration]. EnumerationConst = '#' ( EnumElement-Name { '.' EnumElement-Name } [ '.' 'OTHERS' ] 'OTHERS' ). AlignmentType = ( 'HALIGNMENT' 'VALIGNMENT' ). BooleanType = 'BOOLEAN'. NumericType = ( Min-Dec '..' Max-Dec 'NUMERIC' ) [ 'CIRCULAR' ] [ '[' UnitRef ']' ] [ 'CLOCKWISE' 'COUNTERCLOCKWISE' RefSys ]. Verweis auf Einheiten sind möglich um DIM1, DIM2, DEGREES, GRADS Wertebereich abbilden zu können. Modell INTERLIS (Anhang A vom Referenzhandbuch) muss aber entsprechend erweitert warden. RefSys = ( '{' RefSys-MetaObjectRef [ '[' Axis-PosNumber ']' ] '}' '<' Coord-DomainRef [ '[' Axis-PosNumber ']' ] '>' ). CRS (LV03 oder LV95) nicht erkennbar/beschreibbar. DecConst = ( Dec 'PI' 'LNBASE' ). NumericConst = DecConst [ '[' UnitRef ']' ]. FormattedType = [ 'FORMAT' 'BASED' 'ON' StructureRef FormatDef ] [ Min-String '..' Max-String ] 'FORMAT' FormattedType-DomainRef Min-String '..' Max-String. Datum- und Zeit-Wertebereiche via Verweis auf Definition in Modell INTERLIS (Anhang A Referenzhandbuch). FormatDef = '(' [ 'INHERITANCE' ] [ NonNum-String ] { BaseAttrRef NonNum-String } BaseAttrRef [ NonNum-String ] ')'. BaseAttrRef = ( NumericAttribute-Name [ '/' IntPos-PosNumber ] StructureAttribute-Name '/' Formatted-DomainRef ). FormattedConst = String. ce@eisenhutinformatik.ch 2013-04-21, Seite 4

CoordinateType = 'COORD' NumericType [ ',' NumericType [ ',' NumericType ] [ ',' RotationDef ] ]. Nur 2d oder 3d RotationDef = 'ROTATION' NullAxis-PosNumber '->' PiHalfAxis-PosNumber. OIDType = 'OID' ( 'ANY' NumericType TextType ). BlackboxType = 'BLACKBOX' ( 'XML' 'BINARY' ). ClassType = ( 'CLASS' [ 'RESTRICTION' '(' ViewableRef { ';' ViewableRef } ')' ] 'STRUCTURE' [ 'RESTRICTION' '(' ClassOrStructureRef { ';' ClassOrStructureRef } ')' ] ). AttributeType = ( 'ATTRIBUTE' [ 'OF' ( ClassType-AttributePath '@' Argument-Name ) ] [ 'RESTRICTION' '(' AttrTypeDef { ';' AttrTypeDef } ')' ]. ClassConst = '>' ViewableRef. AttributeConst = '>>' [ ViewableRef '.' ] Attribute-Name. LineType = ( [ 'DIRECTED' ] 'POLYLINE' 'SURFACE' 'AREA' ) [ LineForm ] [ ControlPoints ] [ IntersectionDef ] [ LineAttrDef ]. LineForm = 'WITH' '(' LineFormType { ',' LineFormType } ')'. LineFormType = ( 'STRAIGHTS' 'ARCS' [ Model-Name '.' ] LineFormType-Name ). ControlPoints = 'VERTEX' CoordType-DomainRef. IntersectionDef = 'WITHOUT' 'OVERLAPS' '>' Dec. LineAttrDef = 'LINE' 'ATTRIBUTES' Structure-Name. LineFormTypeDef = 'LINE' 'FORM' { LineFormType-Name ':' LineStructure-Name ';' }. UnitDef = 'UNIT' { Unit-Name [ '(' 'ABSTRACT' ')' '[' UnitShort-Name ']' ] [ 'EXTENDS' Abstract-UnitRef ] [ '=' ( DerivedUnit ComposedUnit ) ] ';' }. DerivedUnit = [ DecConst { ( '*' '/' ) DecConst } 'FUNCTION' Explanation ] '[' UnitRef ']'. ComposedUnit = '(' UnitRef { ( '*' '/' ) UnitRef } ')'. UnitRef = [ Model-Name '.' [ Topic-Name '.' ] ] UnitShort-Name. ce@eisenhutinformatik.ch 2013-04-21, Seite 5

MetaDataBasketDef = ( 'SIGN' 'REFSYSTEM' ) 'BASKET' Basket-Name Properties<FINAL> [ 'EXTENDS' MetaDataBasketRef ] '~' TopicRef { 'OBJECTS' 'OF' Class-Name ':' MetaObject-Name { ',' MetaObject-Name } } ';'. MetaDataBasketRef = [ Model-Name '.' [ Topic-Name '.' ] ] Basket-Name. MetaObjectRef = [ MetaDataBasketRef '.' ] Metaobject-Name. ParameterDef = Parameter-Name Properties<ABSTRACT,EXTENDED,FINAL> ':' ( AttrTypeDef 'METAOBJECT' [ 'OF' MetaObject-ClassRef ] ) ';'. RunTimeParameterDef = 'PARAMETER' { RunTimeParameter-Name ':' AttrTypeDef ';' }. ConstraintDef = ( MandatoryConstraint PlausibilityConstraint ExistenceConstraint UniquenessConstraint SetConstraint ). Konsistenzbedingungen nur im Umfang von Interlis 1 IDENT. MandatoryConstraint = 'MANDATORY' 'CONSTRAINT' Logical-Expression ';'. PlausibilityConstraint = 'CONSTRAINT' ( '<=' '>=' ) Percentage-Dec '%' Logical-Expression ';'. ExistenceConstraint = 'EXISTENCE' 'CONSTRAINT' AttributePath 'REQUIRED' 'IN' ViewableRef ':' AttributePath { 'OR' ViewableRef ':' AttributePath } ';'. UniquenessConstraint = 'UNIQUE' [ 'WHERE' Logical-Expression ':' ] ( GlobalUniqueness LocalUniqueness ) ';'. GlobalUniqueness = UniqueEl. UniqueEl = ObjectOrAttributePath { ',' ObjectOrAttributePath }. LocalUniqueness = '(' 'LOCAL' ')' StructureAttribute-Name { '->' StructureAttribute-Name } ':' Attribute-Name { ',' Attribute-Name }. SetConstraint = 'SET' 'CONSTRAINT' [ 'WHERE' Logical-Expression ':' ] Logical-Expression ';'. ConstraintsDef = 'CONSTRAINTS' 'OF' ClassOrAssociationRef '=' { ConstraintDef } 'END' ';'. Expression = Term. ce@eisenhutinformatik.ch 2013-04-21, Seite 6

Term = Term1 { 'OR' Term1 }. Term1 = Term2 { 'AND' Term2 }. Term2 = Predicate [ Relation Predicate ]. Predicate = ( Factor [ 'NOT' ] '(' Logical-Expression ')' 'DEFINED' '(' Factor ')' ). Relation = ( '==' '!=' '<>' '<=' '>=' '<' '>' ). Factor = ( ObjectOrAttributePath (Inspection 'INSPECTION' Inspection-ViewableRef) [ 'OF' ObjectOrAttributePath ] FunctionCall 'PARAMETER' [ Model-Name '.' ] RunTimeParameter-Name Constant ). ObjectOrAttributePath = PathEl { '->' PathEl }. AttributePath = ObjectOrAttributePath. PathEl = ( 'THIS' 'THISAREA' 'THATAREA' 'PARENT' ReferenceAttribute-Name AssociationPath Role-Name [ '[' Association-Name ']' ] Base-Name AttributeRef ). AssociationPath = [ '\' ] AssociationAccess-Name. AttributeRef = ( Attribute-Name ( [ '[' ( 'FIRST' 'LAST' AxisListIndex-PosNumber ) ']' ] ) 'AGGREGATES' ). FunctionCall = [ Model-Name '.' [ Topic-Name'.' ] ] Function-Name '(' Argument { ',' Argument } ')'. Argument = ( Expression 'ALL' [ '(' RestrictedClassOrAssRef ViewableRef ')' ] ). FunctionDef = 'FUNCTION' Function-Name '(' Argument-Name ':' ArgumentType { ';' Argument-Name ':' ArgumentType } ')' ':' ArgumentType [ Explanation ] ';'. ArgumentType = ( AttrTypeDef ( 'OBJECT' 'OBJECTS' ) 'OF' ( RestrictedClassOrAssRef ViewRef ) 'ENUMVAL' 'ENUMTREEVAL' ). ViewDef = 'VIEW' View-Name Properties<ABSTRACT,EXTENDED,FINAL,TRANSIENT> [ FormationDef 'EXTENDS' ViewRef ] ce@eisenhutinformatik.ch 2013-04-21, Seite 7

{ BaseExtensionDef } { Selection } '=' [ ViewAttributes ] { ConstraintDef } 'END' View-Name ';'. ViewRef = [ Model-Name '.' [ Topic-Name '.' ] ] View-Name. FormationDef = ( Projection Join Union Aggregation Inspection ) ';'. Projection = 'PROJECTION' 'OF' RenamedViewableRef. Join = 'JOIN' 'OF' RenamedViewableRef (* ',' RenamedViewableRef [ '(' 'OR' 'NULL' ')' ] *). Union = 'UNION' 'OF' RenamedViewableRef (* ',' RenamedViewableRef *). Aggregation = 'AGGREGATION' 'OF' RenamedViewableRef ( 'ALL' 'EQUAL' '(' UniqueEl ')' ). Inspection = [ 'AREA' ] 'INSPECTION' 'OF' RenamedViewableRef '->' StructureOrLineAttribute-Name { '->' StructureOrLineAttribute-Name }. RenamedViewableRef = [ Base-Name '~' ] ViewableRef. ViewableRef = [ Model-Name '.' [ Topic-Name '.' ] ] ( Structure-Name Class-Name Association-Name View-Name ). BaseExtensionDef = 'BASE' Base-Name 'EXTENDED' 'BY' RenamedViewableRef { ',' RenamedViewableRef }. Selection = 'WHERE' Logical-Expression ';'. ViewAttributes = [ 'ATTRIBUTE' ] { 'ALL' 'OF' Base-Name ';' AttributeDef Attribute-Name Properties <ABSTRACT,EXTENDED,FINAL,TRANSIENT> ':=' Factor ';' }. GraphicDef = 'GRAPHIC' Graphic-Name Properties<ABSTRACT,FINAL> [ 'EXTENDS' GraphicRef ] [ 'BASED' 'ON' ViewableRef ] '=' { Selection } { DrawingRule } 'END' Graphic-Name ';'. GraphicRef = [ Model-Name '.' [ Topic-Name '.' ] ] Graphic-Name. ce@eisenhutinformatik.ch 2013-04-21, Seite 8

DrawingRule = DrawingRule-Name Properties<ABSTRACT,EXTENDED,FINAL> [ 'OF' Sign-ClassRef ] ':' CondSignParamAssignment { ',' CondSignParamAssignment } ';'. CondSignParamAssignment = [ 'WHERE' Logical-Expression ] '(' SignParamAssignment { ';' SignParamAssignment } ')'. SignParamAssignment = SignParameter-Name ':=' ( '{' MetaObjectRef '}' Factor 'ACCORDING' Enum-AttributePath '(' EnumAssignment { ',' EnumAssignment } ')' ). EnumAssignment = ( '{' MetaObjectRef '}' Constant ) 'WHEN' 'IN' EnumRange. EnumRange = EnumerationConst [ '..' EnumerationConst ]. ce@eisenhutinformatik.ch 2013-04-21, Seite 9