> -----Original Message-----
> From: ext Pete Johnston [mailto:[log in to unmask]]
> Sent: 15 January, 2003 16:01
> To: [log in to unmask]
> Subject: Re: rdfs:isDefinedBy revisited
>
>
> ... I definitely do want to distinguish
>
> - a set of terms or names (1 or 2) identified by a URI e.g.
> http://purl.org/dc/elements/1.1/
Fair enough. This would equate to a functional vocabulary, as
outlined below, but I'd use a different URI from that used
as the XML namespace URI.
> - a particular representation of that set of terms (e.g. an RDF/XML
> document) which happens to be Web retrievable using that same URI (3)
If the URI denotes a vocabulary, then an RDF/XML representation
of the definition of that vocabulary would be appropriate.
--
This may be obvious and I probably don't need to mention it,
but the object of rdfs:isDefinedBy need not be the thing
denoted by the XML namespace URI. In fact, if one has several
different schemas (XML Schema, RDFS, RELAXNG, OWL, XTM, etc.)
not to mention multiple instances of a given encoding (e.g.
separate RDFS instances defining labels and descriptions for
each language) which all provide definition of a term, then
each may be identified by an rdfs:isDefinedBy statement.
I.e., there is no requirement for the pattern
XXX:term rdfs:isDefinedBy XXX
and IMO it should be avoided.
A given functional vocabulary, such as DC, need not be constrained
to terms grounded in only one namespace, and the resource
defining that vocabulary need not equate to the resource(s)
defining the individual terms. There can thus be multiple
functional vocabularies which share common terms and the
definition of the vocabulary is not dictated by the definition
of the terms. A good example of this is PRISM, which is a
functional vocabulary which includes terms from other
functional vocabularies (e.g. DC) as well as defining terms
of its own. And of course, the identity of a given vocabulary
is not the same as a particular namespace (and in the case
of vocabularies with terms from multiple namespaces, cannot
be the same), and hence vocabularies should have a distinct URI
from any XML namespaces.
IMO a vocabulary equates to a DCMI namespace.
Thus, the formal definition of a vocabulary such as DC or PRISM
could be organized thus (this is how we do it at Nokia):
RDF instance a:S
[
a:S rdf:type x:RDFSchema .
a:V rdf:type x:Vocabulary .
a:V x:term g:t1 .
a:V x:term g:t2 .
a:V x:vocabulary b:V .
a:V rdfs:isDefinedBy a:S .
]
RDF instance g:S
[
g:S rdf:type x:RDFSchema .
g:t1 rdf:type rdf:Property .
g:t1 rdfs:label "Term G1" .
g:t1 rdfs:isDefinedBy g:S .
g:t2 rdf:type rdf:Property .
g:t2 rdfs:label "Term G2" .
g:t2 rdfs:isDefinedBy g:S .
]
RDF instance b:S
[
b:S rdf:type x:RDFSchema .
b:V rdf:type x:Vocabulary .
b:V x:term h:t1 .
b:V x:term k:t1 .
h:t1 rdf:type rdf:Property .
h:t1 rdfs:label "Term H1" .
h:t1 rdfs:isDefinedBy b:S .
k:t1 rdf:type rdf:Property .
k:t1 rdfs:label "Term K1" .
k:t1 rdfs:isDefinedBy b:S .
]
Here we have 6 different XML namespaces, two vocabularies,
and four terms, all defined in three RDF resources. Each vocabulary
defines the terms and/or subvocabularies it includes. The first
vocabulary subsumes all the terms in the second vocabulary.
Insofar as the definition of the vocabularies is concerned,
the XML namespaces used by the individual terms is irrelevant.
The RDF resource g:S defines terms that are all grounded in
the same vocabulary. The RDF resource b:S not only defines
terms grounded in different namespaces but a vocabulary as
well.
So, hopefully it is clear that there is no fixed relation
between vocabularies, XML namespaces and schemas, and in
fact it is far more flexible and scalable to avoid any
ambiguity in this regard by presuming that the XML namespace
denotes any particular schema or vocabulary.
XML namespace != vocabulary != model != schema instance
Just thought I'd reassert those points...
Cheers,
Patrick
|