PM test1 {
  User phm {name:"Philippe Martin"    password:"!@#$%^&amp;*"} 
  User kerry {name:"Kerry Raymond"    password:"!@#$%^&amp;*"} 
  Name "kerry#thing" {s:"thing"  nameSpace:User kerry}
  Name "thingy" {s:"thing"  nameSpace:User kerry}
  Name "object" {s:"object" nameSpace:User kerry} 
  CType thing { identifier: Name "kerry#thing"  name: Name "object"
                creator:User phm}
    CType characteristic { sourceOf:Supertype { dest:CType "thing" }}
      CType happiness { sourceOf:Supertype{dest:CType characteristic}}
    CType stmt { sourceOf:Supertype{dest:CType thing } }
      Indiv SomeCatIsOnAMat { sourceOf:InstanceOf{dest:CType stmt} }
    CType spatial_entity { sourceOf:Supertype{dest:CType thing } }
      CType mat { sourceOf:Supertype{dest:CType thing } }
      CType mammal { sourceOf:Supertype{dest:CType thing}
                           creator: User kerry }
        CType cat { sourceOf:Supertype{dest:CType mammal} }
          CType happy_cat { sourceOf:Supertype{dest:CType cat} }
        CType person { sourceOf:Supertype{dest:CType mammal} }
          Indiv Kerry { sourceOf:InstanceOf{dest:CType person}
                        representationOf: User kerry }

  RType relation1 {}
  RType relToSpatialEntity { sourceOf:Supertype{dest:RType relation1}
                             range:spatial_entity }
     RType on { sourceOf:Supertype{dest:RType relToSpatialEntity}
                domain:spatial_entity }
  RType relationFromStmt { sourceOf:Supertype{dest:RType relation1}
                           domain: stmt }
     RType believer { sourceOf:Supertype{dest:RType relationFromStmt}
                      domain:person }
  RType chrc { sourceOf:Supertype{dest:RType relation1} range:characteristic
               minDomain:"1" maxDomain:"0" minRange:"1" maxRange:"0" }
  RType owner { sourceOf:Supertype{dest:RType relation1}
                range: person  minDomain:"0" maxDomain:"0" minRange:"1" maxRange:"1" }
  RType co-owner { sourceOf:Supertype{dest:RType relation1}
                   range: person  minDomain:"0" maxDomain:"0" minRange:"1" maxRange:"0"}


  Assertion ThereExistsACatOnSomeMat {  term: Indiv SomeCatIsOnAMat
   text: "[SomeCatIsOnaMat  [a cat]->(on)->[a mat] ]"
    creator: User kerry    creationDate: Date {day: "2" month: "5" year: "2003"}
    comment:"a classic!"
    embeddedNode1: QNode {cType:cat
      sourceOf: Relation {rType:on dest: QNode{cType:mat} } } }

  Assertion MostPersonAreBelieverOf_ThereExistsACatOnSomeMat {
    text: "[most person]<-(believer)<-[SomeCatIsOnAMat]" 
    embeddedNode1: QNode {cType: person  quantifier:Quantifier{kind: most }
      sourceOf: isReversed Relation {rType:believer
	destRef: ThereExistsACatOnSomeMat } } }

  Assertion MostHappyCatAreOnAMat {
    text: "[most (cat, chrc: a great hapiness)]->(on)->[a mat]"
    embeddedNode1: LNode { 
      embeddedNode1: QNode {cType:cat  quantifier: Quantifier{kind:most}
                           sourceOf: Relation {rType:chrc
                           dest: QNode {cType: happiness  qualifier: great} } }
      sourceOf: Relation {rType:on   dest: QNode{cType:mat} } } }

  Definition AnHappyCatIsACatWithAGreatHappiness
   {dType:CType happy_cat   kind:NSC  parameter:("x")  creator:User phm
    text: "[happy_cat (*x) := [a cat *x, chrc: a great hapiness] ]"
    embeddedNode1: QNode {cType:cat  var:"x"
      sourceOf: Relation {rType:chrc
          dest: QNode {cType:happiness  qualifier:great} } } }

  Assertion {comment:"Kerry, her cat, and 2 other mammals are on a same mat"
    text: "[a mat]<-(on)<-[4 mammal {Kerry, the (cat, owner: Kerry)})]"
      embeddedNode1: QNode {cType:mat}
        sourceOf: isReversed Relation {rType:on
            dest: NodeCollection {cType: mammal  quantifier: Quantifier{num:"4"}
			TNode {term:Kerry}
                        LNode {embeddedNode1:
				QNode {cType:cat sourceOf: Relation {rType:owner
                                                     dest: TNode {term: Kerry} }
                                      } } } } }
}
