[KnowledgeBase:
  [TypeHierarchy:
    (GT [TypeLabel: "Entity"]
        [TypeLabel: "Block" ]
        ;block is an entity; )
    (GT [TypeLabel: "Entity"]
        [TypeLabel: "Location"]
        ;location is an entity; )
    (Def [TypeLabel: "Block"]
         [LambdaExpression:
            "(lambda (Entity*b)
                   (ATTR ?b [Color])
                   (CHRC ?b [Shape]))" ]
     ;Definition that each BLOCK has a color and shape; )
  ;Type Hierarchy defines some entities and actions and their type relationships;
  ]
  [RelationHierarchy:
    (GT [RelationLabel: "Relation"]
        [RelationLabel: "At"]
        ;New relations - at; )
    (GT [RelationLabel: "Relation"]
        [RelationLabel: "OnTable"]
        ;New relations - ontable; )
    (Def [RelationLabel: "At"]
         [LambdaExpression:
            "(lambda (Entity*e1, Location*l)
                   (POS ?e1 ?l))" ]
     ;Definition of an entity that is positioned AT a location; )
    (Def [RelationLabel: "OnTable"]
         [LambdaExpression:
            "(lambda (Block*b,Location*l)
                   (At ?b ?l)
                   ~[(GRASP [Hand] ?b)])" ]
     ;Definition of a block ONTABLE is at a location and not in the hand; )
  ;Relation Hierarchy defines some new relations;    
  ]
  [CatalogOfIndividuals:
    [Block:#1] [Location:#5]
  ]
  [Assertion:
    (ATTR [Block:#1] [Color:'Red'] ;Block #1 is red;)
    (OnTable [Block:#1] [Location:#5])
  ;These are beginning fact graphs in the knowledge base;
  ]
;This is a Blocks World KB.  It is not meant to be complete.;
]
