
Jason Zurawski wrote:
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>
I still think this is a little off. I would assume that 'segmentAB' belongs to someone already? If this is the case, it's defined already, so you would use an idRef (as a pointer) in the second enclosed link instead of an id. If it is not already defined, than the use of 'id' is appropriate, but brings up another issue of defining links within relations/other links. We have avoided this in the past.
Actually, it is still not quite clear to me why there is a need to distinguish between id and idRef. If two objects have with the same value for the id attribute, it is clear they refer to the same thing. (Obviously I can imagine a few reasons to distinguish between id and idRef. For example (1) RDF has them both -with different names- for syntaxtic reasons; (2) id is used by authoritative sources, while idRef is used by non-authoratitive sources; (3) id is used when the object is defined the first time in a document, and idRef is used subsequently. Neither of these reasons is very convincing to me; perhaps you can elaborate a bit more what distinction you see and why this distinction is required.)
I would make the example as so (again, removing the use of the attribute namespaces since I also feel this is really confusing things):
<nml:link id="urn:ogf:network:example.net:pathAC"> <nml:relation type="serialcompound"> <nml:link idRef="urn:ogf:network:example.net:segmentAB"/> </nml:relation> </nml:link>
Lastly the inclusion of the 'type=partial' is still rather foreign to me, so I omitted it. Can you explain why you need to do this?
In the above I was trying to describe the following information: "urn:ogf:network:example.net:segmentAB is a segment of the end-to-end link urn:ogf:network:example.net:pathAC, but I don't know the names of other segments of this path". This seems typical information that the domain who provisioned urn:ogf:network:example.net:segmentAB might say. The addition of the word "partial" was trying to emphasis that, but I agree that it can be conveyed with other means (such as the lack of a "count" attribute in the above, meaning that the list may be incomplete.) Regards, Freek