Presentation on theme: "Ontologies and OWL with some notes on XML Schema, E-R Diagrams and UML in 15 minutes Dave Thau University of Kansas"— Presentation transcript:
Ontologies and OWL with some notes on XML Schema, E-R Diagrams and UML in 15 minutes Dave Thau University of Kansas firstname.lastname@example.org
XML Schema Fiesta! Darwin Core ABCD SDD TCS Linnean Core And more to come Yippee! Yahoo!
XML Schema Is Good For Describing the format of documents –How elements nest –Which elements are necessary –The order in which they may appear –What attributes an element can have Describing the element types Ensuring valid syntax
XML Schema Not Made For Semantics –When are two things the same? –How do two concepts relate? –How do I know what kind of thing this is? These matter in: –SDD terminologies –Schema mapping
Erect hairs on mesosoma Erect hairs on trunk
Same Idea, Different Names Taxonomic Concept Schema v0.80 SDD v0.91b11 PublicationSourcePublication DatePublishedPublicationDate RankRankLevel
Ontologies An ontology defines a common vocabulary for researchers who need to share information in a domain It includes machine-interpretable definitions of basic concepts in the domain and relations among them. Ontologies enable reuse of domain knowledge They assist mediation between heterogeneous data sources – XML documents among them.
Example Ontology Ontologies have: Concepts Properties Instances hasColor Body Part Color MesosomaPronotum brown hasPart Pronotum Of Ant #100 Mesosoma Of Ant #100
OWL W3C Standard Web Ontology Language OWL builds on RDF and RDFS which can be represented using XML Vocabulary designed to describe concepts and relationships between them Based on Description Logics, varieties of predicate logic, so supports reasoning
Some Handy OWL Terms Relationships between classes –equivalentClass –subClassOf –Intersection, union, complement, disjunction Relationships between instances –sameAs, differentFrom Properties of properties –Cardinality –Transitive, Symmetric –allValuesFrom, someValuesFrom –Functional, InverseFunctional Relationships between properties –subPropertyOf –inverseOf –samePropertyAs
OWL Example 1
Reconciling Ontologies hasColor Body Part Color Pronotum Mesosoma hasPart Trunk equivalent ONTOLOGY 1 ONTOLOGY 2 Segment What trunk colors do I know about? isColored Hue equivalent Meso of Ant #100 Trunk of Ant #210 Brown Red
Deriving XML Schema From Ontologies Darwn Core Ontology Darwn Core Ontology ABCD Ontology ABCD Ontology Linnean Core Ontology Linnean Core Ontology Specimen Ontology Specimen Ontology Darwn Core Schema Darwn Core Schema ABCD Schema ABCD Schema Linnean Core Schema Linnean Core Schema Mapping Using OWL Mapping Using XLink? Maybe extending XML type Elements?
Ontology Analogy From “The Relations Between Ontologies and XML Schema Klein, Fensel, van Harmelen and Horricks, 2001 http://www.cs.man.ac.uk/~horrocks/Publications/download/2001/etai01.pdf
Why bother? Ontologies can add semantics to XML schema elements and attributes Semantics are necessary for interoperability between different schemata Nailing down your data model before implementation is a good idea –Don’t build a building w/o blueprints –Make sure you know what you need –Make sure you know how things relate
UML UML is an graphical notation for software development Good for describing object-oriented design UML can sort-of be used to model OWL However: –Properties in OWL are first class citizens – not true of associations in UML –OWL has built-in descriptions like subProperty, sameAs, transitive UML may be MMTT in this case
Conclusion XML Schema is great for describing document structure Not great for interoperability between systems using different schemata If we can’t live in perfect harmony, need to reconcile schemata That’s what ontologies are for Schemata can be derived from ontologies We can have both!
Ontology Tools I Know and Love ● Specification -- http://www.w3.org/TR/owl-features/ ● Protege -- http://protege.standford.edu/ ● The XML Spy of ontology editors ● Nice viewer for OWL ● Pellet -- http://www.mindswap.org ● My current favorite Description Logic reasoner for OWL ● Jena2 -- http://jena.sourceforge.net ● Java based OWL reasoner and parser ● SWI-Prolog -- http://www.swi-prolog.org/ ● Has modules for semantic web support (rdf, rdfs, owl)