Object oriented technology is used on one side for structuring large software systems and also on the other side as a persistent data model. Sometimes both are combined with the major disadvantage of minor flexibility.
The hypergraph schema allows to address the data in a random access way also over the network, but object oriented models only along predefined object/class relationships.
For the hypergraph schema it is possible to define an additional type relationship:
:<<supertype - subtype>>
:<<supertype - subtype>><supertype>
:<<supertype - subtype>><subtype>
For example we can replace Project by Space-Project and define
:[Space-Project]
:[Space-Project]<subtype><supertype>[Project]
:(Riverside)[Space-Project]
The occurrence values can be assigned all to an instance of the Space-Project or split to an instance of Project and Space-Project linked also by <<supertype - subtype>>.
Operations on the model can be expressed in a functional, modular procedural, object oriented, and also SQL like way.
For SQL it is open how to join a path expression over the network. But an iterative/recursive evaluation of a path expression like
(Scott)[Project-Member]<supports>()[Project]
by (also parallel) processing over sets
for(AssociationRole ar : scott.getAssociationRoles(member, supports)) {
Topic to = (Topic) ar.getTNode();
// getTNode implements the network lookup in case
}
is possible. (The type assertions of the path expression are not verified in the loop.)
The evaluation of expressions can be distributed to the linked nodes or processed only by the client by iterating over the next set. Also it is possible to use dedicated processors, because every node object holds the network link to the remote map it comes from.
Operations can use the classes:
AssociationType, RoleType, OccurrenceType, Type, Topic, Occurrence, AssociationRole, TNode (supertype)
From a concept view software for the hypergraph model of entity-relationships has to cope only with linked sets. Software for the relational model demands to handle dynamically created tables which is difficult to integrate in object oriented languages.
Sets can also be processed in parallel, depending if the elements are linked by 'one of' or 'all of'. Thread creation can be implicit, as shown by the set iteration above.