Re: OWL URI and namespace, an issue for LOV.

Bernard,


I am not going to give a definitive answer but here are my €0.02.

What you see in the OWL namespace document is not established W3C's 
practice. Take a look at the other W3C namespace documents:

RDF:
<http://www.w3.org/1999/02/22-rdf-syntax-ns#> a owl:Ontology ;
... rdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

RDFS:
<http://www.w3.org/2000/01/rdf-schema#> a owl:Ontology ;
... rdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#>

SKOS:
<owl:Ontology rdf:about="http://www.w3.org/2004/02/skos/core">
...
<rdfs:isDefinedBy rdf:resource="http://www.w3.org/2004/02/skos/core"/>

SPARQL Service Description vocabulary:
No ontology defined. No use of isDefinedBy.

PROV-O:
<http://www.w3.org/ns/prov#>
     a owl:Ontology ;
... rdfs:isDefinedBy <http://www.w3.org/ns/prov-o#> .
Also, weird thing here:
rdfs:comment rdfs:isDefinedBy <http://www.w3.org/ns/prov-o#> .

Organization ontology:
<http://www.w3.org/ns/org#>
     a owl:Ontology;
... rdfs:isDefinedBy <http://www.w3.org/ns/org> .

DCAT ontology:
<http://www.w3.org/ns/dcat>
     a owl:Ontology, voaf:Vocabulary;
... rdfs:isDefinedBy <http://www.w3.org/TR/vocab-dcat/>;

Data cube vocabulary:
<http://purl.org/linked-data/cube>
     a owl:Ontology;
... rdfs:isDefinedBy <http://purl.org/linked-data/cube>;

All of these are vocabularies associated with W3C recommendations. The 
vocabularies themselves are not all recommendations. As you can see, 
practices vary a lot. They reflect the practices of the working groups 
rather than the W3C.


Now, here is my take on this issue:


rdfs:isDefinedBy does not impose any formal constraint on how it can be 
used, and it does not have a very precise meaning either.

The specification says:


"""
rdfs:isDefinedBy is an instance of rdf:Property that is used to indicate 
a resource defining the subject resource. This property may be used to 
indicate an RDF vocabulary in which a resource is described.

A triple of the form:

     S rdfs:isDefinedBy O

states that the resource O defines S. It may be possible to retrieve 
representations of O from the Web, but this is not required. When such 
representations may be retrieved, no constraints are placed on the 
format of those representations. rdfs:isDefinedBy is a subproperty of 
rdfs:seeAlso.

The rdfs:domain of rdfs:isDefinedBy is rdfs:Resource. The rdfs:range of 
rdfs:isDefinedBy is rdfs:Resource.
"""

 From this, your interpretation is that:

if  {?O  a  owl:Ontology}
and if ?Y is a term defined in ontology ?O, then:
{?Y  rdfs:isDefinedBy  ?O}

This interpretation makes sense, but is not at all implied by the 
specification. For instance, one may want to differentiate between the 
ontology itself and the ontology document and use "idDefinedBy" with the 
ontology document rather than the "abstract" ontology.

Now, W3C recommendations are not the only source of recommendations for 
good or best practices. However, to the best of my knowledge (imperfect 
but relatively well informed) there is no widely established best 
practice on this particular issue. As far as I know, it is considered 
best practice to provide a "isDefinedBy" triple, but with little 
obligations with respect to the URI, except that it should dereference 
to the ontology document.

Then, apart from formalised best practices, there is de facto practices. 
As you note yourself, many vocabularies do not have "rdfs:isDefinedBy" 
so this may not be so useful.

Finally, the last thing you can rely on is common sense.  I think what 
you do makes sense and I agree that how OWL handles this is awkward.


Best,
AZ.

Le 17/06/2014 15:10, Bernard Vatant a écrit :
> Hi all
>
> Sorry this looks like a permathread on namespaces and URIs, but
> hopefully someday someone will come out with a definitive and convincing
> explanation which will enlighten my old brain.
>
> We've been looking more closely in the OWL namespace publication, for
> inclusion into LOV cloud [1]. We'd been reluctant so far to include RDF,
> RDFS and OWL RDF schemas as ordinary LOV citizens, because of their
> particular status, but we are now experimenting it, in order to capture
> some information on how various vocabularies use RDFS or OWL, for example.
> In LOV we have some pragmatic rules, which are as difficult to figure as
> to enforce, to find out the vocabulary URI and the vocabulary namespace.
> They can be the same, or quite the same (differing by a final # or /,
> for example), or completely different. In the best of worlds, the
> vocabulary URI and the vocabulary namespace dereference ultimately to
> the same RDF file.
> Sometimes, the vocabulary URI dereferences, but not the namespace (in
> case of purl URIs, crazy things happen etc)
>
> We tend to trust what the vocabulary publisher declares, if it's
> consistent. If the vocabulary RDF file contains one predicate (?uri a
> owl:Ontology), and ?uri is dereferencing properly with or without conneg
> to the said file, we take ?uri to be the vocabulary URI.
> In the case of OWL either http://www.w3.org/2002/07/owl or
> http://www.w3.org/2002/07/owl# dereference to the same Turtle file, in
> which one can read :
>
> <http://www.w3.org/2002/07/owl> a owl:Ontology   (A1)
>
> So far so good. From the previous rule, we take
> http://www.w3.org/2002/07/owl to be the vocabulary URI, and
> http://www.w3.org/2002/07/owl# the associated namespace (defined in the
> prefix declarations).
>
> But, in the OWL elements definition, we read e.g.,
>
> owl:Class a rdfs:Class ;
>       rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#>
>
> One would expect http://www.w3.org/2002/07/owl as the object of
> rdfs:isDefinedBy, to be consistent with (A1) above.
>
> It figures :
> - Are http://www.w3.org/2002/07/owl# and http://www.w3.org/2002/07/owl
> equivalent URIs? IOW should a RDF application (e.g., the LOV-Bot)
> consider them as the same resource?
> - If no, what is the rationale of using one here and the other there?
> - If yes ... same question :)
>
> In the current state of affairs, in LOV we add automatically in the
> back-end triple store a triple
> (?x  rdfs:isDefinedBy  ?uri) to every element ?x (class or property)
> found in a vocabulary, with ?uri being the vocabulary URI as above
> defined. Those triples add to the ones already declared in the
> vocabulary itself, if any (most of the time there are no such declarations).
>
> In the OWL case we will eventually have in the triple store the two
> following triples, one declared and the other one inferred :
>
> owl:Class rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#>
> owl:Class rdfs:isDefinedBy <http://www.w3.org/2002/07/owl>
>
> This is noisy at best. The question is : should LOV change its rules
> regarding namespaces and URIs, or is the OWL schema broken?
>
> Thanks for your attention
>
> [1] http://lov.okfn.org/dataset/lov/details/vocabulary_owl.html
> --
> *Bernard Vatant
> *
> Vocabularies & Data Engineering
> Tel : + 33 (0)9 71 48 84 59
> Skype : bernard.vatant
> http://google.com/+BernardVatant
> --------------------------------------------------------
> *Mondeca*****
> 35 boulevard de Strasbourg 75010 Paris*
> *
> www.mondeca.com <http://www.mondeca.com/>
> Follow us on Twitter : @mondecanews <http://twitter.com/#%21/mondecanews>
> ----------------------------------------------------------

-- 
Antoine Zimmermann
ISCOD - Institut Henri Fayol
École nationale supérieure des mines de Saint-Étienne
158 cours Fauriel
CS 62362
42023 Saint-Étienne Cedex 2
France
Tél:+33(0)4 77 42 66 03
Fax:+33(0)4 77 42 66 66
http://zimmer.aprilfoolsreview.com/

Received on Tuesday, 17 June 2014 15:42:36 UTC