- From: Ronald Daniel <rdaniel@interwoven.com>
- Date: Tue, 5 Feb 2002 09:36:30 -0800
- To: RDF Core <w3c-rdfcore-wg@w3.org>
- Cc: "Brian McBride (E-mail)" <bwm@hplb.hpl.hp.com>
Hi all,
Off-list, Brian asked me to give the PRISM view re. Patrick's
point about multiple versions of a property.
The following are my opinions, they have not been voted on
by the PRISM group. Opinions always subject to change, etc.
1) PRISM WILL NOT define multiple versions of its properties.
To be completely clear about this, we will sacrifice datatyping
precision in order to have a specification that we believe has
a chance of broader success. I am not about to try and educate
our community on the differences between xsd:date.val,
xsd:date.lex, and xsd:date.map - especially since those distinctions
are invisible to the 'date' datatype in any commercial database
management system I am aware of.
2) PRISM CAN specify one or the other idiom to be used for its elements.
Patrick had asked "who are they [groups like the Dublin Core or PRISM]
to tell me or anyone which idiom I am to use?!"
The answer for the PRISM WG is that we set the definition of the
things in our namespaces. We don't presume to define
things outside our namespaces, but we absolutely have the right
to tell you what the things we define are supposed to mean. Inside
your system you are free to do with that what you will.
3) For the elements in the PRISM-controlled namespace, they could all
be given an rdf:range property following one idiom or another.
The precise choice does not appear critical to us. I would like
the RDF Core group to recommend one as default practice. PRISM
would then use it if and when we define RDF Schemas for our
namespaces.
4) Of particular concern to PRISM is the case where a description
mixes elements from multiple namespaces, because we do. However,
it seems that the different elements can be defined according to
different idioms without conflict (so long as they don't declare
that they are both subPropertyOf a common ancestor. But presumably
the ancestor was not defined with a type if people derive
subPropertys that follow different idioms. If that is the case
then it is probably OK to postulate the existence of a datatype X
which is a supertype of the conflicting types. But again, this is
not a key issue for PRISM and I'm digressing.)
5) There are places where the same string will be used to 'mean'
different things (and no, I am not going to say what I mean when I
say the word 'mean' :-). I see two cases to consider - where there
is and is not an intermediate node.
a) Two strings might occur which mean the same thing. This is expected
to be rare, but it can certainly happen that there are different
dc:creators with the same name. For example:
<some_article> <dc:creator> "J. Doe"
<another_article> <dc:creator> "J. Doe"
Given PRISM's purpose, which is discovery and muti-purposing of
content with humans in the loop, it is OK if a simple system
munges the two together. Obviously not ideal, but very
understandable behavior on the part of the system and not likely
to offend our target customers.
b) Two distinct resources with the same label. This will occur with
reasonable frequency when people are dealing with controlled
vocabularies. (As an example, how many different meanings of the
word 'set' can you think of? Tennis, theatre, glue, math, ...)
PRISM provides the pcv:label property to associate a resource
in a controlled vocabulary (call it a concept, one for each
distinct meaning of 'set') with one or more names for that
concept. There is no assumption that labels are unique or
unambiguous. (Unique meaning only one label per meaning,
unambiguous meaning only one meaning per label. The stuff about
'set' is an example of ambiguity. Synonyms and language tags are
cases of non-uniqueness - cases explicitly provided for in the
PRISM spec.) The URI of the individual 'concepts' is the key
identifier to use. So if we have the same label with two
meanings, we actually have something like:
<article1> <dc:subject> <v:set1>
<v:set1> <pcv:label> "set"
<article2> <dc:subject> <v:set2>
<v:set2> <pcv:label> "set"
and there is no concern about whether the two articles would
conflate the two different subjects by mistake.
5) A place where I don't see a satisfactory answer: PRISM allows
both
<article> <prism:location> "Texas"
<article> <prism:location> <iso3166-2:us-tx>
One is a string, the other a term in a controlled vocabulary.
I could declare the range of prism:location to be a location, but
that is vacuous. I don't see that I can say anything else about
the data type of the object of the statements.
Along those lines, here are some 'reasonable' data type declarations
that can't be made:
<dc:creator> <rdfs:range> <x:Person> . # Companies can be authors too
<dc:publisher> <rdfs:range <x:Company> . # people can self-publish
Regards,
Ron Daniel Jr.
Standards Architect
Interwoven, Inc.
Tel: 408-530-5922
Cell: 925-368-8371
Email: rdaniel@interwoven.com
Visit www.interwoven.com
Received on Tuesday, 5 February 2002 12:37:02 UTC