[Nml-wg] Serial compound relations
Freek Dijkstra
Freek.Dijkstra at sara.nl
Mon Dec 13 10:53:59 CST 2010
>> I choose some arbitrary names for some attributes; I'm happy to discuss
>> that in another thread.
I guess I should rename this thread to "other" ;)
Jason Zurawski wrote:
>> <nml:link type="link" nm:id="urn:ogf:network:example.net:pathAC">
>> <nml:relation type="serialcompound" cl:type="partial">
>> <nml:segment nm:idRef="urn:ogf:network:example.net:segmentAB"/>
>> </nml:relation>
>> </nml:link>
>
> Is there a reason you choose to introduce a new element (segment)
> instead of using link? I think we are all aware of the 'segment vs
> link' battles of past OGFs that have spanned many different working
> groups, and I was under the impression that the outcome was to use
> 'link' for all connections instead of switching between names.
I meant both to be a "nml:link" instance.
My example is indeed confusing, and comes from my background in using
RDF/XML.
A better syntax proposal is indeed (note that nml:segment is replaced by
nml:link, and nm:idRef is replaces by nm:id):
<nml:link type="link" nm:id="urn:ogf:network:example.net:pathAC">
<nml:relation type="serialcompound" cl:type="partial">
<nml:link nm:id="urn:ogf:network:example.net:segmentAB"/>
</nml:relation>
</nml:link>
In case you are curious why I created such a convoluted example, read
on. (it's off-topic for the NML-WG though, and you may want to skip it)
+------------------------------------------------+
| Link |
+------------------------------------------------+
| id = urn:ogf:network:example.net:pathAC |
| type = "link" |
| ... |
+------------------------------------------------+
|
|
| +------------------------------+
| | Relation |
| +------------------------------+
|--| type = "serialcompound" |
| | cl:type = "partial" |
| | ... |
| +------------------------------+
|
|
+------------------------------------------------+
| Link |
+------------------------------------------------+
| id = urn:ogf:network:example.net:segmentAB |
| ... |
+------------------------------------------------+
In RDF, only objects can have properties. properties can not. So if I
want to describe the above, I need to make both Links and Relations an
object. The relation between two objects is always with a named
attribute, so for RDF, one needs to create for the relation between a
Link and a Relation object, and between a Relation and Link object, as in:
<nml:Link rdf:about="urn:ogf:network:example.net:pathAC">
<nml:linktype>link</nml:linktype>
<nml:hasrelation> <!-- attribute -->
<nml:Relation>
<nml:relationtype>serialcompound</nml:relationtype>
<cl:type>partial</cl:type>
<nml:segment
rdf:resource="urn:ogf:network:example.net:segmentAB"/>
</nml:Relation>
</nml:hasrelation>
</nml:Link>
(observe that rdf:about is the same as nm:id, and rdf:resource is the
same as nm:idRef)
In XML, this can be a lot shorter, so I picked XML for brevity, but
indeed forget to use the object name (nml:Link) instead of the made-up
attributed name (nml:segemnt).
Sorry for the confusion,
Freek
More information about the nml-wg
mailing list