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