Notes on interpreted values vs interpretation properties.

This is how I'd address the issue of supplying a location for a resource using multiple reference systems:


<rdf:Description>
  <foaf:name>Albergho Hostel</foaf:name>
  <dc:coverage>
      <geom2d:point>
         <map:srs resource=="http://nurl.org/0/geography/SRSCatalog/wgs84">
         <geom2d:y>-34.05331</geom2d:x>
        <geom2d:x>23.37181</geom2d:x>
     </geom2d:Point>
 </dc:coverage>
  <dc:coverage>
      <geom2d:point>
         <map:srs resource="http://nurl.org/0/geography/SRSCatalog/wgs72>
         <geom2d:y>-34.05334</geom2d:x>
        <geom2d:x>23.37181</geom2d:x>
     </geom2d:Point>
  </dc:coverage>
</rdf:Description>

That is, I would certainly agree that each geom2d:Point can have only one srs associated with it (the srs that assigns a denotation on the earth's surface) but the same resource (like the Albergho Hostel) can be assigned a location in many ways, each using a different reference system. Also, in the Owl world, one might throw in statements like:


<geom2d:Point>
    <map:srs resource="="http://nurl.org/0/geography/SRSCatalog/wgs84">
    <geom2d:y>-34.05331</geom2d:x>
    <geom2d:x>23.37181</geom2d:x>
    <owl:sameAs>
        <geom2d:Point>
            <map:srs resource="=http://nurl.org/0/geography/SRSCatalog/wgs72>
            <geom2d:y>-34.05334</geom2d:x>
            <geom2d:x>23.37181</geom2d:x>
        </geom2d:Point>
   </owl:sameAs>
</geom2d:Point>

I'll try to state this approach more generally in terms of units of any kind (a unit being something that maps an abstract value into some concrete space). Interpreted values are things like geom2d:Point, which have a unit (here srs) as a property. For length, one would might have the class physical:Length with properties :units and :magnitude.

Instead of

:building :height [ :magnitute "20"; :units :meter]. 

one would would have something like

:building :height [a physical:Length; :magnitude "20"; :units :meter].
And then:

building :height [a physical:Length; :magnitude "20"; :units :meter];           
         :height [a physical:Length; :magnitude "2000; :units :centimeter].

In the interpretation properties approach, one pushes the units into the property; that is, one defines a set of properties parameterized by the units (in geography, srs's).Of course, this works too. However, some advantages result from positing units as resources rather than burying them opaquely in libraries of properties. First, it brings them out where they can be the subjects of other RDF statements, such as

<http://nurl.org/0/geography/SRSCatalog/wgs72> dc:author :whoeveritwas.
Second, unit resources can also be reused. Examples:

(1) Defining the projection of a map,

:mymap a map:Map; map:srs <http://nurl.org/0/geography/SRSCatalog/wgs72>.

(2) Defining the geographical meaning of box rather than a point:

:mybox a geom2d:Box; 
       geom2d:xmin 120;geom2d:xmax 130;
       geom2d:ymin 30;geom2d:ymax 40;       
       map:srs <http://nurl.org/0/geography/SRSCatalog/wgs72>.
In the interpreted properties approach, I'd have to define separate wgs72xmin,wgs72xmax,wgs72ymin,wgs72ymax,wgs84xmax, ..... That is, N * M properties would be required, where N is the number of uninterpreted properties (xmax,ymax..)and M is the number of units (100s for geographic projections). This gets out of hand quickly, I think.

Chris Goad
cg@mapbureau.com
April 17,2003