W3C home > Mailing lists > Public > www-rdf-interest@w3.org > June 2001

Re: [topicmapmail] RDF and TopicMaps: an Exercise in Convergence

From: Lars Marius Garshol <larsga@garshol.priv.no>
Date: 04 Jun 2001 14:56:45 +0200
To: <topicmapmail@infoloom.com>, <www-rdf-interest@w3.org>
Message-ID: <m3snhgcsj6.fsf@lambda.garshol.priv.no>

* Graham Moore
| 
| I don't think this is the complete solution to the integration
| issue.  However, I think that this paper could help focus some of
| the discussions.

I agree that the paper is valuable as a starting point for a
discussion of the relationship between topic maps and RDF, and I also
agree that it is not a complete solution to the problem.

As I see it, RDF is a lower-level data model than that of topic maps,
in that is more generic. Consequently, RDF leaves a number of
distinctions to be made by the application that in topic maps are part
of the model itself. This means that to map from RDF to topic maps one
needs to provide extra information about how RDF constructs in a
particular RDF application map to topic map constructs.

I think your proposed solution, extending the topic map model by
adding arcs, only goes part-way towards solving the problem, and I
also think it does it in the wrong way. An arc is just a limited form
of association, and I see no reason to include arcs in the topic map
model when we already have something more powerful and general.


When mapping RDF triples to topic map constructs, I think one needs to
consider carefully all the possible forms of RDF triples, and then
provide additional information that allows a processor to produce the
correct topic map results.

The subject, as I understand the RDF model, is always a resource,
represented by a URI. In a topic map, this must be a topic (in order
for the predicate and object to be applied to it), and the URI may be
the subject address of the topic, a subject indicator, or an
occurrence.

The object, again according to my understanding of RDF, can be either
a string literal or a resource. If it is a resource, that resource can
either be represented by a topic in the topic, or it may be an
ordinary pedestrian resource that is an occurrence of some topic. If
the object is a string literal, that string literal can represent a
topic (through its name) or it can be an occurrence value.

The key to knowing how to interpret the subject and object is the
predicate, I think, since that tells us what the relationship between
the subject and the object is.  I think an RDF application to topic
map mapping can take a form such as this:

  For every "Creator" predicate, the subject is an addressable
  resource, of which the object is an occurrence value of the type
  "Creator". 

This would give a mapping from

  (http://www.w3.org/Home/Lassila, Creator, Ora Lassila)

to

  <topic ...>
    <subjectIdentity>
      <resourceRef xlink:href="http://www.w3.org/Home/Lassila"/>
    </subjectIdentity>

    <occurrence>
      <instanceOf><topicRef xlink:href="#creator"/></instanceOf>
      <resourceData>Ora Lassila</resourceData>
    </occurrence>
  </topic>


An alternative might be:

  For every "Creator" predicate, the subject is an addressable
  resource, while the object is the name of a topic of type
  "Person". The relationship between them is that there is an
  association of type "created-by" between them, with the subject
  playing the role "resource" and the object the role "creator".

This would give a mapping from

  (http://www.w3.org/Home/Lassila, Creator, Ora Lassila)

to

  <topic id="id1">
    <subjectIdentity>
      <resourceRef xlink:href="http://www.w3.org/Home/Lassila"/>
    </subjectIdentity>
  </topic>

  <topic id="id2">
    <baseName>
      <baseNameString>Ora Lassila</baseNameString>
    </baseName>
  </topic>

  <association>
    <instanceOf><topicRef xlink:href="#created-by"/></instanceOf>

    <member>
      <roleSpec><topicRef xlink:href="#creator"></roleSpec>
      <topicRef xlink="#id2"/>
    </member>

    <member>
      <roleSpec><topicRef xlink:href="#resource"></roleSpec>
      <topicRef xlink="#id1"/>
    </member>
  </association>


Coming up with an XML-based syntax for an RDF-to-topic map mapping
following the ideas presented here shouldn't be hard.  The problem
with this predicate-based approach is, of course, that predicates may
be inconsistently used in an RDF application, in which case the whole
mapping is likely to become fairly difficult. So how well this would
work for real RDF applications I must admit that I don't know.

BTW: I kept the cross-posting to rdf-interest. I hope that is OK.  If
not, please let me know.

--Lars M.
Received on Monday, 4 June 2001 08:57:03 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:51:49 GMT