- From: Bijan Parsia <bparsia@cs.man.ac.uk>
- Date: Sat, 25 Nov 2006 14:31:39 +0000
- To: Soonho Kim <soonho.kim@fao.org>
- Cc: public-owl-dev@w3.org
On Nov 24, 2006, at 5:32 PM, Soonho Kim wrote: > I am just a beginner about punning. > > I added all dc elements as annotation properties (owl 1.0). I know > I can > not do any inference on annotation properties in OWL 1.0. Yes. > If I use punning, can I do some inference with annotation properties? There are 3 features of annotation properties in OWL DL: 1) they are ignored by the reasoner 2) there are restrictions on what you can say about them (sorta related to 1) 3) they can appear on classes and properties and datatypes as well as individuals In OWL 1.1, annotation properties are called "annotationURIs" and annotation property assertions are called "annotations". They have some interesting features: 1) they are ignored by the reasoner 2) qua annotations, there are restrictions on what you can say about them 3) they can appear on *axioms* (yay!) as well as classes, etc. so you can say that "this axiom was added by Bijan" In OWL DL *only* annotation properties (and the syntax "properties" like rdfs:subClassOf) could have e.g., a class as a subject. In OWL 1.1, via punning, you can have a uri that can appear both in class positions and in individual positions. Thus you can assert arbitrary facts "about" a class and have them be affected by and affect the reasoner. But then there's some "leakage" into your domain of your metadata. Conversely, with annotations, you don't get any reasoning at all, but you do keep your metadata and data clearly distinct. (Only *could* let annotations be reasoned and "isolated" by having a stratified interpretation. In a sense it would be like punning, but some natural things wouldn't happen. These natural things can be unnatural in some contexts :)) > for example: > I defined the dc:subject as a annotationproerty in OWL 1.0 > > <owl:AnnotationProperty > rdf:about="http://purl.org/dc/elements/1.1/subject"> > <rdfs:isDefinedBy rdf:resource="http://purl.org/dc/elements/ > 1.1/"/> > </owl:AnnotationProperty> If you wanted to reason with this in OWL 1.1, you wouldn't declare it to be an annotation property. You'd just call it an DatatypeProperty as normal. > Then, I created an individual of a class 'resource', which has a > subject : > plant. > > <resource1> > <dc:subject> plant </dc:subject> > </resource1> > > I would like to create another class which is a set of individuals > that has > dc:subject= plant. > Class(a:resource_about_plant complete intersectionOf(a:resource > restriction(a:dc:subject someValuesFrom (a:plant)))) I'm having a lot of trouble figuring out what youmean by this fragment (what's a:plant? for example) But lets say you also wanted to say: <owl:Class rdf:ID="PlantBooks"> <dc:subject>plant</dc:subject> <owl:equivalentClass> <owl:Restriction> <someValuesFrom>plant</someValuesFrom> <onProperty rdf:resource="&dc;subject"/> ... (This isn't meant to be correct, just to get the flavor. I'm presuming that the someValuesFrom is to a data value, i.e., a data value nominal. You could create a singleton datatype too.) Now PlantBooks will be a member of itself (non-paradoxically). If the example was dc:date-modifed and you wanted to build a class or query of things with a dc:date, then the subproperty axiom would do the job you want it to. > Is it possible to create this class using punning, even though > dc:subject is > an annotation property? I hope this approximates an answer to your question :) Cheers, Bijan.
Received on Saturday, 25 November 2006 14:31:51 UTC