170 likes | 303 Views
RDFS and RDFS-Plus Inference Introduction. Steven Seida. Derived primarily from Semantic Web for the Working Ontologist by Allemang and Hendler, 2008. Motivation. How can we leverage the ontologies we have created? We only have ‘dumb’ data if we don’t leverage the data with the ontology.
E N D
RDFS and RDFS-Plus Inference Introduction Steven Seida Derived primarily from Semantic Web for the Working Ontologist by Allemang and Hendler, 2008.
Motivation • How can we leverage the ontologies we have created? • We only have ‘dumb’ data if we don’t leverage the data with the ontology. • Suppose you are on a retailer web page and search for “chamois” in the category of “shirts” but you come up empty. But in the retailer’s paper catalog you find a chamois Henley. And on-line you find Henley as a subcategory of “Shirts.” That’s dumb you say – it knows chamois is a subcategory of Henley and should also know that Henley is a subcategory of shirts.
Jargon Wars • Inference: the application of rules provided/developed specifically by semantic web developers (referring to those not created by your ontology) • Reasoning: reason to infer new facts or perform consistency checks with a Semantic reasoner • For our purposes in this course (and charts), inference and reasoning refer to the same type of mechanisms and will often be used interchangeably. The source material also uses the word ‘infer’ throughout. • Protégé tends to use some very specific meanings.
RDFS and RDFS-Plus* Inference Patterns *RDFS-Plus is an OWL variant defined by the authors (really by Allegrograph developers) based primarily on RDFS plus a few OWL constructs
SubClassOf Pattern • If • A rdfs:subClassOf B. • AND • ?x rdf:type A. • THEN • ?x rdf:type B. • So, if one class A is a subclass of another class B, and there is any individual (x) that belongs to A then that individual also belongs to class B. • Also known as the type propagation rule • Note that this implements transitivity so long as your inference engine has access to the new assertions and can run until nothing changes. If Human subClassOf Mammal Then Any Human is a Mammal
SubPropertyOf Pattern • If P rdfs:subPropertyOf R • And A P B. • Then A R B. • As with subClassOf, we cannot infer the inverse (unless we have an inverse property relationship – covered later). • However, if we also have the inverse assertion: • R rdfs:subPropertyOf P • Then we have an rdfs equivalence pattern. If contractsTo subPropertyOf worksFor Then Any entity contracted to an organization works for them
Equivalent Classes and Properties • If we have “mirrored” subClassOf relationships, then we have equivalent classes. • So we have • A rdfs:subClassOf B And • B rdfs:subClassOf A • Then using our type propagation rule, anything that was either A or B is labeled as the other. Set Theory helps a little with conceptualizing this. • Since we said A is within the bounds of B and then that B is within the bounds of A, they must have the same exact bounds. • The same constructs apply to properties instead of classes. If isEmployedBy subPropertyOf worksFor worksFor subPropertyOf isEmployedBy Then Any entity working for an organization is employed by them
Domain and Range Inference • RDFS will infer the necessary type information to bring P into compliance with its domain and range declarations. • In RDFS there is no way to assert that an individual is not a member of a particular class (although OWL does provide a way). In fact, there is no notion of inconsistent inference in RDFS. So RDFS cannot proclaim input as invalid; rather it will infer appropriate type information. If P rdfs:domain D. AND x P y. THEN x rdf:type D. If P rdfs:range R. AND x P y. THEN y rdf:type R. :maidenName rdfs:domain :MarriedWowan. :Karen :maidenName “Stephens”. Then we know :Karen a :MarriedWoman.
Shortcut for Domain/Range with SubClassOf • If P rdfs:domain D • AND D rdfs:subClassOf C. • Then P rdf:type C. • Summarizes that when we specify the domain (or range) of a property to be some class, we can infer the property also has any superclass. • This provides us a simple combination to understand the effect of mixing domain/range with subclass inference. :maidenName rdfs:domain :MarriedWowan. :MarriedWoman rdfs:subClassOf :Woman :Karen :maidenName “Stephens”. Then we know :Karen a :Woman
Set Intersection • There is no formal set intersection or union in RDFS. But sometimes not actually needed. • We want to show that if a resource x is in C, then it is in both A and B, so we assert • C rdfs:subClassOf A. • C rdfs:subClassOf B. • Then if we see • x rdf:type C, • we can infer • x rdf:type A. • x rdf:type B. • But we cannot presume that being in both A and B implies something is in C. :Surgeon rdfs:subClassOf :Staff. :Surgeon rdfs:subClassOf :Physician. :Kildare rdf:type :Surgeon. Then we know :Kildare rdf:type :Staff. :Kildare rdf:type :Physician.
Set Union • We can express that the “union” of two classes is subclass of another: • A rdfs:subClassOf C. • B rdfs:subClassOf C. • Then if we have • x rdf:type A (or x rdf:type B) • We can infer • x rdf:type C. :If All Stars include anyone that was named a Most Valuable Player (MVP) or was a top scorer, we can configure: :MVP rdfs:subClassOf :AllStar :TopScorer rdfs:subClassOf :AllStar So the two people :Reilly rdf:type :MVP. :Kaneda rdf:type :TopScorer. Are both inferred to be All Stars
Property Intersection and Union • Intersection: if a relationship uses property P, then it is in both R and S, so we assert • P rdfs:subPropertyOf R • P rdfs:subPropertyOf S • So (x P y )infers both (x R y) and (x S y). • Union: if a relationship uses property P or Q, then it belongs to super-property T. We assert • P rdfs:subPropertyOf T • Q rdfs:subPropertyOf T • So if (x P y) or (x Q y) appears we infer (x T y).
Functional Properties • Like a mathematical function, it describes a property that can only take one value for any particular individual (y = f(x)). So, if we known x^2 has a single unambiguous value and that x^2 = a and x^2 = b, then we may conclude that a = b. • So if • math:hasSquare rdf:type owl:FunctionalProperty • x math:hasSquare A. • x math:hasSquare B. • Then we may infer • A owl:sameAs B.
Inverse Functional Properties • Name was chosen to be consistent with FunctionalProperty – intent is to be the inverse. A single value of the property cannot be shared by two entities (like a key field in a relational database). • So if • :socSecNum rdf:type owl:InverseFunctionalProperty. • x :socSecNum A. • y :socSecNum A. • Then we may infer • x owl:sameAs y. The US Social Security number (i.e. socSecNum) is a unique identifier for individuals.
Summary • Inference with RDFS and RDFS-Plus (which is many of the more useful OWL constructs) can be understood with simple, well-defined rules. • The available constructs can be valuable for integrating multiple knowledge source.