520 likes | 548 Views
OWL. Representing Information Using the Web Ontology Language. OWL DL, OWL Full, and Applications. Section 4. Section 4. Chapter 17: OWL DL OWL DL dialect, restrictions, remaining OWL constructs Chapter 18: OWL Full Elimination of all restrictions Chapter 19: OWL Dialect Selection
E N D
OWL Representing Information Using the Web Ontology Language
OWL DL, OWL Full, and Applications Section 4
Section 4 • Chapter 17: OWL DL • OWL DL dialect, restrictions, remaining OWL constructs • Chapter 18: OWL Full • Elimination of all restrictions • Chapter 19: OWL Dialect Selection • How to select the appropriate dialect • Chapter 20: Applications • Provides use case for Semantic Web enabled application
OWL DL Chapter 17
17 OWL DL • OWL DL • DL: Description Logics • Information representation technique with well-defined semantics supporting inferencing • Contains all OWL vocabulary • Has fewer restrictions than OWL Lite • Restrictions ensure decidability • Chapter covers • OWL DL • Complex classes • Required property values • Enumerated data values
17.1 OWL DL Restrictions • Most important restriction: • Type separation (classes, properties, and individuals are disjoint)
17.1.1 OWL DL Vocabulary Additional Constructs in OWL DL Constructs less restricted in OWL DL
17.2 Complex Classes & Expressions • Complex classes • Composed of class expressions • Analogous to math expression • Constructed of atomic symbols and anonymous classes in allowed patterns • Describe membership criteria • Classes described by • Class names (URIrefs) • Enumerations • Property restrictions • Boolean combinations of class expressions
17.2.1 Enumerated Classes • An enumeration is a predefined set of individuals • owl:oneOf property • Exhaustively specifies member individuals known a priori in advance • Closed list; items cannot be added, so list should be very stable • Reasoners infer maxCardinality from count of members • Domain: instance of owl:Class; Range: instance of owl:List • Syntax • <owl:Classrdf:ID="className"> <owl:oneOfrdf:parseType="Collection"> <classURIrefrdf:about="individualURIref"/> </owl:oneOf></owl:Class> • Example • <owl:Classrdf:ID="TrafficLightColors"> <owl:oneOfrdf:parseType="Collection"> <traffic:LightColorrdf:about="#Red"/> <traffic:LightColorrdf:about="#Yellow"/> <traffic:LightColorrdf:about="#Green"/> </owl:oneOf></owl:Class>
17.2.2 Disjoint Classes • owl:disjointWith property • Asserts that 2 classes have no individuals in common • Instances of a class cannot be members of both classes • Symmetric • Classes can be disjoint with multiple classes • Every class is disjoint with owl:Nothing • Domain & Range: instance of owl:Class • Syntax • <owl:Classrdf:ID="Class1"> <owl:disjointWithrdf:resource="Class2"/></owl:Class> • Example • <owl:Classrdf:ID="AlcoholicDrink"> <owl:disjointWithrdf:resource="#NonAlcoholicDrink"/></owl:Class
17.2.3 Boolean Class Combinations • Class extensions are sets • OWL DL supplies Boolean properties • owl:intersectionOf • owl:unionOf • owl:complementOf
17.2.3.1 Intersection Property • owl:intersectionOf property • OWL Lite restrictions removed • Can be used to define a class • Includes individuals common to all identified classes • Equivalent to AND operation in logic • Domain: instance of owl:Class • Range: instance of rdf:List • Example • <owl:Classrdf:ID="ApplePieAlaModeDish"> <owl:intersectionOfrdf:parseType="Collection"/> <owl:Classrdf:about="#ApplePieDish"/> <owl:Classrdf:about="#IceCreamDish"/> </owl:intersectionOf></owl:Class>
17.2.3.2 Union Property • owl:unionOf property • Defines a class • Includes individuals in any specified class (one or more) • Equivalent to OR operation in logic • Domain: instance of owl:Class • Range: instance of rdf:List • Example • <owl:Classrdf:ID="FruitPies"> <owl:unionOfrdf:parseType="Collection"/> <owl:Classrdf:about="#ApplePie"/> <owl:Classrdf:about="#CherryPie"/> <owl:Classrdf:about="#LemonPie"/> <owl:Classrdf:about="#KeyLimePie"/> </owl:intersectionOf></owl:Class>
17.2.3.3 Complement Property • owl:complementOf property • Defines a disjoint class • All individuals who are not in the specified class • Equivalent to negation operation in logic • Usually used with intersectionOf • Domain & Range: instance of owl:Class • Example: • <owl:Classrdf:ID="MeatDish"> <owl:intersectionOfrdf:parseType="Collection"/> <owl:Classrdf:about="#MenuDish"/> <owl:complementOfrdf:resource="#VegetarianDish"/> </owl:intersectionOf></owl:Class>
17.3 Requiring a Property Value • owl:hasValue property • Local restriction that specifies that • Objects must have identified property • Property must have specified value • Can also have other values for the same property • Can use to define classes based on property values • Domain: instance of owl:Restriction • Example • <owl:Classrdf:ID="ChocolatePie"> <rdfs:subClassOf> <owl:Restriction> <owl:onPropertyrdf:resource="#hasPieFilling"/> <owl:hasValuerdf:resource="#Chocolate"/> </owl:Restriction> </rdfs:subclassOf></owl:Class>
17.4 Enumerated Data Values • owl:DataRange class • Specified with owl:oneOf and rdf:Lists • Like enumerated classes, but lists of values instead • Example • <owl:DatatypePropertyrdf:ID="YesNo"> <rdfs:range> <owl:DataRange> <owl:oneOf> <rdf:List> <rdf:firstrdf:datatype="&xsd;string">No</rdf:first> <rdf:rest> <rdf:List> <rdf:firstrdf:datatype="&xsd;string">Yes</rdf:first> <rdf:restrdf:resource="&rdf;nil" /> </rdf:List> </rdf:rest> </rdf:List> </owl:oneOf> </owl:DataRange> </rdfs:range></owl:DatatypeProperty>
17.5 OWL DL Summary • OWL DL • Restricted form of OWL Full • Contains all constructs of OWL Full • Extends OWL Lite by adding • Class expressions • Property value requirements • Enumerated data values
OWL Full Chapter 18
18 OWL Full • OWL Full • Complete specification of the OWL lanugage • Extension of RDF • Logical Layer • Allows developer to say anything about anything • Unrestricted use of RDFS • Superset of RDF and RDFS
18.1 OWL Full’s Differing Perspective • OWL Full • Supports all OWL constructs • Relaxes all restrictions on OWL DL (17.1)
18.1.1 Type Separation • No strict separation of classes, properties, individuals and data values • Classes can be treated as objects • Objects can be treated as classes • Etc.
18.1.2 Individuals • In OWL Full, rdfs:Resource is equivalent to owl:Thing • Therefore all data values are individuals
18.1.3 Classes as Individuals • A resource can be considered both • A class of individuals and • An individual of some other class • Class can be a member of its own extension! • In OWL Full, owl:Class is equivalent to rdfs:Class • In OWL DL & OWL Lite, owl:Class is a subclass of rdfs:Class
18.1.4 Properties • In OWL Full, owl:ObjectProperty and rdf:Property are equivalent • Object and datatype properties do not have to be disjoint • owl:DatatypeProperty can be owl:InverseFunctionalProperty • rdfs:domain & rdfs:range can have descriptions as values • Annotation properties can be used anywhere; no need for owl:AnnotationProperty class
18.1.5 Property Restrictions • OWL Full has owl:hasValue (same as OWL DL), but relaxes restrictions on XMLS datatypes
18.2 OWL Full Summary • OWL Full • Complete, unrestricted species of OWL • Most expressive • No restrictions • Cost: decidability • Inference engines probably will never support all of OWL Full
OWL Dialect Selection Chapter 19
19.1 Choosing Your Weapon • Select dialect that • Sufficient to meet requirements • Most restrictive • Most widely supported • OWL Lite is usually best, if possible • OWL Lite is valid OWL DL and valid OWL Full • Use OWL DL if you need its advantages • Fewer restrictions, better support cardinality, etc. • OWL Full is the last resort • Use only if you need its expressive power
19.2 Migrating XML & RDF to OWL • Existing RDF is only guaranteed to be valid in the OWL Full dialect • E.g., for OWL Lite & DL, URIrefs of classes, properties, & individuals must be explicitly typed • Full list of restrictions in App. E of OWL Ref • http://www.w3.org/TR/owl-ref/ • XML files should be migrated to RDF/XML first
19.3 Language Selection Summary • Need decidability and computability? • OWL DL or OWL Lite • Need all OWL constructs? • OWL DL or OWL Full • Don’t need the kitchen sink? • OWL DL
19.4 Satisfaction of Information Representation (IR) Requirements
OWL Applications Chapter 20
20 OWL Applications • Applications • Implementation layer • Composed of • Software • Ontologies • Instance files • OWL designed for the web, but works fine in a stand-alone application • Multiple uses for OWL with distributed ontologies and instance files
20.1 Application Example • Mark wants to find an open restaurant that serves Key lime pie • Possible solution • Mark enters search request on concierge web service provided by restaurant association • Web service extracts menu & hours of operation data published on restaurant websites in format compliant with restaurant ontology • Web service inferences & searches data • Results returned to Mark’s browser
20.1.1 OWL Lite Solution • Need to develop • “Restaurant association” ontology • Instance data for restaurants (i.e. Knight Owl) • Solution to be developed in OWL Lite
20.1.1.1 Ontologies • Key classes • HoursOfOperation class • Related by hasDailyHours property to • DailyHours class • Related by openOn and closedOn properties to • Hours of operation data to be stored in an RDF/XML instance file compliant with Hours Of Operation (HOO) ontology • Restaurant class shown but not used in this demo
20.1.1.1 Ontologies cont’d • http://www.restaurant.org/hoursOfOperation-ont.owl <?xml version="1.0" encoding="UTF-8?> <!DOCTYPE rdf:RDF[ <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#"> ]> <rdf:RDFxmlns:xsd="http://www.w3.org/2001/XMLSchema#"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 ="http://www.restaurant.org/hoursOfOperation-ont#"xml:base="http://www.restaurant.org/hoursOfOperation-ont#" > <owl:Ontologyrdf:about=""><rdfs:label>Hours of Operation Ontology</rdfs:label><rdfs:comment>This ontology is used an example for various OWL constructs</rdfs:comment><owl:versionInfo>$Id: hoursOfOperation-ont.owl,v 1.2 2004/11/02 12:34:56 </owl:versionInfo> </owl:Ontology>
20.1.1.1 Ontologies cont’d • http://www.restaurant.org/hoursOfOperation-ont.owl <!-- Classes --> <owl:Classrdf:ID="Restaurant"/> <owl:Classrdf:ID="HoursOfOperation"/> <owl:Classrdf:ID="DailyHours"><rdfs:label>Daily Hours</rdfs:label><rdfs:comment>represents a set of opening hours for specified days of the week</rdfs:comment> </owl:Class> <!-- Properties --> <owl:DatatypePropertyrdf:ID="openingTime"><rdfs:rangerdf:resource="&xsd;time"/> </owl:DatatypeProperty> <owl:DatatypePropertyrdf:ID="closingTime"><rdfs:rangerdf:resource="&xsd;time"/> </owl:DatatypeProperty> <owl:ObjectPropertyrdf:ID="openOn"><rdfs:rangerdf:resource="#DayOfWeek"/> </owl:ObjectProperty>
20.1.1.1 Ontologies cont’d • http://www.restaurant.org/hoursOfOperation-ont.owl <!-- Properties continued --> <owl:ObjectProperty><owl:DatatypePropertyrdf:ID="closedOn"><rdfs:rangerdf:resource="#DayOfWeek"/> </owl:ObjectProperty> <owl:DatatypeProperty><owl:DatatypePropertyrdf:ID="effectiveDate"><rdfs:rangerdf:resource="&xsd;date"/> </owl:DatatypeProperty> <owl:ObjectProperty><owl:DatatypePropertyrdf:ID="hasDailyHours"><rdfs:rangerdf:resource="#DailyHours"/> </owl:ObjectProperty> <owl:ObjectProperty><owl:DatatypePropertyrdf:ID="hasHoursOfOperation"><rdfs:rangerdf:resource="#HoursOfOperation"/> </owl:ObjectProperty> <!-- Instances for days of the week --> <DayOfWeekrdf:ID="Sunday"><rdfs:label>Sunday</rdfs:label> </DayOfWeek>
20.1.1.1 Ontologies cont’d • http://www.restaurant.org/hoursOfOperation-ont.owl <!-- Instances for days of the week continued --> <DayOfWeekrdf:ID="Monday"><rdfs:label>Monday</rdfs:label> </DayOfWeek> <DayOfWeekrdf:ID="Tuesday"><rdfs:label>Tuesday</rdfs:label> </DayOfWeek> <DayOfWeekrdf:ID="Wednesday"><rdfs:label>Wednesday</rdfs:label> </DayOfWeek> <DayOfWeekrdf:ID="Thursday"><rdfs:label>Thursday</rdfs:label> </DayOfWeek> <DayOfWeekrdf:ID="Friday"><rdfs:label>Friday</rdfs:label> </DayOfWeek> <DayOfWeekrdf:ID="Saturday"><rdfs:label>Saturday</rdfs:label> </DayOfWeek> </rdf:RDF>
20.1.1.2 Hours of Operation Individuals • Knight Owl Restaurant hosts its Hours of Operation information on its webserver • Instance file imports & complies with restaurant association’s Hours ofOperation Ontology • Example Hours of Operation • “Effective 4/1/2004, Knight Owl’s hours are:” • Sunday Closed • Monday through Friday, 9am to 8pm • Saturday 9:30am to 9pm • Assumptions • Restaurant association provides web service to search menus & hours • Association maintains registry of participating restaurant’s instance files
20.1.1.2 Hours of Operation cont’d • http://www.knightowlrestaurant.com/hours040104.rdf <?xml version="1.0" encoding="UTF-8?> <!DOCTYPE rdf:RDF[ <!ENTITY hoo "http://www.restaurant.org/hoursOfOperation-ont#" <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#"> ]> <rdf:RDFxmlns:xsd="http://www.w3.org/2001/XMLSchema#"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:hoo="http://www.restaurant.org/hoursOfOperation-ont#" xmlns ="http://www.restaurant.org/hoursOfOperation-ont#"xml:base="http://www.restaurant.org/hoursOfOperation-ont#" > <owl:Ontologyrdf:about=""><rdfs:label>Hours of Operation Information for Knight Owl Restaurant</rdfs:label><rdfs:comment>This contains the hours of operation for the Knight Owl</rdfs:comment><owl:versionInfo>$Id: hours.rdf,v 1.2 2004/11/02 12:34:56 </owl:versionInfo><owl:importsrdf:resource=" http://www.restaurant.org/hoursOfOperation-ont"/> </owl:Ontology>
20.1.1.2 Hours of Operation cont’d • http://www.knightowlrestaurant.com/hours040104.rdf <!-- Daily Hours --> <hoo:DailyHoursrdf:ID="KOWeekdayHours040104"><hoo:openOnrdf:resource="&hoo;Monday"/><hoo:openOnrdf:resource="&hoo;Tuesday"/><hoo:openOnrdf:resource="&hoo;Wednesday"/><hoo:openOnrdf:resource="&hoo;Thursday"/><hoo:openOnrdf:resource="&hoo;Friday"/><hoo:openingTimerdf:datatype="&xsd;time"/>09:00:00+8</hoo:openingTime><hoo:closingTimerdf:datatype="&xsd;time"/>20:00:00+8</hoo:closingTime> </hoo:DailyHours> <hoo:DailyHoursrdf:ID="KOSaturdayHours040104"><hoo:openOnrdf:resource="&hoo;Saturday"/><hoo:openingTimerdf:datatype="&xsd;time"/>09:30:00+8</hoo:openingTime><hoo:closingTimerdf:datatype="&xsd;time"/>21:00:00+8</hoo:closingTime> </hoo:DailyHours> <hoo:DailyHoursrdf:ID="KOSundayHours040104"><hoo:closedOnrdf:resource="&hoo;Sunday"/> </hoo:DailyHours>
20.1.1.2 Hours of Operation cont’d • http://www.knightowlrestaurant.com/hours040104.rdf <hoo:Restaurant rdf:ID="KORestaurant"><hoo:hasHoursOfOperation rdf:resource="#KORestHOO040104"/> </hoo:Restaurant> <hoo:HoursOfOperation rdf:ID="KORestHOO040104"><hoo:hasDailyHours rdf:resource="#KOWeekdayHours040104"/><hoo:hasDailyHours rdf:resource="#KOSaturdayHours040104"/><hoo:hasDailyHours rdf:resource="#KOSundayHours040104"/><hoo:effectiveDate rdf:datatype="&xsd;date">2004-04-01</hoo:effectiveDate> </hoo:HoursOfOperation> </rdf:RDF>
20.2 Supporting Applications • The purpose of representing information in OWL is to support application functionality. • By providing a consistent method for representing information and explicitly providing semantics, new and exciting Semantic Web applications will emerge • OWL must be used correctly & consistently
20.2.1 Inappropriate Applications • OWL • Suffers from many of the same challenges as XML • Relatively new • Not a large base of software tools • Not a large workforce conversant with OWL • Possible performance issues due to verbosity of RDF/XML • Reasoning hard to scale; rules somewhat limited • Only works with textual data, not binary