- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Mon, 08 Jan 2007 15:23:00 +0000
- To: Bernard Vatant <bernard.vatant@mondeca.com>
- CC: Semantic Web <semantic-web@w3.org>, Tim Berners-Lee <timbl@w3.org>
Hi Bernard,
>> Well in a sense the point of Annotation properties is that they don't
>> really carry any semantics, that's why they can be safely used in DL.
> I understand that. So according to you, declaration of annotation
> subproperties cannot bear any semantics.
Note the various "in DL" qualifications.
It's true that in OWL/full you can have something which is an
owl:AnnotationProperty and can use it in rdfs:subClassOf relations. The
point is that as soon as you do so you are back in OWL/full. Since the
only point of owl:AnnotationProperty is to allow you do some annotation
while sticking in OWL/DL then if what you are trying to do is in
OWL/full anyway I don't see much point to trying to use the annotation
mechanism at all. Just stick to plain rdf:Property as in your second
example.
> So would you recommend to avoid
> such declarations altogether? And in this case, what do I do about Tim's
> request for such declarations to be present in order to make Tabulator
> happy?
Fundamentally by extending rdfs:label you are in OWL/full, I don't think
there is a way round that. Personally many things I do with OWL end up
in OWL/full and generally I don't find that to be a fatal problem.
One approach in your case might be to partition your ontology. Keep most
of it in DL (O-DL.owl) and edit that with DL editors. For those few
axioms which break DL put this in a separate file (O-full.owl). Then the
ontology you publish (O.owl) can a simple top level file which
owl:imports both the O-DL and O-full fragments.
The chances are the O-full fragment will be very small and easy to
maintain manually. From your example so far its only axiom might be:
<rdf:Property rdf:about="http://www.example.org/ontology#altName">
<rdfs:subPropertyOf
rdf:resource="http://www.w3.org/2000/01/rdf-schema#label"/>
</rdf:Property>
That way general semantic web browsers such as Tabulator get the whole
picture but you can still use DL editors for most of your work and
people who need OWL/DL compliance have any easy partition of your
ontology that they can work with.
If I remember correctly that's sort of what Dan et al did with foaf to
get round the limitations of owl:InverseFunctionalProperty.
The second alternative is to stick to OWL/full and ask the editor
maintainers nicely if they could arrange to round trip your OWL/full
files without breaking quite so badly.
>>> a:myProperty1 rdfs:subPropertyOf b:yourProperty2
>>> b:yourProperty2 rdf:type ex:SomePropertyType
>>>
>>> Does the above entails in RDFS
>>>
>>> a:myProperty1 rdf:type ex:SomePropertyType
>>>
>>> ?? (I guess yes, but maybe I'm wrong)
>>
>> No. For example, instead of ex:SomePropertyType consider
>> owl:TransitiveProperty then there is no reason why a subProperty of a
>> transitive property should itself be transitive.
> OK I see an example
>
> ex:ancestorOf rdf:type owl:TransitiveProperty
> ex:fatherOf rdfs:subPropertyOf ex:ancestorOf
>
> and ex:fatherOf is not a transitive property.
Exactly.
> So there is no formal opposition (in OWL-Full) to have a
> owl:DatatypeProperty being a subproperty of rdfs:label, even in an
> ontology where annotation, datatype and object properties are disjoint.
In OWL/DL then annotation, datatype and object properties are disjoint
so you can't have a datatype property as a subproperty of rdfs:label.
Indeed you can't have a subproperty of rdfs:label, period.
In OWL/full they are not required to be disjoint.
If by "even in an ontology where ... are disjoint" you mean you are
explicitly declaring them yourself to be disjoint then you would have an
inconsistency even in OWL/full. However, I doubt you are doing that.
> Well I guess I am not the only one to get this wrong, if I judge by the
> way RDF tools handle this.
Careful now, the tools that gave you problems were OWL/DL tools not RDF
tools. I do agree that it would be better if OWL/DL editors degraded
more gracefully when faced with OWL/full.
> Are such examples documented somewhere?
Examples of tricks you can/can't play with AnnotationProperties?
Not that I know of. If you are in DL you can't do anything with them
except annotate and if you are not in DL you probably wouldn't use them
in the first place.
Dave
Received on Monday, 8 January 2007 15:23:25 UTC