- From: Thomas Baker <tom@tombaker.org>
- Date: Fri, 4 May 2012 10:05:28 -0400
- To: Richard Cyganiak <richard@cyganiak.de>
- Cc: RDF Working Group WG <public-rdf-wg@w3.org>
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