Semantics for the Proposed OWL Knowledge Base Language Peter F. Patel-Schneider, Bell Labs Research 1. Identifiers OWL uses QNames as names. N is the set of all QNames. OWL QNames should be taken as abbreviations for URIs plus fragments. The mapping from a QName to a URI plus fragment is the obvious one. The only exception to this would be for the purposes of naming XML Schema defined datatypes. We are not sure exactly how this would work, however. 2. Datatypes The OWL language includes facilities for incorporating datatypes. This is done by defining the idea of a datatyping scheme. An OWL reasoner then has a datatyping scheme as a parameter. We expect that the usual datatyping scheme will include the XML Schema builtin datatypes. A datatyping scheme is a collection of datatypes, DT. For each datatype d in DT there are four components: U(d), the QName for the datatype; L(d), the lexical space for the datatype; V(d), the value space for the datatype; and LV(d) : L(d) -> V(d), the lexical-to-value mapping for the datatype. The QNames uniquely identify members of DT, U- is the converse of U. Given a datatyping scheme, let L = union over d in DT of L(d), lexical values V = union over d in DT of V(d), data values LV = union over d in DT of LV(d) This datatyping method works best if there is a collection of primitive datatypes, like integer, and the range-restriction of LV to the value spaces of each of these datatypes is functional. The presence of datatypes where this is not true, like XML Schema union datatypes, does not cause severe problems, as long as one realizes that OWL only restricts the result of the lexical-to-value map, not the actual map. Thus stating that the range of a property is integer union string does not turn sequences of digit characters into integers. However, the presence of datatypes with different lexical-to-value maps for the primitive datatypes, e.g., octal integers without any syntactic tag, does cause severe problems. 3. Interpretations An OWL interpretation, I, over a datatyping scheme DT consists of R, nonempty, disjoint from V the domain of resources EXT : N -> 2^(Rx(RuV)) property extensions CEXT : N -> 2^R class extensions S : N -> R individual denotation function The following conditions must be satisfied by an interpretation. CEXT(owl:Thing) = R CEXT(owl:Nothing) = {} 4. Satisfaction First, some auxiliary definitions, giving the extension of descriptions and pieces of facts in an interpretation, I = < R, EXT, CEXT, S >. The conditions for the slot construct are somewhat abbreviated. However, for slot constructions with missing pieces just leave off the appropriate condition. ID(super(c_1,...,c_n)) = ID(c_1) ^ ... ^ ID(c_n) ID(slot(prop,range=range,modality,multiplicity, required=c_1,...,required=c_n,value=i_1,...,value=i_m) = { x : if in EXT(prop) then y in ID(range) and if modality=required then exists y in EXT(prop) and if multiplicity=singlevalued then atmost 1 y in EXT(prop) and exists y in CEXT(c_i) with in EXT(prop) for 1 <= i <= n and in EXT(prop) for 1 <= i <= m } ID(slot(prop,datatypeRange,modality,multiplicity, required=d_1,...,required=d_n,value=dv_1,l_1,...,value=dv_m,l_m) = { x : in EXT(prop) -> y in IC(datatypeRange) and and if modality=required then exists y in EXT(prop) and if multiplicity=singlevalued then atmost 1 y in EXT(prop) and exists y in IC(d_i) with in EXT(prop) for 1 <= i <= n and in EXT(prop) for 1 <= i <= m } ID(class) = CEXT(class) ID(unionOf(d1,...,dn)) = ID(d1) v ... v ID(dn) ID(intersectionOf(d1,...,dn)) = ID(d1) ^ ... ^ ID(dn) ID(complementOf(d)) = R \ ID(d) ID(oneOf(i1,...,in)) = { S(i1), ..., S(in) } ID(localRange(prop,cd)) = { x : in EXT(prop) -> y in IC(cd) } ID(required(prop,cd)) = { x : exists y in EXT(prop) and y in IC(class) } ID(value(prop,id)) = { x : in EXT(prop) } ID(value(prop,dt,l)) = { x : in EXT(prop) } ID(minCardinality(prop,int)) = { x : >=int y in EXT(prop) } ID(maxCardinality(prop,int)) = { x : <=int y in EXT(prop) } ID(cardinality(prop,int)) = { x : =int y in EXT(prop) } IC(oneOf(dt1,l1,...,dtn,ln)) = { LV(dti)(li), ..., LV(dtn)(ln) } IC(dt) = V(U-(dt)) for dt a datatype QName IC(c) = ID(c) for other QNames IP( (property,fact) ) = { r in R: for some r2 in IS(fact) < r, r2 > in EXT(property) } IP( (property,individual) ) = { r in R : < r, S(property) > in EXT(property) } IP( (property,dt,l) ) = { r in R : in EXT(property) } IS( Individual(individual,class,pv1,...,pvn) ) = { S(individual) } ^ { r in R : r in CEXT(class) and r in IP(pv1) ... r in IP(pvn) } IS( Individual(class,pv1,...,pvn) ) = { r in R : r in CEXT(class) and r in IP(pv1) ... r in IP(pvn) } An interpretation, I = < R, EXT, CEXT, S >, satisfies an OWL KB if it satisfies each definition and fact in the KB. An interpretation satisfies definitions as follows: DefinedClass(class,supers(c_1,...,c_n),s_1,...,s_m) CEXT(class) = ID(c_1) ^ ... ^ ID(c_n) ^ ID(s_1) ^ ... ^ ID(s_m) PrimitiveClass(class,supers(c_1,...,c_n),s_1,...,s_m) CEXT(class) <= ID(c_1) ^ ... ^ ID(c_n) ^ ID(s_1) ^ ... ^ ID(s_m) DefinedClass(class,description_1,...,description_n) CEXT(class) = ID(description_1) ^ ... ^ ID(description_n) PrimitiveClass(class,description_1,...,description_n) CEXT(class) <= ID(description_1) ^ ... ^ ID(description_n) EnumeratedClass(class,id1,...,idn) CEXT(class) = { S(id1), ..., S(idn) } SameClassAs(description_1,...,description_n) ID(description_i) = ID(description_j) 1 <= i < j <= n SubClassOf(description_1,description_2) ID(description_1) <= ID(description_2) Disjoint(description_1,,...,description_n) CEXT(description_i) ^ CEXT(description_j) = {} 1 <= i < j <= n SamePropertyAs(property_1,property_2) EXT(property_1) = EXT(property_2) SubPropertyOf(property_1,property_2) EXT(property_1) <= EXT(property_2) Domain(property,description) EXT(property) <= ID(description) x (RuV) Range(property,description) EXT(property) <= R x IC(description) SingleValuedProperty(property) EXT(property) is functional UniquelyIdentifyingProperty(property) converse of EXT(property) is functional and EXT(property) <= R x R TransitiveProperty(property) EXT(property) is transitive and EXT(property) <= R x R An interpretation satisfies facts as follows: Individual(i,class,pv_1,...,pv_n) S(i) in CEXT(class), S(i) in IP(pv1), ..., S(i) in IP(pvn) Individual(class,pv1,...,pvn) there is some r in R such that r in CEXT(class), r in IP(pv1), ..., r in IP(pvn) SameIndividual(individual_1,...,individual_n) S(individual_i) = S(individual_j) 1 <= i < j <= n DifferentIndividuals(individual_1,...,individual_2) S(individual_i) /= S(individual_j) 1 <= i < j <= n 5. Models and entailment: An interpretation is a model for an OWL KB if the interpretation satisfies the KB. An OWL knowledge base, KB1, entails another, KB2, if all models of KB1 are also models of KB2.