equipment(id:PK) :- Equipment(X1),id(X1,id)::identifier(X1,id). cable(id:PK) :- Cable(X1),id(X1,id)::identifier(X1,id). coax(id,name:PK,type) :- Coax(X1),type(X1,type),id(X2,id), name(X1,name),Cable(X2),isa(X1,X2):: identifier(X1,name),identifier(X2,id). crossOver(id,name:PK,type) :- CrossOver(X1),type(X1,type),id(X2,id), name(X1,name),Cable(X2),isa(X1,X2):: identifier(X1,name),identifier(X2,id). straightThrough(id,name:PK,type) :- StraightThrough(X1),type(X1,type),id(X2,id), name(X1,name),Cable(X2),isa(X1,X2):: identifier(X1,name),identifier(X2,id). networkNode(id:PK) :- NetworkNode(X1),id(X1,id)::identifier(X1,id). centralHub(id:PK) :- CentralHub(X1),id(X1,id)::identifier(X1,id). hub(id:PK,name,type,connectedTo) :- Hub(X1),NetworkNode(X2),ConnectedTo(X1,X2), name(X1,name),id(X2,connectedTo),id(X1,id), type(X1,type)::identifier(X1,id),identifier(X2,connectedTo). router(id:PK,name,type,connectedTo) :- Router(X1),NetworkNode(X2),ConnectedTo(X1,X2), type(X1,type),id(X2,connectedTo),name(X1,name), id(X1,id)::identifier(X1,id),identifier(X2,connectedTo). switch(id:PK,name,type,connectedTo) :- Switch(X1),NetworkNode(X2),ConnectedTo(X1,X2), name(X1,name),type(X1,type),id(X2,connectedTo), id(X1,id)::identifier(X1,id),identifier(X2,connectedTo). computer(id:PK) :- Computer(X1),id(X1,id)::identifier(X1,id). pc(id:PK,name,type,connectedTo) :- PC(X1),NetworkNode(X2),ConnectedTo(X1,X2), id(X2,connectedTo),type(X1,type),id(X1,id), name(X1,name)::identifier(X1,id),identifier(X2,connectedTo). server(id:PK,name,type,connectedTo) :- Server(X1),NetworkNode(X2),ConnectedTo(X1,X2), id(X1,id),type(X1,type),id(X2,connectedTo), name(X1,name)::identifier(X1,id),identifier(X2,connectedTo). wirelessDevice(id:PK) :- WirelessDevice(X1),id(X1,id)::identifier(X1,id). WAP(id:PK,name,type) :- WAP(X1),type(X1,type),name(X1,name), id(X1,id)::identifier(X1,id). wirelessBridge(id:PK,name,type) :- WirelessBridge(X1),type(X1,type),name(X1,name), id(X1,id)::identifier(X1,id). software(id:PK,name,type) :- Software(X1),type in {SubClassNamesOf(Software)},id(X1,id), name(X1,name)::identifier(X1,id). hasSoftware(computerID:PK,softwareID:PK) :- Computer(X1),Software(X2),HasSoftware(X1,X2), id(X1,computerID),id(X2,softwareID)::identifier(X1,computerID), identifier(X2,softwareID). pairOfNode(id:PK,connectThrough,node1,node2) :- PairOfNodes(X1),NetworkNode(X2),NetworkNode(X3), Cable(X4),NodeB(X1,X2),NodeA(X1,X3), ConnectedThrough(X1,X4),id(X2,node2),id(X3,node1), id(X1,id),id(X4,connectThrough)::identifier(X1,id),identifier(X2,node2), identifier(X3,node1),identifier(X4,connectThrough).