710 likes | 816 Views
OWL-Full Reasoning from Object Oriented Perspective. Seiji Koide 1,2 and Hideaki Takeda 1 1 National Institute of Informatics 2 Galaxy Express Corporation. Agenda. Semantic Gap between SW and OOP Metamodeling in RDF Universe How to connect RDF and OWL Universe
E N D
OWL-Full Reasoning from Object Oriented Perspective Seiji Koide1,2 and Hideaki Takeda1 1National Institute of Informatics 2Galaxy Express Corporation
Agenda • Semantic Gap between SW and OOP • Metamodeling in RDF Universe • How to connect RDF and OWL Universe • Extended Structural Algorithm for OWL Subsumption • OWL-Full Programming by Metamodeling
Agenda • Semantic Gap between SW and OOP • Metamodeling in RDF Universe • How to connect RDF and OWL Universe • Extended Structural Algorithm for OWL Subsumption • OWL-Full Programming by Metamodeling
The Comparison of OWL/RDF and Object-Oriented Languages (from SETF) From http://www.w3.org/2001/sw/BestPractices/SE/ODSD/
The Comparison of OWL/RDF and Object-Oriented Languages Modified from http://www.w3.org/2001/sw/BestPractices/SE/ODSD/
The Comparison of OWL/RDF and Object-Oriented Languages Modified from http://www.w3.org/2001/sw/BestPractices/SE/ODSD/
The Comparison of OWL/RDF and Object-Oriented Languages perform entailment without demand from users Modified from http://www.w3.org/2001/sw/BestPractices/SE/ODSD/
The Comparison of OWL/RDF and Object-Oriented Languages From http://www.w3.org/2001/sw/BestPractices/SE/ODSD/
The Comparison of OWL/RDF and Object-Oriented Languages Modified from http://www.w3.org/2001/sw/BestPractices/SE/ODSD/
The Comparison of OWL/RDF and Object-Oriented Languages Modified from http://www.w3.org/2001/sw/BestPractices/SE/ODSD/
Agenda • Semantic Gap between SW and OOP • Metamodeling in RDF Universe • How to connect RDF and OWL Universe • Extended Structural Algorithm for OWL Subsumption • OWL-Full Programming by Metamodeling
Straight-forward Mapping • Name space to lisp package • QName to lisp symbol • rdf:type to class-instance • rdfs:subClassOf to superclass-subclass • Property-value to slot-value • RDF graph to Objects, which is bound to the name symbol, and slots or role-filler pairs of objects
Entailment Ruleshttp://www.w3.org/TR/rdf-mt/ Subsumption Rule Transitivity Rule (defclass xxx ( ) ( ) ) (setq vvv (make-instance (defclass uuu (xxx) ( )))) (typep vvv xxx) true (defclass xxx ( ) ( )) (defclass vvv (xxx) ( )) (defclass uuu (vvv) ( )) (subtypep 'uuu 'xxx) true
Hierarchical Structure of RDFS rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance Meta-class rdfs:Class rdfs:Datatype rdf:Bag rdf:List rdf:XMLLiteral rdf:Seq rdfs:Literal Class rdfs:Container rdf:Alt rdfs:Resource rdf:Statement rdf:Property rdfs:ContainerMembershipProperty rdf:nil rdfs:seeAlso rdfs:isDefinedBy rdf:value rdf:subject rdfs:member rdf:_1 rdf:_2 Instance rdf:_3 rdfs:domain rdfs:range rdfs:label rdf:object rdfs:comment rdf:first rdfs:subClassOf rdfs:subPropertyOf rdf:type rdf:predicate rdf:rest
Transitivity Rule implies … rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class rdfs:Datatype rdfs:Class rdfs:Datatype rdf:Bag rdf:Bag rdf:XMLLiteral rdf:Seq rdf:List rdf:List rdf:XMLLiteral rdf:Seq rdfs:Literal rdfs:Literal rdfs:Container rdf:Alt rdfs:Container rdf:Alt rdfs:Resource rdf:Statement rdfs:Resource rdf:Statement rdf:Property rdfs:ContainerMembershipProperty rdf:Property rdfs:ContainerMembershipProperty rdf:nil rdfs:seeAlso rdfs:isDefinedBy rdf:value rdf:subject rdfs:member rdf:_1 rdfs:Resource is a superclass of other classes rdf:_2 rdf:_3 rdfs:domain rdfs:range rdfs:label rdf:object rdfs:comment rdf:first rdfs:subClassOf rdfs:subPropertyOf rdf:type rdf:predicate rdf:rest
Transitivity Rule implies … rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class rdfs:Datatype rdfs:Class rdfs:Datatype rdf:Bag rdf:Bag rdf:XMLLiteral rdf:Seq rdf:List rdf:List rdf:XMLLiteral rdf:Seq rdfs:Literal rdfs:Literal rdfs:Container rdf:Alt rdfs:Container rdf:Alt rdfs:Resource rdf:Statement rdfs:Resource rdf:Statement rdf:Property rdfs:ContainerMembershipProperty rdf:Property rdfs:ContainerMembershipProperty rdf:nil rdfs:seeAlso rdfs:isDefinedBy rdf:value rdf:subject rdfs:member rdf:_1 rdfs:Resource is a superclass of other classes and meta-classes rdf:_2 rdf:_3 rdfs:domain rdfs:range rdfs:label rdf:object rdfs:comment rdf:first rdfs:subClassOf rdfs:subPropertyOf rdf:type rdf:predicate rdf:rest
rdf:Property rdfs:ContainerMembershipProperty rdfs:seeAlso rdfs:isDefinedBy rdf:value rdf:subject rdfs:member rdf:_1 rdf:_2 rdf:_3 rdfs:domain rdfs:range rdfs:label rdf:object rdfs:comment rdf:first rdfs:subClassOf rdfs:subPropertyOf rdf:type rdf:predicate rdf:rest Subsumption Rule implies … Every instance is an instance of rdfs:Resource rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class rdfs:Datatype rdf:Bag rdf:List rdf:List rdf:XMLLiteral rdf:Seq rdfs:Literal rdfs:Container rdf:Alt rdfs:Resource rdfs:Resource rdf:Statement rdf:Property rdfs:ContainerMembershipProperty rdf:Property rdfs:ContainerMembershipProperty rdf:nil rdf:nil rdfs:seeAlso rdfs:isDefinedBy rdf:value rdf:subject rdfs:member rdf:_1 rdf:_2 rdf:_3 rdfs:domain rdfs:range rdfs:label rdf:object rdfs:comment rdf:first rdfs:subClassOf rdfs:subPropertyOf rdf:type rdf:predicate rdf:rest
rdfs:Class rdfs:Datatype rdf:Bag rdf:List rdf:XMLLiteral rdf:Seq rdfs:Literal rdfs:Container rdf:Alt rdfs:Resource rdf:Statement rdf:Property rdfs:ContainerMembershipProperty Subsumption Rule implies … rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class rdfs:Datatype rdfs:Class rdfs:Datatype rdf:Bag rdf:List rdf:XMLLiteral rdf:Seq rdfs:Literal rdfs:Container rdf:Alt rdfs:Resource rdf:Statement rdf:Property rdfs:ContainerMembershipProperty rdf:nil rdfs:seeAlso rdfs:isDefinedBy rdf:value rdf:subject rdfs:member rdf:_1 Every class is an instance of rdfs:Resource rdf:_2 rdf:_3 rdfs:domain rdfs:range rdfs:label rdf:object rdfs:comment rdf:first rdfs:subClassOf rdfs:subPropertyOf rdf:type rdf:predicate rdf:rest
Subsumption Rule implies … rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class rdfs:Class rdfs:Datatype rdfs:Datatype rdf:Bag rdf:List rdf:XMLLiteral rdf:Seq rdfs:Literal rdfs:Container rdf:Alt rdfs:Resource rdfs:Resource rdf:Statement rdf:Property rdfs:ContainerMembershipProperty rdf:nil rdfs:Datatype and rdfs:Class are also an instance of rdfs:Resource rdfs:seeAlso rdfs:isDefinedBy rdf:value rdf:subject rdfs:member rdf:_1 rdf:_2 rdf:_3 rdfs:domain rdfs:range rdfs:label rdf:object rdfs:comment rdf:first rdfs:subClassOf rdfs:subPropertyOf rdf:type rdf:predicate rdf:rest
Membership Loop in RDFS rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance Meta-class rdfs:Class rdfs:Resource
Membership Loop in RDFS rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance Meta-class rdfs:Class rdfs:Resource
Membership Loop in RDFS rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance Meta-class rdfs:Class rdfs:Resource
Membership Loop in RDFS rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class Meta-class rdfs:Class rdfs:Resource
Membership Loop in RDFS rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class Meta-class rdfs:Class rdfs:Resource
Membership Loop in RDFS rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class Meta-class rdfs:Class rdfs:Resource
Membership Loop in RDFS rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class Meta-class rdfs:Class rdfs:Resource
Membership Loop in RDFS rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance Meta-meta-class rdfs:Class Meta-class rdfs:Class rdfs:Resource
Meta-meta-Class rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance Meta-meta-class rdfs:Class Meta-class rdfs:Class rdfs:Resource
Meta-meta-meta-Class Meta- Meta-meta-class rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class Meta-meta-class rdfs:Class Meta-class rdfs:Class rdfs:Resource
Meta-meta-meta-meta-Class Meta-meta- meta-meta-class rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class Meta- meta-meta-class rdfs:Class Meta-meta-class rdfs:Class Meta-class rdfs:Class rdfs:Resource
Meta-meta-meta-meta-meta-Class Meta-meta-meta- meta-meta-class Meta-meta- meta-meta-class rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class Meta- meta-meta-class rdfs:Class Meta-meta-class rdfs:Class Meta-class rdfs:Class rdfs:Resource
Meta-meta-meta-meta-Class Meta-meta- meta-meta2-class rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class Meta- meta-meta-class rdfs:Class Meta-meta-class rdfs:Class Meta-class rdfs:Class rdfs:Resource
Folded Meta-meta-meta-Class Meta- Meta-meta3-class rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class Meta-meta-class rdfs:Class Meta-class rdfs:Class rdfs:Resource
Folded Meta-meta-Class Meta-meta*-class Meta-meta-class rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class Meta-class rdfs:Class rdfs:Resource
Folded Infinite MetaClass Layers Meta-meta-*class Meta-meta-class Meta-class rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class rdfs:Resource
Hierarchical Structure of RDFS Meta-meta-*class Meta-meta-class Meta-class rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class rdfs:Datatype rdf:Bag rdf:List rdf:XMLLiteral rdf:Seq rdfs:Literal Class rdfs:Container rdf:Alt rdfs:Resource rdf:Statement rdf:Property rdfs:ContainerMembershipProperty rdf:nil rdfs:seeAlso rdfs:isDefinedBy rdf:value rdf:subject rdfs:member rdf:_1 rdf:_2 Instance rdf:_3 rdfs:domain rdfs:range rdfs:label rdf:object rdfs:comment rdf:first rdfs:subClassOf rdfs:subPropertyOf rdf:type rdf:predicate rdf:rest
Naive Hierarchical Structure of SUMO rdfs:Class sumo:UnitOfMeasure sumo:SystemeInternationalUnit rdfs:Resource sumo:Entity sumo:Abstract sumo:Quantity sumo:PhysicalQuantity sumo:ConstantQuantity sumo:LengthMeasure sumo:Meter
Hierarchical Structure of SUMO rdfs:Class sumo:UnitOfMeasure sumo:SystemeInternationalUnit rdfs:Resource sumo:Entity sumo:Abstract sumo:Quantity sumo:PhysicalQuantity sumo:ConstantQuantity sumo:LengthMeasure sumo:Meter
Agenda • Semantic Gap between SW and OOP • Metamodeling in RDF Universe • How to connect RDF and OWL Universe • Extended Structural Algorithm for OWL Subsumption • OWL-Full Programming by Metamodeling
Two Styles of RDFS + OWL • OWL-Full Style • the three parts of the OWL universe are identified with their RDF counterparts, namely the class extensions of rdfs:Resource, rdfs:Class, and rdf:Property. • OWL-DL Style • the three parts are different from their RDF counterparts and, moreover, pairwise disjoint.
OWL-Full Style Connection rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance rdfs:Class rdfs:Resource rdf:Property
OWL-Full Style Connection rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance owl:Class owl:Restriction rdfs:Class vin:Wine owl:Thing rdfs:Resource owl:DatatypeProperty rdf:Property owl:ObjectProperty
OWL-Full Style Connection rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance • All classes under owl:Class are in rdfs:Universe owl:Class owl:Restriction owl:Class rdfs:Class rdfs:Class vin:Wine vin:Wine owl:Thing rdfs:Resource rdfs:Resource owl:DatatypeProperty rdf:Property owl:ObjectProperty
OWL-Full Style Connection rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance owl:Class owl:Restriction rdfs:Class vin:Wine owl:Thing rdfs:Resource owl:DatatypeProperty rdf:Property owl:ObjectProperty
OWL-Full Style Connection rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance owl:Class owl:Restriction rdfs:Class vin:Wine vin:Zinfandel owl:Thing rdfs:Resource owl:DatatypeProperty rdf:Property owl:ObjectProperty vin:ElyseZinfandel
OWL-Full Style Connection rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance • We need the new axiom to make OWL individuals be in RDFS universe. • owl:Thing rdfs:subClassOf rdfs:Resource . owl:Class owl:Restriction rdfs:Class vin:Wine vin:Wine vin:Zinfandel vin:Zinfandel owl:Thing owl:Thing rdfs:Resource rdfs:Resource owl:DatatypeProperty rdf:Property owl:ObjectProperty vin:ElyseZinfandel vin:ElyseZinfandel
OWL-Full Style Connection rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance owl:Class owl:Restriction rdfs:Class vin:Wine vin:Wine vin:Zinfandel vin:Zinfandel owl:Thing owl:Thing rdfs:Resource rdfs:Resource owl:DatatypeProperty rdf:Property owl:ObjectProperty vin:ElyseZinfandel vin:ElyseZinfandel OWL Universe RDF Universe Extension of rdfs:Resource Extension of owl:Thing
OWL-Full Style Connection rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance owl:Class owl:Class owl:Restriction rdfs:Class vin:Wine vin:Wine vin:Zinfandel vin:Zinfandel owl:Thing owl:Thing rdfs:Resource rdfs:Resource owl:DatatypeProperty rdf:Property owl:ObjectProperty vin:ElyseZinfandel OWL Universe RDF Universe Extension of rdfs:Resource Extension of owl:Thing
OWL-Full Style Connection rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance • We need the new axiom to make OWL classes be in OWL universe. • owl:Class rdfs:subClassOf owl:Thing . owl:Class owl:Class owl:Restriction rdfs:Class vin:Wine vin:Wine vin:Zinfandel vin:Zinfandel owl:Thing owl:Thing rdfs:Resource rdfs:Resource owl:DatatypeProperty rdf:Property owl:ObjectProperty vin:ElyseZinfandel
OWL-Full Style Connection rdfs:subClassOf rdfs:subPropertyOf rdf:type class instance • Classes may be treated as individual owl:Class owl:Restriction rdfs:Class owl:Thing rdfs:Resource owl:DatatypeProperty rdf:Property owl:ObjectProperty