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