Re: inference and punning

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