Re: Ambiguity of "RDF namespace" - was: Re: Contradicting definitions of "property"

On Fri, May 04, 2012 at 12:00:31AM +0100, Richard Cyganiak wrote:
> Here's my take on this. The RDF 1.1 Concepts draft defines ?RDF vocabulary?:

Thank you, Richard!

> [[
> An RDF vocabulary is a collection of IRIs with clearly established referents intended for use in RDF graphs.
> ]]
> 
> Based on that, I'd say:
> 
> In the RDF context, any set of IRIs that start with the same substring are a
> namespace. The shared substring is the namespace's namespace IRI. This says
> nothing about what these IRIs identify or what they dereference to; it's
> purely a matter of IRI syntax.

Okay, but I read this as strongly implying that a namespace is type of RDF
vocabulary -- unless a "collection of IRIs" is essentially different from a
"set of IRIs".

Also, I wonder if this gives me license to speak of the
"http://www.w3.org/1999/" namespace, "http://purl.org/dc/" namespce, "http:"
namespace, or even the "ht" namespace...  If this really is purely a matter of
IRI syntax, slipping into saying that there is a conceptual resource called a
"namespace" denoted by the "namespace URI" seems to muddy the waters.

> Some namespace IRIs are often conventionally associated with a specific
> namespace prefix.

Yes, "conventionally" - it is good to emphasize this as the opportunity arises.

> It is very common for all IRIs in an RDF vocabulary to be in the same
> namespace. In this case, it makes sense to speak of the vocabulary's
> namespace IRI.

How about:

    It is very common for all IRIs in an RDF vocabulary to start with a common
    substring, or base URI.  In this case, it makes sense to speak of the
    vocabulary's namespace IRI.  An RDF vocabulary that consists of IRIs
    starting with a common namespace IRI is, by convention, referred to
    informally as a "namespace".

> It is a useful convention to make the vocabulary namespace IRI resolvable and
> publish a document there, and describe the vocabulary's terms in that
> document. The document is known as a namespace document. As usual, it's a
> good idea to provide HTML *and* RDF representations of a namespace document.

Fine.

> There is no such thing as ?an RDF namespace?. There is *the* RDF namespace,
> which is the set of all IRIs starting with
> ?http://www.w3.org/1999/02/22-rdf-syntax-ns#?.

Right - there is no such thing as "RDF namespace" defined in the specs.  But if
a namespace is a type of RDF vocabulary, as implied above, would one not
perhaps want to refer to it as an RDF namespace?

> So, you can talk precisely about the ?SKOS namespace IRI? (it is
> ?http://www.w3.org/2004/02/skos/core#?) or the ?SKOS namespace prefix? (it is
> ?skos?) or the ?SKOS vocabulary? (it contains skos:Concept, skos:broader,
> skos:prefLabel and so on).

Okay (though to state the obvious, "skos:Concept" is not an IRI).

> The wording used in RDF Schema ? ?class X is defined in the Y namespace? ? is
> sloppy language, IMO. Classes are defined in documents, not in namespaces.

Okay - and rdfs:isDefinedBy points to documents?

> You can argue about whether skos:Concept is defined in the SKOS specification
> or in the SKOS namespace document, but saying that ?it is defined in the SKOS
> namespace? doesn't really make sense. The IRI of the class X may be in the Y
> namespace.
> 
> What is identified by a namespace IRI? It is up to the IRI owner to tell us.

I think it is very important to say this clearly somewhere.

> It is a useful convention to do so in the namespace document. In the case of
> slash namespace IRIs, the namespace IRI coincides with the IRI of the
> namespace document, so that's what it identifies. In a hash namespace IRI,
> the IRI of the namespace document is the namespace IRI minus the trailing
> hash, so the namespace IRI might potentially identify something other than
> the namespace document. My preferred setup (which differs from early W3C
> practice) is to have it identify *nothing*, and just talk about the hash-less
> IRI of the namespace document.

Fine.  Maybe the RDF specs could leave it at: "it is up to the IRI owner to
tell us", and anything beyond that could be in primers and best practice
notes.

Tom

> If the definitions of the terms in the vocabulary are expressed in RDFS and
> OWL, then it is common to state that the terms are defined in an
> ?owl:Ontology?. I think it is natural to say that the namespace document *is*
> the ontology, and use the same IRI for both. Some disagree with this, saying
> that an ontology is not a document, but that position makes no sense to me. I
> can print out an ontology and staple it on the wall.
> 
> Best,
> Richard
> 
> 
> 
> On 3 May 2012, at 17:19, Thomas Baker wrote:
> 
> > On Thu, Apr 26, 2012 at 01:00:30AM +0100, Richard Cyganiak wrote:
> >> And the rest of the mechanics make it clear that URIrefs can denote a member
> >> of IP. In other words, RDF Concepts says that the predicate IRI *is* the
> >> property, while RDF Semantics says that it *denotes* the property.
> >> 
> >> The analogy with classes shows IMO that RDF Concepts is wrong and RDF
> >> Semantics is right. The IRI <http://xmlns.com/foaf/0.1/Person> *is* not a
> >> class, but it *denotes* a class.
> > 
> > While we're at it, could we perhaps clarify what is meant by "namespace" 
> > (i.e., "RDF namespace")?  
> > 
> > The ambiguity that Richard points out w.r.t. whether properties are _denoted
> > by_ IRIs or actually _are_ IRIs -- along with ambiguity about the relationship
> > of an "RDF namespace" to an "RDF vocabulary" versus an "XML namespace" -- had
> > us going around in circles in Dublin Core discussions circa 2004, and this has 
> > been bugging me ever since...
> > 
> > The RDF Schema 1.1 Editors' Draft [1] pretty consistently refers to a
> > "namespace" as something "identified by" an IRI, though also "published at" an
> > IRI, and "in" which vocabularies of properties and classes are "defined" (see 
> > notes below).
> > 
> > "Architecture of the World Wide Web, Volume One" [2] says that a "namespace
> > document" is an "information resource that contains useful information,
> > machine-usable and/or human-usable, about terms in the namespace" but is vague
> > about the nature of a namespace.
> > 
> > According to my notes (see further below), the use of "namespace URIs" as URIs
> > for RDF vocabularies/ontologies versus XML namespaces is not really consistent
> > across some major RDF vocabularies/ontologies/namespaces.
> > 
> > Note, in particular, the inconsistency w.r.t. using the "namespace URI" to
> > identify the RDF vocabulary or ontology (e.g.: RDF, FOAF, Dublin Core) versus
> > _not_ using the "namespace URI" to identify the RDF vocabulary or ontology
> > (e.g.: OWL, SKOS).
> > 
> > Do we have an opportunity to fix this, or at least to establish more consistent
> > usage moving forward?
> > 
> > FWIW, in the Dublin Core context, we ended up punting on what "namespace"
> > really meant in the RDF context and defined our own notion of "DCMI namespace"
> > (and "DCMI namespace URI") as a collection of URIs [3]:
> > 
> >    A collection of DCMI term URIs where each term is assigned a URI that
> >    starts with the same 'base URI'. The 'base URI' is known as the DCMI
> >    namespace URI. (Note that a DCMI namespace is not the same as an 'XML
> >    namespace').
> > 
> > Looking at actual usage in RDF specs (see quotes below), "namespace" appears to
> > be something defined with regard to a base URI, but only implicitly.  The point
> > could perhaps be made explicit in a definition such as:
> > 
> >    An RDF namespace is an RDF vocabulary or ontology, the properties and
> >    classes of which are denoted with URIs formed using a common base URI (the
> >    "RDF namespace URI").
> > 
> > I'm secretly hoping that the answer to whether an "RDF namespace URI" should be
> > used to identify the RDF vocabulary/ontology and/or as an XML namespace is: "it
> > doesn't really matter"...!
> > 
> > See more detailed notes below...
> > 
> > Tom
> > 
> > [1] http://dvcs.w3.org/hg/rdf/raw-file/default/rdf-schema/index.html
> > [2] http://www.w3.org/TR/2004/REC-webarch-20041215/
> > [3] http://dublincore.org/documents/dcmi-namespace/
> > 
> > 
> > 
> > 
> > 
> > 
> > ======================================================================
> > Notes from: RDF Schema 1.1 Editors' Draft [1]
> > 
> > -- "The core vocabulary is defined in a namespace informally
> >   called 'rdfs' here. That namespace is identified by the URI-Reference
> >   http://..." (Section 1).
> > 
> > -- "Since RDF vocabularies are expressed as RDF graphs,
> >   vocabularies defined in other namespaces may be used to provide richer
> >   documentation." (Section 3.7)
> > 
> > -- "Since URI-References are used to identify classes and properties
> >   in the Web, it is possible to create new properties that have a domain or range
> >   whose value is a class defined in another namespace." (Section 4)
> > 
> > -- "The following utility classes and properties are defined in
> >   the RDF core namespaces." (Section 5.4)
> > 
> > -- "It does not necessarily match the content published at the RDF namespace URI
> >   or the RDFS namespace URI, which may evolve over time." (Appendix A)
> > 
> > The property rdfs:isDefinedBy, however, is defined with reference not to a
> > "namespace" but to "an RDF vocabulary in which a resource is described".
> > 
> > ======================================================================
> > --  RDF
> >    "RDF Namespace URI reference"
> >        http://www.w3.org/1999/02/22-rdf-syntax-ns#
> >    Ontology IS identified using the namespace URI:
> >        <http://www.w3.org/1999/02/22-rdf-syntax-ns#> rdf:type owl:Ontology .
> >    Properties and classes "defined by" the Ontology URI (= Namespace URI)
> >        <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> rdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> >    Namespace document
> >        http://www.w3.org/1999/02/22-rdf-syntax-ns# describes itself as follows:
> >        "This is the RDF Schema for the RDF vocabulary defined in the RDF namespace."
> >    According to http://www.w3.org/TR/REC-rdf-syntax/#section-Namespace
> >        "The RDF namespace URI reference (or namespace name) is
> >        http://www.w3.org/1999/02/22-rdf-syntax-ns# and is typically used in
> >        XML with the prefix rdf although other prefix strings may be used. The
> >        RDF Vocabulary is identified by this namespace name and consists of the
> >        following names only:..."
> > 
> > --  FOAF
> >    "FOAF RDF namespace URI"
> >        http://xmlns.com/foaf/0.1/
> >    Ontology IS identified using Namespace URI:
> >        <http://xmlns.com/foaf/0.1/> rdf:type owl:Ontology .
> >    Properties and classes "defined by" the Ontology URI (= Namespace URI)
> >        <http://xmlns.com/foaf/0.1/LabelProperty> rdfs:isDefinedBy <http://xmlns.com/foaf/0.1/> .
> >    Namespace document
> >        http://xmlns.com/foaf/spec/
> > 
> > --  Dublin Core
> >    "DCMI Namespace URI" - see http://dublincore.org/documents/2007/07/02/dcmi-namespace/
> >        http://purl.org/dc/terms/
> >        "The DCMI namespace URI for the collection of ... DCMI properties, classes and encoding schemes..."
> >    Ontology not explicitly declared to be rdf:type owl:Ontology but IS implicitly identified using Namespace URI
> >    Properties and classes "defined by" the "DCMI Namespace URI"
> >        <http://purl.org/dc/terms/title> rdfs:isDefinedBy <http://purl.org/dc/terms/> .
> > 
> > --  SKOS
> >    "SKOS Namespace URI"
> >        http://www.w3.org/2004/02/skos#
> >    Ontology IS NOT identified using Namespace URI:
> >        <http://www.w3.org/2004/02/skos/core> rdf:type owl:Ontology .
> >    Properties and classes "defined by" the Ontology (!= Namespace URI)
> >        <http://www.w3.org/2004/02/skos/core#Concept> rdfs:isDefinedBy <http://www.w3.org/2004/02/skos/core> .
> >    Namespace documents
> >        http://www.w3.org/TR/skos-reference/skos.html
> >        http://www.w3.org/TR/skos-reference/skos.rdf
> >        "The SKOS vocabulary is summarized in SKOS Namespace Document - HTML
> >        Variant [SKOS-HTML], which is served from the namespace URI
> >        http://www.w3.org/2004/02/skos/core# via content negotiation..."
> >        "The SKOS vocabulary is a conceptual resource identified by the namespace URI
> >        http://www.w3.org/2004/02/skos/core#. The normative definition of the SKOS
> >        vocabulary is found in SKOS Reference (this document)."
> > 
> > --  OWL
> >    Namespace URI
> >        http://www.w3.org/2002/07/owl#
> >    Ontology IS NOT identified using Namespace URI:
> >        <http://www.w3.org/2002/07/owl> rdf:type owl:Ontology .
> >    Properties and classes "defined by" the Namespace URI
> >        <http://www.w3.org/2002/07/owl#AllDifferent> rdfs:isDefinedBy> <http://www.w3.org/2002/07/owl#> .
> >    The ontology itself is "defined by" specifications:
> >        <http://www.w3.org/2002/07/owl> rdfs:isDefinedBy <http://www.w3.org/TR/owl2-rdf-based-semantics/> .
> >    According to http://www.w3.org/TR/owl-features/
> >        "Thus, the term rdfs:subPropertyOf indicates that subPropertyOf is
> >        already in the rdfs vocabulary (technically : the rdfs namespace)."
> >    According to http://www.w3.org/TR/2004/REC-owl-ref-20040210/#owl-uri-namespace
> >        "The built-in vocabulary for OWL all comes from the OWL namespace."
> >        http://www.w3.org/2002/07/owl# is "conventionally associated with the 
> >        namespace name owl." 
> > 
> > 
> > -- 
> > Tom Baker <tom@tombaker.org>
> > 

-- 
Tom Baker <tom@tombaker.org>

Received on Friday, 4 May 2012 14:06:11 UTC