As Gerben presented in the call, we need to have two different descriptions for the demonstration to work. - Green book: topologies of networks - Red phonebook: Endpoints, a point where services are located
Below we’ll discuss how to create these.
For the description of the topologies in the demonstration and prototype we’re using a small subset of the (expected) NML standard. Since NML is not standardised yet, we use a custom namespace, dtox: http://www.glif.is/working-groups/tech/dtox#
This information model for the topology currently has four different classes:
The GOLE class is used to describes a network, and it’s location, using the lat and long relations. For example:
netherlight:gole a dtox:GOLE ;
rdfs:label "NetherLight" ;
dtox:lat "52.356100"^^xsd:float ;
dtox:long "4.952700"^^xsd:float .
The Node class describes nodes in the topology that you want to describe. Important properties of nodes are hasPort , to relate a Node to its Ports, hasSwitchMatrix for the SwitchMatrix and locatedAt to point to its GOLE . For example:
netherlight:f25s1t a dtox:Node ;
rdfs:label "F25 at Netherlight" ;
dtox:locatedAt netherlight:gole ;
dtox:hasSwitchMatrix netherlight:f25s1t-sm ;
dtox:hasPort netherlight:f25s1t_0-5_UvA ,
netherlight:f25s1t_0-11_CzechLight .
The Port class describes external connectivity of Nodes. It contains the most important information for determining how a path through the network can be taken. This is best explained using an example:
netherlight:f25s1t_0-5_UvA a dtox:Port , owl:NamedIndividual;
rdfs:label "F25S1T-0-5 (to UvA)" ;
dtox:maxCapacity "1250000000"^^xsd:float ;
dtox:connectedTo "http://uvalight.nl/uvalight.rdf#f10-5-0" ;
dtox:allowedLabelSet "[1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799]"^^xsd:string ;
The Port is given a human-readable label using the rdfs:label
property. Then we use maxCapacity to describe the maximum capacitycapacity. Similarly the allowedLabelSet describes the allowed labels. Later we can use availableCapacity and availableLabelSet to describe the currently available capacity and labels.
The connectedTo statement uses the full URI of the connected port to show that it is connected to an outside Port, and uses the full identifier of that Port.
Finally we have the SwitchingMatrix class to describe the internal functioning of a Node. We use the hasPort and canSwap relations to describe between which Ports it can switch connections, and whether the labels can be swapped while switching. We also use the same allowedLabelSet to describe the allowed labels for the SwitchMatrix so that it can also describe restrictions on that. Later we can also add a currentLabelSet to describe only the currently available labels. An example is below:
netherlight:f25s1t-sm a dtox:SwitchMatrix ;
rdfs:label "F25 SwitchMatrix" ;
dtox:hasPort netherlight:f25s1t_0-5_UvA ,
netherlight:f25s1t_0-11_CzechLight ;
dtox:canSwap false ;
dtox:allowedLabelSet "[1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799]"^^xsd:string ;
The Red Phonebook can only be created once there is a description of the network so that it is possible to pinpoint exactly where the service is located. A service in a Red Phonebook is defined by the port where it leaves the control of the network. So if a service is located somewhere on an outside network, just use the port where it leaves the network and you have no further control over it.
The services in the Automated GOLE demonstration and NSI plugfest are currently all also associated with a VLAN. So a service address should consist of both the URI of a port, and the VLAN label associated with the service.
For example, the address of the UvALight Pinger service is at
(http://uvalight.nl/owl.rdf#f10-0-0 , VLAN=1780)
The Red Phonebook is published as a Google Docs spreadsheet with one sheet per GOLE. Please duplicate the template (using the down arrow next to the Template sheet at the bottom ), rename it (rightclick on the sheet) and replace the values of the Template.
Red Phonebook: http://goo.gl/R08IK