This is a static archive of the previous Open Grid Forum GridForge content management system saved from host forge.ogf.org file /sf/sfmain/do/go/artf6537?selectedTab=comments at Sun, 06 Nov 2022 22:33:38 GMT SourceForge : artf6537: hasTopology implicitly defined?

Project Home

Tracker

Documents

Tasks

Source Code

Discussions

File Releases

Wiki

Project Admin

NML-WG Homepage
Search Tracker
Project: NML-WG     Trackers > Schema Progress > View Artifact
Artifact artf6537 : hasTopology implicitly defined?
Tracker: Schema Progress
Title: hasTopology implicitly defined?
Description:
When one topology is contained within the other, the default implicit relation is hasTopology:

 <nml:Topology id="urn:ogf:network:nordu.net:2012:NORDUnet">
   <nml:Topology id="urn:ogf:network:nordu.net:2012:NORDUnet:Scandinavia"/>
 </nml:Topology>

is equivalent to

 <nml:Topology id="urn:ogf:network:nordu.net:2012:NORDUnet">
   <nml:Relation type="http://schemas.ogf.org/nml/2012/10/relations#hasTopology">
     <nml:Topology id="urn:ogf:network:nordu.net:2012:NORDUnet:Scandinavia"/>
   </nml:Relation>
 </nml:Topology>

The following rules apply to implicit relations:
* A client SHOULD leave out the implicit relation when writing NML in XML format, but instead use a direct child element
.
* parsers MUST accept the implicit relation
* parsers SHOULD accept the explicit relation

See artf6547 for a full list of implicit relations.

See: https://forge.ogf.org/integration/viewcvs/viewcvs.cgi/*checkout*/201203-subtopology/hasTopology.xml?rev=20&content-

type=text%2Fplain&system=exsy1001&root=nml-examples
Submitted By: Jeroen van der Ham
Submitted On: 03/14/2012 10:21 AM EDT
Last Modified: 11/30/2012 7:54 AM EST
Closed: 11/30/2012 7:54 AM EST

Status / Comments Change Log Associations Attachments (1)  
Status  
Status:* Completed
Category:* XML syntax
Priority: * 4
Assigned To: * None
Comments
Jeroen van der Ham: 11/30/2012 7:54 AM EST
  Action: Update
Closed set to 11/30/2012
Status changed from Last Call to Completed
Jason Zurawski: 08/16/2012 7:26 AM EDT
  Comment:
This is fine by me in its current state
  Action: Update
Freek Dijkstra: 08/09/2012 12:02 PM EDT
  Comment:
Typo: 
"A client SHOULD leave out the implicit relation when writing NML in XML format, but instead use a direct child element"
should read:
"A client SHOULD leave out the explicit relation when writing NML in XML format, but instead use a direct child element"
or better:
"A client SHOULD leave out the explicit relation when writing NML in XML format, but instead use the indirect form leaving out the Relation element."
  Action: Update
Freek Dijkstra: 08/08/2012 9:17 AM EDT
  Action: Update
Category changed from – Network / Topology / Domain to XML syntax
Status changed from Under discussion to Last Call
Freek Dijkstra: 08/08/2012 9:16 AM EDT
  Action: Update
Description changed from
When one topology is contained within the other, the default implicit relation is hasTopology:

<nml:Topology id="a">
  <nml:Topology id="a:b"/>
</nml:Topology>

See: https://forge.ogf.org/integration/viewcvs/viewcvs.cgi/*checkout*/201203-subtopology/hasTopology.xml?rev=20&content-
type=text%2Fplain&system=exsy1001&root=nml-examples
to
When one topology is contained within the other, the default implicit relation is hasTopology:

 <nml:Topology id="urn:ogf:network:nordu.net:2012:NORDUnet">
   <nml:Topology id="urn:ogf:network:nordu.net:2012:NORDUnet:Scandinavia"/>
 </nml:Topology>

is equivalent to

 <nml:Topology id="urn:ogf:network:nordu.net:2012:NORDUnet">
   <nml:Relation type="http://schemas.ogf.org/nml/2012/10/relations#hasTopology">;
     <nml:Topology id="urn:ogf:network:nordu.net:2012:NORDUnet:Scandinavia"/>
   </nml:Relation>
 </nml:Topology>

The following rules apply to implicit relations:
* A client SHOULD leave out the implicit relation when writing NML in XML format, but instead use a direct child element
.
* parsers MUST accept the implicit relation
* parsers SHOULD accept the explicit relation

See artf6547 for a full list of implicit relations.

See: https://forge.ogf.org/integration/viewcvs/viewcvs.cgi/*checkout*/201203-subtopology/hasTopology.xml?rev=20&content-

type=text%2Fplain&system=exsy1001&root=nml-examples

Jeroen van der Ham: 08/08/2012 4:48 AM EDT
  Comment:
Fine by me.
  Action: Update
Freek Dijkstra: 07/11/2012 4:56 PM EDT
  Comment:
As for the forbidden/allowed discussion, all participants so far choose "allowed, but deprecated" over "forbidden".

Thus the option is: "A client SHOULD leave out the implicit relation when writing NML in XML format, but instead use a direct child element".

(This in contrast to the forbidden option, which would have been: "A client MUST leave out the implicit relation when writing NML in XML format, but 
instead use a direct child element").

SHOULD or RECOMMEND as per RFC 2119 means a client may still write the relation explicitly, as long as the implications are duly considered.

Furthermore, I am going to write that:

parsers MUST accept the implicit relation
parsers SHOULD accept the explicit relation

(I strongly disagree with Jeroen's interpretation of 29.03.2012 here, as it encourages incompatibility -- a client may write it, but a parser should 
not accept it is in my view bad protocol design)
  Action: Update
Jeroen van der Ham: 03/29/2012 12:07 PM EDT
  Comment:
I say that it should be deprecated, meaning:

parsers MUST accept the implicit relation
parsers SHOULD NOT accept the explicit relation

clients SHOULD write using the implicit relation.

Meaning that if you really really want to, you can use the explicit relation, but you're not guaranteed to have support in all parsers.
  Action: Update
Freek Dijkstra: 03/28/2012 10:10 AM EDT
  Action: Update
Category changed from Procedural to – Network / Topology / Domain
Status changed from New to Under discussion
Freek Dijkstra: 03/28/2012 9:56 AM EDT
  Comment:
I agree with Jason on 1b.

Just for clarification: do we need to write that a client that creates NML SHOULD use implicit relations for these two, and that a client that parses 
NML MUST be able to accept both syntaxes?
  Action: Update
Jason Zurawski: 03/28/2012 9:39 AM EDT
  Comment:
I prefer:

1b) Explicit hasNode and hasTopology relation is allowed in NML, 
    but deprecated in favour of an implicit relation.
  Action: Update
Freek Dijkstra: 03/28/2012 8:36 AM EDT
  Comment:
yes, I meant in XML. Sorry for the confusion.
  Action: Update
Jeroen van der Ham: 03/28/2012 8:28 AM EDT
  Comment:
I'm assuming that you mean the following:

> Open question (1):
> It is unclear if in XML, the relation MUST be implicit, or MAY be implicit.

(in RDF relations are always explicit)
  Action: Update
Freek Dijkstra: 03/28/2012 8:20 AM EDT
  Comment:
Here is the full proposal with one open issue:


Implicit relations
==================

> * implicit hasTopology relation between Topology and (sub)topology
>   https://forge.ogf.org/sf/go/artf6537
>   https://forge.ogf.org/svn/repos/nml-examples/201203-subtopology/hasTopology.xml
>   (proposal #2 and optional #1)
> 
> * implicit hasNode relation between Topology and Node
>   (no artifact created)
>   https://forge.ogf.org/svn/repos/nml-examples/201203-subtopology/hasNode.xml
>   (proposal #1 and optional #3)

Summary: We need to relate Topology with a Node (meaning that the topology contains a Node), and related a Topology with a Topology (meaning that the 
topology contains a subtopology).

Proposal: In XML, we allow (1) implicit relations; in RDF it is required to use an explicit relation.

Example:

XML:
<nml:Topology id="urn:ofg:network:example.net:2012:mynetwork">
  <nml:Node id="urn:ofg:network:example.net:2012:mynode1">
    ...
  </nml:Node>

  <nml:Topology id="urn:ofg:network:example.net:2012:location1network">
    ...
  </nml:Topology>
</nml:Topology>

RDF:
@prefix exnet <urn:ofg:network:example.net:2012> .
exnet:mynetwork  nml:hasNode      exnet:mynode1
exnet:mynetwork  nml:hasTopology  exnet:location1network


Open question (1):
It is unclear if in RDF, the relation MUST be implicit, or MAY be implicit.

Thus: it is clear that the above is allowed. But it is unclear if the following if also allowed or explicitly forbidden:

<nml:Topology id="urn:ofg:network:example.net:2012:mynetwork">
  <nml:Relation type="hasNode">
    <nml:Node id="urn:ofg:network:example.net:2012:mynode1">
      ...
    </nml:Node>
  </nml:Relation>
  
  <nml:Relation type="hasNode">
    <nml:Topology id="urn:ofg:network:example.net:2012:location1netw">
     ...
    </nml:Topology>
  </nml:Relation>
</nml:Topology>

Choices:
1a) Explicit hasNode and hasTopology relation is forbidden in NML
1b) Explicit hasNode and hasTopology relation is allowed in NML, 
    but deprecated in favour of an implicit relation.
  Action: Update
Jason Zurawski: 03/28/2012 7:22 AM EDT
  Comment:
Comments from that email thread, to the examples.  
  Attachment: 20120311-nml_comments.txt (11.45 KB)
  Action: Update
Added an attachment.
Jason Zurawski: 03/28/2012 7:15 AM EDT
  Comment:
Since I remember arguing this already (and don't want to do it again) here are my comments from the email thread of a couple of weeks ago:

Jason:

>>    - Some things have an explicit parent/child relationship already (e.g.
>> we know a topology contains nodes, ports, links).  Using a relationship
>> to say 'hasNodes' or something similar is redundant, we know they are
>> involved with the topology due to the nature of the schema.

Freek:

> Agreed that it is not necessary. I did it for consistency. E.g. if
> Topology ->  Topology, Node ->  Port, Node ->  Service are all explicit
> (hasTopology, hasPort/hasOutboundPort, hasService), it makes sense to
> also use hasNode. Or we define some others redundant too. (e.g. a
> Service in a Node always implies hasService, a Topology in a Topology
> always implies a hasTopology, etc.)

Jason:

This really bashes the argument of needing a well defined schema though.  If everything is related to other things via relationships (and we never use
 the explicit parent/child), we end up with this:

 - Node, Port, Topology, Link, etc. etc. don't contain anything except relationships

 - Relationships allow 'any element' to be inside

 - 'Rules' are all semantic for each relationship type

 - schematic checking is useless

Wasn't it you who argued a couple of months ago that we need well defined schema so that we know what each element can/may contain :) ?

I agree with your line of reasoning that is hast to be consistent in our use of parent/child vs relationships, and this was a minor mistake on my 
examples from Sept as I read them now.

At least in my mind, I would *like* to interpretation the relationship for logical or fuzzy concepts:

 - Serial compound pushes together two links

 - two ports are pushed together into a bidirectional

 - a switching service has inbound and outbound ports associated with it

 - a link needs to describe the in vs out ports

I would claim that we don't need these in a relation, and this may force some example changes:

 - a switch won't need 'hasports' by itself sine we know the switch has the ports via parent/child.

 - A switch can have 'hasinbound' or 'hasoutbound' port relations, as this adds more value

 - A topology with 'hasnodes' doesn't seem necessary, we know it has nodes (and ports and links).

 - A node with 'providesService', the service could be a direct parent/child (unless its special maybe, I dont have a good use case)

I could be wrong of course, but this seems to make sense as I type it. We should try to use explicit things when we can. 
  Action: Update
Jeroen van der Ham: 03/28/2012 5:30 AM EDT
  Comment:
This is not just for Topology, but also for other implicit relations, such as hasNode, hasPort and others.
RDF/OWL can't use the same containment construct, but has to use explicit relations.

IIRC the explicit relations are used in the XML notation in places where you would use an idRef. This would mean that there are then two ways to 
express that "nodeX hasPort portY".
  Action: Update
Jason Zurawski: 03/27/2012 7:26 PM EDT
  Comment:
If topology currently allows another topology to be a direct child, I see no reason to use a relation.  If this isn't a allowed, a relation (
hasTopology) is fine by me
  Action: Update
Jeroen van der Ham: 03/14/2012 2:12 PM EDT
  Action: Update
Description changed from
When one topology is contained within the other, the default implicit relation is hasTopology:

<nml:Topology id="a">
  <nml:Topology id="a:b"/>
</nml:Topology>

See: https://forge.ogf.org/integration/viewcvs/viewcvs.cgi/*checkout*/201203-subTopology/hasTopology.xml?rev=20&content-
type=text%2Fplain&system=exsy1001&root=nml-examples
to
When one topology is contained within the other, the default implicit relation is hasTopology:

<nml:Topology id="a">
  <nml:Topology id="a:b"/>
</nml:Topology>

See: https://forge.ogf.org/integration/viewcvs/viewcvs.cgi/*checkout*/201203-subtopology/hasTopology.xml?rev=20&content-
type=text%2Fplain&system=exsy1001&root=nml-examples

Jeroen van der Ham: 03/14/2012 2:11 PM EDT
  Action: Update
Description changed from
When one topology is contained within the other, the default implicit relation is hasTopology:

<nml:Topology id="a">
  <nml:Topology id="a:b"/>
</nml:Topology>
to
When one topology is contained within the other, the default implicit relation is hasTopology:

<nml:Topology id="a">
  <nml:Topology id="a:b"/>
</nml:Topology>

See: https://forge.ogf.org/integration/viewcvs/viewcvs.cgi/*checkout*/201203-subTopology/hasTopology.xml?rev=20&content-
type=text%2Fplain&system=exsy1001&root=nml-examples

Jeroen van der Ham: 03/14/2012 10:21 AM EDT
  Action: Create


 
 


The Open Grid Forum Contact Webmaster | Report a problem | GridForge Help
This is a static archive of the previous Open Grid Forum GridForge content management system saved from host forge.ogf.org file /sf/sfmain/do/go/artf6537?selectedTab=comments at Sun, 06 Nov 2022 22:33:38 GMT