640 likes | 722 Views
On the Theoretical Foundation of Meta-Modelling in Graphically Extended BNF. Hong Zhu Department of Computing and Electronics Oxford Brookes University Oxford OX33 1HX, UK Email: hzhu@brookes.ac.uk. Acknowledgement.
E N D
On the Theoretical Foundation of Meta-Modelling in Graphically Extended BNF Hong Zhu Department of Computing and Electronics Oxford Brookes University Oxford OX33 1HX, UK Email: hzhu@brookes.ac.uk
Acknowledgement • H. Zhu, “The Institution of Meta-Modelling in Graphically Extended BNF”, in Preparation. • H. Zhu, “On The Theoretical Foundation of Meta-Modelling in Graphically Extended BNF and First Order Logic”, Prof. of TASE 2010, IEEE CS Press, Aug. 2010. • H. Zhu and L. Shan, ``Well-formedness, consistency and completeness of graphic models,'' Proc. of UKSIM'06, Apr. 2006, pp. 47--53. Seminar on GEBNF
Outline • Introduction • Motivation and Related works • Graphic extension of BNF • Predicate logic induced from GEBNF syntax • Semantics of GEBNF • Axiomatisation of syntactic constraints • Algebraic semantics of GEBNF • Institution theory of GEBNF Meta-Models • Future works Seminar on GEBNF
Introduction • Modelling • To represent a system or a set of systems under study at a high level of abstraction. • A model is a set of statements about the system or a set of systems under study • Meta-modelling? • To model models • To define a set of models that have certain features Seminar on GEBNF
Meta-Modelling in MDSD • defines modelling languages • syntax: usually at the abstract syntax level • semantics: usually in the form of a set of basic concepts underlying the models and their interrelationships • example: the meta-model for UML • imposes restrictions on an existing modelling language • a subset of the syntactically valid models • example: design patterns-a meta-model whose instances conform to the design pattern • extends an existing meta-model • introducing new concepts and their relationship to the existing ones • example: • platform specific models - by introducing platform specific model elements • Aspect-oriented modelling - by extending UML meta-model with basic concepts of aspect-orientation, such as crosscut points, etc. Seminar on GEBNF
Related Work • General purpose MM Languages • MOF and UML class diagram + OCL • Special Purpose MM Languages (for example: design patterns) • LePUS (Gasparis et al. 2008; Eden 2001, 2002) • RBML (France et al. 2004) • DPML (Maplesden at el., 2001, 2002) • PDL (Albin-Amiot, et al. 2001) • Problems of graphic meta-modelling • Expressiveness? • Rigorous in semantics? • Readability? Seminar on GEBNF
Overview: Formal Meta-Modelling Graphic Extension of BNF • Meta-notation: GEBNF • for the definition of abstract syntax of modelling languages • Formal Theory of Meta-Modelling • Predicate logic languages induced from GEBNF syntax definitions • Formal semantics of GEBNF syntax definitions • Institution of GEBNF meta-models: Meta-models as formal specification languages • Applications • Specification of a non-trivial subset of UML • Specification of consistency and completeness constraints of UML • Specification of design patterns • all 23 in GoF • Both structural and behavioural features Seminar on GEBNF
The GEBNF Notation In GEBNF, the abstract syntax of a modelling language is defined as a tuple <R, N, T, S>, where • N is a finite set of non-terminal symbols, • T is a finite set of terminal symbols. Each terminal symbol represents a set of atomic elements that may occur in a model. • RN is the root symbol and • S is a finite set of syntax rules in one of the forms of Y ::= X1|X2| …| Xn Y ::= f1: X1 , f2: X2 , …, fn: Xn where • YN, • f1, f2 , …, fn are called field names, • X1, X2, …, Xn are the fields. Seminar on GEBNF
Field Expression Each field can be an expression: • C is an expression, if C is a literal constant of a terminal symbol, such as a string or number. • Y is an expression, if YNT. • Y*, Y+ and [Y] are expressions, if YNT. • Exp(Y)@Z.f is an expression, where • Y, ZN • f is a field name in the definition of Z • Y is the type of f field in Z's definition • Exp(Y) is an expression of Y only using the above rules Referential occurrence Seminar on GEBNF
Meanings of the GEBNF Notation Seminar on GEBNF
Example 1: Directed Graphs where • Graph is the root symbol • Graph, Node and Edge are non-terminal symbols • String and Real are terminal symbols Seminar on GEBNF
Example 2: A. UML Class Diagram (subset) ClassDiagram ::= classes: Class+, assocs: Rel*, inherits: Rel*, compag: Rel* Class ::= name: String, attrs: Property*, opers: Operation* Operation ::= name: String, params: Parameter*, isAbstract: [Bool], isQuery: [Bool], isLeaf: [Bool], isNew: [Bool], isStatic: [Bool] Parameter ::= name: [String], type: [Type], direction: [ParaDirKind], mult: [Multiplicity] ParaDirKind ::=“in” | “inout” | “out” | “return” Multiplicity ::=lower: [Natural], upper: [Natural | “*”] Property ::= name: String, type: Type, isStatic: [ Bool], mult: [ Multiplicity] Rel ::= name: [String], source: End, end: End End ::= node: Class, name: [String], mult: [Multiplicity] Seminar on GEBNF
Example 2: B. UML Sequence Diagram (subset) SequenceDiagram ::= lifelines: Lifeline*, msgs: Message*, ordering: Order* Order::= from: Message, to: Message Lifeline ::= className: String, objectName: [String], isStatic: Bool, activations: Activation* Activation ::= start, finish: Event, others: Event* Message ::= send, receive: Event, sig: Operation Event ::= actor: Activation Seminar on GEBNF
Well-Formed Syntax Definitions A syntax definition <R, N, T, S> in GEBNF is well-formed if it satisfies the following two conditions. • Completeness For each non-terminal symbol XN, there is one and only one syntax rule sS that defines X. • Reachability For each non-terminal symbol XN, X is reachable from the root R. Seminar on GEBNF
Types Definition Let G=< R, N, T, S> be a GEBNF syntax definition. The set of types of G, denoted by Type(G), is defined inductively as follows. • For all sTN, s is a type, which is called a basic type. • P() is a type, called the power type of , if is a type. • 1+… + n is a type, called the disjoint union of 1, …, n for n>1, if 1 … n are types. We also write to denote 1+…+ n. • 12 is a type, called a function type from 1 to 2, if 1 and 2 are types. Seminar on GEBNF
Induced Functions Given a well-defined GEBNF syntax G= <R, N, T, S>, we write Fun(G) to denote the set of function symbols derived from the syntax rules as follows • A syntax rule ``A ::= B1 | B2 | …| Bn'' introduces a set of functions IsB1, IsB2, …, IsBn of the type A Bool. • A syntax rule ``A ::= f1:B1,…, fn: Bn'' introduces a set of function symbols fi of type AT(Bi), where T(B) is defined as follows. • T(C)=C, if CTN; • T([C])=T(C); • T(C@Z.f)=T(C); • T(C*)=P(T(C)); • T(C+)=P(T(C)); • T(C1 | … | Cn) = . Seminar on GEBNF
Example 3: Induced Functions Seminar on GEBNF
Induced Predicate Logic Language (FL) • From Fun(G), a FL can be defined as usual [Chiswell 2007]. • variables of type tType(G) • relations and operators on sets, • relations and operators on basic data types denoted by terminal symbols, • equality • logic connectives or , and , not , implication and equivalence , • quantifiers for all and exists Seminar on GEBNF
Definition: Inducted Predicate Logic Let be a set of variables, where xVt are variables of type t. • Each literal constant c of type sT is an expression of type s. • Each element vVt, i.e. variable of type t, is an expression of type tType(G). • e.f is an expression of type t', if f is a function symbol of type tt', e is an expression of type t. • { e(x) | Pred(x) } is an expression of type P(te), if x is a variable of type tx, e(x) is an expression of type te and Pred(x) is a predicate on type tx. • e1e2, e1e_2, and e1-e2 are expressions of type P(t), if e1 and e2 are expressions of type P(t). • eE is a predicate on type t, if e is an expression of type t and E is an expression of type P(t). • e1 = e2 and e1e2 are predicates on type t, if e1 and e2 are expressions of type t. • R(e_1, …, e_n) is a predicate on type t, if e1, …, en are expressions of type t, and R is any n-ary relation symbol on type t. • e1e2 and e1e2 are predicates on type P(t), if e1 and e2 are expressions of type P(t). • pq, pq, pq, pq and p are predicates, if p and q are predicates. • xD.(p) and xD.(p) are predicates, if D is an expression of type P(t), x is a variable of type t, and p is a predicate. It is first order, if we restrict type t to be a terminal or non-terminal symbol s Seminar on GEBNF
Example 4: (A) Functions and Predicates • Function: the set of nodes in a graph g that have no weight associated with them • Predicate: node x reaches node y in a graph g: Seminar on GEBNF
Example 4: (B) Constraints on UML • In a sequence diagram, every message must start an activation • Every message to an activation must be for an operation of a concrete class: • If a message is for a static operation, then the lifeline must be a class lifeline; but if a message is for a non-static operation, the lifeline must be an object lifeline: • Every class in the class diagram must appear in the sequence diagram: Seminar on GEBNF
Meta-Modelling in GEBNF + FL • The Approach • Defining the abstract syntax of a modelling language in GEBNF • Defining a predicate p such that the required subset of models are those that satisfy the predicate • Example • strongly connected graphs Seminar on GEBNF
Axiomatization of Syntax Constraints (1) Optional Elements Consider two syntax definitions of a non-terminal symbol A A ::= …, f: [B], … . (1) A ::= ... , g: B , … . (2) • Similarity: • Both functions f and g have the type AB, • Difference: • For (1), an occurrence of an element of type B in an element of type A is optional, i.e. f is a partial function • For (2), an occurrence of an element of type B is not optional. i.e. g is a total function. • Formalisation: • for each non-optional function symbol g, we require it satisfying the following condition. xA . (x.g) where means undefined. Seminar on GEBNF
Axiomatization of Syntax Constraints (2) Non-Empty Repetitions Consider two syntax definitions of a non-terminal symbol A A ::= …, f: B*, … . (1) A ::= ... , g: B+ , … . (2) • Similarity: • Both functions f and g have the type AP(B), • Difference: • For (1), the set of element of type B in an element of type A is a set (can be the empty set), • For (2), the set of element of type B in an element of type A is a non-empty set . • Formalisation: • for each non-empty repetition function symbol g, we require it satisfying the following condition. xA . (x.g) Seminar on GEBNF
Axiomatization of Syntax Constraints (3) Creative Occurrences Consider two syntax definitions of non-terminal symbols Y and Z that both contains non-terminal symbol X Y ::= …, f: E(X), … . (1) Z ::= ... , g: E’(X) , … . (2) • Both functions f and g have elements of type X as components. • What are the relationships between these elements of type X ? Seminar on GEBNF
Formalisation Situation 1: Two simple type creative occurrences Y ::= …, f: E(X), … . (1) Z ::= ... , g: E’(X), … . (2) where E(X) and E’(X) is one of the expressions X, [ X ], and (X1 | …| X | …| Xn) • Axiom: Seminar on GEBNF
Situation 2: Two set type creative occurrences Y ::= …, f: E(X), … . (1) Z ::= ... , g: E’(X), … . (2) where E(X) and E’(X) is one of the expressions X*, and X+, • Axiom: or simply: Seminar on GEBNF
Situation 3: Two creative occurrences of different types Y ::= …, f: E(X), … . (1) Z ::= ... , g: E’(X), … . (2) where • E(X) is one of the expressions X, [ X ], and (X1 | …| X | …| Xn) • E’(X) is one of the expressions X*, and X+ • Axiom: Seminar on GEBNF
Axiomatization of Syntax Constraints (4) Referential Occurrences Consider two syntax definitions of a non-terminal symbol A A ::= …, f: B, … . (1) A ::= ... , f’: B@C.g , … . (2) • Similarity: • Both functions f and g have the type AB, • Difference: • For (1), the element of type B in an element of type A is a new element in the model, • For (2), the element of type B in an element of type A is an existing element in the model, already in C.g. Seminar on GEBNF
Formalisation Situation 1: Single reference to single element Y ::= ... , g: E(X), … . (1) Z ::= …, f: X@Y.g, … . (2) where E(X) is one of the expressions X, [ X ], and (X1 | …| X | …| Xn) • Axiom: Seminar on GEBNF
Situation 2: Single reference to set of elements Y ::= ... , g: E(X), … . (1) Z ::= …, f: X@Y.g, … . (2) where E(X) is one of the expressions X*, and X+ • Axiom: Seminar on GEBNF
Situation 3: Set reference to set of elements Y ::= ... , g: E(X), … . (1) Z ::= …, f: E’(X)@Y.g, … . (2) where E(X) and E’(X) are one of the expressions X*, and X+ • Axiom: Seminar on GEBNF
Example 5 (A) • There are two referential occurrences of non-terminal symbols in the GEBNF syntax definition of directed graphs. • Thus, the functions to and from must satisfy the following conditions. Seminar on GEBNF
Example 5 (B) • Definition: Let G be any well-formed syntax definition in GEBNF. We write Axiom(G) to denote the set of constraints derived from G according to the above rules. • Example: Axiom(DG) contains the following axioms: Seminar on GEBNF
Algebraic Semantics of GEBNF Let G= < R, N, T, S> be a GEBNF syntax definition • The signature induced from G: G=(NT, FG), where FG=Fun(G) is the set of function symbols induced from G. • G-algebraA: • {Ax | xNT} of sets • {f | FG }, a set of functions, where if is of type XY, then f is a function from set AX to the set [[ Y ]], where Seminar on GEBNF
Algebra without Junk • A G-algebra Acontains no junk, if • |AR|=1 • for all sN and all eAs, we can define a function f : RP(s) in PL such that for some mAR we have ef(m). There is one and only one root element Every element in a model must be accessible from the root Seminar on GEBNF
Example 6: Model as Algebra Seminar on GEBNF
Satisfaction of Constraints • Assignment in an G-algebra A • a mapping from the set V of variables to the elements of the algebra. • Evaluation of an expression e under an assignment is written [[e]]. (See paper for definition ) • A predicate p is trueinAunder assignment written A |=p, if [[p]] = true. • A predicate p is true in A and written A|= p, if for all assignments in A, A |=p. Seminar on GEBNF
Evaluation of Expressions and Predicates Seminar on GEBNF
Valid Models • A G–algebra A without junk is a syntactically valid model with respect to G, if for all pAxiom(G), we have that A |= p. • Let MM=(G, p) be a meta-model • G is a GEBNF syntax definition and • p is a predicate in the FOL induced from G. • The semantics of the meta-modelMM is a subset of syntactically valid models of G that satisfy the predicate p. • This is the standard treatment of predicate logic in the model theory of mathematical logics. [Chiswell 2007] Seminar on GEBNF
Institution of Meta-Models • We prove the following statements, thus the institution structure of meta-models • GEBNF syntax definitions + Syntax morphisms form a category • Valid models (i.e. algebras) of GEBNF syntax definitions + homomorphisms between algebras form a category • Translation of FL sentences through syntax morphisms is a functor • Translation of valid models through syntax morphisms is a functor • Translations of sentences and models through a syntax morphism are truth invariant J. A. Goguen and R. M. Burstall, Institutions: Abstract model theory for specification and programming, J. ACM, vol.39, no.1, pp. 95--146, 1992. Seminar on GEBNF
Review: Category A categoryC consists of • a class Cobj of objects and • a class Cm of morphisms or arrows between objects together with the following three operations: • dom: CmCobj; • codom: CmCobj; • id: CobjCm, where for all morphisms f, • dom(f)=A is called the domain of the morphism f; • codom(f)=B the codomain, and • the morphism f is from object A=dom(f) to object B=codom(f), written f : AB. • For each object A, id(A) is the identity morphism that its domain and codomain are A. id(A) is also written as idA. Seminar on GEBNF
There is a partial operation o on Cm, called composition of morphisms. • The composition of morphisms f and g, written f o g, is defined, if dom(f) =codom(g). • The result of composition f o g is a morphism from dom(g) to codom(f). • The composition operation has the following properties. For all morphisms f, g, and h, • (f o g) o h = f o (g o h) • idA o f = f, if codom(f)= A • g o idA= g, if dom(g) = A. Seminar on GEBNF
Syntax Morphisms A syntax morphism from G to H, written :GH, is a pair (m, f) of mappings • m: NGNH and • f: Fun(G)Fun(H) that satisfy the following two conditions: • Root preservation: m(RG)=RH; • Type preservation: for all opFun(G), (op: AB)(f(op): m(A)m(B)), where we naturally extend the mapping m to type expressions. Seminar on GEBNF
Example 7: Syntax Morphism GEBNF Syntax Definition AR: Map::= cities: City+, routes: Route* City::= name, country: :String, population: Real Route::= depart, arrive: City, distance: Real, flights: TimeDay* Syntax Morphism from DG to AR: • m = (GraphMap, NodeCity, EdgeRoute), • f = ( nodescities, edgesroutes, namename, weightpopulation, toarrive, fromdepart, weightdistance) Seminar on GEBNF
The Category of GEBNF • Definition: (Composition of syntax morphisms) • Assume that =(m, f): GH and =(n, g):HJ be syntax morphisms. • The composition of to , written o, is defined as (mon, fog). • Definition (Identity Syntax Morphisms) • IdG is defined as the pair of mappings (idN, idFun(G) ) • Lemma: The above definitions are sound • Theorem: • Let Obj be the set of well-formed GEBNF syntax definitions, • Let Mor be the set of syntax morphisms on Obj. • (Obj, Mor) is a category. It is denoted by GEB in the sequel. Seminar on GEBNF
Review: Functor • Let C, D be two categories. A functor F from C to D consists of two mappings: • an object mapping Fobj : CobjDobj, and • a morphism mapping Fm : CmDm • They have the following properties. • for all morphisms f: AB of category C, Fm(f) : Fobj(A)Fobj(B). • for all morphisms f and g in C, Fm(f o g) = Fm(f) o Fm(g). • for all objects A in category C, Fm(idA) = idFobj(A). Seminar on GEBNF
Translation of Sentences • Given a syntax morphism =(m, f) from GEBNF defined modelling language G to H, we can define a translation between the PLs induced from them. • Definition: • Senobj(G) denotes the set of predicates on the root of G. • Define mapping Senm() from Senobj(G) to Senobj(H): For each predicate p in Senobj(G), • Each variable v of type in predicate p is replaced by a variable v' of type m(). • Each opFun(G) in predicate p is replaced by the function symbol f(op). Seminar on GEBNF
Example 8: Translation of Sentence • Consider the syntax morphism defined in Example 7. The reaches predicate defined in Example 4 can be translated into the following sentence in PLAR. Seminar on GEBNF