- From: Boris Motik <boris.motik@comlab.ox.ac.uk>
- Date: Thu, 16 Oct 2008 08:59:44 +0100
- To: "'Alan Ruttenberg'" <alanruttenberg@gmail.com>
- Cc: <public-owl-wg@w3.org>
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