[Nml-wg] Review of the OWL schema

Freek Dijkstra Freek.Dijkstra at sara.nl
Thu Dec 27 17:33:14 EST 2012


Here is my review of the OWL schema:

Discrepancy between names in document and OWL schema:
* List should be OrderedList
* endtime should be end
* starttime should be start
* labelvalue should be value
* labelvalues should be values

(I actually like endtime and starttime better, but the document and XSD
schem use end and start)

Missing items:
* nml:canProvidePort relation
* nml:parameter (likely not needed, just as nml:Relation is not needed)
* nml:labelSwapping
  (DataProperty with domain: SwitchingService and range: boolean)
* nml:noReturnTraffic
  (DataProperty with domain: Link and range: boolean)

Spurious items (should be removed):
* hasSource (use isSource instead)
* hasSink   (use isSink instead)
* time      (use start and end instead)

The domains and/or ranges of the following Properties are different from
what's allowed in the document:
* hasInboundPort
  Domain should be NetworkObject (to allow future extensions)
  Range should be Union of Port and PortGroup
* hasLabelGroup
  Domain is correct
  Range should be Union of LinkGroup and PortGroup
* hasLink
  Domain should be Group (to allow future extensions)
  Range is correct
* hasNode
  Domain should be NetworkObject (to allow future extensions)
  Range is correct
* hasOutboundPort
  Domain should be NetworkObject (to allow future extensions)
  Range should be Union of Port and PortGroup
* hasPort
  Domain should be Group (to allow future extensions)
  Range should be Union of Port and PortGroup
* hasTopology
  Domain should be NetworkObject (to allow future extensions)
  Range is correct
* implementedBy
  Domain should be NetworkObject (to allow future extensions)
  Range should be NetworkObject (to allow future extensions)
* isSerialCompoundLink
  Domain is correct
  Range should be OrderedList
* isSink
  Domain should be NetworkObject (there is an experimental feature
      from Node to Link)
  Range is correct
* isSource
  Domain should be NetworkObject (there is an experimental feature
      from Node to Link)
  Range is correct
* locatedAt
  Domain should be NetworkObject (e.g. Port is perfectly valid)
  Range is correct
* providesLink
  Domain should be Service (to allow future extensions)
  Range is correct
* providesPort
  Domain should be Service (to allow future extensions)
  Range is correct
* item
  Domain is correct
  Range is correct (undefined)
* adaptationfunction
  Domain is correct
  Range should be a URI
* address
  Domain is correct
  Range should be undefined (typical use is a vCard object)
* encoding
  Domain should be Union of Port, PortGroup, Link, and LinkGroup
  Range should be a URI
* labeltype
  Domain is correct
  Range should be a URI
* version
  Domain should be NetworkObject (to allow future extensions)
  Range should be a dateTime (from XMLSchema)

The ranges of the following DataProperties are a URI, and thus should be
described as a ObjectPoperty instead:
* address (points to a vCard object)
* adaptationfunction (points to an object in a NML extension schema)
* encoding (points to an object in a NML extension schema)
* labeltype (points to an object in a NML extension schema)

For consistency in the document, consider swapping the order of domain
and range in the following DataProperties:
- existsDuring
- hasInboundPort
- hasLabel
- hasLabelGroup
- hasLink
- hasNode
- hasOutboundPort
- hasPort
- hasTopology
- implementedBy
- isAlias
- isSerialCompoundLink
- isSink
- locatedAt

Regards,
Freek


More information about the nml-wg mailing list