diff --git a/GripperOnotology.owl b/GripperOnotology.owl
index 305efef39fbf9a4286a5ad3e52de3291493f704c..26fedca74db75f06becae82b65e1ef00e55b5b4d 100644
--- a/GripperOnotology.owl
+++ b/GripperOnotology.owl
@@ -1,180 +1,181 @@
 <?xml version="1.0"?>
-<!-- <rdf:RDF -->
-<!--     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" -->
-<!--     xmlns:xsd="http://www.w3.org/2001/XMLSchema#" -->
-<!--     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" -->
-<!--     xmlns:owl="http://www.w3.org/2002/07/owl#" -->
-<!--     xmlns="http://www.owl-ontologies.com/unnamed.owl#" -->
-<!--   xml:base="http://www.owl-ontologies.com/unnamed.owl"> -->
-<!--   <owl:Ontology rdf:about=""/> -->
-<!--   <owl:Class rdf:ID="Skill"> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:ID="Gripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:ID="VacuumGripper"> -->
-<!--     <rdfs:subClassOf> -->
-<!--       <owl:Class rdf:about="#Gripper"/> -->
-<!--     </rdfs:subClassOf> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:ID="PincerGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:ID="MagnetGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:ID="AdhesionGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:ID="FingerGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:ID="AngleGripper"> -->
-<!--     <rdfs:subClassOf> -->
-<!--       <owl:Class rdf:about="#PincerGripper"/> -->
-<!--     </rdfs:subClassOf> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:ID="ParallelGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:ID="CircularParallelGripper"> -->
-<!--     <rdfs:subClassOf> -->
-<!--       <owl:Class rdf:about="#ParallelGripper"/> -->
-<!--     </rdfs:subClassOf> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:ID="GeneralParallelGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:ID="LineParallelGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:about="#PincerGripper"> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:about="#MagnetGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:about="#AdhesionGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:about="#FingerGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <owl:disjointWith rdf:resource="#VacuumGripper"/> -->
-<!--     <rdfs:subClassOf> -->
-<!--       <owl:Class rdf:about="#Gripper"/> -->
-<!--     </rdfs:subClassOf> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:about="#ParallelGripper"> -->
-<!--     <rdfs:subClassOf rdf:resource="#PincerGripper"/> -->
-<!--     <owl:disjointWith rdf:resource="#AngleGripper"/> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:ID="ActuatorSkill"> -->
-<!--     <rdfs:subClassOf rdf:resource="#Skill"/> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:ID="GripperSkill"> -->
-<!--     <rdfs:subClassOf rdf:resource="#ActuatorSkill"/> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:about="#FingerGripper"> -->
-<!--     <rdfs:subClassOf> -->
-<!--       <owl:Class rdf:about="#Gripper"/> -->
-<!--     </rdfs:subClassOf> -->
-<!--     <owl:disjointWith rdf:resource="#PincerGripper"/> -->
-<!--     <owl:disjointWith rdf:resource="#VacuumGripper"/> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:about="#MagnetGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:about="#AdhesionGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:ID="ElasticGripper"> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:ID="JointGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <rdfs:subClassOf rdf:resource="#FingerGripper"/> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:ID="Open"> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:ID="Close"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:ID="DetectHolding"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <rdfs:subClassOf rdf:resource="#GripperSkill"/> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:about="#LineParallelGripper"> -->
-<!--     <owl:disjointWith rdf:resource="#CircularParallelGripper"/> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:about="#GeneralParallelGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <rdfs:subClassOf rdf:resource="#ParallelGripper"/> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:ID="Device"> -->
-<!--     <rdfs:subClassOf> -->
-<!--       <owl:Restriction> -->
-<!--         <owl:onProperty> -->
-<!--           <owl:ObjectProperty rdf:ID="hasSkill"/> -->
-<!--         </owl:onProperty> -->
-<!--         <owl:someValuesFrom rdf:resource="#Skill"/> -->
-<!--       </owl:Restriction> -->
-<!--     </rdfs:subClassOf> -->
-<!--     <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:about="#AdhesionGripper"> -->
-<!--     <owl:disjointWith rdf:resource="#FingerGripper"/> -->
-<!--     <rdfs:subClassOf> -->
-<!--       <owl:Class rdf:about="#Gripper"/> -->
-<!--     </rdfs:subClassOf> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:about="#MagnetGripper"/> -->
-<!--     </owl:disjointWith> -->
-<!--     <owl:disjointWith rdf:resource="#PincerGripper"/> -->
-<!--     <owl:disjointWith rdf:resource="#VacuumGripper"/> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:about="#GeneralParallelGripper"> -->
-<!--     <rdfs:subClassOf rdf:resource="#ParallelGripper"/> -->
-<!--     <owl:disjointWith rdf:resource="#LineParallelGripper"/> -->
-<!--     <owl:disjointWith rdf:resource="#CircularParallelGripper"/> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:about="#MagnetGripper"> -->
-<!--     <owl:disjointWith rdf:resource="#AdhesionGripper"/> -->
-<!--     <owl:disjointWith rdf:resource="#PincerGripper"/> -->
-<!--     <owl:disjointWith rdf:resource="#FingerGripper"/> -->
-<!--     <owl:disjointWith rdf:resource="#VacuumGripper"/> -->
-<!--     <rdfs:subClassOf> -->
-<!--       <owl:Class rdf:about="#Gripper"/> -->
-<!--     </rdfs:subClassOf> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:about="#JointGripper"> -->
-<!--     <rdfs:subClassOf rdf:resource="#FingerGripper"/> -->
-<!--     <owl:disjointWith rdf:resource="#ElasticGripper"/> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:about="#DetectHolding"> -->
-<!--     <owl:disjointWith rdf:resource="#Open"/> -->
-<!--     <rdfs:subClassOf rdf:resource="#GripperSkill"/> -->
-<!--     <owl:disjointWith> -->
-<!--       <owl:Class rdf:about="#Close"/> -->
-<!--     </owl:disjointWith> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:about="#Gripper"> -->
-<!--     <owl:equivalentClass> -->
-<!--       <owl:Restriction> -->
-<!--         <owl:onProperty> -->
-<!--           <owl:ObjectProperty rdf:about="#hasSkill"/> -->
-<!--         </owl:onProperty> -->
-<!--         <owl:allValuesFrom rdf:resource="#GripperSkill"/> -->
-<!--       </owl:Restriction> -->
-<!--     </owl:equivalentClass> -->
-<!--     <owl:disjointWith rdf:resource="#Skill"/> -->
-<!--     <rdfs:subClassOf rdf:resource="#Device"/> -->
-<!--   </owl:Class> -->
-<!--   <owl:Class rdf:about="#Close"> -->
-<!--     <owl:disjointWith rdf:resource="#DetectHolding"/> -->
-<!--     <owl:disjointWith rdf:resource="#Open"/> -->
-<!--     <rdfs:subClassOf rdf:resource="#GripperSkill"/> -->
-<!--   </owl:Class> -->
-<!--   <owl:ObjectProperty rdf:about="#hasSkill"> -->
-<!--     <rdfs:domain rdf:resource="#Device"/> -->
-<!--   </owl:ObjectProperty> -->
-<!-- </rdf:RDF> -->
+<rdf:RDF
+    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
+    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+    xmlns:owl="http://www.w3.org/2002/07/owl#"
+    xmlns="http://www.owl-ontologies.com/unnamed.owl#"
+  xml:base="http://www.owl-ontologies.com/unnamed.owl"
+>
+  <owl:Ontology rdf:about=""/>
+  <owl:Class rdf:ID="Skill">
+    <owl:disjointWith>
+      <owl:Class rdf:ID="Gripper"/>
+    </owl:disjointWith>
+  </owl:Class>
+  <owl:Class rdf:ID="VacuumGripper">
+    <rdfs:subClassOf>
+      <owl:Class rdf:about="#Gripper"/>
+    </rdfs:subClassOf>
+    <owl:disjointWith>
+      <owl:Class rdf:ID="PincerGripper"/>
+    </owl:disjointWith>
+    <owl:disjointWith>
+      <owl:Class rdf:ID="MagnetGripper"/>
+    </owl:disjointWith>
+    <owl:disjointWith>
+      <owl:Class rdf:ID="AdhesionGripper"/>
+    </owl:disjointWith>
+    <owl:disjointWith>
+      <owl:Class rdf:ID="FingerGripper"/>
+    </owl:disjointWith>
+  </owl:Class>
+  <owl:Class rdf:ID="AngleGripper">
+    <rdfs:subClassOf>
+      <owl:Class rdf:about="#PincerGripper"/>
+    </rdfs:subClassOf>
+    <owl:disjointWith>
+      <owl:Class rdf:ID="ParallelGripper"/>
+    </owl:disjointWith>
+  </owl:Class>
+  <owl:Class rdf:ID="CircularParallelGripper">
+    <rdfs:subClassOf>
+      <owl:Class rdf:about="#ParallelGripper"/>
+    </rdfs:subClassOf>
+    <owl:disjointWith>
+      <owl:Class rdf:ID="GeneralParallelGripper"/>
+    </owl:disjointWith>
+    <owl:disjointWith>
+      <owl:Class rdf:ID="LineParallelGripper"/>
+    </owl:disjointWith>
+  </owl:Class>
+  <owl:Class rdf:about="#PincerGripper">
+    <owl:disjointWith>
+      <owl:Class rdf:about="#MagnetGripper"/>
+    </owl:disjointWith>
+    <owl:disjointWith>
+      <owl:Class rdf:about="#AdhesionGripper"/>
+    </owl:disjointWith>
+    <owl:disjointWith>
+      <owl:Class rdf:about="#FingerGripper"/>
+    </owl:disjointWith>
+    <owl:disjointWith rdf:resource="#VacuumGripper"/>
+    <rdfs:subClassOf>
+      <owl:Class rdf:about="#Gripper"/>
+    </rdfs:subClassOf>
+  </owl:Class>
+  <owl:Class rdf:about="#ParallelGripper">
+    <rdfs:subClassOf rdf:resource="#PincerGripper"/>
+    <owl:disjointWith rdf:resource="#AngleGripper"/>
+  </owl:Class>
+  <owl:Class rdf:ID="ActuatorSkill">
+    <rdfs:subClassOf rdf:resource="#Skill"/>
+  </owl:Class>
+  <owl:Class rdf:ID="GripperSkill">
+    <rdfs:subClassOf rdf:resource="#ActuatorSkill"/>
+  </owl:Class>
+  <owl:Class rdf:about="#FingerGripper">
+    <rdfs:subClassOf>
+      <owl:Class rdf:about="#Gripper"/>
+    </rdfs:subClassOf>
+    <owl:disjointWith rdf:resource="#PincerGripper"/>
+    <owl:disjointWith rdf:resource="#VacuumGripper"/>
+    <owl:disjointWith>
+      <owl:Class rdf:about="#MagnetGripper"/>
+    </owl:disjointWith>
+    <owl:disjointWith>
+      <owl:Class rdf:about="#AdhesionGripper"/>
+    </owl:disjointWith>
+  </owl:Class>
+  <owl:Class rdf:ID="ElasticGripper">
+    <owl:disjointWith>
+      <owl:Class rdf:ID="JointGripper"/>
+    </owl:disjointWith>
+    <rdfs:subClassOf rdf:resource="#FingerGripper"/>
+  </owl:Class>
+  <owl:Class rdf:ID="Open">
+    <owl:disjointWith>
+      <owl:Class rdf:ID="Close"/>
+    </owl:disjointWith>
+    <owl:disjointWith>
+      <owl:Class rdf:ID="DetectHolding"/>
+    </owl:disjointWith>
+    <rdfs:subClassOf rdf:resource="#GripperSkill"/>
+  </owl:Class>
+  <owl:Class rdf:about="#LineParallelGripper">
+    <owl:disjointWith rdf:resource="#CircularParallelGripper"/>
+    <owl:disjointWith>
+      <owl:Class rdf:about="#GeneralParallelGripper"/>
+    </owl:disjointWith>
+    <rdfs:subClassOf rdf:resource="#ParallelGripper"/>
+  </owl:Class>
+  <owl:Class rdf:ID="Device">
+    <rdfs:subClassOf>
+      <owl:Restriction>
+        <owl:onProperty>
+          <owl:ObjectProperty rdf:ID="hasSkill"/>
+        </owl:onProperty>
+        <owl:someValuesFrom rdf:resource="#Skill"/>
+      </owl:Restriction>
+    </rdfs:subClassOf>
+    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+  </owl:Class>
+  <owl:Class rdf:about="#AdhesionGripper">
+    <owl:disjointWith rdf:resource="#FingerGripper"/>
+    <rdfs:subClassOf>
+      <owl:Class rdf:about="#Gripper"/>
+    </rdfs:subClassOf>
+    <owl:disjointWith>
+      <owl:Class rdf:about="#MagnetGripper"/>
+    </owl:disjointWith>
+    <owl:disjointWith rdf:resource="#PincerGripper"/>
+    <owl:disjointWith rdf:resource="#VacuumGripper"/>
+  </owl:Class>
+  <owl:Class rdf:about="#GeneralParallelGripper">
+    <rdfs:subClassOf rdf:resource="#ParallelGripper"/>
+    <owl:disjointWith rdf:resource="#LineParallelGripper"/>
+    <owl:disjointWith rdf:resource="#CircularParallelGripper"/>
+  </owl:Class>
+  <owl:Class rdf:about="#MagnetGripper">
+    <owl:disjointWith rdf:resource="#AdhesionGripper"/>
+    <owl:disjointWith rdf:resource="#PincerGripper"/>
+    <owl:disjointWith rdf:resource="#FingerGripper"/>
+    <owl:disjointWith rdf:resource="#VacuumGripper"/>
+    <rdfs:subClassOf>
+      <owl:Class rdf:about="#Gripper"/>
+    </rdfs:subClassOf>
+  </owl:Class>
+  <owl:Class rdf:about="#JointGripper">
+    <rdfs:subClassOf rdf:resource="#FingerGripper"/>
+    <owl:disjointWith rdf:resource="#ElasticGripper"/>
+  </owl:Class>
+  <owl:Class rdf:about="#DetectHolding">
+    <owl:disjointWith rdf:resource="#Open"/>
+    <rdfs:subClassOf rdf:resource="#GripperSkill"/>
+    <owl:disjointWith>
+      <owl:Class rdf:about="#Close"/>
+    </owl:disjointWith>
+  </owl:Class>
+  <owl:Class rdf:about="#Gripper">
+    <owl:equivalentClass>
+      <owl:Restriction>
+        <owl:onProperty>
+          <owl:ObjectProperty rdf:about="#hasSkill"/>
+        </owl:onProperty>
+        <owl:allValuesFrom rdf:resource="#GripperSkill"/>
+      </owl:Restriction>
+    </owl:equivalentClass>
+    <owl:disjointWith rdf:resource="#Skill"/>
+    <rdfs:subClassOf rdf:resource="#Device"/>
+  </owl:Class>
+  <owl:Class rdf:about="#Close">
+    <owl:disjointWith rdf:resource="#DetectHolding"/>
+    <owl:disjointWith rdf:resource="#Open"/>
+    <rdfs:subClassOf rdf:resource="#GripperSkill"/>
+  </owl:Class>
+  <owl:ObjectProperty rdf:about="#hasSkill">
+    <rdfs:domain rdf:resource="#Device"/>
+  </owl:ObjectProperty>
+</rdf:RDF>
 
 <!-- Created with Protege (with OWL Plugin 2.1, Build 284)  http://protege.stanford.edu -->
diff --git a/owl.ast b/owl.ast
index 46a303369ee26291dcbe6526cc9dc5eb176aae78..6d2982d0a815ab8fcda28e07cab7c085d727f1f4 100644
--- a/owl.ast
+++ b/owl.ast
@@ -1,9 +1,34 @@
 // -*-Java-*-
 Start ::= Specification;
 
-Specification ::= Attribute*;
+Specification ::= XmlHeader RdfDeclaration;
 
-Attribute ::= Id Value;
+XmlHeader ::= Attribute*;
+
+abstract Element ::= Attribute* Element*;
+RdfDeclaration : Element;
+RdfsSubClassOf : Element;
+RdfsDomain : Element;
+OwlOntology : Element;
+OwlAllValuesFrom : Element;
+OwlClass : Element;
+OwlDisjointWith : Element;
+OwlEquivalentClass : Element;
+OwlObjectProperty : Element;
+OwlOnProperty : Element;
+OwlSomeValuesFrom : Element;
+OwlRestriction : Element;
+
+abstract Attribute ::= Value;
+Version : Attribute;
+RdfAbout : Attribute;
+RdfId : Attribute;
+RdfResource : Attribute;
+XmlBase : Attribute;
+Xmlns : Attribute;
+XmlnsRdf : Attribute;
+XmlnsXsd : Attribute;
+XmlnsRdfs : Attribute;
+XmlnsOwl : Attribute;
 
-Id ::= <IDENTIFIER>;
 Value ::= <STRING_LITERAL>;
\ No newline at end of file
diff --git a/owl.jjt b/owl.jjt
index fb4f0f568acb3a14cba4c667cabe7c63ed17d2bb..a10f08b8dfbce6f92621e04cf867675a8b8f516a 100644
--- a/owl.jjt
+++ b/owl.jjt
@@ -42,14 +42,15 @@ PARSER_END(OwlParser)
 SPECIAL_TOKEN : /* COMMENTS */
 {
 //     <SLASH_STAR_COMMENT  :  "/*" (~["*"])* "*" ("*" | (~["*","/"] (~["*"])* "*"))* "/"  >
-    <XML_COMMENT  :  "<!--" (~["-","-",">"])* "-->"  >
+< "<!--" ( ~["-"] | ( "-" ~["-"] ) )* "-->">
+//     <XML_COMMENT  :  "<!--" (~["-","-",">"])* "-->"  >
 }// COMMENTS
 
 
-<BOUNDS> TOKEN: {
-    < BEGINCOMMENT : "<!--"     >
-  | < ENDCOMMENT   : "-->"     >
-}
+// <BOUNDS> TOKEN: {
+//     < BEGINCOMMENT : "<!--"     >
+//   | < ENDCOMMENT   : "-->"     >
+// }
 
 <DEFAULT, BOUNDS> TOKEN : /* RESERVED WORDS AND LITERALS */
 {
@@ -64,14 +65,18 @@ SPECIAL_TOKEN : /* COMMENTS */
   | < RDF_ABOUT          : "rdf:about" >
   | < RDF_ID             : "rdf:ID" >
   | < RDF_RESOURCE       : "rdf:resource" >
+  | < RDFS_DOMAIN        : "rdfs:domain" >
   | < RDFS_SUBCLASSOF    : "rdfs:subClassOf" >
-  | < OWL_ONTOLOGY       : "owl:Ontology" >
+  | < OWL_ALLVALUESFROM  : "owl:allValuesFrom" >
   | < OWL_CLASS          : "owl:Class" >
-  | < OWL_DISJOINTWITH   : "owl:DisjointWith" >
+  | < OWL_ONTOLOGY       : "owl:Ontology" >
+  | < OWL_DISJOINTWITH   : "owl:disjointWith" >
+  | < OWL_EQUIVALENTCLASS: "owl:equivalentClass" >
   | < OWL_RESTRICTION    : "owl:Restriction" >
   | < OWL_ONPROPERTY     : "owl:onProperty" >
   | < OWL_OBJECTPROPERTY : "owl:ObjectProperty" >
   | < OWL_SOMEVALUESFROM : "owl:someValuesFrom" >
+  | < VERSION            : "version" >
 
 }// RESERVED WORDS AND LITERALS
 
@@ -247,7 +252,116 @@ Start Start() #Start : {}
 
 void Specification() #Specification : {}
 {
-  "<?" <XML> AttributeList() "?>"
+    XmlHeader()
+	RdfDeclaration()
+}
+
+void XmlHeader() #XmlHeader : {}
+{
+    "<?" <XML> AttributeList() "?>"
+}
+
+void RdfDeclaration() #RdfDeclaration : {}
+{
+    "<"  <RDF_RDF> AttributeList() ">"
+	ElementList()
+    "</" <RDF_RDF> ">"
+}
+
+void ElementList() #List : {}
+{
+    (Element())*    
+}
+
+void Element() : {}
+{
+    "<" ( OwlElement()
+	  | RdfElement()
+	  )
+}
+
+void OwlElement() : {}
+{
+    OwlOntology()
+	| OwlAllValuesFrom()
+	| OwlClass()
+	| OwlDisjointWith()
+	| OwlEquivalentClass()
+	| OwlObjectProperty()
+	| OwlOnProperty()
+	| OwlSomeValuesFrom()
+	| OwlRestriction()
+}
+
+void OwlOntology() #OwlOntology : {}
+{
+    <OWL_ONTOLOGY> AttributeList() 	ElementList() "/>"
+}
+
+void OwlAllValuesFrom() #OwlAllValuesFrom : {}
+{
+    <OWL_ALLVALUESFROM> AttributeList() 
+	(">" ElementList() "</" <OWL_ALLVALUESFROM> ">" | ElementList() "/>")
+}
+
+void OwlClass() #OwlClass : {}
+{
+    <OWL_CLASS> AttributeList() 
+	(">" ElementList() "</" <OWL_CLASS> ">" | ElementList() "/>")
+}
+
+void OwlDisjointWith() #OwlDisjointWith : {}
+{
+    <OWL_DISJOINTWITH> AttributeList() 
+	(">" ElementList() "</" <OWL_DISJOINTWITH> ">" | ElementList() "/>")
+}
+
+void OwlEquivalentClass() #OwlEquivalentClass : {}
+{
+    <OWL_EQUIVALENTCLASS> AttributeList() 
+	(">" ElementList() "</" <OWL_EQUIVALENTCLASS> ">" | ElementList() "/>")
+}
+
+void OwlObjectProperty () #OwlObjectProperty  : {}
+{
+    <OWL_OBJECTPROPERTY> AttributeList() 
+	(">" ElementList() "</" <OWL_OBJECTPROPERTY> ">" | ElementList() "/>")
+}
+
+void OwlOnProperty () #OwlOnProperty  : {}
+{
+    <OWL_ONPROPERTY> AttributeList() 
+	(">" ElementList() "</" <OWL_ONPROPERTY> ">" | ElementList() "/>")
+}
+
+void OwlSomeValuesFrom () #OwlSomeValuesFrom  : {}
+{
+    <OWL_SOMEVALUESFROM> AttributeList() 
+	(">" ElementList() "</" <OWL_SOMEVALUESFROM> ">" | ElementList() "/>")
+}
+
+void OwlRestriction () #OwlRestriction  : {}
+{
+    <OWL_RESTRICTION> AttributeList() 
+	(">" ElementList() "</" <OWL_RESTRICTION> ">" | ElementList() "/>")
+}
+
+void RdfElement() : {}
+{
+    RdfsSubClassOf()
+	| RdfsDomain()
+}
+
+void RdfsSubClassOf() #RdfsSubClassOf : {}
+{
+    <RDFS_SUBCLASSOF> AttributeList() 
+	(">" ElementList() "</" <RDFS_SUBCLASSOF> ">" | ElementList() "/>")
+}
+
+void RdfsDomain() #RdfsDomain : {}
+{
+    <RDFS_DOMAIN> AttributeList() 
+	(">" ElementList() "</" <RDFS_DOMAIN> ">" | ElementList() "/>")
 }
 
 void AttributeList() #List : {}
@@ -255,15 +369,83 @@ void AttributeList() #List : {}
     (Attribute())*
 }
 
-void Attribute() #Attribute : { Token t; }
+void Attribute() : {}
+{
+    Version()
+	| RdfAttribute()
+	| XmlAttribute()
+	| XmlnsAttribute()
+}
+
+void Version() #Version : {}
+{
+    <VERSION> <ASSIGN> Value()
+}
+
+void RdfAttribute() : {}
+{
+    RdfAbout()
+	| RdfId()
+	| RdfResource()
+}
+
+void RdfAbout() #RdfAbout : {}
+{
+    <RDF_ABOUT> <ASSIGN> Value()
+}
+
+void RdfId() #RdfId : {}
+{
+    <RDF_ID> <ASSIGN> Value()
+}
+
+void RdfResource() #RdfId : {}
+{
+    <RDF_RESOURCE> <ASSIGN> Value()
+}
+
+void XmlAttribute() : {}
+{
+    XmlBase()
+}
+
+void XmlBase() #XmlBase : {}
+{
+    <XML_BASE> <ASSIGN> Value()
+}
+
+void XmlnsAttribute() : {}
+{
+    Xmlns()
+	| XmlnsRdf()
+	| XmlnsXsd()
+	| XmlnsRdfs()
+	| XmlnsOwl()
+}
+
+void Xmlns() #Xmlns : {}
+{
+    <XMLNS> <ASSIGN> Value()
+}
+
+void XmlnsRdf() #XmlnsRdf : {}
+{
+    <XMLNS_RDF> <ASSIGN> Value()
+}
+
+void XmlnsXsd() #XmlnsXsd : {}
+{
+    <XMLNS_XSD> <ASSIGN> Value()
+}
+
+void XmlnsRdfs() #XmlnsRdfs : {}
 {
-    Id() <ASSIGN> Value()
+    <XMLNS_RDFS> <ASSIGN> Value()
 }
 
-void Id() #Id : { Token t; }
+void XmlnsOwl() #XmlnsOwl : {}
 {
-    t = <IDENTIFIER>
-	{jjtThis.setIDENTIFIER(t.image);}
+    <XMLNS_OWL> <ASSIGN> Value()
 }
 
 void Value() #Value : { Token t; }