<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
         xmlns:owl="http://www.w3.org/2002/07/owl#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:dcterms="http://purl.org/dc/terms/"
         xmlns:vs="http://www.w3.org/2003/06/sw-vocab-status/ns#"
>

<rdf:Description rdf:about="http://www.science.uva.nl/research/sne/ndl#">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Ontology"/>
    <rdfs:label>ndl</rdfs:label>
    <dc:title xml:lang="en">Network Description Language: Topology module</dc:title>
    <dc:description xml:lang="en">A vocabulary for defining network topology on a single layer. For historic reasons, the Location and locatedAt definitions are also in this schema.</dc:description>
    <dc:publisher xml:lang="en">System and Network Engineering group, Universiteit van Amsterdam</dc:publisher>
    <dcterms:issued>2006-04-26</dcterms:issued>
    <dcterms:modified>2007-01-21</dcterms:modified>
    <owl:versionInfo>2.4</owl:versionInfo>
    <vs:term_status>unstable</vs:term_status>
    <vs:userdocs rdf:resource="http://www.science.uva.nl/research/sne/ndl/?c=11-Topology-Schema"/>
    <vs:moreinfo>WARNING: this schema is still in unstable mode. While it is out of testing phase, and even has some usage, it is still mostly a research project. Feel free to use it, but beware that you'll be an early adopter, with the pros and cons that come with it. If you prefer a slightly more stable schema, do have a look at the output of the NML workgroup in the OGF (www.ogf.org).</vs:moreinfo>
</rdf:Description>

<!-- Classes -->

<rdfs:Class rdf:about="http://www.science.uva.nl/research/sne/ndl#NetworkElement">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">Network element</rdfs:label>
    <rdfs:comment xml:lang="en">A network element. Thus any object that describes an element in a computer network.</rdfs:comment>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.science.uva.nl/research/sne/ndl#NetworkTransportElement">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">Network transport element</rdfs:label>
    <rdfs:comment xml:lang="en">A network element that transmits data. For example, a Link, Interface, or (atomic) Adaptation.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkElement"/>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.science.uva.nl/research/sne/ndl#Device">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">Device</rdfs:label>
    <rdfs:comment xml:lang="en">A (collection of) network element(s) that is grouped together representing a physical or abstracted network device. A device may be able to switch on multiple layers. To specifically signify that a device is a physical device, the instance should also be of type PhysicalElement.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkElement"/>
    <!-- since AbstractDevice is a subClassOf Device, we can't make Device a subClassOf PhysicalElement -->
</rdfs:Class>

<rdfs:Class rdf:about="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">Connection Point</rdfs:label>
    <rdfs:comment xml:lang="en">A network element that can be represented as a connection point (ITU-T G.805 terminology). Subclasses are Interface (static connection point), ConfigurableInterface (connection point whose properties may change), PotentialInterface (a connection point which can be, but is not configured), and InstantiatedInterface (a dynamic connection point, that is currently instantiated from a PotentialInterface, but may be removed.).</rdfs:comment>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkTransportElement"/>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkElement"/>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.science.uva.nl/research/sne/ndl#Interface">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">Interface</rdfs:label>
    <rdfs:comment xml:lang="en">A network element(s) that can be represented as a connection point (ITU-T G.805 terminology) or as an incident of an edge on a vertex (in graph theory). Typically a logical network interface.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkTransportElement"/>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint"/>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.science.uva.nl/research/sne/ndl#StaticInterface">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">Static Interface</rdfs:label>
    <rdfs:comment xml:lang="en">An Interface, whose properties simply can not be changed.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint"/>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#Interface"/>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkElement"/>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.science.uva.nl/research/sne/ndl#ConfigurableInterface">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">Configurable Interface</rdfs:label>
    <rdfs:comment xml:lang="en">An Interface, whose properties (in particular it's label) is configurable. This simply means that this data is considered more dynamic, and should not be cached for a longer time. It does not define a strict time-scale.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint"/>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#Interface"/>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkElement"/>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.science.uva.nl/research/sne/ndl#BroadcastSegment">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">Broadcast Segment</rdfs:label>
    <rdfs:comment xml:lang="en">A collection of interfaces at a certain layer who are all connected to each other, in the semantic meaning of linkedTo. For example, an IP Broadcast Segment or a link-local network.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkTransportElement"/>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkElement"/>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.science.uva.nl/research/sne/ndl#Link">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">Link</rdfs:label>
    <rdfs:comment xml:lang="en">A (collection of) network element(s) that can be represented as a link connection (ITU-T G.805 terminology) or as an edge on a vertex (in graph theory). Typically a single (non-concatenated) link on a certain network layer (not necessarily the physical layer). A link is a special case of a Broadcast segment, with exactly two connected Interfaces.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkTransportElement"/>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkElement"/>
    <rdfs:subClassOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#BroadcastSegment"/>
</rdfs:Class>

<!-- For Location, see the location namespace -->

<!-- Predicates -->

<rdf:Property rdf:about="http://www.science.uva.nl/research/sne/ndl#hasInterface">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">has interface</rdfs:label>
    <rdfs:comment>The hasInterface property assigns interfaces to the group of network elements that constitute a device. The has interface property is transitive: if device "has" a physical Interface, and the physical interface contains one or more logical interface (as described by an adaptation property), then those logical interfaces are considered to be part of the device as well. It is common to create a "hasInterface" relation between a device and all fixed Interface: both physical and statically logical interfaces.</rdfs:comment>
    <rdfs:domain rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkElement"/>
    <rdfs:range rdf:resource="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.science.uva.nl/research/sne/ndl#connectedTo">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">connected to</rdfs:label>
    <rdfs:comment>The connectedTo ties Interfaces together. This property defines uni-directional tandem connection (ITU G.805 terms) or unidirectional path (graph theory terms) between Interfaces, or from Interfaces to Links. All data send out the subject Interface (the egress interface) is somehow received by to the object Interface (the ingress interface). To define a bi-directional connection with the connectedTo property it should be defined in both directions (both Interfaces pointing to each other or both Interfaces pointing to the same Link). A connectedTo property always involves external connection, between devices, not connections within a device (for that, see switchedTo). The subject and object Interface must be on the same layer.</rdfs:comment>
    <rdfs:domain rdf:resource="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint"/>
    <rdfs:range rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkTransportElement"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.science.uva.nl/research/sne/ndl#linkTo">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">linked to</rdfs:label>
    <rdfs:comment>The linkTo ties Interfaces together. The linkTo is a special case of the connectedTo property and defines a uni-directional link connection (ITU G.805 terms) or edge (graph theory terms). The subject and object Interface are directly connected to each other on their layer. There is no intermediate connection point forwarding the data.</rdfs:comment>
    <rdfs:domain rdf:resource="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint"/>
    <rdfs:range rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkTransportElement"/>
    <rdfs:subPropertyOf rdf:resource="http://www.science.uva.nl/research/sne/ndl#connectedTo"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.science.uva.nl/research/sne/ndl#switchedTo">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">switched to</rdfs:label>
    <rdfs:comment>The switchedTo property represents an internal uni-directional connection within a device. All data from the subject is forwarded to the object. A switchedTo property always involves internal connection, between devices, not connections between two devices (for that, see connectedTo). To define a bi-directional connection with the switchedTo property it should be defined in both directions.</rdfs:comment>
    <rdfs:domain rdf:resource="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint"/>
    <rdfs:range rdf:resource="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint"/>
    <rdfs:seeAlso rdf:resource="http://www.science.uva.nl/research/sne/ndl#packetSwitchedTo"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.science.uva.nl/research/sne/ndl#circuitSwitchedTo">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">circuit switched to</rdfs:label>
    <rdfs:comment>The circuitSwitchedTo property is a specific variant of the switchedTo property. Two circuitSwitchedTo properties with the same Interface as object means that the object Interface somehow picks one of the two signals, and puts that through, dropping traffic from the other subject Interface. For example the Interface with the best signal-to-noise ratio of a 1:1 protected path is picked.</rdfs:comment>
    <rdfs:domain rdf:resource="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint"/>
    <rdfs:range rdf:resource="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint"/>
    <rdfs:seeAlso rdf:resource="http://www.science.uva.nl/research/sne/ndl#switchedTo"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.science.uva.nl/research/sne/ndl#packetSwitchedTo">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">packet switched to</rdfs:label>
    <rdfs:comment>The packetSwitchedTo property is a specific variant of the switchedTo property. Two packetSwitchedTo properties with the same Interface as object means that the data of the all subject Interfaces is somehow merged and forward on the object Interface. For example, Ethernet packets are merged. There may be additional constraints specified in the SwitchMatrix, like a memory buffer.</rdfs:comment>
    <rdfs:domain rdf:resource="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint"/>
    <rdfs:range rdf:resource="http://www.science.uva.nl/research/sne/ndl#ConnectionPoint"/>
    <rdfs:seeAlso rdf:resource="http://www.science.uva.nl/research/sne/ndl#switchedTo"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.science.uva.nl/research/sne/ndl#capacity">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">capacity</rdfs:label>
    <rdfs:comment>A float representing the data rate of an Interface or link in Bytes/s (similar to GMPLS; thus not bit/s!), at the layer specified by the Interface or Link. This is the data rate including headers. To compare if two floats are equal, at least the 10 most significant bits (about 3 decimals) must be compared, and data should be rounded to Byte/s. The maximum cardinality of this property is 1.</rdfs:comment>
    <!-- So Gigabit Ethernet is 1.00 Gbit/s = 125E6 Byte/s, not 1.25 Gbit/s = 156.25E6 Byte/s, despite the 8b/10b encoding. -->
    <rdfs:subPropertyOf rdf:resource="http://www.science.uva.nl/research/sne/ndl/layer#property"/>
    <rdfs:domain rdf:resource="http://www.science.uva.nl/research/sne/ndl#NetworkTransportElement"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#float"/>
</rdf:Property>

<!-- LOCATION CLASSES AND PROPERTIES -->

<rdfs:Class rdf:about="http://www.science.uva.nl/research/sne/ndl#Location">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">Location</rdfs:label>
    <rdfs:comment xml:lang="en">The location of a network device. Locations can be used to distinguish between different groups of devices. This is a broad class, covering both the spacial (geographic) location, as well as the address. Recommended usage include the "geo" or "vCard" namespaces (e.g. geo:longitute, geo:latitude and vCard:ADR). Note that Location is transitive: if Location2 locatedAt Location1, then Location2 inherits all predicates of Location1, unless Location2 overrides it by declaring it's own predicate. So you can have a Location in a Location in a Location. This is an important concept, which allows maximum flexibility of the hierarchy. For example, if Location1 has "facility" set, and Location2 has a "room", then the facility is spanning multiple rooms. However, if Lcoation1 has "room" set and Location2 defined a "facility" predicate, then the room can have multiple facilities.</rdfs:comment>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"/>
</rdfs:Class>

<rdf:Property rdf:about="http://www.science.uva.nl/research/sne/ndl#locatedAt">
    <rdfs:isDefinedBy rdf:resource="http://www.science.uva.nl/research/sne/schema/topology.rdf"/>
    <rdfs:label xml:lang="en">located at</rdfs:label>
    <rdfs:comment>The relation between a Device and a Location is defined by the locatedAt property. Optionally, it can be used for denoting the location of an Interface, but only if the accompanying Device is not defined or known. Locations itself may have a location of their own. For example, a location can denote a rack, while its parent locations is a room, and thats parent location is a building or facility.</rdfs:comment>
    <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdfs:range rdf:resource="http://www.science.uva.nl/research/sne/ndl#Location"/>
</rdf:Property>

<!-- Deprecated classes and properties -->

<rdf:Property rdf:about="http://www.science.uva.nl/research/sne/ndl#name">
    <!-- name is deprecated. You are recommended to use rdfs:label instead -->
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DeprecatedProperty"/>
    <owl:equivalentProperty rdf:resource="http://www.w3.org/2000/01/rdf-schema#label"/>
    <rdfs:label xml:lang="en">name</rdfs:label>
    <rdfs:comment>A short human-readable name for the subject.</rdfs:comment>
    <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.science.uva.nl/research/sne/ndl#description">
    <!-- description is deprecated. You are recommended to use dc:description (or rdfs:comment) instead -->
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DeprecatedProperty"/>
    <owl:equivalentProperty rdf:resource="http://purl.org/dc/elements/1.1/description"/> <!-- dc:description -->
    <rdfs:label xml:lang="en">description</rdfs:label>
    <rdfs:comment>A longer human-readable description for the subject.</rdfs:comment>
    <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>

<!--
The predicates "encodingType" and "encodingLabel" are also deprecated, 
but since they were never used, we don't even mention them here
-->

</rdf:RDF>

