:- dynamic ct/3. :- multifile ct/3. ct(initialize(E), ( not(initNode(E)) ),( add(initNode(E)) )). ct(addCloudNode(C), ( initNode(_)%, %not( % standbyN(S)), %D \= S, %not(backupRelation(_,D,_1) ),( add(cloudNode(C)) )). ct(addClusterToCloud(C,Cl), ( cloudNode(C) ),( add(clusterNode(Cl)), add(onRelation(_,Cl,C)) )). %ct(addServerToCloud(C,S), ( % cloudNode(C) %),( % add(serverNode(S)), % add(onCloudRelation(_,S,C)) %)). ct(addServerToSocket(Cl,S), ( cloudNode(Cl), clusterNode(C), not( clusterNode(Cl), onRelation(_r1,_1,Cl), onRelation(_r2,_2,Cl) ) ),( add(serverNode(S)), add(onRelation(_,S,Cl)) )). ct(addDBToServer(S1,S2,D), ( serverNode(S1), serverNode(S2), not( onRelation(_r1,D1,S1), onRelation(_r2,D1,S2) ) ),( add(dbNode(D)), add(onRelation(_1,D,S1)), add(onRelation(_2,D,S2)) )). ct(addAppToDB(D1,D2,A), ( dbNode(D1), dbNode(D2), not( onRelation(_r1,A1,D1), onRelation(_r2,A1,D2) ) ),( add(appNode(A)), add(onRelation(_1,A,D1)), add(onRelation(_2,A,D2)) )). ct(addStorageToServer(S1,S2,St), ( serverNode(S1), serverNode(S2), clusterNode(Cl), onRelation(_rc1,S1,Cl), onRelation(_rc2,S2,Cl), not( onRelation(_r1,St1,S1), onRelation(_r2,St1,S2) ) ),( add(storageNode(St)), add(onRelation(_1,St,S1)), add(onRelation(_2,St,S2)) )).