[topicmapmail] Two Models of Facets
Murray Altheim
m.altheim@open.ac.uk
Tue, 25 Nov 2003 17:48:41 +0000
Okay, where are we? Continuing with this conversation...
We know that there are many definitions of "facet", and that
ISO 13250 has a rather vague definition, which doesn't align
itself with any one specific domain of prior use, so far as
can be discerned.
I've tried to demonstrate two basic models, one for "properties"
of topics, another for "facets" of topics. The first I have
called "Model A" and is similar to what RDF does (it *seems* to
be closest to facet/facet links in ISO 13250, which are simpler
than topic links). Basically, this is about attaching property-value
pairs to Topics. We don't currently have a nice way to add scalar
values to Topics; this might be the best way. One rule about this
one might be that you'd never attach a measurement or scalar value
to a class -- this is all about Topics that represent individuals.
The second, which I've called "Model T", is more about subject
definition via the attribution of class-level characteristics,
similar to what Faceted Classification is all about. Topic Maps'
subject identity is not based on this, but it's easy to imagine
a Topic Map application harvesting and suggesting new Topic
classifications based on similarities in such characteristics.
By comparison, it's possible but a lot less likely to want to
harvest Model A data to create new Topic classifications, whereas
class-based properties/facets would seem to be the kind of thing
you *would* want to use. A rule here would be that you'd never
assign properties specific to individuals to a class.
My example here has been that "height" as a specific characteristic
of an individual is a *measurement*, whereas "height" as a class
characteristic is an abstract concept, not a measurement.
[As I've said, this all comes with some cautions given that the
choice of using a Topic or a facet or a property is going to depend
somewhat on the purpose of the model you're designing. So what in
one Topic Map might be modeled as a property value ("blue eyes")
might be considered as a Topic ("blue eyes") in a different
application. And if you were studying actual eye colour, you might
use a spectrum range for the class definition and a spectrum
value for a property of an individual.]
Now, we are with XTM dealing with the world of XML. There is one
specification that is very closely aligned with assigning values
to entities, the XML Schema Datatypes Recommendation [XSD]:
http://www.w3.org/TR/xmlschema-2/
This is one of the few W3C specs of late that I actually like well
enough to endorse, and have written up a draft for Datatypes in
XTM based on it:
http://kmi.open.ac.uk/psi/datatypes.html [see PS.]
[there are some things to fix in that document, but I think the
fundamental idea is pretty simple, i.e., just stealing the URIs
defined by XSD as PSIs for XTM.]
The thing that XSD does with facets is define two types, fundamental
facets and constraining facets. "Facets" in XSD are "defining aspects
of a value space", which taken in context agrees with the Faceted
Classification definition, in that it's how a datatype is defined.
XSD even uses the language seemingly in harmony with my Model T:
"A fundamental facet is an abstract property which serves to
semantically characterize the values in a *value space*."
The secondary facet type, a "constraining facet", is a bit different,
and is close to my Model A definition, in that it's about scalar
or measurements (I'd consider enumerations as of the same order):
"A constraining facet is an optional property that can be applied
to a datatype to constrain its *value space*."
So, you'd consider adding a facet of "birthday" to a Topic representing
the class Topic "human being", and an instance of that Topic, say "Elvis",
would have a specific birthday. For an example, we'll use the Model A
idea, not yet dealing with Model T/class-based facets. I'm going to
conflate the two ideas "facet" and "property" for a moment, partly
because that's the current way I've implemented it, secondly to see if
arise any real problems in such a conflation.
EXAMPLE
An example in XTM, "Elvis has birthday '1935-01-08'". This could
be modeled as a Topic "Elvis", an Association type "has birthday",
and another Topic, "1935-01-08", but another way would be to
consider the birth date as a facet of the Topic "Elvis".
<topic id="elvis">
<baseName>
<baseNameString>Elvis Presley</baseNameString>
</baseName>
</topic>
<association>
<instanceOf><!-- ........................... facet predicate 'hasFacet' -->
<subjectIndicatorRef xlink:href="http://purl.org/ceryle/psi/facets/#hasFacet"/>
<instanceOf>
<member><!-- ............................... facet role -->
<roleSpec>
<subjectIndicatorRef xlink:href="http://purl.org/ceryle/psi/facets/#facet"/>
</roleSpec>
<topicRef xlink:href="#elvis-bd"/>
</member>
<member><!-- ............................... faceted role -->
<roleSpec>
<subjectIndicatorRef xlink:href="http://purl.org/ceryle/psi/facets/#faceted"/>
</roleSpec>
<topicRef xlink:href="#elvis"/>
</member>
</association>
<topic id="elvis-bd">
<instanceOf><!-- ........................... facet type -->
<subjectIndicatorRef xlink:href="http://purl.org/ceryle/psi/ceryle/#birthdate"/>
<instanceOf>
<occurrence><!-- ........................... facet value -->
<instanceOf>
<subjectIndicatorRef xlink:href="http://purl.org/ceryle/psi/facets/#value"/>
<subjectIndicatorRef xlink:href="http://www.w3.org/2001/XMLSchema#dateTime"/>
<instanceOf>
<resourceData>1935-01-08</resourceData>
</occurrence>
<occurrence><!-- ........................... constraining facet minInclusive value -->
<instanceOf>
<subjectIndicatorRef xlink:href="http://purl.org/ceryle/psi/facets/#value"/>
<subjectIndicatorRef xlink:href="http://www.w3.org/2001/XMLSchema#dateTime.minInclusive"/>
<instanceOf>
<resourceData>1900-01-01</resourceData>
</occurrence>
<occurrence><!-- ........................... constraining facet maxInclusive value -->
<instanceOf>
<subjectIndicatorRef xlink:href="http://purl.org/ceryle/psi/facets/#value"/>
<subjectIndicatorRef xlink:href="http://www.w3.org/2001/XMLSchema#dateTime.maxInclusive"/>
<instanceOf>
<resourceData>2003-11-25</resourceData>
</occurrence>
</topic>
You'll note that I'm also including minimum and maximum allowed values
for Elvis' birthdate, which in the case of Elvis is a bit unnecessary
since we know the entire extent of his lifespan, but say, if this was
a template for a human being, the minimum and maximum values would be
valuable constraints.
What? you say. You've used "template" and mixed up an instance Topic
(describing Elvis) with a class Topic (describing all human beings).
Well, that's just to suggest some possibilities... Okay, I'm going to
let all this settle a bit and see how our stew smells after it's been
in the pot awhile...
To reiterate, I'm interested in ultimately finding out if there
are any fundamental reasons why we can't use the same model and
syntax for both Model A and Model T, and if not, what differences
we'd see as necessary to differentiate class-based characteristics
from instance-based characteristics. The subtlety of this is a bit
similar to that of the reification problem; we need to keep things
clear.
Murray
PS. to demonstrate the instability of W3C's URIs, since the time
of publication of my draft and today, they've broken the URI of
the XSD Recommendation by once again changing their policy on URIs,
this time removing the year-of-publication. *sigh*
PPS. I've not heavily edited this message since it's already a lot
of effort to just write the damned thing, so please excuse any
mistakes...
......................................................................
Murray Altheim http://kmi.open.ac.uk/people/murray/
Knowledge Media Institute
The Open University, Milton Keynes, Bucks, MK7 6AA, UK .
International lawyers and anti-war campaigners reacted with
astonishment yesterday after the influential Pentagon hawk
Richard Perle conceded that the invasion of Iraq had been illegal.
http://www.guardian.co.uk/uk_news/story/0,3604,1089042,00.html
"...if it's the case that international law doesn't permit
unilateral pre-emptive action without the authority of the
UN, then the defect is in international law."
Thank God for the death of the UN, by Richard Perle
http://www.guardian.co.uk/Iraq/Story/0,2763,918812,00.html