Re: Modelling collections of elements of a specific type in RDF/S

Ron Lake wrote:
> 
> I am involved in the development of a specification for encoding
> spatial information in XML which has now reached public RFC status in
> the OGC (OpenGIS Consortium). I think we could make good use of RDF/S
> to model our spatial information. I have looked at the RDFMS and RDFS
> specifications and have a few questions, perhaps you
> could help me with:
> 
>   1. How do I model a collection of elements of a particular type ?  I
>      would like to say for example that Polygon is a Property with a
>      range which is a sequence of LinearStrings, but I have no
>      restriction on the number of such strings.

As I understand it; if a property has LinearStrings as its range, it
can also be a container with LinearStrings. The type of container
can't be specified in the schema specification. Some rules have to be
stated outside RDF.

>   2. I would like to say that LinearString is a property whose range
>      is a sequence of Coordinate Lists which are literals.
>   3. I would also like to say that Polygon is a Class (actually a
>      subclass of Geometry) as well as being a property.
>   4. All of the Geometry types should be Properties of a Feature.

> 
> Here is a rough start:

With my changes. Properties starts with lower case. Classes starts
with upper case. Just for clarity. It could be something like this...


<rdf:Property    id = "cList">
    <rdfs:range resource = "rdfs:Literal"/>
    <rdfs:domain resource = "#CList"/>
</rdf:Property>

<rdfs:Class id="CList">
    <rdfs:label>CList</rdfs:label>
    <rdfs:comment>CList is a list of coordinate tuples.  Coordinates
                  in the tuple are separated commas.  Tuples are 
                  separated by whitespace</rdfs:comment>
</rdfs:Class>

<rdf:Property id = "lineString">
    <rdfs:range resource = "#CList"/>
    <rdfs:domain resource = "#LineString"/>
</rdf:Property>

<rdfs:Class id="LineString">
    <rdsf:subClassOf  resource = "Geometry"/><
    <rdfs:label>LineString</rdfs:label>
    <rdfs:comment>Line string is a piecewise linear curve defined by
                  an asscoiated CList</rdfs:comment>
/rdfs:Class>

<rdf:Property id = "polygon">
    <rdfs:range resource = "#LineString"/>
    <rdfs:domain resource = "Polygon"/>
</rdf:Property>

<rdfs:Class id="Polygon">
    <rdfs:subClassOf  resource = "#Geometry"/>
    <rdfs:label>Polygon</rdfs:label>
</rdfs:Class>


Polygon --polygon--> LineString --lineString--> CList --cList--> Literal


And with Sequences:

Polygon --polygon--> Seq --_1--> LineString 
                         --_2-->                              
                         --_3-->


     --lineString--> Seq --_1--> CList --cList--> Seq --_1--> Literal
                         --_2-->                      --_2-->
                         --_3-->                      --_3-->



But I havent given any thought about how this is going to be
used, since I don't entierly understand your comments. But I think
that the names should be changed.


-- 
/ Jonas  -  http://paranormal.o.se/perl/proj/rdf/schema_editor/

Received on Saturday, 18 December 1999 16:18:57 UTC