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

Antoine

Thanks for this! The examples you add are indeed the LOV curators daily
bread ...
You quote only W3C vocabs, but the rest of the LOV universe shows a quite
similar variety. But one would expect more consistency at least for the
three basic recommendations, RDF, RDFS and OWL, all republished at the same
date as the specs themselves ... I guess, since there is no metadata in the
RDF files ... yet another example of good practice :(
And indeed, the fuzzy specification of rdfs:isDefinedBy allows a lot of
potentially conflicting interpretations, including the one we implement in
LOV.

Just a precision about the rule you mention which is the one we try to run :

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

"?Y is a term defined in ontology ?O" is itself a can of worms. It means in
practice for the LOV-Bot logic that "?Y is found as subject of a predicate
in the ontology document retrieved at ?O"

AND

?Y is a URI defined in the namespace *considered as being* the namespace of
?O.

... and the latter can be a puzzle too, when e.g., you have no xml:base, or
one that is not consistent with the apparent "main" namespace, and/or the
owl:Ontology element is either absent or declaring something like
rdf:about="", and/or you have some purl redirection of the namespace.

As you write, common sense and human curation at the end of the day is our
last weapon ... but if those things had been specified somewhere by the
W3C, our life would be easier. I'm unable to assess exactly the part of the
time of LOV curation dedicated to struggle with those issues, but it's far
from marginal ...


2014-06-17 17:42 GMT+02:00 Antoine Zimmermann <antoine.zimmermann@emse.fr>:

> 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/
>
>


-- 

*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
Follow us on Twitter : @mondecanews <http://twitter.com/#%21/mondecanews>
----------------------------------------------------------

Received on Tuesday, 17 June 2014 16:41:40 UTC