
* A _Node_ MUST have a _hasPort_ relation with one or more _Ports_. Could we not have an unconnected node? e.g. describing all the hosts in a domain, one might have had its NICs removed, but you still want to account for its existence. * A _Node_ MAY have a _implementedBy_ relation with one or more _Nodes_. Might a node be "implementedBy" a complex topology? E.g. a POP or similar. So you could have a node that is "implementedBy" a network (or whatever it's being called nowadays). A _Port_ is related to zero or one _Node_, and also has a relation with zero, one or two (uni-directional) _Links_. Where does an unconnected port exist? * A _Port_ MAY have a _source_ relation with up to two _Unidirectional Links_. * A _Port_ MAY have a _sink_ relation with up to two _Unidirectional Links_. Does this mean that a port might be a sink for two unidirectional links? If so, under what circumstances could it occur that a port could be a sink for more than one link, but not more than two? A _Unidirectional Link_ SHOULD have a _capacity_ attribute which describes the capacity of the link in bytes per second. Not bits per second? A Unidirectional Link MUST have an attribute _type_ which is either _Link_ or _Crossconnect_. When the type is Link, the source and sink MUST be of different devices. When the type is Crossconnect, the source and sink MUST be of the same device. Would it make sense to make a cross-connect a subclass of link? Seems strange to me to mix 'type' attribute differentiation with object-oriented definitions. As an actually defined schema instead of an ontology, it might make sense to simply define much of these different classes as simply 'type' attributes of the objects. This might apply to
This is a great writeup, thanks :-) Jeroen van der Ham wrote: the 'domain' object as well. Cheers, Aaron