- From: Jeremy Carroll <jjc@hpl.hp.com>
- Date: Thu, 30 Jan 2003 08:48:33 +0100
- To: www-webont-wg@w3.org
Summary: Annotations are normal datatype or obejct properties which do not syntactically participate in any restrictions, or have inverses, or be declared as transitive or symmetric. They are given the semantics from RDFS. The "any restrictions" covers domain, range, FunctionalProperty etc. ====================================================== My prefered solution for annotations is as follows: For textual annotations, such as rdfs:comment and rdfs:label, the properties used in the annotations are declared as owl:DatatypeProperty's in the usual way. (The two rdfs props are builtin and do not need to be declared) When used on individuals the triple corresponds to a propertyValue in the abstract syntax, and is given meaning by the direct semantics. When used on an ontology, class or property the triple corresponds to an annotation in the abstract syntax. To avoid the semantic confusion (between these two visual similar but semantically distinct usages) that could arise we restrict such as properties to be simple datatype properties which are syntactically limited in how much they can be involved in the ontology viz: [[ simple datavalued properties ======================= These may have super and sub properties (the super properties too must be simple datavalued) the subproperties must be datavalued. They may have equivalent properties, which must be simple datavalued properties. They may not have domain or range constraints, or participate in any restriction, or be declared as functional. They may be used both as annotations and within the ontology on individuals. ]] Taken from my proposed modifications to the syntax http://lists.w3.org/Archives/Public/www-archive/2003Jan/att-0107/01-t Moreover to fix the problems with annotations and entailments that I have earlier reported, the definition of OWLDL-entailment between RDF/XML documents is modified to be: OWL Lite/DL Entailment between RDF/XML documents ============================================ Given an RDF file X whose import closure has abstract syntax representation X' and an RDF file Y whose import closure has abstract syntax representation Y', then X X DL-entails Y if and only if both X' direct-entails Y' and the import closure of X rdfs-entails the subset of the imports closure of Y consisting of the annotation triples. === Similarly for object properties I propose that the mechanim of owl:ObjectProperty is usable. Viz: simple object properties =================== These may have super and sub properties (the super properties too must be simple object valued) the subproperties must be object valued. They may have equivalent properties, which must be simple object properties. They may not have domain or range constraints, or participate in any restriction, or be declared as functional, inversefunctional etc. They may be used both as annotations and within the ontology on individuals. ************************************ Most of this type of behaviour is well known in RDFS. One specific RDF behaviour that is not supported is the use of dc:creator both with string values and with blank node values (where the blank node is further qualified with rdf:value and Dublin Core qualifiers). Since we have no proposal on the table that covers the second case, and the definition of dc:creator is clearly speaking about the name of the author I am not too worried about treating dc:creator as a DatatypeProperty. ============= Example of use: <owl:Class rdf:ID="Classics"> <rdfs:subClassOf> <owl:Class rdf:about="#Books"/> </rdfs:subClassOf> <dc:creator>Jeremy</dc:creator> </owl:Class> <!-- OK, so its really a play --> <Book rdf:ID="Romeo-and-juliet"> <dc:creator>Shakespeare</dc:creator> </Book> <owl:DatatypeProperty rdf:about="&dc;creator"> <rdfs:comment> Note this is appropriate for use in annotations. </rdfs:comment> </owl:DatatypeProperty> However if I add the following axiom: <owl:Restriction> <owl:onProperty rdf:resource="&dc;creator"/> <owl:hasValue>Shakespeare</owl:hasValue> <rdfs:subClassOf> <owl:Class rdf:about="#Classics"/> </rdfs:subClassOf> </owl:Restriction> then I move into OWL Full on syntactic grounds - dc:creator can't be a simple datatype property, because it is used (syntactically) in a restriction. Thus it is not an appropriate annotation on a class, and the total file is no longer OWL DL. Doing annotations this way also maintains a syntactic uniformity on the rules in annotations and the rules on the rest of the ontology. e.g. every node and every property used must have an explicit type, also in annotations. This will make OWL easier to present and learn. Jeremy
Received on Thursday, 30 January 2003 02:47:43 UTC