RE: A proposal for resolving the punning issue (ISSUE-114) + a related proposal for a tweak to the annotation system

Hello,

[snip]

> > I imagine an OWL 2 tool to work as follows. Assume you have the following ontology O.
> >
> > Ontology( <http://bla.com/onto>
> >
> > SubClassOf( a:Eagle a:Species )
> > OntologyProperty( a:eats )
> 
> I assume you mean ObjectProperty here?
> 

Yes, I meant ObjectProperty.

> > PropertyAssertion( a:eats a:Eagle a:Mouse )
> >
> > AnnotationProperty( a:latinName )
> > EntityAnnotation( a:Eagle Annotation( a:latinName a:Aquilla ) Label("EAGLE") )
> >
> > )
> >
> >
> > So here is the answer to some of the questions you raised:
> >
> > Q: What is the set of classes occurring in O?
> > A: { a:Eagle, a:species }
> >
> > Q: What is the set of individuals occurring in O?
> > A: { a:Eagle, a:Mouse }
> >
> > Q: What is the set of URIs occurring in O?
> > A: { <http://bla.com/onto>, a:Eagle, a:Species, a:eats, a:Mouse, a:latinName, a:Aquilla }
> >
> > Q: What is the label of the class a:Eagle?
> > Q: What is the label of the individual a:Eagle?
> > Q: What is the label of the URI a:Eagle?
> > A: "Eagle"
> >
> > Q: What is the value of the annotation property a:latinName for the class/individual/URI a:Eagle?
> > A: The URI a:Aquilla
> 
> Still a bit more. What if a:Aquilla is an individual in 0. What if it
> is also punned as a Class in O?
> Would URI be an "object" in the sort of object model that you envision
> the metamodel specifying?
> Should a tool display the raw URI as the value of the annotation? Or
> all views of the URI?
> 

I'm not sure I understand this: the URI a:Aquilla is not an individual in O because it is not used as such in any of the axioms. In
this new annotation system, the usage of a URI in an annotation would not make this URI an individual.

URI is already a class in the metamodel. Entities such ash Individual, Class, etc. do not subclass URI; rather, they reuse URI by
composition. This seems to be more appropriate: you have one and only one URI, but different views use it.

I guess a tool should display the URI as an annotation value. But this is probably getting into too much detail: we wouldn't specify
this in our spec, would we? I guess the best we can do is give an example of the sort I gave above.

> > Thanks Alan for this question: it helped me to actually clarify this issue in my head. We should
> definitely explain this in the
> > spec.
> >
> >
> >> How do annotations on Axioms work?
> >>
> >
> > I don't see any change here, with the difference that the values of annotations are URIs rather
> than entities.
> 
> There's still an issue with anonymous individuals as subject and
> object of annotations.
> For subject, don't change anything?
> But what about if an anonymous individual is the object of an annotation?
> 

I didn't think we would change this part, so I didn't mention it.

To summarize, the value of an annotation in the new proposal would be a URI, an anonymous individual, or a literal, and annotations
could be attached to an axiom, a URI, or an anonymous individual. That's it!

Regards,

	Boris

> -Alan
> 
> >
> >> What about the RHS of an annotation? If i have (annotation by entity)
> > These should be URIs rather than entities as well (see example above).
> 
> >> > The impact on the documents would be minimal. There is no impact on OWL Full, and there would be
> >> rather trivial changes to the
> >> > Syntax and the RDF Mapping documents. The RDF Mapping document would actually become much
> simpler.
> >>
> >> Much?
> >>
> >
> > Yes. Currently, there is a problem with the reverse mapping of annotations with entities: the RDF
> mapping cannot always correctly
> > detect the type of entity used in the annotation. Currently, the annotations (2)--(6) get mapped to
> (7)--(9). At this point, it is
> > not clear that a:B in (9) should refer to both an individual and a class, so the backwards mapping
> produces only (10).
> >
> > (2) Declaration( Class( a:A ) )
> > (4) Declaration( Class( a:B ) )
> > (5) EntityAnnotation( Class( a:A ) Annotation( a:ap Class( a:B ) ) )
> > (6) EntityAnnotation( Class( a:A ) Annotation( a:ap NamedIndividual( a:B ) ) )
> >
> > (7) ( a:A rdf:type owl:Class )
> > (8) ( a:B rdf:type owl:Class )
> > (9) ( a:A a:ap a:B )
> >
> > (10) EntityAnnotation( Class( a:A ) Annotation( a:ap Class( a:B ) ) )
> >
> > Without typed entities in annotations, things get much simpler.
> >
> > Regards,
> >
> >        Boris
> >
> >>
> >> > Please let me know how you feel about this.
> >> >
> >> >
> >> > Regards,
> >> >
> >> >        Boris
> >
> >

Received on Thursday, 16 October 2008 08:00:24 UTC