diff --git a/GripperOnotology.owl b/GripperOntology.owl similarity index 100% rename from GripperOnotology.owl rename to GripperOntology.owl diff --git a/GripperOntology_experimental3.owl b/GripperOntology_experimental3.owl new file mode 100644 index 0000000000000000000000000000000000000000..b1f0162f7a2bf39cfb0775b8be40d577ce928d77 --- /dev/null +++ b/GripperOntology_experimental3.owl @@ -0,0 +1,645 @@ +<?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="VacuumGripper"> + <rdfs:subClassOf> + <owl:Class rdf:ID="Gripper"/> + </rdfs:subClassOf> + <owl:disjointWith> + <owl:Class rdf:ID="PincerGripper"/> + </owl:disjointWith> + <owl:disjointWith> + <owl:Class rdf:ID="MagnetGripper"/> + </owl:disjointWith> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty> + <owl:ObjectProperty rdf:ID="hasSkill"/> + </owl:onProperty> + <owl:someValuesFrom> + <owl:Class rdf:ID="AdjustVacuumToGrip"/> + </owl:someValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty> + <owl:ObjectProperty rdf:about="#hasSkill"/> + </owl:onProperty> + <owl:someValuesFrom> + <owl:Class rdf:ID="AdjustVacuumToRelease"/> + </owl:someValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <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:disjointWith> + <owl:Class rdf:ID="AdhesionGripper"/> + </owl:disjointWith> + </owl:Class> + <owl:Class rdf:ID="CloseFingers"> + <owl:disjointWith> + <owl:Class rdf:about="#AdjustVacuumToRelease"/> + </owl:disjointWith> + <owl:disjointWith> + <owl:Class rdf:ID="CloseClaws"/> + </owl:disjointWith> + <owl:disjointWith> + <owl:Class rdf:ID="AdjustCurrentToRelease"/> + </owl:disjointWith> + <rdfs:subClassOf> + <owl:Class rdf:ID="Close"/> + </rdfs:subClassOf> + </owl:Class> + <owl:Class rdf:about="#PincerGripper"> + <owl:disjointWith> + <owl:Class rdf:about="#MagnetGripper"/> + </owl:disjointWith> + <rdfs:subClassOf> + <owl:Restriction> + <owl:someValuesFrom> + <owl:Class rdf:about="#CloseClaws"/> + </owl:someValuesFrom> + <owl:onProperty> + <owl:ObjectProperty rdf:about="#hasSkill"/> + </owl:onProperty> + </owl:Restriction> + </rdfs:subClassOf> + <owl:disjointWith> + <owl:Class rdf:about="#FingerGripper"/> + </owl:disjointWith> + <owl:disjointWith rdf:resource="#VacuumGripper"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty> + <owl:ObjectProperty rdf:about="#hasSkill"/> + </owl:onProperty> + <owl:someValuesFrom> + <owl:Class rdf:ID="OpenClaws"/> + </owl:someValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Class rdf:about="#Gripper"/> + </rdfs:subClassOf> + </owl:Class> + <owl:Class rdf:about="#ParallelGripper"> + <rdfs:subClassOf rdf:resource="#PincerGripper"/> + <owl:disjointWith> + <owl:Class rdf:about="#AdhesionGripper"/> + </owl:disjointWith> + <owl:disjointWith rdf:resource="#AngleGripper"/> + </owl:Class> + <owl:Class rdf:about="#FingerGripper"> + <rdfs:subClassOf> + <owl:Class rdf:about="#Gripper"/> + </rdfs:subClassOf> + <owl:disjointWith rdf:resource="#PincerGripper"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty> + <owl:ObjectProperty rdf:about="#hasSkill"/> + </owl:onProperty> + <owl:someValuesFrom> + <owl:Class rdf:ID="OpenFingers"/> + </owl:someValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:someValuesFrom rdf:resource="#CloseFingers"/> + <owl:onProperty> + <owl:ObjectProperty rdf:about="#hasSkill"/> + </owl:onProperty> + </owl:Restriction> + </rdfs:subClassOf> + <owl:disjointWith rdf:resource="#VacuumGripper"/> + <owl:disjointWith> + <owl:Class rdf:about="#MagnetGripper"/> + </owl:disjointWith> + </owl:Class> + <owl:Class rdf:ID="GripperSkill"> + <owl:disjointWith> + <owl:Class rdf:about="#Gripper"/> + </owl:disjointWith> + </owl:Class> + <owl:Class rdf:about="#AdjustVacuumToGrip"> + <owl:disjointWith> + <owl:Class rdf:ID="AdjustCurrentToGrip"/> + </owl:disjointWith> + <owl:disjointWith> + <owl:Class rdf:about="#OpenClaws"/> + </owl:disjointWith> + <owl:disjointWith> + <owl:Class rdf:about="#OpenFingers"/> + </owl:disjointWith> + <rdfs:subClassOf> + <owl:Class rdf:ID="Open"/> + </rdfs:subClassOf> + </owl:Class> + <owl:Class rdf:about="#AdjustCurrentToRelease"> + <rdfs:subClassOf> + <owl:Class rdf:about="#Close"/> + </rdfs:subClassOf> + <owl:disjointWith rdf:resource="#CloseFingers"/> + <owl:disjointWith> + <owl:Class rdf:about="#CloseClaws"/> + </owl:disjointWith> + <owl:disjointWith> + <owl:Class rdf:about="#AdjustVacuumToRelease"/> + </owl:disjointWith> + </owl:Class> + <owl:Class rdf:about="#OpenFingers"> + <owl:disjointWith> + <owl:Class rdf:about="#AdjustCurrentToGrip"/> + </owl:disjointWith> + <rdfs:subClassOf> + <owl:Class rdf:about="#Open"/> + </rdfs:subClassOf> + <owl:disjointWith rdf:resource="#AdjustVacuumToGrip"/> + <owl:disjointWith> + <owl:Class rdf:about="#OpenClaws"/> + </owl:disjointWith> + </owl:Class> + <owl:Class rdf:about="#MagnetGripper"> + <rdfs:subClassOf> + <owl:Restriction> + <owl:someValuesFrom> + <owl:Class rdf:about="#AdjustCurrentToGrip"/> + </owl:someValuesFrom> + <owl:onProperty> + <owl:ObjectProperty rdf:about="#hasSkill"/> + </owl:onProperty> + </owl:Restriction> + </rdfs:subClassOf> + <owl:disjointWith rdf:resource="#PincerGripper"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty> + <owl:ObjectProperty rdf:about="#hasSkill"/> + </owl:onProperty> + <owl:someValuesFrom rdf:resource="#AdjustCurrentToRelease"/> + </owl:Restriction> + </rdfs:subClassOf> + <owl:disjointWith rdf:resource="#FingerGripper"/> + <owl:disjointWith rdf:resource="#VacuumGripper"/> + <rdfs:subClassOf> + <owl:Class rdf:about="#Gripper"/> + </rdfs:subClassOf> + </owl:Class> + <owl:Class rdf:ID="JointFingerGripper"> + <rdfs:subClassOf rdf:resource="#FingerGripper"/> + <owl:disjointWith> + <owl:Class rdf:ID="ElasticFingerGripper"/> + </owl:disjointWith> + </owl:Class> + <owl:Class rdf:about="#AdjustCurrentToGrip"> + <owl:disjointWith rdf:resource="#AdjustVacuumToGrip"/> + <owl:disjointWith rdf:resource="#OpenFingers"/> + <owl:disjointWith> + <owl:Class rdf:about="#OpenClaws"/> + </owl:disjointWith> + <rdfs:subClassOf> + <owl:Class rdf:about="#Open"/> + </rdfs:subClassOf> + </owl:Class> + <owl:Class rdf:about="#AdjustVacuumToRelease"> + <rdfs:subClassOf> + <owl:Class rdf:about="#Close"/> + </rdfs:subClassOf> + <owl:disjointWith> + <owl:Class rdf:about="#CloseClaws"/> + </owl:disjointWith> + <owl:disjointWith rdf:resource="#CloseFingers"/> + <owl:disjointWith rdf:resource="#AdjustCurrentToRelease"/> + </owl:Class> + <owl:Class rdf:about="#ElasticFingerGripper"> + <rdfs:subClassOf rdf:resource="#FingerGripper"/> + <owl:disjointWith rdf:resource="#JointFingerGripper"/> + </owl:Class> + <owl:Class rdf:about="#OpenClaws"> + <rdfs:subClassOf> + <owl:Class rdf:about="#Open"/> + </rdfs:subClassOf> + <owl:disjointWith rdf:resource="#AdjustVacuumToGrip"/> + <owl:disjointWith rdf:resource="#AdjustCurrentToGrip"/> + <owl:disjointWith rdf:resource="#OpenFingers"/> + </owl:Class> + <owl:Class rdf:ID="CircularParallelGripper"> + <rdfs:subClassOf rdf:resource="#ParallelGripper"/> + <owl:disjointWith> + <owl:Class rdf:ID="GeneralParallelGripper"/> + </owl:disjointWith> + <owl:disjointWith> + <owl:Class rdf:ID="LineParallelGripper"/> + </owl:disjointWith> + </owl:Class> + <owl:Class rdf:about="#CloseClaws"> + <rdfs:subClassOf> + <owl:Class rdf:about="#Close"/> + </rdfs:subClassOf> + <owl:disjointWith rdf:resource="#AdjustVacuumToRelease"/> + <owl:disjointWith rdf:resource="#CloseFingers"/> + <owl:disjointWith rdf:resource="#AdjustCurrentToRelease"/> + </owl:Class> + <owl:Class rdf:about="#Open"> + <owl:disjointWith> + <owl:Class rdf:about="#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:about="#AdhesionGripper"> + <owl:disjointWith rdf:resource="#AngleGripper"/> + <rdfs:subClassOf rdf:resource="#PincerGripper"/> + <owl:disjointWith rdf:resource="#ParallelGripper"/> + </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="#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:disjointWith rdf:resource="#GripperSkill"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty> + <owl:ObjectProperty rdf:about="#hasSkill"/> + </owl:onProperty> + <owl:someValuesFrom rdf:resource="#DetectHolding"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:someValuesFrom rdf:resource="#Open"/> + <owl:onProperty> + <owl:ObjectProperty rdf:about="#hasSkill"/> + </owl:onProperty> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:someValuesFrom> + <owl:Class rdf:about="#Close"/> + </owl:someValuesFrom> + <owl:onProperty> + <owl:ObjectProperty rdf:about="#hasSkill"/> + </owl:onProperty> + </owl:Restriction> + </rdfs:subClassOf> + </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"> + <owl:inverseOf> + <owl:ObjectProperty rdf:ID="isSkillOf"/> + </owl:inverseOf> + <rdfs:domain rdf:resource="#Gripper"/> + <rdfs:range rdf:resource="#GripperSkill"/> + </owl:ObjectProperty> + <owl:ObjectProperty rdf:about="#isSkillOf"> + <rdfs:domain rdf:resource="#GripperSkill"/> + <rdfs:range rdf:resource="#Gripper"/> + <owl:inverseOf rdf:resource="#hasSkill"/> + </owl:ObjectProperty> + <owl:DatatypeProperty rdf:ID="shapeOfClaws"> + <rdfs:domain rdf:resource="#PincerGripper"/> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + </owl:DatatypeProperty> + <owl:DatatypeProperty rdf:ID="maximumForce"> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#float"/> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + <rdfs:domain rdf:resource="#PincerGripper"/> + </owl:DatatypeProperty> + <owl:DatatypeProperty rdf:ID="typeOfActuation"> + <rdfs:range> + <owl:DataRange> + <owl:oneOf rdf:parseType="Resource"> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >pneumatic</rdf:first> + <rdf:rest rdf:parseType="Resource"> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >hydraulic</rdf:first> + <rdf:rest rdf:parseType="Resource"> + <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >electric</rdf:first> + </rdf:rest> + </rdf:rest> + </owl:oneOf> + </owl:DataRange> + </rdfs:range> + <rdfs:domain rdf:resource="#PincerGripper"/> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + </owl:DatatypeProperty> + <owl:DatatypeProperty rdf:ID="maximumVacuum"> + <rdfs:domain rdf:resource="#VacuumGripper"/> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#float"/> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + </owl:DatatypeProperty> + <owl:DatatypeProperty rdf:ID="weightOfGripper"> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#float"/> + <rdfs:domain rdf:resource="#Gripper"/> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + </owl:DatatypeProperty> + <owl:DatatypeProperty rdf:ID="numberOfMovableClaws"> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + <rdfs:domain rdf:resource="#PincerGripper"/> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/> + </owl:DatatypeProperty> + <owl:DatatypeProperty rdf:ID="elasticallySupported"> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/> + <rdfs:domain rdf:resource="#VacuumGripper"/> + </owl:DatatypeProperty> + <owl:DatatypeProperty rdf:ID="uniqueID"> + <rdfs:domain rdf:resource="#Gripper"/> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#ID"/> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + </owl:DatatypeProperty> + <owl:DatatypeProperty rdf:ID="diameterOfGripper"> + <rdfs:domain> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <owl:Class rdf:about="#MagnetGripper"/> + <owl:Class rdf:about="#VacuumGripper"/> + </owl:unionOf> + </owl:Class> + </rdfs:domain> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:DatatypeProperty> + <owl:DatatypeProperty rdf:ID="sizeOfGripper"> + <rdfs:domain rdf:resource="#PincerGripper"/> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + </owl:DatatypeProperty> + <owl:DatatypeProperty rdf:ID="mechanicalInterface"> + <rdfs:domain rdf:resource="#Gripper"/> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:DatatypeProperty> + <owl:DatatypeProperty rdf:ID="electricalInterface"> + <rdfs:domain rdf:resource="#Gripper"/> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + </owl:DatatypeProperty> + <owl:FunctionalProperty rdf:ID="typeOfMagnet"> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + <rdfs:domain rdf:resource="#MagnetGripper"/> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> + </owl:FunctionalProperty> + <owl:FunctionalProperty rdf:ID="cycleTime"> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#float"/> + <rdfs:domain> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <owl:Class rdf:about="#FingerGripper"/> + <owl:Class rdf:about="#PincerGripper"/> + <owl:Class rdf:about="#VacuumGripper"/> + </owl:unionOf> + </owl:Class> + </rdfs:domain> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> + </owl:FunctionalProperty> + <owl:FunctionalProperty rdf:ID="typeOfFingers"> + <rdfs:range> + <owl:DataRange> + <owl:oneOf rdf:parseType="Resource"> + <rdf:rest rdf:parseType="Resource"> + <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >multiple joints</rdf:first> + </rdf:rest> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >elastic</rdf:first> + </owl:oneOf> + </owl:DataRange> + </rdfs:range> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> + <rdfs:domain rdf:resource="#FingerGripper"/> + </owl:FunctionalProperty> + <owl:FunctionalProperty rdf:ID="typeOfVacuum"> + <rdfs:range> + <owl:DataRange> + <owl:oneOf rdf:parseType="Resource"> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >venturi nozzle</rdf:first> + <rdf:rest rdf:parseType="Resource"> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >vacuum pump</rdf:first> + <rdf:rest rdf:parseType="Resource"> + <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >blower</rdf:first> + </rdf:rest> + </rdf:rest> + </owl:oneOf> + </owl:DataRange> + </rdfs:range> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> + <rdfs:domain rdf:resource="#VacuumGripper"/> + </owl:FunctionalProperty> + <owl:FunctionalProperty rdf:ID="stiffnessOfGripper"> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + <rdfs:domain rdf:resource="#VacuumGripper"/> + </owl:FunctionalProperty> + <owl:FunctionalProperty rdf:ID="materialOfGripper"> + <rdfs:domain> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <owl:Class rdf:about="#FingerGripper"/> + <owl:Class rdf:about="#VacuumGripper"/> + </owl:unionOf> + </owl:Class> + </rdfs:domain> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:FunctionalProperty> + <owl:FunctionalProperty rdf:ID="degreesOfFreedom"> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> + <rdfs:domain> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <owl:Class rdf:about="#FingerGripper"/> + <owl:Class rdf:about="#PincerGripper"/> + <owl:Class rdf:about="#VacuumGripper"/> + </owl:unionOf> + </owl:Class> + </rdfs:domain> + </owl:FunctionalProperty> + <owl:FunctionalProperty rdf:ID="insideOrOutsidePicking"> + <rdfs:domain rdf:resource="#PincerGripper"/> + <rdfs:range> + <owl:DataRange> + <owl:oneOf rdf:parseType="Resource"> + <rdf:rest rdf:parseType="Resource"> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >outside</rdf:first> + <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/> + </rdf:rest> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string" + >inside</rdf:first> + </owl:oneOf> + </owl:DataRange> + </rdfs:range> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> + </owl:FunctionalProperty> + <owl:FunctionalProperty rdf:ID="numberOfFingers"> + <rdfs:range> + <owl:DataRange> + <owl:oneOf rdf:parseType="Resource"> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#int" + >2</rdf:first> + <rdf:rest rdf:parseType="Resource"> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#int" + >3</rdf:first> + <rdf:rest rdf:parseType="Resource"> + <rdf:rest rdf:parseType="Resource"> + <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#int" + >5</rdf:first> + </rdf:rest> + <rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#int" + >4</rdf:first> + </rdf:rest> + </rdf:rest> + </owl:oneOf> + </owl:DataRange> + </rdfs:range> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> + <rdfs:domain rdf:resource="#FingerGripper"/> + </owl:FunctionalProperty> + <owl:FunctionalProperty rdf:ID="numberOfClaws"> + <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> + <rdfs:domain rdf:resource="#PincerGripper"/> + </owl:FunctionalProperty> +<!-- <VacuumGripper rdf:ID="GripperTwo"> --> +<!-- <elasticallySupported rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean" --> +<!-- >true</elasticallySupported> --> +<!-- <electricalInterface rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >E_INT_2</electricalInterface> --> +<!-- <mechanicalInterface rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >M_INT_3</mechanicalInterface> --> +<!-- <stiffnessOfGripper rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >Stiff</stiffnessOfGripper> --> +<!-- <maximumVacuum rdf:datatype="http://www.w3.org/2001/XMLSchema#float" --> +<!-- >20.0</maximumVacuum> --> +<!-- <weightOfGripper rdf:datatype="http://www.w3.org/2001/XMLSchema#float" --> +<!-- >145.0</weightOfGripper> --> +<!-- <degreesOfFreedom rdf:datatype="http://www.w3.org/2001/XMLSchema#int" --> +<!-- >0</degreesOfFreedom> --> +<!-- <typeOfVacuum rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >vacuum pump</typeOfVacuum> --> +<!-- <materialOfGripper rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >Rubber</materialOfGripper> --> +<!-- <uniqueID rdf:datatype="http://www.w3.org/2001/XMLSchema#ID" --> +<!-- >GRIPPER2</uniqueID> --> +<!-- <cycleTime rdf:datatype="http://www.w3.org/2001/XMLSchema#float" --> +<!-- >245.0</cycleTime> --> +<!-- <diameterOfGripper rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >10 x 10</diameterOfGripper> --> +<!-- </VacuumGripper> --> +<!-- <AdhesionGripper rdf:ID="GripperThree"> --> +<!-- <insideOrOutsidePicking rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >inside</insideOrOutsidePicking> --> +<!-- <sizeOfGripper rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >Large</sizeOfGripper> --> +<!-- <typeOfActuation rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >hydraulic</typeOfActuation> --> +<!-- <numberOfMovableClaws rdf:datatype="http://www.w3.org/2001/XMLSchema#int" --> +<!-- >3</numberOfMovableClaws> --> +<!-- <uniqueID rdf:datatype="http://www.w3.org/2001/XMLSchema#ID" --> +<!-- >GRIPPER3</uniqueID> --> +<!-- <mechanicalInterface rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >M_INT_1</mechanicalInterface> --> +<!-- <numberOfClaws rdf:datatype="http://www.w3.org/2001/XMLSchema#int" --> +<!-- >3</numberOfClaws> --> +<!-- <electricalInterface rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >E_INT_1</electricalInterface> --> +<!-- <degreesOfFreedom rdf:datatype="http://www.w3.org/2001/XMLSchema#int" --> +<!-- >3</degreesOfFreedom> --> +<!-- <weightOfGripper rdf:datatype="http://www.w3.org/2001/XMLSchema#float" --> +<!-- >200.0</weightOfGripper> --> +<!-- <shapeOfClaws rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >Rounded</shapeOfClaws> --> +<!-- <maximumForce rdf:datatype="http://www.w3.org/2001/XMLSchema#float" --> +<!-- >150.0</maximumForce> --> +<!-- <cycleTime rdf:datatype="http://www.w3.org/2001/XMLSchema#float" --> +<!-- >10.0</cycleTime> --> +<!-- </AdhesionGripper> --> +<!-- <owl:AllDifferent> --> +<!-- <owl:distinctMembers rdf:parseType="Collection"> --> +<!-- <ElasticFingerGripper rdf:ID="GripperOne"> --> +<!-- <cycleTime rdf:datatype="http://www.w3.org/2001/XMLSchema#float" --> +<!-- >230.0</cycleTime> --> +<!-- <mechanicalInterface rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >M_INT_2</mechanicalInterface> --> +<!-- <materialOfGripper rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >Plastic</materialOfGripper> --> +<!-- <typeOfFingers rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >elastic</typeOfFingers> --> +<!-- <numberOfFingers rdf:datatype="http://www.w3.org/2001/XMLSchema#int" --> +<!-- >4</numberOfFingers> --> +<!-- <electricalInterface rdf:datatype="http://www.w3.org/2001/XMLSchema#string" --> +<!-- >E_INT_1</electricalInterface> --> +<!-- <uniqueID rdf:datatype="http://www.w3.org/2001/XMLSchema#ID" --> +<!-- >GRIPPER1</uniqueID> --> +<!-- <degreesOfFreedom rdf:datatype="http://www.w3.org/2001/XMLSchema#int" --> +<!-- >2</degreesOfFreedom> --> +<!-- <weightOfGripper rdf:datatype="http://www.w3.org/2001/XMLSchema#float" --> +<!-- >250.0</weightOfGripper> --> +<!-- </ElasticFingerGripper> --> +<!-- </owl:distinctMembers> --> +<!-- </owl:AllDifferent> --> +<!-- <owl:AllDifferent> --> +<!-- <owl:distinctMembers rdf:parseType="Collection"> --> +<!-- <VacuumGripper rdf:about="#GripperTwo"/> --> +<!-- </owl:distinctMembers> --> +<!-- </owl:AllDifferent> --> +<!-- <owl:AllDifferent> --> +<!-- <owl:distinctMembers rdf:parseType="Collection"> --> +<!-- <AdhesionGripper rdf:about="#GripperThree"/> --> +<!-- </owl:distinctMembers> --> +<!-- </owl:AllDifferent> --> +</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 6d2982d0a815ab8fcda28e07cab7c085d727f1f4..fcd4326877989e7ea9bd32103fe99d4813e9dd87 100644 --- a/owl.ast +++ b/owl.ast @@ -5,24 +5,41 @@ Specification ::= XmlHeader RdfDeclaration; 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 Element; +abstract ComplexElement : Element ::= Attribute* Element*; +RdfDeclaration : ComplexElement; +RdfFirst : ComplexElement; +RdfRest : ComplexElement; +RdfType : ComplexElement; +RdfsSubClassOf : ComplexElement; +RdfsDomain : ComplexElement; +RdfsRange : ComplexElement; +OwlOntology : ComplexElement; +OwlAllValuesFrom : ComplexElement; +OwlClass : ComplexElement; +OwlDataRange : ComplexElement; +OwlDatatypeProperty : ComplexElement; +OwlDisjointWith : ComplexElement; +OwlEquivalentClass : ComplexElement; +OwlFunctionalProperty : ComplexElement; +OwlInverseOf : ComplexElement; +OwlObjectProperty : ComplexElement; +OwlOneOf : ComplexElement; +OwlOnProperty : ComplexElement; +OwlSomeValuesFrom : ComplexElement; +OwlRestriction : ComplexElement; +OwlUnionOf : ComplexElement; + +abstract SimpleElement : Element; +StringElement : SimpleElement ::= <IDENTIFIER>; +IntElement : SimpleElement ::= <INTEGER_LITERAL>; abstract Attribute ::= Value; Version : Attribute; RdfAbout : Attribute; +RdfDatatype : Attribute; RdfId : Attribute; +RdfParseType : Attribute; RdfResource : Attribute; XmlBase : Attribute; Xmlns : Attribute; diff --git a/owl.jjt b/owl.jjt index a10f08b8dfbce6f92621e04cf867675a8b8f516a..286fdd4e0364ac9d4cc6d0b947616fc65f833238 100644 --- a/owl.jjt +++ b/owl.jjt @@ -63,20 +63,32 @@ SPECIAL_TOKEN : /* COMMENTS */ | < XMLNS_OWL : "xmlns:owl" > | < RDF_RDF : "rdf:RDF" > | < RDF_ABOUT : "rdf:about" > - | < RDF_ID : "rdf:ID" > - | < RDF_RESOURCE : "rdf:resource" > - | < RDFS_DOMAIN : "rdfs:domain" > - | < RDFS_SUBCLASSOF : "rdfs:subClassOf" > - | < OWL_ALLVALUESFROM : "owl:allValuesFrom" > - | < OWL_CLASS : "owl:Class" > - | < 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" > + | < RDF_DATATYPE : "rdf:datatype" > + | < RDF_ID : "rdf:ID" > + | < RDF_FIRST : "rdf:first" > + | < RDF_REST : "rdf:rest" > + | < RDF_PARSETYPE : "rdf:parseType" > + | < RDF_RESOURCE : "rdf:resource" > + | < RDF_TYPE : "rdf:type" > + | < RDFS_DOMAIN : "rdfs:domain" > + | < RDFS_RANGE : "rdfs:range" > + | < RDFS_SUBCLASSOF : "rdfs:subClassOf" > + | < OWL_ALLVALUESFROM : "owl:allValuesFrom" > + | < OWL_CLASS : "owl:Class" > + | < OWL_DATARANGE : "owl:DataRange" > + | < OWL_DATATYPEPROPERTY : "owl:DatatypeProperty" > + | < OWL_DISJOINTWITH : "owl:disjointWith" > + | < OWL_EQUIVALENTCLASS : "owl:equivalentClass" > + | < OWL_FUNCTIONALPROPERTY : "owl:FunctionalProperty" > + | < OWL_INVERSEOF : "owl:inverseOf" > + | < OWL_OBJECTPROPERTY : "owl:ObjectProperty" > + | < OWL_ONPROPERTY : "owl:onProperty" > + | < OWL_ONEOF : "owl:oneOf" > + | < OWL_ONTOLOGY : "owl:Ontology" > + | < OWL_RESTRICTION : "owl:Restriction" > + | < OWL_SOMEVALUESFROM : "owl:someValuesFrom" > + | < OWL_UNIONOF : "owl:unionOf" > + | < VERSION : "version" > }// RESERVED WORDS AND LITERALS @@ -275,9 +287,28 @@ void ElementList() #List : {} void Element() : {} { - "<" ( OwlElement() - | RdfElement() - ) + ( "<" ( OwlElement() + | RdfElement() + )) + | SimpleElement() +} + +void SimpleElement() : {} +{ + IntElement() + | StringElement() +} + +void IntElement() #IntElement : { Token t; } +{ + t = <INTEGER_LITERAL> + {jjtThis.setINTEGER_LITERAL(t.image);} +} + +void StringElement() #StringElement : { Token t; } +{ + t = <IDENTIFIER> + {jjtThis.setIDENTIFIER(t.image);} } void OwlElement() : {} @@ -285,12 +316,18 @@ void OwlElement() : {} OwlOntology() | OwlAllValuesFrom() | OwlClass() + | OwlDataRange() + | OwlDatatypeProperty() | OwlDisjointWith() | OwlEquivalentClass() + | OwlFunctionalProperty() + | OwlInverseOf() | OwlObjectProperty() + | OwlOneOf() | OwlOnProperty() | OwlSomeValuesFrom() | OwlRestriction() + | OwlUnionOf() } void OwlOntology() #OwlOntology : {} @@ -310,6 +347,18 @@ void OwlClass() #OwlClass : {} (">" ElementList() "</" <OWL_CLASS> ">" | ElementList() "/>") } +void OwlDataRange() #OwlDataRange : {} +{ + <OWL_DATARANGE> AttributeList() + (">" ElementList() "</" <OWL_DATARANGE> ">" | ElementList() "/>") +} + +void OwlDatatypeProperty() #OwlDatatypeProperty : {} +{ + <OWL_DATATYPEPROPERTY> AttributeList() + (">" ElementList() "</" <OWL_DATATYPEPROPERTY> ">" | ElementList() "/>") +} + void OwlDisjointWith() #OwlDisjointWith : {} { <OWL_DISJOINTWITH> AttributeList() @@ -322,12 +371,30 @@ void OwlEquivalentClass() #OwlEquivalentClass : {} (">" ElementList() "</" <OWL_EQUIVALENTCLASS> ">" | ElementList() "/>") } +void OwlFunctionalProperty() #OwlFunctionalProperty : {} +{ + <OWL_FUNCTIONALPROPERTY> AttributeList() + (">" ElementList() "</" <OWL_FUNCTIONALPROPERTY> ">" | ElementList() "/>") +} + +void OwlInverseOf () #OwlInverseOf : {} +{ + <OWL_INVERSEOF> AttributeList() + (">" ElementList() "</" <OWL_INVERSEOF> ">" | ElementList() "/>") +} + void OwlObjectProperty () #OwlObjectProperty : {} { <OWL_OBJECTPROPERTY> AttributeList() (">" ElementList() "</" <OWL_OBJECTPROPERTY> ">" | ElementList() "/>") } +void OwlOneOf () #OwlOneOf : {} +{ + <OWL_ONEOF> AttributeList() + (">" ElementList() "</" <OWL_ONEOF> ">" | ElementList() "/>") +} + void OwlOnProperty () #OwlOnProperty : {} { <OWL_ONPROPERTY> AttributeList() @@ -346,16 +413,38 @@ void OwlRestriction () #OwlRestriction : {} (">" ElementList() "</" <OWL_RESTRICTION> ">" | ElementList() "/>") } +void OwlUnionOf () #OwlUnionOf : {} +{ + <OWL_UNIONOF> AttributeList() + (">" ElementList() "</" <OWL_UNIONOF> ">" | ElementList() "/>") +} + void RdfElement() : {} { - RdfsSubClassOf() + RdfType() + | RdfFirst() + | RdfRest() + | RdfsSubClassOf() | RdfsDomain() + | RdfsRange() } -void RdfsSubClassOf() #RdfsSubClassOf : {} +void RdfType() #RdfType : {} { - <RDFS_SUBCLASSOF> AttributeList() - (">" ElementList() "</" <RDFS_SUBCLASSOF> ">" | ElementList() "/>") + <RDF_TYPE> AttributeList() + (">" ElementList() "</" <RDF_TYPE> ">" | ElementList() "/>") +} + +void RdfFirst() #RdfFirst : {} +{ + <RDF_FIRST> AttributeList() + (">" ElementList() "</" <RDF_FIRST> ">" | ElementList() "/>") +} + +void RdfRest() #RdfRest : {} +{ + <RDF_REST> AttributeList() + (">" ElementList() "</" <RDF_REST> ">" | ElementList() "/>") } void RdfsDomain() #RdfsDomain : {} @@ -364,6 +453,18 @@ void RdfsDomain() #RdfsDomain : {} (">" ElementList() "</" <RDFS_DOMAIN> ">" | ElementList() "/>") } +void RdfsRange() #RdfsRange : {} +{ + <RDFS_RANGE> AttributeList() + (">" ElementList() "</" <RDFS_RANGE> ">" | ElementList() "/>") +} + +void RdfsSubClassOf() #RdfsSubClassOf : {} +{ + <RDFS_SUBCLASSOF> AttributeList() + (">" ElementList() "</" <RDFS_SUBCLASSOF> ">" | ElementList() "/>") +} + void AttributeList() #List : {} { (Attribute())* @@ -385,7 +486,9 @@ void Version() #Version : {} void RdfAttribute() : {} { RdfAbout() + | RdfDatatype() | RdfId() + | RdfParseType() | RdfResource() } @@ -394,12 +497,22 @@ void RdfAbout() #RdfAbout : {} <RDF_ABOUT> <ASSIGN> Value() } +void RdfDatatype() #RdfDatatype : {} +{ + <RDF_DATATYPE> <ASSIGN> Value() +} + void RdfId() #RdfId : {} { <RDF_ID> <ASSIGN> Value() } -void RdfResource() #RdfId : {} +void RdfParseType() #RdfParseType : {} +{ + <RDF_PARSETYPE> <ASSIGN> Value() +} + +void RdfResource() #RdfResource : {} { <RDF_RESOURCE> <ASSIGN> Value() }