kremer@cpsc.ucalgary.ca
A Z Specification for the Conceptual Graphs based on of Typed Graphs
specification
include {graphsZ2.htm}
| Concept, Relation, Coreferent: NAME
| shape: ATTRIBUTE_NAME;
| rectangle, circle: ATTRIBUTE_VALUE
| lineStyle: ATTRIBUTE_NAME;
| solid, dotted: ATTRIBUTE_VALUE
| CONCEPT: COMPONENT
|----------------
| CONCEPT.Name = Concept;
| CONCEPT.Level = 2;
| CONCEPT.Attributes = { MakeAttribute(shape,rectangle,0,{LOCKED}) };
| CONCEPT.Role in ran node; % not needed
NODE parentof CONCEPT
| RELATION: COMPONENT
|----------------
| RELATION.Name = Relation;
| RELATION.Level = 2;
| RELATION.Attributes = { MakeAttribute(shape,circle,0,{LOCKED}) };
| RELATION.Role in ran node; % not needed
NODE parentof RELATION
| COREFERENT: ARC_COMPONENT
|----------------
| COREFERENT.Name = Coreferent;
| COREFERENT.Level = 2;
| COREFERENT.Attributes = { MakeAttribute(lineStyle,dotted,0,{LOCKED}) };
| (arc~(COREFERENT.Role)).Terminals = <>;
ARC parentof COREFERENT
| CtoR: ARC_COMPONENT
|----------------
| CtoR.Level = 2;
| CtoR.Attributes = { MakeAttribute(lineStyle,solid,0,{LOCKED}) };
| (arc~(CtoR.Role)).Terminals = <>;
ARC parentof CtoR
| RtoC: ARC_COMPONENT
|----------------
| RtoC.Level = 2;
| RtoC.Attributes = { MakeAttribute(lineStyle,solid,0,{LOCKED}) };
| (arc~(RtoC.Role)).Terminals = <>;
ARC parentof RtoC
Level2Objects == {CONCEPT, RELATION, COREFERENT, CtoR, RtoC}
---CG_GRAPH-------------------------------------------------------------
| FIRST_ORDER_TYPED_GRAPH
|-------------
| FIRST_ORDER_TYPED_GRAPH;
| Level2Objects subset Contents;
| % There are no other Level 2 objects
| forall c:Contents |
| c notin (Level2Objects||Level1Objects) /\ not(c isa ISA) @
| c.Level>2 /\
| % Every higher level object must have a level 2 parent, but only 1
| (exists1 c2:Level2Objects @ c isa c2)
------------------------------------------------------------------------
end specification