140 likes | 335 Views
OWL and SDD. Dave Thau University of Kansas thau@learningsite.com. OWL in Context. W3C Standard Web Ontology Language OWL builds on RDF and RDFS Much like DAML+OIL (2001) Which grew out of Description Logic Description logics are variants of predicate logic. Example Ontology. Person.
E N D
OWL and SDD Dave Thau University of Kansas thau@learningsite.com
OWL in Context • W3C Standard Web Ontology Language • OWL builds on RDF and RDFS • Much like DAML+OIL (2001) • Which grew out of Description Logic • Description logics are variants of predicate logic
Example Ontology Person hasChild (1, NIL) Female Parent Ontologies have: Concepts Instances Properties Woman Mother • Mother(VERA) • hasChild(VERA, DAVE) • Is Mother a subclass of Person? • Is Dave an instance of Person?
Other Similarities • Metadata, including versioning information • Supports multiple languages • You can import ontologies into each other • Properties are not imbedded in concepts
OWL – The Assembly Language of Knowledge Representation • Relationships between classes • equivalentClass • subClassOf • Intersection, union, complement, disjunction • Relationships between instances • sameAs, differentFrom • Properties of properties • Domain, Range • Cardinality • Transitive, Symmetric • allValuesFrom, someValuesFrom • Functional, InverseFunctional • Relationships between properties • subPropertyOf • inverseOf
Simple Example <?xml version="1.0"?> <!DOCTYPE rdf:RDF [ <!ENTITY food "http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#”> ]> <rdf:RDF xmlns="http://www.ku.edu/kansas_wines#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl=http://www.w3.org/2002/07/owl#” xmlns:wine=“&wine;”> <owl:Ontology rdf:about=""> <owl:versionInfo xml:lang="en">v 1.17 2003/02/26 12:56:51 thau </owl:versionInfo> <rdfs:comment>This is about wines available in kansas</rdfs:comment> <owl:imports rdf:resource= “http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine” /> </owl:Ontology> <owl:Class rdf:ID=“KansasWine"> <rdfs:subClassOf rdf:resource="&wine;Wine"/> <rdfs:label xml:lang="en">kansas wine</rdfs:label> <rdfs:label xml:lang="fr">vin du kansas</rdfs:label> </rdfs:subClassOf> </owl:Class> </rdf:RDF>
SDD and OWL • What does OWL get you? • Access to inference engines • Access to ontology tools • Defined vocabulary • What are the risks? • Creating DL compliant ontologies non-trivial • Inference engines may not scale • How do you tie SDD XML entities to OWL classes?
OWL DL vs OWL Full • OWL Full is very expressive – but reasoning can be intractable • Reasoning in OWL DL is tractable, but it has many restrictions • Biggest restriction – something can’t be both an instance AND a class • Implication 1 – Relations between classes are restricted to the small set of OWL relations • Implication 2 – You REALLY need to know what your instances are and what your classes are.
partOf • In the glossary of SDD there is one partOf element. What does it mean? • X is a component of Y (a leaf of a plant) • X is a member of Y (one zebra in a herd) • X is a quantity of Y (a sample of sap) • Does the whole’s existence depend on the part? • Does the part’s existence depend on the whole? • Does the part inherit properties of the whole?
The traditional partOf types • hasDComponent • hasDMember • hasDSegment • hasDQuantity • hasDStuff • hasDIngredient
A tree hasComponent trunk • Define a property called hasDComponent – the D means direct • IsDComponentOf = (inverse hasDComponent) • hasComponent = (hasDComponent)+ • trunkOf isa isDComponentOf • hasTrunk = (inverse trunkOf) • Tree isa Plant • Trunk isa (the trunkOf Tree) and (the hasCondition Condition) • BrokenTrunk isa Trunk and hasCondition hasValue BROKEN • BrokenTree isa Tree and the hasTrunk BrokenTrunk • Condition(BROKEN) • Condition(WHOLE) • Trunk(THIS_TRUNK).hasCondition(BROKEN) • Tree(MY_TREE).hasTrunk(THIS_TRUNK)
Transforming SDD -> OWL? • DL is possible as long as • Definitions are complete enough (what do you mean by partOf? Synonym?) • Entities involved in hierarchical relationships don’t have other relationships • Full is possible more easily
Conclusions • SDD could use ideas from OWL • Separate class hierarchy and property hierarchy • Multiple types of partOf • It would be interesting to translate part of an SDD document into OWL for reasoning • What class is this thing? • What happens to my ability to classify something if two species are combined?