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; }