GFD 206
GFD 206
May 2013
Copyright Notice
Copyright c Open Grid Forum (2008-2013). Some Rights Reserved. Distribution is unlim-
ited.
Abstract
This document describes a set of normative schemas which allow the description of computer
network topologies.
Contents
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1 Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Notational Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Diagrammatic Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 NML Base Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1 Network Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2 Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.3 Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.4 Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1
GFD-R-P.206 May 2013
2.1.5 Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.6 Switching Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.7 Adaptation Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.8 De-adaptation Service . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.9 Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.10 Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.11 Port Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.12 Link Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.13 Bidirectional Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.14 Bidirectional Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.15 Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.16 Lifetime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.17 Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.18 Label Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.19 Ordered List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.20 List Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 canProvidePort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 existsDuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.3 hasInboundPort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.4 hasLabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.5 hasLabelGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.6 hasLink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.7 hasNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.8 hasOutboundPort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.9 hasPort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.10 hasService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.11 hasTopology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.12 implementedBy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.13 isAlias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.14 isSerialCompoundLink . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.15 isSink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.16 isSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.17 item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.18 locatedAt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.19 next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.20 providesLink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.21 providesPort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2
GFD-R-P.206 May 2013
2.4 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1 Schema Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2 Instance Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.1 Lexical Equivalence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.2 Further Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.3 Interpreting Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.4 Network Object Attribute Change . . . . . . . . . . . . . . . . . . . . . 31
3.3 Unnamed Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1 XML Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 OWL RDF/XML Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 Combining Object Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4 Ordered Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.1 Examples in XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2 Examples in OWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3 Conceptual Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3.1 Topology and Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3.2 Hierarchical Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3.3 Links, Segments and Paths . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3.4 Patch Panel and Media Convertor . . . . . . . . . . . . . . . . . . . . . 48
5.3.5 VLAN and Broadcast Medium . . . . . . . . . . . . . . . . . . . . . . . 48
5.3.6 Configuration and Potential Capability . . . . . . . . . . . . . . . . . . 49
5.3.7 Versioning and Lifetime . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6 Security Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
8 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
9 Intellectual Property Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
10 Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
11 Full Copyright Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Appendix A XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Appendix B OWL Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Appendix C Relation to G.800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Normative References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Informative References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3
GFD-R-P.206 May 2013
1 Introduction
This document describes the base schema of the Network Markup Language (NML). Sec-
tion 2.1 defines the NML classes and their attributes and parameters. Section 2.2 describes
the relations defined between NML classes.
An NML network description can be expressed in XML[XML], and RDF/XML[RDF-XML]
syntax. Section A describes the XSD schema for the XML syntax. Section B describes the
OWL 2 schema for the RDF/XML syntax.
These basic classes defined in this document may be extended, or sub-classed, to represent
technology specific classes.
Section 5 provides example use cases. This section is informative. Only sections 2, 3, 4, and
appendices A and B are normative and considered part of the recommendation.
Appendix C is informative and explains the relation between terms defined in this document
and those defined in the ITU-T G.800 recommendation [G.800].
1.1 Context
The Network Markup Language (NML) has been defined in the context of research and
education networks to describe so-called hybrid network topologies. The NML is defined as
an abstract and generic model, so it can be applied for other network topologies as well. See
[GFD.165] for an detailed overview including prior work.
1.2 Scope
The Network Markup Language is designed to create a functional description of multi-
layer networks and multi-domain networks. An example of a multi-layered network can
be a virtualised network, but also using different technologies. The multi-domain network
descriptions can include aggregated or abstracted network topologies. NML can not only
describe a primarily static network topology, but also its potential capabilities (services) and
its configuration.
NML is aimed at logical connection-oriented network topologies, more precisely topologies
where switching is performed on a label associated with a flow, such as a VLAN, wavelength
or time slot. NML can also be used to describe physical networks or packet-oriented networks,
although the current base schema does not contain classes or properties to explicitly deal
with signal degradation, or complex routing tables.
NML only attempts to describe the data plane of a computer network, not the control plane.
4
GFD-R-P.206 May 2013
It does contain extension mechanism to easily tie it with network provisioning standards and
with network monitoring standards.
Finally, this document omits a definition for the terms Network or capacity. This has been
a conscious choice. The term Network has become so widely used for so many diverse
meanings that it is impossible to create a definition that everyone can agree on, while still
expressing something useful. See Topology for the concept of a network domain and a Link
with multiple sources and sinks for the concept of a local area network. The term capacity is
used by different technologies in such a different way (e.g. including or excluding the header
and footer overhead) that it is better to let technology-specific extensions make an explicit
definition.
5
GFD-R-P.206 May 2013
2.1 Classes
Figure 1 shows an overview of all the classes in the NML schema in a UML class diagram.
Each box defines the name of a class, a short description, and possible attributes with their
Figure 1: A UML class diagram of the classes in the NML schema and their hierarchy
6
GFD-R-P.206 May 2013
value type. In the sections below we discuss each of the elements of the schema.
The basic abstract class of the schema is the Network Object. Most classes inherit from it.
Network Object is an abstract class. It must not be instantiated directly.
A Network Object may have the following relations:
• existsDuring to one or more Lifetimes
• isAlias to one or more Network Objects
• locatedAt to one Location
A Network Object may have the following attributes:
• id to assign a persistent globally unique URI
• name to assign a human readable string
• version to assign a time stamp
The meaning of the isAlias relation is only defined for specific cases (between objects of the
same concrete class), and should not be used between other objects.
The meaning of the version attribute is only defined for specific cases (for objects of the
Topology class), and should not be used in other objects. Clients that receive a version
attribute for a non-Topology object should ignore that attribute.
An id is a persistent, globally unique object identifier for the Network Object. The id should
be used to refer to this object. Section 3 describes these identifiers in detail.
name is a human readable string. A name may be written in any language, but it is rec-
ommended that names are chosen so that all users can easily distinguish between different
names. Names are not globally unique, and two objects can have the same name. It is
recommended to use short, descriptive names. A name must not be used for anything
other than display purposes. Normal Unicode recommendations apply: A name must not
contain control or formatting codepoint, and it is recommended to only use codepoints
from the Basic Multilingual Plane (BMP).
version is a time stamp formatted as ISO 8601 calendar date, and must be a basic (compact)
representation with UTC timezone (YYYYMMDD Thhmmss Z) [ISO 8601]. The time stamp can
be used to publish updates of a Topology. If a client receives multiple Topology descriptions,
each with a different version time stamp, the version with the latest time stamp in the past or
present must be considered the valid description. Topology descriptions with a time stamp
7
GFD-R-P.206 May 2013
in the future may be discarded or cached until the denoted time. See also the Lifetime
object to describe historic or future network changes.
The base Network Object is subclassed into the top-level topology components, that are
sufficient to cover the description of networks. The classes in this schema that directly
inherit from Network Object are:
• Node
• Port
• Link
• Service
• Group
These classes are described in more detail below.
2.1.2 Node
A Node is generally a device connected to, or part of, the network. A Node does not
necessarily correspond to a physical machine.
Node inherits from Network Object.
A Node may have the following relations:
• existsDuring to one or more Lifetimes
• hasInboundPort to one or more Ports or PortGroups
• hasOutboundPort to one or more Ports or PortGroups
• hasService to one or more Services of type Switch
• implementedBy to one or more Nodes
• isAlias to one or more Nodes
• locatedAt to one Location
A Node may have the following attributes:
• id to assign a persistent globally unique URI
• name to assign a human readable string
8
GFD-R-P.206 May 2013
2.1.3 Port
A Port defines connectivity from a Network Object to the rest of the network. A Port
object is unidirectional. A Port does not necessarily correspond to a physical interface. It
represents a logical transport entity at a fixed place in the network.
Port inherits from Network Object.
A Port may have the following relations:
• existsDuring to one or more Lifetimes
• hasLabel to one Label
• hasService to one or more Services of type Adaptation or type Deadaptation
• isAlias to one or more Ports
• isSink to one or more Link s
• isSource to one or more Link s
A Port may have the following attributes:
• encoding to assign a data encoding identifier
• id to assign a persistent globally unique URI
• name to assign a human readable string
The encoding attribute defines the format of the data streaming through the Port. The
identifier for the encoding must be a URI. Encoding URIs should be specified in a Grid
Forum Documents (GFD).
2.1.4 Link
A Link object describes a unidirectional data transport from each of its sources to all of its
sinks.
A source of a Link is a Network Object, e.g. a Port, that has a isSource relation to the Link.
A sink of a Link is a Network Object, e.g. a Port, that has a isSink relation to the Link.
A Link object can refer to any link connection. A link segment and an end-to-end path are
both described by a Link object. The composition of links into a path, and decomposition
into link segments is described by the isSerialCompoundLink relation.
Link inherits from Network Object.
9
GFD-R-P.206 May 2013
2.1.5 Service
Service describes an ability of the network. That is, it describes how the behavior can be
changed dynamically.
Service is an abstract class. It must not be instantiated directly.
Service inherits from Network Object. A Service may have the same relations, attributes
and parameters as a Network Object.
This schema defines three different services, the SwitchingService the AdaptationService and
the DeadaptationService. These are described in more detail below.
10
GFD-R-P.206 May 2013
A SwitchingService describes the ability to create new Link s from any of its inbound Ports
to any of its outbound Ports.
SwitchingService inherits from Service.
A SwitchingService may have the following relations:
• encoding to assign a data encoding identifier
• existsDuring to one or more Lifetimes
• hasInboundPort to one or more Ports or PortGroups
• hasOutboundPort to one or more Ports or PortGroups
• isAlias to one or more Switching Services
• providesLink to one or more Link s or LinkGroups.
A SwitchingService may have the following attributes:
• id to assign a persistent globally unique URI
• name to assign a human readable string
A SwitchingService may have the following parameter:
• labelSwapping. A value of false adds a restriction to the SwitchingService: it is only
able to create cross connects from an inbound Port to an outbound Port if the Label
of the connected Ports have the same value. The default value is false.
The providesLink relation points to Link s which describe the currently configured cross
connects in a SwitchingService.
A Port object can have a hasService relation, however the SwitchingService defines a more
specific relation hasInboundPort / hasOutboundPort relation to a Port object. The latter
relation is preferred over the hasService relation of the Port to the SwitchingService.
The encoding attribute defines the format of the data streaming through the SwitchingSer-
vice. The identifier for the encoding must be a URI. Encoding URIs should be specified
in a Grid Forum Documents (GFD).
An AdaptationService describes the ability that data from one or more Ports can be embed-
ded in the data encoding of one other Port. This is commonly referred to as the embedding
11
GFD-R-P.206 May 2013
of client layer (higher network layer) ports in a server layer (lower network layer) port.
The AdaptationService describes a multiplexing adaptation function, meaning that different
channels (the client layer ports) can be embedded in a single data stream (the server layer
port). For example multiplexing several VLANs over a single trunk port.
Like Port and Link, AdaptationService describes a unidirectional transport function. For
the inverse transport function, see DeadaptationService.
AdaptationService inherits from Service.
An AdaptationService may have the following relations:
• canProvidePort to one or more Ports or PortGroups (this describes a ability)
• existsDuring to one or more Lifetimes
• isAlias to one or more AdaptationServices
• providesPort to one or more Ports or PortGroups (this describes a configuration)
An AdaptationService may have the following attributes:
• adaptationFunction to assign an adaptation technology identifier
• id to assign a persistent globally unique URI
• name to assign a human readable string
DeadaptationService is an inverse of AdaptationService. This should not be confused with
an inverse multiplexing adaptation function. An inverse multiplexing adaptation function
embeds a single data stream in multiple underlying data streams. To describes such a
network, the parallelCompound relation can be used, which is a future extension relation,
described in a separate document [Dijkstra13].
A DeadaptationService describes the ability that data of one or more ports can be extracted
from the data encoding of one other port. This is commonly referred to as the extraction of
client layer (higher network layer) ports from the server layer (lower network layer) port. The
DeadaptationService describes a demultiplexing adaptation function, meaning that different
channels (the client layer ports) can be extracted from a single data stream (the server layer
port). For example demultiplexing several VLANs from a single trunk port.
Like Port and Link, AdaptationService describes a unidirectional transport function. For
the inverse transport function, see AdaptationService.
DeadaptationService inherits from Service.
12
GFD-R-P.206 May 2013
2.1.9 Group
A Group describes a collections of objects. Any object can be part of a group, including
another Group. An object can also be part of multiple Groups.
Group is an abstract class. It must not be instantiated directly.
Group inherits from Network Object. A Group may have the same relations, attributes and
parameters as a Network Object.
This schema defines five different Groups:
• Topology
• Port Group
• Link Group
• Bidirectional Port
• Bidirectional Link
These classes are described in more detail below.
2.1.10 Topology
A Topology 1 is a set of connected Network Objects. connected means that there is, or it is
possible to create, a data transport between any two Network Objects in the same Topology,
1
At first this was called a Network, then Graph Network. The term Topology was suggested to avoid the
confusion surrounding the overloaded term Network.
13
GFD-R-P.206 May 2013
14
GFD-R-P.206 May 2013
15
GFD-R-P.206 May 2013
hasPort hasLink
2.1.15 Location
16
GFD-R-P.206 May 2013
2.1.16 Lifetime
A Lifetime is an interval between which the object is said to be active. This can be used to
track changes in a network, reflect dynamic operations, to help debug problems, et cetera.
A Lifetime may have the following attributes:
• start is the start time and date formatted as ISO 8601 calendar date, and should be a
basic (compact) representation with UTC timezone (YYYYMMDD Thhmmss Z) [ISO 8601]
• end is the end time and date formatted as ISO 8601 calendar date, and should be a
basic (compact) representation with UTC timezone (YYYYMMDD Thhmmss Z)
Objects with multiple lifetimes mean that the lifetime of the object is the union of all lifetimes
(as opposed to a intersection).
If a Network Object has no associated Lifetime objects, or the start or end attribute of a
Lifetime object is missing, the default lifetime may be assumed to start on or before the
time specified in the version attribute of the most specific Topology object that contains
this Network Object. The end of that assumed lifetime is indefinite, until a Topology object
with a higher version number is published. This new description can define a new Lifetime
for the object, or the Topology. If the new description does not contain the Network Object,
the end time is assumed to have passed.
If a Network Object has no associated Lifetime objects, and the Topology object does not
have a version attribute, than the lifetime of the Network Object is undefined.
17
GFD-R-P.206 May 2013
2.1.17 Label
A Label is the technology-specific value that distinguishes a single data stream (a channel)
embedded in a larger data stream. The Label can be a resource label (with one value). In a
future extension it may be a pair of source and destination labels (with two values) [G.800].
Examples of resource labels are a VLAN number, wavelength, et cetera.
A Label may have the following attributes:
• labeltype to refer to a technology-specific labelset, e.g. a URI for VLANs
• value is one specific value taken from the labelset, e.g. a VLAN number
Technology extensions of NML may define additional attributes. Label type URIs should
be specified in a Grid Forum Documents (GFD), which should also define possible values.
This version of NML only deals with resource labels. The use of source and destination
labels is a future extension [Dijkstra13].
An Ordered List is an ordered list of Network Objects. These are used for the isSerialCom-
poundLink relation to an ordered list of Link s to describe a path through the network.
The representation of an Ordered List depends on the syntax, and is defined in section 4.4.
18
GFD-R-P.206 May 2013
2.2 Relations
Relations describe how different Network Objects relate to each other, typically to form a
network topology description. The relations have been listed above, and are defined here (in
alphabetical order). In principle a Relation can go from any object to any other object.
The list below makes a distinction between allowed and defined relations. An allowed relation
means it is valid NML. A defined relation means that it has a specific meaning, as described
here.
A relation which is not allowed must be rejected by a client, and the sender should be
notified with an error. A relation which is allowed, but (yet) undefined should be ignored
by a client (either silently, or with a warning to the sender). This distinction allows future
extension of NML, while retaining limited backward compatibility.
The existsDuring, hasLabel, hasLabelGroup, hasLink, hasNode, hasPort, hasService, hasTopol-
ogy, locatedAt, providesLink, and providesPort are defined as implicit relations. All other
relations are explicit. The distinction between implicit and explicit relations may be used by
a syntax to allow a more compact network description.
2.2.1 canProvidePort
19
GFD-R-P.206 May 2013
2.2.2 existsDuring
existsDuring relates one Network Object object to zero or more LifeTime objects. This
defines the existence of the object at a certain time.
2.2.3 hasInboundPort
20
GFD-R-P.206 May 2013
This defines that the related Network Object has an inbound Port or PortGroup object. The
direction of the Port object is relative to the Network Object the Port is attached to, so in
this case the traffic flows towards that Network Object (similarly for the PortGroup). This
Port would then be related to a Link object using the isSink relation (or a PortGroup and
LinkGroup respectively).
A Network Object with a hasInboundPort relation pointing to a PortGroup has the same
meaning as defining a hasInboundPort relation pointing to every Port in that PortGroup (as
defined by a hasPort relation between the PortGroup and Port).
2.2.4 hasLabel
2.2.5 hasLabelGroup
21
GFD-R-P.206 May 2013
2.2.6 hasLink
2.2.7 hasNode
22
GFD-R-P.206 May 2013
2.2.9 hasPort
23
GFD-R-P.206 May 2013
2.2.10 hasService
hasService relates a Network Object to a Service. This schema only defines the meaning of:
• Port to AdaptationService, relating one server-layer Port to an adaptation function.
• Port to DeadaptationService, relating one server-layer Port to a deadaptation function.
• Node or Topology to SwitchingService, describing a switching ability of that Node or
Topology.
Allowed relations are:
• Network Object hasService § Service
* *
Defined relations are:
• Port hasService § AdaptationService
1 *
• Port hasService § DeadaptationService
1 *
• Node hasService § SwitchingService
* *
• Topology hasService § SwitchingService
* *
A Port object can have a hasService relation to a Service, however the SwitchingService de-
fines a more specific relation hasInboundPort / hasOutboundPort relation to a Port object.
The latter relation is preferred over the hasService relation of the Port to the SwitchingSer-
vice.
24
GFD-R-P.206 May 2013
2.2.11 hasTopology
hasTopology defines a relation between one Topology to one or more Topologys for aggregation
purposes.
Allowed relations are:
• Network Object hasTopology § Topology
* *
Defined relations are:
• Topology hasTopology § Topology
* *
2.2.12 implementedBy
isAlias is a relation from a Network Object to a Network Object to describe that one can be
used as the alias of another.
Allowed relations are:
• Network Object isAlias § Network Object
* *
The relation is only defined if the type of both objects is the same (e.g. a Node can be related
to another Node, but if it is related to a Topology using the isAlias relation, that relation is
undefined.)
2.2.14 isSerialCompoundLink
25
GFD-R-P.206 May 2013
1. Link
2. Link
• Link isSerialCompoundLink §
1 * ...
n. Link
The following relation is allowed, but undefined:
1. LinkGroup
isSerialCompoundLink § 2. LinkGroup
• LinkGroup
* * ...
n. LinkGroup
2.2.15 isSink
isSink relates a Port to one Link to define the outgoing traffic port, and similarly for Port-
Group and LinkGroup.
Allowed relations are:
• Network Object isSink § Link
* *
• Network Object isSink § LinkGroup
* *
Defined relations are:
• Port isSink § Link
* *
• PortGroup isSink § LinkGroup
* *
isSink between a PortGroups and a LinkGroup is defined only if the PortGroup and LinkGroup
in question have the exact same LabelGroup.
2.2.16 isSource
isSource relates a Port to one Link to define its incoming traffic port, and similarly for
PortGroup and LinkGroup.
Allowed relations are:
• Network Object isSource § Link
* *
• Network Object isSource § LinkGroup
* *
Defined relations are:
26
GFD-R-P.206 May 2013
• Port isSource §
Link
* *
• PortGroup isSource § LinkGroup
* *
isSource between a PortGroups and a LinkGroup is defined only if the PortGroup and
LinkGroup in question have the exact same LabelGroup.
2.2.17 item
2.2.18 locatedAt
locatedAt relates a Network Object to one Location to describe that a Network Object is
located at that Location.
• Network Object locatedAt § Location
* *
2.2.19 next
next relation is a syntactical construct which may be used by syntaxes to construct a Ordered
List. The exact usage depends on the syntax.
2.2.20 providesLink
27
GFD-R-P.206 May 2013
2.2.21 providesPort
2.3 Attributes
Attributes are properties of an object. The following attributes have been defined in sec-
tion 2.1.
28
GFD-R-P.206 May 2013
2.4 Parameters
Parameters are properties of an object. Parameters, like attributes, are properties of objects,
but may (subtly) change the logic of the object. The following parameters have been defined
in section 2.1.
Parameter Class (section)
labelSwapping SwitchingService (2.1.6)
noReturnTraffic Link (2.1.4)
29
GFD-R-P.206 May 2013
3 Identifiers
3.1 Schema Identifier
The namespace for the schema defined in document is http://schemas.ogf.org/nml/2013/
05/base\#.
All classes, relations, parameters and attributes defined in this document reside in this names-
pace. For example, the Link class is identified by http://schemas.ogf.org/nml/2013/05/base#Link
Two identifier are lexical equivalent if they are binary equivalent after case folding2 [Unicode].
Other interpretation (such as percent-decoding or Punycode decoding [RFC 3492]) must
not take place.
For the purpose of equivalence comparison, any possible fragment part or query part of the
URI is considered part of the URI.
For example the following identifiers are equivalent:
2
Case folding is primarily used for caseless comparison of text. Case mapping is used for display purposes.
30
GFD-R-P.206 May 2013
1 - urn:ogf:network:example.net:2013:local_string_1234
2 - URN:OGF:network:EXAMPLE.NET:2013:Local_String_1234
While the following identifiers are not equivalent (in this case, the percentage encoding even
makes URI #3 an invalid Global Network Identifier.):
1 - urn:ogf:network:example.net:2013:local_string_1234
3 - urn:ogf:network:example.net:2013:local%5Fstring%5F1234
An assigning organisation must not assign Network Object Identifier longer than 255 char-
acters in length.
Parsers must be prepared to accept identifiers of up to 255 characters in length.
A Parser should verify if an identifier adheres to the general URI syntax rules, as specified
in RFC 3986 [RFC 3986].
Parsers should reject identifiers which do not adhere to the specified rules. A parser en-
countering an invalid identifier should reply with an error code that includes the malformed
identifier, but may accept the rest of the message, after purging all references to the Network
Object with the malformed identifier.
A Network Object identifier must be treated as a opaque string, only used to uniquely
identify a Network Object. The local-part of a Global Network Identifier may have certain
meaning to it’s assigning organisation, but must not be interpreted by any other organi-
sation.
A Network Object may change during its lifetime. If these changes are so drastic that
the assigning organisation considers it a completely new Network Object, the assigning
organisation should be assigned a new identifier. In this case, other organisations MUST
treat this object as completely new Network Resource.
If the assigning organisation considers the changes are small, it must retain the same identi-
fier for the Network Object, and use some mechanism to signal it’s peers of the changes in the
attributes of the Network Object. An appropriate mechanism is to send a new description
of the Topology or the Network Object with an updated version attribute.
31
GFD-R-P.206 May 2013
32
GFD-R-P.206 May 2013
4 Syntax
The Network Markup Language has two different normative syntaxes. The syntaxes are
in regular XML defined using an XML Schema (XSD), and another in OWL RDF/XML
syntax, defined in an OWL schema. The OWL syntax is aimed at Semantic Web-oriented
applications, the XML syntax is suitable for any application. These syntaxes are defined in
Appendices A and B respectively. These syntaxes follow the model as defined in section 2,
should there be any inconsistencies between the syntaxes or the syntaxes and the model, the
definitions in section 2 take precedence.
1 <nml:BidirectionalLink />
1 <nml:Port id="urn:ogf:network:example.net:2013:port_X.1501:in">
2 <nml:name>VLAN 1501 at Port X (in)</nml:name>
3 <nml:Label labeltype="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">1501</nml:Label>
4 </nml:Port>
Explicit relation are represented as a <nml:Relation> XML element, with the domain as
the parent element, and the range as the child element. Implicit relations are not given: the
range object is represented as an XML child element of the domain. Below is an example of
an explicit relation:
33
GFD-R-P.206 May 2013
1 <nml:Port id="urn:ogf:network:example.net:2013:port_X:in">
2 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#isSource">
3 <nml:Link id="urn:ogf:network:example.net:2013:linkA:XY"/>
4 </nml:Relation>
5 </nml:Port>
1 <nml:Topology id="urn:ogf:network:example.net:2013:Example_Network">
2 <nml:Node id="urn:ogf:network:example.net:2013:example_node"/>
3 </nml:Port>
1 <nml:Location id="urn:ogf:network:example.net:2013:redcity">
2 <nml:name>Red City</nml:name>
3 <nml:lat>30.600</nml:lat>
4 <nml:long>12.640</nml:long>
5 </nml:Location>
Relations are represented as an RDF triplet, with the full URI of the attribute or parameter.
For example:
1 <nml:Port rdf:about="urn:ogf:network:example.net:2013:port_X:in">
2 <nml:isSource rdf:resource="urn:ogf:network:example.net:2013:linkA:XY"/>
3 </nml:Port>
1 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">
2 <owl:subPropertyOf rdf:resource="http://schemas.ogf.org/nml/2013/05/base#hasLabel"/>
3 </rdf:Description>
4 <nml:Port rdf:about="urn:ogf:network:example.net:2013:port_X.1501:in">
5 <nmleth:vlan>1501</nmleth:vlan>
6 </nml:Port>
34
GFD-R-P.206 May 2013
A LabelGroup is represented as three triplets. The URI of the labeltype is not the URI of the
predicate, to avoid naming clashes with the definition of the Label. Instead, the predicate
of the LabelGroup is related to the predicate of the Label using the nml:labeltype property:
1 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/ethernet#vlans">
2 <nml:labelType rdf:resource="http://schemas.ogf.org/nml/2013/05/ethernet#vlan"/>
3 <owl:subPropertyOf rdf:resource="http://schemas.ogf.org/nml/2013/05/base#hasLabelGroup"/>
4 </rdf:Description>
5 <nml:PortGroup rdf:about="urn:ogf:network:example.net:2013:portgroup_X:out">
6 <nmleth:vlans>1480´1530</nmleth:vlans>
7 </nml:PortGroup>
35
GFD-R-P.206 May 2013
For example, consider the following two decompositions of Link Link_1_2_3 into shorter
Links:
Link_1
• Link_1_2_3 isSerialCompoundLink § Link_2
Link_3
isSerialCompoundLink § Link_1
• Link_1_2_3
Link_2_3
In the first Ordered List, there is a next relation from Link_1 to Link_2, while in the second
Ordered List, the next relation is from Link_1 to Link_2_3.
In XML an Ordered List can be constructed by using all objects in the list as child elements,
and using a next relation between consecutive objects in the list to denote ordering.
In OWL an Ordered List can be constructed by creating as many ListItem objects as there
are items in the list. Each ListItem object is correlated with the actual list item using the
item relation, while using a next relation to point to the following ListItem. A predicate
points to the first ListItem in the Ordered List to point to the whole list, which is chained
using the next relation.
See also the isSerialCompoundLink examples in the example section.
36
GFD-R-P.206
Topology
locatedAt
5 Examples
org Location
redcity
version hasNode
hasOutboundPort
hasOutboundPort
BidirectionalPort SwitchingService
hasInboundPort
port_X.1501 nodeA:switching hasInboundPort
Service
37
May 2013
GFD-R-P.206 May 2013
1 <nml:Topology xmlns:nml="http://schemas.ogf.org/nml/2013/05/base#"
2 id="urn:ogf:network:example.net:2013:org"
3 version="20130529T121112Z">
4 <nml:Node id="urn:ogf:network:example.net:2013:nodeA">
5
6 <!´´ ... ´´>
7
8 </nml:Node>
9
10 </nml:Topology>
1 <nml:Node id="urn:ogf:network:example.net:2013:nodeA">
2 <nml:name>Node_A</nml:name>
3 <nml:Location id="urn:ogf:network:example.net:2013:redcity"/>
4 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#hasOutboundPort">
5 <nml:Port id="urn:ogf:network:example.net:2013:port_X:out"/>
6 <nml:Port id="urn:ogf:network:example.net:2013:port_Y:out"/>
7 </nml:Relation>
8 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#hasInboundPort">
9 <nml:Port id="urn:ogf:network:example.net:2013:port_X:in"/>
10 <nml:Port id="urn:ogf:network:example.net:2013:port_Y:in"/>
11 </nml:Relation>
12 </nml:Node>
• Ports
– (Unidirectional) Port (section 2.1.3)
1 <nml:Port id="urn:ogf:network:example.net:2013:port_X.1501:in">
2 <nml:Label labeltype="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">1501</nml:Label>
3 </nml:Port>
1 <nml:BidirectionalPort id="urn:ogf:network:example.net:2013:port_X.1501">
2 <nml:name>X.1501</nml:name>
3 <nml:Port id="urn:ogf:network:example.net:2013:port_X.1501:out"/>
4 <nml:Port id="urn:ogf:network:example.net:2013:port_X.1501:in"/>
5 </nml:BidirectionalPort>
38
GFD-R-P.206 May 2013
1 <nml:PortGroup id="urn:ogf:network:example.net:2013:portgroup_X:out">
2 <nml:LabelGroup labeltype="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">
3 1480´1530
4 </nml:LabelGroup>
5 <nml:Port id="urn:ogf:network:example.net:2013:port_X.1501:out"/>
6 </nml:PortGroup>
• Links
– UnidirectionalLink (external) (section 2.1.4)
1 <nml:Link id="urn:ogf:network:example.net:2013:linkB:YZ"/>
2
3 <nml:Port id="urn:ogf:network:example.net:2013:port_Y:out">
4 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#isSource">
5 <nml:Link id="urn:ogf:network:example.net:2013:linkB:YZ"/>
6 </nml:Relation>
7
8 <nml:Port id="urn:ogf:network:example.net:2013:port_Z:in">
9 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#isSink">
10 <nml:Link id="␣urn:ogf:network:example.net:2013:linkB:YZ"/>
11 </nml:Relation>
12 </nml:Port>
13
14 </nml:Port>
1 <nml:Link id="urn:ogf:network:example.net:2013:linkA:XY"/>
2
3 <nml:Port id="urn:ogf:network:example.net:2013:port_X.1501:in">
4 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#isSource">
5 <nml:Link id="␣urn:ogf:network:example.net:2013:linkA:XY"/>
6 </nml:Relation>
7 </nml:Port>
8
9 <nml:Port id="urn:ogf:network:example.net:2013:port_Y:out">
10 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#isSink">
11 <nml:Link id="urn:ogf:network:example.net:2013:linkA:XY"/>
12 </nml:Relation>
13 </nml:Port>
1 <nml:Link id="urn:ogf:network:example.net:2013:link_XW">
2 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#isSerialCompoundLink">
3 <nml:Link id="urn:ogf:network:example.net:2013:linkA:XY">
4 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#next">
5 <nml:Link id="urn:ogf:network:example.net:2013:linkB:YZ"/>
39
GFD-R-P.206 May 2013
6 </nml:Relation>
7 </nml:Link>
8 <nml:Link id="urn:ogf:network:example.net:2013:linkB:YZ">
9 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#next">
10 <nml:Link id="urn:ogf:network:example.net:2013:linkC:ZW"/>
11 </nml:Relation>
12 </nml:Link>
13 <nml:Link id="urn:ogf:network:example.net:2013:linkC:ZW"/>
14 </nml:Relation>
15 </nml:Link>
1 <nml:BidirectionalLink id="urn:ogf:network:example.net:2013:link_XWX">
2 <nml:name>Link between ports X and W</nml:name>
3 <nml:Link id="urn:ogf:network:example.net:2013:link_XW"/>
4 <nml:Link id="urn:ogf:network:example.net:2013:link_WX"/>
5 </nml:BidirectionalLink>
1 <nml:LinkGroup id="urn:ogf:network:example.net:2013:domainy_domainx">
2 <nml:LabelGroup labeltype="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">
3 1480´1530
4 </nml:LabelGroup>
5 </nml:LinkGroup>
• Labels
– Label (section 2.1.17)
1 <nml:Label labeltype="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">1501</nml:Label>
1 <nml:LabelGroup labeltype="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">
2 1480´1530
3 </nml:LabelGroup>
1 <nml:Location id="urn:ogf:network:example.net:2013:redcity">
2 <nml:name>Red City</nml:name>
3 <nml:lat>30.600</nml:lat>
4 <nml:long>12.640</nml:long>
5 </nml:Location>
40
GFD-R-P.206 May 2013
• Services
– SwitchingService (section 2.1.6)
1 <nml:Node id="urn:ogf:network:example.net:2013:nodeA">
2 <nml:name>Node_A</nml:name>
3 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#hasInboundPort">
4 <nml:Port id="urn:ogf:network:example.net:2013:nodeA:port_X:in" />
5 <nml:Port id="urn:ogf:network:example.net:2013:nodeA:port_Y:in" />
6 </nml:Relation>
7 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#hasOutboundPort">
8 <nml:Port id="urn:ogf:network:example.net:2013:nodeA:port_X:out"/>
9 <nml:Port id="urn:ogf:network:example.net:2013:nodeA:port_Y:out"/>
10 </nml:Relation>
11 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#hasService">
12 <nml:SwitchingService id="urn:ogf:network:example.net:2013:nodeA:switchingService"/>
13 </nml:Relation>
14 </nml:Node>
15
16 <nml:SwitchingService id="urn:ogf:network:example.net:2013:nodeA:switchingService">
17 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#hasInboundPort">
18 <nml:Port id="urn:ogf:network:example.net:2013:nodeA:port_X:in" />
19 <nml:Port id="urn:ogf:network:example.net:2013:nodeA:port_Y:in" />
20 </nml:Relation>
21 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#hasOutboundPort">
22 <nml:Port id="urn:ogf:network:example.net:2013:nodeA:port_X:out"/>
23 <nml:Port id="urn:ogf:network:example.net:2013:nodeA:port_Y:out"/>
24 </nml:Relation>
25 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#providesLink">
26 <nml:Link id="urn:ogf:network:example.net:2013:LinkA:XY"/>
27 </nml:Relation>
28 </nml:SwitchingService>
1 <nml:Port id="urn:ogf:network:example.net:2013:port_X:in">
2 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#hasService">
3 <nml:AdaptationService id="urn:ogf:network:example.net:2013:port_X:in:adaptationService"/>
4 </nml:Relation>
5 </nml:Port>
6
7 <nml:AdaptationService
8 id="urn:ogf:network:example.net:2013:port_X:in:adaptationService"
9 adaptationFunction="http://schemas.ogf.org/nml/2013/05/ethernet#802.1q">
10 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#providesPort">
11 <nml:Port id="urn:ogf:network:example.net:2013:port_X.1501:in"/>
12 </nml:Relation>
13 </nml:AdaptationService>
14
15 <nml:Port id="urn:ogf:network:example.net:2013:port_X.1501:in">
16 <nml:Label labeltype="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">1501</nml:Label>
17 </nml:Port>
41
GFD-R-P.206 May 2013
1 <nml:Port id="urn:ogf:network:example.net:2013:port_X:in">
2 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#hasService">
3 <nml:DeadaptationService id="urn:ogf:network:example.net:2013:port_X.1501
:in:deadaptationService"/>
4 </nml:Relation>
5 </nml:Port>
6
7 <nml:DeadaptationService
8 id="urn:ogf:network:example.net:2013:port_X.1501:in:deadaptationService"
9 adaptationFunction="http://schemas.ogf.org/nml/2013/05/ethernet#802.1q">
10 <nml:Relation type="http://schemas.ogf.org/nml/2013/05/base#providesPort">
11 <nml:Port id="urn:ogf:network:example.net:2013:port_X.1501:in"/>
12 </nml:Relation>
13 </nml:DeadaptationService>
14
15 <nml:Port id="urn:ogf:network:example.net:2013:port_X.1501:in">
16 <nml:Label labeltype="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">1501</nml:Label>
17 </nml:Port>
42
GFD-R-P.206 May 2013
1 <nml:Node rdf:about="urn:ogf:network:example.net:2013:nodeA">
2 <nml:name>Node_A</nml:name>
3 <nml:locatedAt rdf:resource="urn:ogf:network:example.net:2013:redcity"/>
4 <nml:hasOutboundPort rdf:resource="urn:ogf:network:example.net:2013:nodeA:port_X:out"/>
5 <nml:hasOutboundPort rdf:resource="urn:ogf:network:example.net:2013:nodeA:port_Y:out"/>
6 <nml:hasInboundPort rdf:resource="urn:ogf:network:example.net:2013:nodeA:port_X:in"/>
7 <nml:hasInboundPort rdf:resource="urn:ogf:network:example.net:2013:nodeA:port_Y:in"/>
8 </nml:Node>
• Ports
– (Unidirectional) Port (section 2.1.3)
1 <nml:Port rdf:about="urn:ogf:network:example.net:2013:port_X.1501:in">
2 <nmleth:vlan>1501</nmleth:vlan>
3 </nml:Port>
1 <nml:BidirectionalPort rdf:about="urn:ogf:network:example.net:2013:port_X.1501">
2 <nml:name>X.1501</nml:name>
3 <nml:hasPort rdf:resource="urn:ogf:network:example.net:2013:port_X.1501:out"/>
4 <nml:hasPort rdf:resource="urn:ogf:network:example.net:2013:port_X.1501:in"/>
5 </nml:BidirectionalPort>
43
GFD-R-P.206 May 2013
1 <nml:PortGroup rdf:about="urn:ogf:network:example.net:2013:portgroup_X:out">
2 <nmleth:vlans>1480´1530</nmleth:vlans>
3 <nml:hasPort>
4 <nml:Port rdf:about="urn:ogf:network:example.net:2013:port_X.1501:out"/>
5 </nml:hasPort>
6 </nml:PortGroup>
• Links
– UnidirectionalLink (external) (section 2.1.4)
1 <nml:Link rdf:about="urn:ogf:network:example.net:2013:linkB:YZ"/>
2
3 <nml:Port id="urn:ogf:network:example.net:2013:port_Y:out">
4 <nml:isSink rdf:resource="urn:ogf:network:example.net:2013:linkB:YZ"/>
5 </nml:Port>
6
7 <nml:Port rdf:about="urn:ogf:network:example.net:2013:port_Z:in">
8 <nml:isSource rdf:resource="urn:ogf:network:example.net:2013:linkB:YZ"/>
9 </nml:Port>
1 <nml:Link rdf:about="urn:ogf:network:example.net:2013:linkA:XY"/>
2
3 <nml:Port rdf:about="urn:ogf:network:example.net:2013:port_X.1501:in">
4 <nml:isSource rdf:resource="urn:ogf:network:example.net:2013:linkA:XY"/>
5 </nml:Port>
6
7 <nml:Port id="urn:ogf:network:example.net:2013:port_Y:out">
8 <nml:isSink rdf:resource="urn:ogf:network:example.net:2013:linkA:XY"/>
9 </nml:Port>
1 <nml:Link rdf:about="urn:ogf:network:example.net:2013:link_XW">
2 <nml:isSerialCompoundLink>
3 <nml:ListItem rdf:resource="urn:ogf:network:example.net:2013:link_XW_1">
4 <nml:item rdf:resource="urn:ogf:network:example.net:2013:linkA:XY"/>
5 <nml:next rdf:resource="urn:ogf:network:example.net:2013:link_XW_2"/>
6 </nml:ListItem>
7 </nml:isSerialCompoundLink>
8 </nml:Link>
9
10 <nml:ListItem rdf:resource="urn:ogf:network:example.net:2013:link_XW_2">
11 <nml:item rdf:resource="urn:ogf:network:example.net:2013:linkB:YZ"/>
12 <nml:next rdf:resource="urn:ogf:network:example.net:2013:link_XW_3"/>
13 </nml:ListItem>
14
44
GFD-R-P.206 May 2013
15 <nml:ListItem rdf:resource="urn:ogf:network:example.net:2013:link_XW_3">
16 <nml:item rdf:resource="urn:ogf:network:example.net:2013:linkC:ZW"/>
17 </nml:ListItem>
1 <nml:BidirectionalLink rdf:about="urn:ogf:network:example.net:2013:link_XWX">
2 <nml:name>Link between ports X and W</nml:name>
3 <nml:hasLink rdf:resource="urn:ogf:network:example.net:2013:link_XW"/>
4 <nml:hasLink rdf:resource="urn:ogf:network:example.net:2013:link_WX"/>
5 </nml:BidirectionalLink>
1 <nml:LinkGroup rdf:about="urn:ogf:network:example.net:2013:domainy_domainx">
2 <nmleth:vlans>1480´1530</nmleth:vlans>
3 </nml:LinkGroup>
• Labels
– Label (section 2.1.17)
1 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/ethernet#vlan">
2 <owl:subPropertyOf rdf:resource="http://schemas.ogf.org/nml/2013/05/base#hasLabel"/>
3 </rdf:Description>
4 <nml:Port rdf:about="urn:ogf:network:example.net:2013:port_X.1501:in">
5 <nmleth:vlan>1501</nmleth:vlan>
6 </nml:Port>
1 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/ethernet#vlans">
2 <nml:labelType rdf:resource="http://schemas.ogf.org/nml/2013/05/ethernet#vlan"/>
3 <owl:subPropertyOf rdf:resource="http://schemas.ogf.org/nml/2013/05/base#hasLabelGroup"/>
4 </rdf:Description>
5 <nml:PortGroup rdf:about="urn:ogf:network:example.net:2013:portgroup_X:out">
6 <nmleth:vlans>1480´1530</nmleth:vlans>
7 </nml:PortGroup>
1 <nml:Location id="urn:ogf:network:example.net:2013:redcity">
2 <nml:name>Red City</nml:name>
3 <nml:latitude>30.600</nml:latitude>
4 <nml:longitude>12.640</nml:longitude>
5 </nml:Location>
45
GFD-R-P.206 May 2013
• Services
– SwitchingService (section 2.1.6)
1 <nml:Node rdf:about="urn:ogf:network:example.net:2013:nodeA">
2 <nml:name>Node_A</nml:name>
3 <nml:hasInboundPort rdf:resource="urn:ogf:network:example.net:2013:nodeA:port_X:in"/>
4 <nml:hasInboundPort rdf:resource="urn:ogf:network:example.net:2013:nodeA:port_Y:in"/>
5 <nml:hasOutboundPort rdf:resource="urn:ogf:network:example.net:2013:nodeA:port_X:out"/>
6 <nml:hasOutboundPort rdf:resource="urn:ogf:network:example.net:2013:nodeA:port_Y:out"/>
7 <nml:hasService rdf:resource="urn:ogf:network:example.net:2013:nodeA:switchingService"/>
8 </nml:Node>
9
10 <nml:SwitchingService rdf:about="urn:ogf:network:example.net:2013:nodeA:switchingService">
11 <nml:hasInboundPort rdf:resource="urn:ogf:network:example.net:2013:nodeA:port_X:in"/>
12 <nml:hasInboundPort rdf:resource="urn:ogf:network:example.net:2013:nodeA:port_Y:in"/>
13 <nml:hasOutboundPort rdf:resource="urn:ogf:network:example.net:2013:nodeA:port_X:out"/>
14 <nml:hasOutboundPort rdf:resource="urn:ogf:network:example.net:2013:nodeA:port_Y:out"/>
15 </nml:SwitchingService>
1 <nml:Port rdf:about="urn:ogf:network:example.net:2013:port_X:out">
2 <nml:hasService>
3 <nml:AdaptationService
4 rdf:about="urn:ogf:network:example.net:2013:port_X:out:adaptationService">
5 <nml:adaptationFunction rdf:resource="http://schemas.ogf.org/nml/2013/05/ethernet#802.1q"/>
6 <nml:providesPort rdf:resource="urn:ogf:network:example.net:2013:port_X.1501:out"/>
7 </nml:AdaptationService>
8 </nml:hasService>
9 </nml:Port>
10
11 <nml:Port rdf:about="urn:ogf:network:example.net:2013:port_X.1501:out">
12 <nmleth:vlan>1501</nmleth:vlan>
13 </nml:Port>
1 <nml:Port rdf:about="urn:ogf:network:example.net:2013:port_X:in">
2 <nml:hasService>
3 <nml:DeadaptationService
4 rdf:resource="urn:ogf:network:example.net:2013:port_X:in:deadaptationService">
5 <nml:adaptationFunction rdf:resource="http://schemas.ogf.org/nml/2013/05/ethernet#802.1q"/>
6 <nml:providesPort rdf:resource="urn:ogf:network:example.net:2013:port_X.1501:in"/>
7 </nml:DeadaptationService>
8 </nml:hasService>
9 </nml:Port>
10
11 <nml:Port rdf:about="urn:ogf:network:example.net:2013:port_X.1501:in">
12 <nmleth:vlan>1501</nmleth:vlan>
13 </nml:Port>
46
GFD-R-P.206 May 2013
A Topology and Node behave similar: they both contain inbound ports and outbound ports,
and can contain a SwitchingService to allow creation of internal links (cross connects) from
inbound ports to outbound ports. Especially with the ability to create logical, sliced or
virtual devices, the distinction is getting blurred.
The distinction is that a Node is located at a single geographic location, while a Topology is
a set of geographically disperse Network Objects.
Large networks may want to publish both details of their network topology as a whole, as
well as details about regional segments, without publishing details of the actual devices.
NML allows the publication of a hierarchical Topology tree, where the top-level Topology
has a hasTopology relation with smaller Topologies. These smaller Topologies must be fully
enclosed – the hasTopology relation can not be used to relate partial overlapping Topologies.
For example, a Topology A may want to publish about two parts of its Topology, A_West,
and A_East. This allows it to publish difference in connectivity and costs between the two
parts. It can do so with the following relations:
Topology A hasTopology § Topology A_West
Topology A hasTopology § Topology A_East
A Link object can refer to any link connection. A link segment and an end-to-end path are
both described by a Link object. This is by design, since it is easy to extend a Link, or to
describe a partition of a Link.
Figure 4 gives an example of three different partitionings of a link between port_X:in and
port_W:out.
Note that in this example Port port_Y:out is the source of both linkB:YZ and of linkBC:YW.
If a single topology description would contain the full link and the partitioning, a path finding
47
GFD-R-P.206 May 2013
LinkAB:XZ LinkC:ZW
X:in Z:in W:out
LinkA:XY LinkBC:YW
X:in Y:out W:out
algoritm must be aware that the fact that if a Port is the source of two NML Links, this does
not mean it multicast to different network links. For this reason, it is recommended that
applications either add metadata about the type of link, or specify that in certain messages,
only one particular type of Link must be used.
A port on a patch panel or optical distribution frame can simply be described as a NML
Port (thus without an associated Node):
Port odf_X isSink § Link A
Port odf_X isSource § Link B
A mediaconvertor, e.g. from Ethernet over UTP to Ethernet over fiber, can be described
in the same way, provided that the connected Links described the Ethernet connections. If
the connected Links describe the underlying UTP and fiber connections, it is necessary to
describe the conversion between them:
Port Port_X_UTP isSink § Link UTP_A
Port Port_X_fiber isSource § Link fiber_B
Port Port_X_UTP hasService § DeAdaptataionService X_deadaptation
Port Port_X_fiber hasService §
AdaptationService X_adaptation
DeAdaptataionService X_deadaptation providesPort § Port Port_X_eth
AdaptationService X_adaptation providesPort § Port Port_X_eth
48
GFD-R-P.206 May 2013
However, this is not entirely correct: in the above description data coming from Port_X:in
would also be forwarded to Port_X:out. However, the Ethernet technology prevents data
returning on the same interface.
NML introduced the noReturnTraffic parameter to describe this technological restriction: if
the noReturnTraffic parameter of a Link is true, there is no data transport from a source to
a sink if the source and sink are grouped together in a BidirectionalPort group.
Link VLAN_42 noReturnTraffic § "true"
NML is able to both describe the network services (potential capability) as well as the
network configuration.
A switching service can be described by a SwitchingService object along with associated
inbound ports and outbound ports:
SwitchingService switchmatrix_A hasInboundPort § PortGroup Port_X:in
SwitchingService switchmatrix_A hasOutboundPort § PortGroup Port_X:out
49
GFD-R-P.206 May 2013
The version of a Topology indicated the serial number. If there are two Topology descriptions
for the same network, the one with the highest version number is the most recent version.
The LifeTime object is used to indicate when a certain resource is available.
Imagine that a link will have a scheduled downtime due to maintenance next week between
2 AM and 4 AM. This can be specified with these relations:
Topology org version § 20130521T000000Z
Link A existsDuring § LifeTime A_lifetime1
Link A existsDuring § LifeTime A_lifetime2
LifeTime A_lifetime1 end § 20130611T020000Z
LifeTime A_lifetime2 start § 20130611T040000Z
50
GFD-R-P.206 May 2013
Imagine that this planned maintainance is rescheduled. That can be specified by creating a
new Topology with a new version number, and updated data:
Topology org version § 20130604T000000Z
Link A existsDuring § LifeTime A_lifetime1
Link A existsDuring § LifeTime A_lifetime2
LifeTime A_lifetime1 end § 20130618T020000Z
LifeTime A_lifetime2 start § 20130618T040000Z
51
GFD-R-P.206 May 2013
6 Security Considerations
There are important security concerns associated with the generation and distribution of
network topology information. For example, ISPs frequently consider network topologies
to be confidential. We do not address these concerns in this document, but implementers
are encouraged to consider the security implications of generating and distributing network
topology information.
Implementers should be aware that the NML descriptions do not provide any guarantee
regarding their integrity nor their authenticity. The NML documents also can not provide
this for the identifiers contained in the documents. Implementers should use external means
of verifying the authenticity of identifiers contained in the documents.
52
GFD-R-P.206 May 2013
7 Contributors
Jeroen J. van der Ham (Editor)
Faculty of Science, Informatics Institute, University of Amsterdam
Science Park 904, 1098 XH Amsterdam
The Netherlands
Email: vdham@uva.nl
Freek Dijkstra
SURFsara
Science Park 140, 1098 XG Amsterdam
The Netherlands
Email: freek.dijkstra@surfsara.nl
Roman Łapacz
PSNC
ul. Noskowskiego 12/14, 61-704 Poznań
Poland
Email: romradz@man.poznan.pl
Jason Zurawski
Internet2
1150 18th Street, NW
Suite 900
Washington, DC 20036
USA
Email: zurawski@es.net
8 Acknowledgments
The authors would like to thank the NML working group members for their patience. The
NML group has operated in the web of infrastructure groups and is grateful for all the input
from the NM, NMC and NSI working-groups.
Financial support has been provided by several projects and institutions:
This work was partially supported by the European Commission, 7th Framework Programme
for Research and Technological Development, Capacities, The GN3 project – Grant No.
238875, GEYSERS – Grant No. 248657 and NOVI – Grant No. 257867. This project
was also made possible by the support of SURF, the collaborative organisation for higher
53
GFD-R-P.206 May 2013
education institutes and research institutes aimed at breakthrough innovations in ICT. More
information on SURF is available on the website www.surf.nl. Furthermore, this work was
supported by the Dutch national program COMMIT.
Jason Zurawski would like to thank Internet2, along with the National Science Foundation
(NSF) for support through grants: #0962704, #1019008, and #0721902.
The authors are indebted to the many participants of working group sessions and on the
mailing list, including the following contributors: Aaron Brown, Jeff W. Boote, Aurélien
Cedeyn, Evangelos Chaniotakis, Chin Guok, Paola Grosso, Richard Hughes-Jones, Houssem
Medhioub, Ralph Niederberger, Anand Patil, Victor Reijs, Guy Roberts, Jerry Sobieski,
Martin Swany, Fausto Vetter, Pascale Vicat-Blanc, and John Vollbrecht.
54
GFD-R-P.206 May 2013
10 Disclaimer
This document and the information contained herein is provided on an “As Is” basis and the
OGF disclaims all warranties, express or implied, including but not limited to any warranty
that the use of the information herein will not infringe any rights or any implied warranties
of merchantability or fitness for a particular purpose.
55
GFD-R-P.206 May 2013
The limited permissions granted above are perpetual and will not be revoked by the OGF
or its successors or assignees.
56
GFD-R-P.206 May 2013
57
GFD-R-P.206 May 2013
58
GFD-R-P.206 May 2013
113 </xs:complexType>
114
115
116 <xs:element name="Topology" type="nml:TopologyType"/>
117
118
119 <!´´ Link ´´>
120
121
122 <xs:complexType name="LinkRelationType">
123 <xs:sequence>
124 <xs:element ref="nml:Link" minOccurs="1" maxOccurs="unbounded"/>
125 </xs:sequence>
126 <xs:attribute name="type" use="required">
127 <xs:simpleType>
128 <xs:restriction base="xs:string">
129 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isAlias"/>
130 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isSerialCompoundLink"/>
131 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#next"/>
132 </xs:restriction>
133 </xs:simpleType>
134 </xs:attribute>
135 </xs:complexType>
136
137
138 <xs:group name="BaseLinkContent">
139 <xs:sequence>
140 <xs:element ref="nml:Label" minOccurs="0"/>
141 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
142 </xs:sequence>
143 </xs:group>
144
145
146 <xs:complexType name="LinkType">
147 <xs:complexContent>
148 <xs:extension base="nml:NetworkObject">
149 <xs:sequence>
150 <xs:group ref="nml:BaseLinkContent"/>
151 <xs:element name="Relation" type="nml:LinkRelationType" minOccurs="0" maxOccurs="unbounded"/>
152 </xs:sequence>
153 <xs:attribute name="encoding" type="xs:anyURI" use="optional"/>
154 <xs:attribute name="noReturnTraffic" type="xs:boolean" use="optional"/>
155 </xs:extension>
156 </xs:complexContent>
157 </xs:complexType>
158
159
160 <xs:element name="Link" type="nml:LinkType"/>
161
162
163 <!´´ Port ´´>
164
165
166 <xs:complexType name="PortRelationType">
167 <xs:choice>
168 <xs:element ref="nml:Link" minOccurs="1" maxOccurs="unbounded"/>
169 <xs:element ref="nml:Port" minOccurs="1" maxOccurs="unbounded"/>
170 <xs:group ref="nml:Service" minOccurs="1" maxOccurs="unbounded"/>
171 </xs:choice>
172 <xs:attribute name="type" use="required">
59
GFD-R-P.206 May 2013
173 <xs:simpleType>
174 <xs:restriction base="xs:string">
175 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#hasService"/>
176 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isAlias"/>
177 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isSink"/>
178 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isSource"/>
179 </xs:restriction>
180 </xs:simpleType>
181 </xs:attribute>
182 </xs:complexType>
183
184
185 <xs:group name="BasePortContent">
186 <xs:sequence>
187 <xs:element ref="nml:Label" minOccurs="0" maxOccurs="1"/>
188 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
189 </xs:sequence>
190 </xs:group>
191
192
193 <xs:complexType name="PortType">
194 <xs:complexContent>
195 <xs:extension base="nml:NetworkObject">
196 <xs:sequence>
197 <xs:group ref="nml:BasePortContent"/>
198 <xs:element name="Relation" type="nml:PortRelationType" minOccurs="0" maxOccurs="unbounded"/>
199 </xs:sequence>
200 <xs:attribute name="encoding" type="xs:anyURI" use="optional"/>
201 </xs:extension>
202 </xs:complexContent>
203 </xs:complexType>
204
205
206 <xs:element name="Port" type="nml:PortType"/>
207
208
209 <!´´ Node ´´>
210
211
212 <xs:complexType name="NodeRelationType">
213 <xs:choice>
214 <xs:element ref="nml:Node" minOccurs="1" maxOccurs="unbounded"/>
215 <xs:element ref="nml:Port" minOccurs="1" maxOccurs="unbounded"/>
216 <xs:element ref="nml:PortGroup" minOccurs="1" maxOccurs="unbounded"/>
217 <xs:element ref="nml:SwitchingService" minOccurs="1" maxOccurs="unbounded"/>
218 </xs:choice>
219 <xs:attribute name="type" use="required">
220 <xs:simpleType>
221 <xs:restriction base="xs:string">
222 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#hasInboundPort"/>
223 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#hasOutboundPort"/>
224 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#hasService"/>
225 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isAlias"/>
226 </xs:restriction>
227 </xs:simpleType>
228 </xs:attribute>
229 </xs:complexType>
230
231
232 <xs:complexType name="NodeType">
60
GFD-R-P.206 May 2013
233 <xs:complexContent>
234 <xs:extension base="nml:NetworkObject">
235 <xs:sequence>
236 <xs:element ref="nml:Node" minOccurs="0" maxOccurs="unbounded"/>
237 <xs:element name="Relation" type="nml:NodeRelationType" minOccurs="0" maxOccurs="unbounded"/>
238 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
239 </xs:sequence>
240 </xs:extension>
241 </xs:complexContent>
242 </xs:complexType>
243
244
245 <xs:element name="Node" type="nml:NodeType"/>
246
247
248 <!´´ Service ´´>
249
250
251 <xs:group name="Service">
252 <xs:choice>
253 <xs:element ref="nml:SwitchingService"/>
254 <xs:element ref="nml:AdaptationService"/>
255 <xs:element ref="nml:DeadaptationService"/>
256 </xs:choice>
257 </xs:group>
258
259
260 <!´´ SwitchingService ´´>
261
262
263 <xs:complexType name="SwitchingServiceRelationType">
264 <xs:choice>
265 <xs:element ref="nml:Port" minOccurs="1" maxOccurs="unbounded"/>
266 <xs:element ref="nml:PortGroup" minOccurs="1" maxOccurs="unbounded"/>
267 <xs:element ref="nml:SwitchingService" minOccurs="1" maxOccurs="unbounded"/>
268 <xs:element ref="nml:Link" minOccurs="1" maxOccurs="unbounded"/>
269 <xs:element ref="nml:LinkGroup" minOccurs="1" maxOccurs="unbounded"/>
270 </xs:choice>
271 <xs:attribute name="type" use="required">
272 <xs:simpleType>
273 <xs:restriction base="xs:string">
274 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#hasInboundPort"/>
275 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#hasOutboundPort"/>
276 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isAlias"/>
277 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#providesLink"/>
278 </xs:restriction>
279 </xs:simpleType>
280 </xs:attribute>
281 </xs:complexType>
282
283
284 <xs:complexType name="SwitchingServiceType">
285 <xs:complexContent>
286 <xs:extension base="nml:NetworkObject">
287 <xs:sequence>
288 <xs:element name="Relation" type="nml:SwitchingServiceRelationType" minOccurs="0" maxOccurs="unbounded
"/>
289 </xs:sequence>
290 <xs:attribute name="encoding" type="xs:anyURI" use="optional"/>
291 <xs:attribute name="labelSwapping" type="xs:boolean" use="optional"/>
61
GFD-R-P.206 May 2013
292 </xs:extension>
293 </xs:complexContent>
294 </xs:complexType>
295
296
297 <xs:element name="SwitchingService" type="nml:SwitchingServiceType"/>
298
299
300 <!´´ AdaptationService ´´>
301
302
303 <xs:complexType name="AdaptationServiceRelationType">
304 <xs:choice>
305 <xs:element ref="nml:Port" minOccurs="1" maxOccurs="unbounded"/>
306 <xs:element ref="nml:PortGroup" minOccurs="1" maxOccurs="unbounded"/>
307 <xs:element ref="nml:AdaptationService" minOccurs="1" maxOccurs="unbounded"/>
308 </xs:choice>
309 <xs:attribute name="type" use="required">
310 <xs:simpleType>
311 <xs:restriction base="xs:string">
312 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#canProvidePort"/>
313 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isAlias"/>
314 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#providesPort"/>
315 </xs:restriction>
316 </xs:simpleType>
317 </xs:attribute>
318 </xs:complexType>
319
320
321 <xs:complexType name="AdaptationServiceType">
322 <xs:complexContent>
323 <xs:extension base="nml:NetworkObject">
324 <xs:sequence>
325 <xs:element name="Relation" type="nml:AdaptationServiceRelationType" minOccurs="0" maxOccurs="
unbounded"/>
326 </xs:sequence>
327 <xs:attribute name="adaptationFunction" type="xs:anyURI" use="optional"/>
328 </xs:extension>
329 </xs:complexContent>
330 </xs:complexType>
331
332
333 <xs:element name="AdaptationService" type="nml:AdaptationServiceType"/>
334
335
336 <!´´ DeadaptationService ´´>
337
338
339 <xs:complexType name="DeadaptationServiceRelationType">
340 <xs:choice>
341 <xs:element ref="nml:Port" minOccurs="1" maxOccurs="unbounded"/>
342 <xs:element ref="nml:PortGroup" minOccurs="1" maxOccurs="unbounded"/>
343 <xs:element ref="nml:DeadaptationService" minOccurs="1" maxOccurs="unbounded"/>
344 </xs:choice>
345 <xs:attribute name="type" use="required">
346 <xs:simpleType>
347 <xs:restriction base="xs:string">
348 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#canProvidePort"/>
349 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isAlias"/>
350 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#providesPort"/>
62
GFD-R-P.206 May 2013
351 </xs:restriction>
352 </xs:simpleType>
353 </xs:attribute>
354 </xs:complexType>
355
356
357 <xs:complexType name="DeadaptationServiceType">
358 <xs:complexContent>
359 <xs:extension base="nml:NetworkObject">
360 <xs:sequence>
361 <xs:element name="Relation" type="nml:DeadaptationServiceRelationType" minOccurs="0" maxOccurs="
unbounded"/>
362 </xs:sequence>
363 <xs:attribute name="adaptationFunction" type="xs:anyURI" use="optional"/>
364 </xs:extension>
365 </xs:complexContent>
366 </xs:complexType>
367
368
369 <xs:element name="DeadaptationService" type="nml:DeadaptationServiceType"/>
370
371
372 <!´´ Label ´´>
373
374
375 <xs:complexType name="LabelType">
376 <xs:simpleContent>
377 <xs:extension base="xs:string">
378 <xs:attribute name="labeltype" type="xs:anyURI" use="required"/>
379 </xs:extension>
380 </xs:simpleContent>
381 </xs:complexType>
382
383
384 <xs:element name="Label" type="nml:LabelType"/>
385
386
387 <!´´ LinkGroup ´´>
388
389
390 <xs:complexType name="LinkGroupRelationType">
391 <xs:sequence>
392 <xs:element ref="nml:LinkGroup" minOccurs="1" maxOccurs="unbounded"/>
393 </xs:sequence>
394 <xs:attribute name="type" use="required">
395 <xs:simpleType>
396 <xs:restriction base="xs:string">
397 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isAlias"/>
398 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isSerialCompoundLink"/>
399 </xs:restriction>
400 </xs:simpleType>
401 </xs:attribute>
402 </xs:complexType>
403
404
405 <xs:group name="BaseLinkGroup">
406 <xs:sequence>
407 <xs:element ref="nml:LabelGroup" minOccurs="0" maxOccurs="unbounded"/>
408 <xs:element ref="nml:Link" minOccurs="0" maxOccurs="unbounded"/>
409 <xs:element ref="nml:LinkGroup" minOccurs="0" maxOccurs="unbounded"/>
63
GFD-R-P.206 May 2013
410 </xs:sequence>
411 </xs:group>
412
413
414 <xs:complexType name="LinkGroupType">
415 <xs:complexContent>
416 <xs:extension base="nml:NetworkObject">
417 <xs:sequence>
418 <xs:group ref="nml:BaseLinkGroup"/>
419 <xs:element name="Relation" type="nml:LinkGroupRelationType" minOccurs="0" maxOccurs="unbounded"/>
420 </xs:sequence>
421 </xs:extension>
422 </xs:complexContent>
423 </xs:complexType>
424
425
426 <xs:element name="LinkGroup" type="nml:LinkGroupType"/>
427
428
429 <!´´ PortGroup ´´>
430
431
432 <xs:complexType name="PortGroupRelationType">
433 <xs:choice>
434 <xs:element ref="nml:PortGroup" minOccurs="1" maxOccurs="unbounded"/>
435 <xs:element ref="nml:LinkGroup" minOccurs="1" maxOccurs="unbounded"/>
436 </xs:choice>
437 <xs:attribute name="type" use="required">
438 <xs:simpleType>
439 <xs:restriction base="xs:string">
440 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isAlias"/>
441 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isSink"/>
442 <xs:enumeration value="http://schemas.ogf.org/nml/2013/05/base#isSource"/>
443 </xs:restriction>
444 </xs:simpleType>
445 </xs:attribute>
446 </xs:complexType>
447
448
449 <xs:group name="BasePortGroup">
450 <xs:sequence>
451 <xs:element ref="nml:LabelGroup" minOccurs="0" maxOccurs="unbounded"/>
452 <xs:element ref="nml:Port" minOccurs="0" maxOccurs="unbounded"/>
453 <xs:element ref="nml:PortGroup" minOccurs="0" maxOccurs="unbounded"/>
454 </xs:sequence>
455 </xs:group>
456
457
458 <xs:complexType name="PortGroupType">
459 <xs:complexContent>
460 <xs:extension base="nml:NetworkObject">
461 <xs:sequence>
462 <xs:group ref="nml:BasePortGroup"/>
463 <xs:element name="Relation" type="nml:PortGroupRelationType" minOccurs="0" maxOccurs="unbounded"/>
464 </xs:sequence>
465 <xs:attribute name="encoding" type="xs:anyURI" use="optional"/>
466 </xs:extension>
467 </xs:complexContent>
468 </xs:complexType>
469
64
GFD-R-P.206 May 2013
470
471 <xs:element name="PortGroup" type="nml:PortGroupType"/>
472
473
474
475 <!´´ BidirectionalLink ´´>
476
477
478 <xs:group name="BaseBidirectionalLink">
479 <xs:choice>
480 <xs:sequence>
481 <xs:element ref="nml:Link"/>
482 <xs:element ref="nml:Link"/>
483 </xs:sequence>
484 <xs:sequence>
485 <xs:element ref="nml:LinkGroup"/>
486 <xs:element ref="nml:LinkGroup"/>
487 </xs:sequence>
488 </xs:choice>
489 </xs:group>
490
491
492 <xs:complexType name="BidirectionalLinkType">
493 <xs:complexContent>
494 <xs:extension base="nml:NetworkObject">
495 <xs:group ref="nml:BaseBidirectionalLink"/>
496 </xs:extension>
497 </xs:complexContent>
498 </xs:complexType>
499
500
501 <xs:element name="BidirectionalLink" type="nml:BidirectionalLinkType"/>
502
503
504 <!´´ BidirectionalPort ´´>
505
506
507 <xs:group name="BaseBidirectionalPort">
508 <xs:choice>
509 <xs:sequence>
510 <xs:element ref="nml:Port"/>
511 <xs:element ref="nml:Port"/>
512 </xs:sequence>
513 <xs:sequence>
514 <xs:element ref="nml:PortGroup"/>
515 <xs:element ref="nml:PortGroup"/>
516 </xs:sequence>
517 </xs:choice>
518 </xs:group>
519
520
521 <xs:complexType name="BidirectionalPortType">
522 <xs:complexContent>
523 <xs:extension base="nml:NetworkObject">
524 <xs:group ref="nml:BaseBidirectionalPort"/>
525 </xs:extension>
526 </xs:complexContent>
527 </xs:complexType>
528
529
65
GFD-R-P.206 May 2013
66
GFD-R-P.206 May 2013
67
GFD-R-P.206 May 2013
53 </owl:unionOf>
54 </owl:Class>
55 </rdfs:range>
56 </owl:ObjectProperty>
57
58
59 <!´´ http://schemas.ogf.org/nml/2013/05/base#encoding ´´>
60
61 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#encoding">
62 <rdfs:domain>
63 <owl:Class>
64 <owl:unionOf rdf:parseType="Collection">
65 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Link"/>
66 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#LinkGroup"/>
67 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Port"/>
68 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#PortGroup"/>
69 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#SwitchingService"/>
70 </owl:unionOf>
71 </owl:Class>
72 </rdfs:domain>
73 </owl:ObjectProperty>
74
75
76 <!´´ http://schemas.ogf.org/nml/2013/05/base#existsDuring ´´>
77
78 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#existsDuring">
79 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
80 <rdfs:range rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Lifetime"/>
81 </owl:ObjectProperty>
82
83
84 <!´´ http://schemas.ogf.org/nml/2013/05/base#hasInboundPort ´´>
85
86 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#hasInboundPort">
87 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
88 <rdfs:range>
89 <owl:Class>
90 <owl:unionOf rdf:parseType="Collection">
91 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Port"/>
92 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#PortGroup"/>
93 </owl:unionOf>
94 </owl:Class>
95 </rdfs:range>
96 </owl:ObjectProperty>
97
98
99 <!´´ http://schemas.ogf.org/nml/2013/05/base#hasLabel ´´>
100
101 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#hasLabel">
102 <rdfs:domain>
103 <owl:Class>
104 <owl:unionOf rdf:parseType="Collection">
105 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Link"/>
106 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Port"/>
107 </owl:unionOf>
108 </owl:Class>
109 </rdfs:domain>
110 <rdfs:range rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Label"/>
111 </owl:ObjectProperty>
112
68
GFD-R-P.206 May 2013
113
114 <!´´ http://schemas.ogf.org/nml/2013/05/base#hasLabelGroup ´´>
115
116 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#hasLabelGroup">
117 <rdfs:domain>
118 <owl:Class>
119 <owl:unionOf rdf:parseType="Collection">
120 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#LinkGroup"/>
121 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#PortGroup"/>
122 </owl:unionOf>
123 </owl:Class>
124 </rdfs:domain>
125 <rdfs:range rdf:resource="http://schemas.ogf.org/nml/2013/05/base#LabelGroup"/>
126 </owl:ObjectProperty>
127
128
129 <!´´ http://schemas.ogf.org/nml/2013/05/base#hasLink ´´>
130
131 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#hasLink">
132 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Group"/>
133 <rdfs:range>
134 <owl:Class>
135 <owl:unionOf rdf:parseType="Collection">
136 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Link"/>
137 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#LinkGroup"/>
138 </owl:unionOf>
139 </owl:Class>
140 </rdfs:range>
141 </owl:ObjectProperty>
142
143
144 <!´´ http://schemas.ogf.org/nml/2013/05/base#hasNode ´´>
145
146 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#hasNode">
147 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
148 <rdfs:range rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Node"/>
149 </owl:ObjectProperty>
150
151
152 <!´´ http://schemas.ogf.org/nml/2013/05/base#hasOutboundPort ´´>
153
154 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#hasOutboundPort">
155 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
156 <rdfs:range>
157 <owl:Class>
158 <owl:unionOf rdf:parseType="Collection">
159 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Port"/>
160 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#PortGroup"/>
161 </owl:unionOf>
162 </owl:Class>
163 </rdfs:range>
164 </owl:ObjectProperty>
165
166
167 <!´´ http://schemas.ogf.org/nml/2013/05/base#hasPort ´´>
168
169 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#hasPort">
170 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Group"/>
171 <rdfs:range rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Port"/>
172 </owl:ObjectProperty>
69
GFD-R-P.206 May 2013
173
174
175 <!´´ http://schemas.ogf.org/nml/2013/05/base#hasService ´´>
176
177 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#hasService">
178 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
179 <rdfs:range rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Service"/>
180 </owl:ObjectProperty>
181
182
183 <!´´ http://schemas.ogf.org/nml/2013/05/base#hasTopology ´´>
184
185 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#hasTopology">
186 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
187 <rdfs:range rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Topology"/>
188 </owl:ObjectProperty>
189
190
191 <!´´ http://schemas.ogf.org/nml/2013/05/base#implementedBy ´´>
192
193 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#implementedBy">
194 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
195 <rdfs:range rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
196 </owl:ObjectProperty>
197
198
199 <!´´ http://schemas.ogf.org/nml/2013/05/base#isAlias ´´>
200
201 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#isAlias">
202 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
203 <rdfs:range rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
204 </owl:ObjectProperty>
205
206
207 <!´´ http://schemas.ogf.org/nml/2013/05/base#isSerialCompoundLink ´´>
208
209 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#isSerialCompoundLink">
210 <rdfs:domain>
211 <owl:Class>
212 <owl:unionOf rdf:parseType="Collection">
213 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Link"/>
214 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#LinkGroup"/>
215 </owl:unionOf>
216 </owl:Class>
217 </rdfs:domain>
218 <rdfs:range rdf:resource="http://schemas.ogf.org/nml/2013/05/base#ListItem"/>
219 </owl:ObjectProperty>
220
221
222 <!´´ http://schemas.ogf.org/nml/2013/05/base#isSink ´´>
223
224 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#isSink">
225 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
226 <rdfs:range>
227 <owl:Class>
228 <owl:unionOf rdf:parseType="Collection">
229 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Link"/>
230 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#LinkGroup"/>
231 </owl:unionOf>
232 </owl:Class>
70
GFD-R-P.206 May 2013
233 </rdfs:range>
234 </owl:ObjectProperty>
235
236
237 <!´´ http://schemas.ogf.org/nml/2013/05/base#isSource ´´>
238
239 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#isSource">
240 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
241 <rdfs:range>
242 <owl:Class>
243 <owl:unionOf rdf:parseType="Collection">
244 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Link"/>
245 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#LinkGroup"/>
246 </owl:unionOf>
247 </owl:Class>
248 </rdfs:range>
249 </owl:ObjectProperty>
250
251
252 <!´´ http://schemas.ogf.org/nml/2013/05/base#item ´´>
253
254 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#item">
255 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#ListItem"/>
256 </owl:ObjectProperty>
257
258
259 <!´´ http://schemas.ogf.org/nml/2013/05/base#labeltype ´´>
260
261 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#labeltype">
262 <rdfs:domain>
263 <owl:Class>
264 <owl:unionOf rdf:parseType="Collection">
265 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Label"/>
266 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#LabelGroup"/>
267 </owl:unionOf>
268 </owl:Class>
269 </rdfs:domain>
270 </owl:ObjectProperty>
271
272
273 <!´´ http://schemas.ogf.org/nml/2013/05/base#locatedAt ´´>
274
275 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#locatedAt">
276 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
277 <rdfs:range rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Location"/>
278 </owl:ObjectProperty>
279
280
281 <!´´ http://schemas.ogf.org/nml/2013/05/base#next ´´>
282
283 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#next">
284 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#ListItem"/>
285 <rdfs:range rdf:resource="http://schemas.ogf.org/nml/2013/05/base#ListItem"/>
286 </owl:ObjectProperty>
287
288
289 <!´´ http://schemas.ogf.org/nml/2013/05/base#providesLink ´´>
290
291 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#providesLink">
292 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Service"/>
71
GFD-R-P.206 May 2013
293 <rdfs:range>
294 <owl:Class>
295 <owl:unionOf rdf:parseType="Collection">
296 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Link"/>
297 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#LinkGroup"/>
298 </owl:unionOf>
299 </owl:Class>
300 </rdfs:range>
301 </owl:ObjectProperty>
302
303
304 <!´´ http://schemas.ogf.org/nml/2013/05/base#providesPort ´´>
305
306 <owl:ObjectProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#providesPort">
307 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Service"/>
308 <rdfs:range>
309 <owl:Class>
310 <owl:unionOf rdf:parseType="Collection">
311 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Port"/>
312 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#PortGroup"/>
313 </owl:unionOf>
314 </owl:Class>
315 </rdfs:range>
316 </owl:ObjectProperty>
317
318
319 <!´´
320 ///////////////////////////////////////////////////////////////////////////////////////
321 //
322 // Data properties
323 //
324 ///////////////////////////////////////////////////////////////////////////////////////
325 ´´>
326
327
328 <!´´ http://schemas.ogf.org/nml/2013/05/base#alt ´´>
329
330 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#alt">
331 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Location"/>
332 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#float"/>
333 </owl:DatatypeProperty>
334
335
336 <!´´ http://schemas.ogf.org/nml/2013/05/base#end ´´>
337
338 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#end">
339 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Lifetime"/>
340 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
341 </owl:DatatypeProperty>
342
343
344 <!´´ http://schemas.ogf.org/nml/2013/05/base#labelSwapping ´´>
345
346 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#labelSwapping">
347 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#SwitchingService"/>
348 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
349 </owl:DatatypeProperty>
350
351
352 <!´´ http://schemas.ogf.org/nml/2013/05/base#lat ´´>
72
GFD-R-P.206 May 2013
353
354 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#lat">
355 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Location"/>
356 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#float"/>
357 </owl:DatatypeProperty>
358
359
360 <!´´ http://schemas.ogf.org/nml/2013/05/base#long ´´>
361
362 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#long">
363 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Location"/>
364 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#float"/>
365 </owl:DatatypeProperty>
366
367
368 <!´´ http://schemas.ogf.org/nml/2013/05/base#name ´´>
369
370 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#name">
371 <rdfs:domain>
372 <owl:Class>
373 <owl:unionOf rdf:parseType="Collection">
374 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#Location"/>
375 <rdf:Description rdf:about="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
376 </owl:unionOf>
377 </owl:Class>
378 </rdfs:domain>
379 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
380 </owl:DatatypeProperty>
381
382
383 <!´´ http://schemas.ogf.org/nml/2013/05/base#noReturnTraffic ´´>
384
385 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#noReturnTraffic">
386 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Link"/>
387 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
388 </owl:DatatypeProperty>
389
390
391 <!´´ http://schemas.ogf.org/nml/2013/05/base#parameter ´´>
392
393 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#parameter">
394 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
395 </owl:DatatypeProperty>
396
397
398 <!´´ http://schemas.ogf.org/nml/2013/05/base#start ´´>
399
400 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#start">
401 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Lifetime"/>
402 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
403 </owl:DatatypeProperty>
404
405
406 <!´´ http://schemas.ogf.org/nml/2013/05/base#unlocode ´´>
407
408 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#unlocode">
409 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Location"/>
410 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
411 </owl:DatatypeProperty>
412
73
GFD-R-P.206 May 2013
413
414 <!´´ http://schemas.ogf.org/nml/2013/05/base#value ´´>
415
416 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#value">
417 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Label"/>
418 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
419 </owl:DatatypeProperty>
420
421
422 <!´´ http://schemas.ogf.org/nml/2013/05/base#values ´´>
423
424 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#values">
425 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#LabelGroup"/>
426 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
427 </owl:DatatypeProperty>
428
429
430 <!´´ http://schemas.ogf.org/nml/2013/05/base#version ´´>
431
432 <owl:DatatypeProperty rdf:about="http://schemas.ogf.org/nml/2013/05/base#version">
433 <rdfs:domain rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
434 <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
435 </owl:DatatypeProperty>
436
437
438 <!´´
439 ///////////////////////////////////////////////////////////////////////////////////////
440 //
441 // Classes
442 //
443 ///////////////////////////////////////////////////////////////////////////////////////
444 ´´>
445
446
447
448 <!´´ http://schemas.ogf.org/nml/2013/05/base#AdaptationService ´´>
449
450 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#AdaptationService">
451 <rdfs:subClassOf rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Service"/>
452 </owl:Class>
453
454
455 <!´´ http://schemas.ogf.org/nml/2013/05/base#BidirectionalLink ´´>
456
457 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#BidirectionalLink">
458 <rdfs:subClassOf rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Group"/>
459 </owl:Class>
460
461
462 <!´´ http://schemas.ogf.org/nml/2013/05/base#BidirectionalPort ´´>
463
464 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#BidirectionalPort">
465 <rdfs:subClassOf rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Group"/>
466 </owl:Class>
467
468
469 <!´´ http://schemas.ogf.org/nml/2013/05/base#DeadaptationService ´´>
470
471 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#DeadaptationService">
472 <rdfs:subClassOf rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Service"/>
74
GFD-R-P.206 May 2013
473 </owl:Class>
474
475
476 <!´´ http://schemas.ogf.org/nml/2013/05/base#Group ´´>
477
478 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#Group">
479 <rdfs:subClassOf rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
480 </owl:Class>
481
482
483 <!´´ http://schemas.ogf.org/nml/2013/05/base#Label ´´>
484
485 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#Label"/>
486
487
488 <!´´ http://schemas.ogf.org/nml/2013/05/base#LabelGroup ´´>
489
490 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#LabelGroup">
491 <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
492 </owl:Class>
493
494
495 <!´´ http://schemas.ogf.org/nml/2013/05/base#Lifetime ´´>
496
497 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#Lifetime"/>
498
499
500 <!´´ http://schemas.ogf.org/nml/2013/05/base#Link ´´>
501
502 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#Link">
503 <rdfs:subClassOf rdf:resource="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
504 </owl:Class>
505
506
507 <!´´ http://schemas.ogf.org/nml/2013/05/base#LinkGroup ´´>
508
509 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#LinkGroup">
510 <rdfs:subClassOf rdf:resource="http://schemas.ogf.org/nml/2013/05/base#Group"/>
511 </owl:Class>
512
513
514 <!´´ http://schemas.ogf.org/nml/2013/05/base#ListItem ´´>
515
516 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#ListItem">
517 <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
518 </owl:Class>
519
520
521 <!´´ http://schemas.ogf.org/nml/2013/05/base#Location ´´>
522
523 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#Location">
524 <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
525 </owl:Class>
526
527
528 <!´´ http://schemas.ogf.org/nml/2013/05/base#NetworkObject ´´>
529
530 <owl:Class rdf:about="http://schemas.ogf.org/nml/2013/05/base#NetworkObject"/>
531
532
75
GFD-R-P.206 May 2013
76
GFD-R-P.206 May 2013
77
GFD-R-P.206 May 2013
References
Normative References
[GFD.202] Freek Dijkstra, and Jeroen van der Ham. A URN Namespace for Network Re-
sources. GFD 202 (Community Practise), June 2013. URL http://www.ogf.org/
documents/GFD.202.pdf.
[ISO 8601] Data elements and interchange formats – Information interchange – Repre-
sentation of dates and times. ISO 8601:2004 (Third edition), December 2004. Sec-
tion 4.3.2 (a), Complete representations of a date and time. Calendar date in ba-
sic format. URL http://www.iso.org/iso/home/store/catalogue_ics/catalogue_
detail_ics.htm?csnumber=40874.
[RDF-XML] Dave Beckett (editor) RDF/XML Syntax Specification (Revised) W3C Recom-
mendation 10 February 2004. URL http://www.w3.org/TR/rdf-syntax-grammar/.
[RFC 2119] Scott Bradner. Key words for use in RFCs to Indicate Requirement Levels.
RFC 2119 (Best Current Practice), March 1997. URL http://tools.ietf.org/html/
rfc2119.
[RFC 3986] Tim Berners-Lee, Roy T. Fielding, and Larry Masinter. Uniform Resource
Identifier (URI): Generic Syntax RFC 3986 (Standards Track), January 2005. URL
http://tools.ietf.org/html/rfc3986.
[Unicode] The Unicode Consortium. The Unicode Standard, Version 6.2.0. Mountain
View, CA, USA. November 2012. ISBN 978-1-936213-07-8 Section 5.18, Case Map-
pings. Paragraph about Caseless Matching. Normative URL http://www.unicode.
org/versions/Unicode6.2.0/ Informative URL ftp://ftp.unicode.org/Public/
UNIDATA/CaseFolding.txt
[UNLOCODE] United Nations Code for Trade and Transport Locations UN/LOCODE,
revision 2012-01, September 2012. URL http://www.unece.org/cefact/locode/
welcome.html.
78
GFD-R-P.206 May 2013
[WGS84] Department of Defense World Geodetic System 1984, Its Definition and Rela-
tionships With Local Geodetic Systems NIMA Technical Report TR8350.2, Third Edi-
tion, June 2004 URL http://earth-info.nga.mil/GandG/publications/tr8350.2/
tr8350_2.html.
[XML] Henry S. Thompson, David Beech, Murray Maloney and Noah Mendelsohn XML
Schema Part 1: Structures Second Edition W3C Recommendation 28 October 2004.
URL http://www.w3.org/TR/xmlschema-1/.
Informative References
[Dijkstra13] Freek Dijkstra, et al. Experimental Features for NML 1. Work in Progress.
[GFD.165] Paola Grosso, Aaron Brown, Aurélien Cedeyn, Freek Dijkstra, Jeroen van der
Ham, Anand Patil, Pascale Primet, Martin Swany, and Jason Zurawski. Network Topol-
ogy Descriptions in Hybrid Networks GFD 165 (Informational), March 2010. URL
http://www.ogf.org/documents/GFD.165.pdf.
[RFC 6350] Simon Perreault. vCard Format Specification RFC 6350 (Standards Track),
August 2011. URL http://tools.ietf.org/html/rfc6350.
[RFC 6351] S. Perreault. xCard: vCard XML Representation RFC 6351 (Standards Track),
August 2011. URL http://tools.ietf.org/html/rfc6351.
[RDFVCARD] Harry Halpin, Renato Iannella, Brian Suda, Norman Walsh Representing
vCard Objects in RDF W3C Member Submission 20 January 2010. URL http://www.
w3.org/TR/vcard-rdf/.
79