
W dniu 2012-07-18 16:11, Aaron Brown pisze:
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".
So far I haven't thought about inheritance while using idRef (only referencing) but now I see it's interesting approach and may be useful. Free: Again, why is it more useful than the use of id for X in TS2? Presence of idRef indicates clearly that a parser has to find a definition somewhere else (in the same file or different storage, also different domain).
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?
Right. Does an empty element with id mean that it is created in a wrong way or relevant content is somewhere else? idRef says clearly that definition is somewhere else. Roman
Cheers, Aaron
Freek
_______________________________________________ nml-wg mailing list nml-wg@ogf.org <mailto: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/