OWL and SDD Dave Thau University of Kansas
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 Female WomanMother Parent hasChild (1, NIL) Mother(VERA) hasChild(VERA, DAVE) Is Mother a subclass of Person? Is Dave an instance of Person? Ontologies have: Concepts Instances Properties
Some SDD and OWL Similarities SDDOWL EntitiesClasses ObjectsInstances DescriptionsProperties Description values strongly typed Domains and ranges strongly typed typeOfsubClassOf, subPropertyOf Cardinalities
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 <!DOCTYPE rdf:RDF [ ]> <rdf:RDF xmlns=" xmlns:rdf=" xmlns:rdfs=" xmlns:owl= xmlns:wine=“&wine;”> v /02/26 12:56:51 thau This is about wines available in kansas kansas wine vin du kansas
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?