Hide vs Expose the type information in an RDF/XML instance?

Hi Folks,

Jon Hanna brought up a very interesting point when answering a prior
question that I had.  Consider an RDF/XML instance that contains a
Length property:

     <Length>
          <rdf:Description>
               <rdf:value>6300</rdf:value>
               <uom:units>kilometers</uom:units>
          </rdf:Description>
     </Length>

As you can see, the resource that comprises the contents of Length has
no type information explicitly specified.  One might imagine that the
resource is untyped.

However, Jon pointed out that just because no type is shown for the
resource doesn't mean that the resource has no type.  In fact, in the
RDF Schema it may define the resource to be of type Distance:

<rdf:Property rdf:ID="Length">
        <rdfs:domain rdf:resource="#River"/>
        <rdfs:range rdf:resource="#Distance"/>
</rdf:Property>

This leads me to my question: when designing an RDF/XML instance what is
Best Practice with regards to hiding/exposing type information?

For example, is this preferred:

     <Length>
          <rdf:Description>
               <rdf:value>6300</rdf:value>
               <uom:units>kilometers</uom:units>
          </rdf:Description>
     </Length>

Or, is this preferred:

     <Length>
          <Distance>
               <rdf:value>6300</rdf:value>
               <uom:units>kilometers</uom:units>
          </Distance>
     </Length>

In the first case, the type information is "hidden" in the RDF Schema. 
In the second case the type information is "exposed" in the RDF/XML
instance.  Which is preferred?  What are the tradeoffs?  /Roger

Received on Thursday, 20 February 2003 10:12:47 UTC