Numerical Ranges/Sets in RDF?

First of all, http://www.w3.org/RDF/ only mentions the older
www-rdf-interest mailing list, not the newer semantic-web mailing list.
(Just under "Developer Resources"). Perhaps that link can be modified.

I have a question. I like to specify network "labels" in a set of RDF
statements, where a network "label" is a field of a network packet
header. For example, the VLAN (802.1Q) tag, the STS channel in SONET,
the wavelength in a WDM system, or the VPI or VCI in an ATM cell.

In particular, I like to make a statement listing the the allowed values
for a certain label type. For example, the allowed values for a VLAN tag
are 0...4095. Now I can make a statement like this:

#802.1Q     rdf:type            ex:LabelType
#802.1Q     ex:allowedValues    #all-vlans
#all-vlans  rdf:type            rdf:Bag
#all-vlans  rdf:_1              0
#all-vlans  rdf:_2              1
#all-vlans  rdf:_3              2
#all-vlans  rdf:_4              3
.....
#all-vlans  rdf:_4096           4095

Now you'll see my problem. 4099 statements is a bit much.

I like to specify ranges, perhaps something like this:
#802.1Q     rdf:type            ex:LabelType
#802.1Q     ex:allowedValues    #all-vlans
#all-vlans  rdf:type            ex:NumericalRange
#all-vlans  ex:minInclusive     0
#all-vlans  ex:maxInclusive     4095
#all-vlans  ex:interval         1

That's down to 6 statements.

Has anyone down something like this before? It occurs to me that the
"minInclusive", "maxInclusive", "minExclusive" and "maxExclusive" XML
elements in the XML Shema and Datatype (XSD) is nearly perfect. However,
I couldn't find those XML elements ported to RDF properties (I could
only find usage of the simple types in XSD in RDF).

Is there a good way to define valid values within a range? It should be
clear that 3.14 is not a valid VLAN ID. Perhaps I can add a sstatement like:
#all-vlans  rdf:datatype        xsd:integer
or:
#all-vlans  ex:interval         1

My final goal would be to allow efficient (in terms of statement count)
description of numerical sets. For example, [1..4, 8, 16..37] could become:

ex:NumericalRange  rdfs:subClassOf     rdf:Bag
#myintrange        rdf:type            ex:NumericalRange
#myintrange        rdf:_1              genid:1
#myintrange        rdf:_2              genid:2
#myintrange        rdf:_3              genid:3
genid:1            xsd:minInclusive    1
genid:1            xsd:maxInclusive    4
genid:2            rdf:value           8
genid:3            xsd:minInclusive    16
genid:3            xsd:maxInclusive    37

Any pointers to similar work, or advise on how to define this is kindly
appreciated.

With kind regards,
Freek Dijkstra

Received on Friday, 8 December 2006 23:39:46 UTC