
On Jul 18, 2012, at 10:04 AM, Freek Dijkstra wrote:
On 18-07-2012 15:51, Roman Łapacz wrote:
To me IdRef is only for referencing/reusing or chaining existing elements. That's all. Without inheritance. Simple use case: a resource X is defined in a topology storage/service TS1. X is pointed in a topology storage/service TS2 (e.g. to describe multi-domain link). Use of IdRef for X in TS2 is very useful.
So you want to use idRef ONLY for pointers to another document, or also pointers within the same document?
Again, why is it more useful than the use of id for X in TS2?
In other words, in the following exactly, exactly what information is missing (and hence, what information would like to add to RDF that is now missing because RDF is missing the idRef)?
<nml:BidirectionalLink id="urn:ogf:network:example.net:2012:mylink"> <nml:Link id="urn:ogf:network:example.net:2012:mylink-a-to-b" /> <nml:Link id="urn:ogf:network:example.net:2012:mylink-b-to-a" /> </nml:BidirectionalLink> <nml:Link id="urn:ogf:network:example.net:2012:mylink-a-to-b"> <nml:name>A to B</nml:name> </nml:Link> <nml:Link id="urn:ogf:network:example.net:2012:mylink-b-to-a"> <nml:name>B to A</nml:name> </nml:Link>
Sorry to drag this on, but I think that the standard should not only say it is useful, but also why it is useful, and how an implementation should behave differently upon seeing idRef instead of id. (I presume there is a difference in behaviour, otherwise they are the same thing and one can be removed.)
I think the difference is in saying "i've created a new element right here with id X" vs. "i'm referencing an element with id X that is defined elsewhere". I think this is where it dovetails with inheritence. It's basically letting people know "i'm defining 0 or more attributes about this element, but you need to go elsewhere to find the rest of the attributes". e.g. in your example above. Let's say I'm parsing the BidirectionalLink element. Did the Link elements get defined inline, or do I need to look up their definitions elsewhere (possibly in the same document, possibly in some other document)? What if they're partially defined (e.g. the name and possibly other attributes are included, but not bandwidth)? Does the bandwidth attribute that I'm looking for not exist, or should I try to find it in a definition elsewhere? Cheers, Aaron
Freek
_______________________________________________ nml-wg mailing list nml-wg@ogf.org https://www.ogf.org/mailman/listinfo/nml-wg
ESCC/Internet2 Joint Techs July 15-19, 2012 - Palo Alto, California Hosted by Stanford University http://events.internet2.edu/2012/jt-stanford/