From 945f487a08b643392a5d5918c631640b9a0e4605 Mon Sep 17 00:00:00 2001 From: 20001LastOrder Date: Tue, 3 Nov 2020 22:52:26 -0500 Subject: add realistic solver --- .../mcgill/ecse/socialnetwork/plugin/Queries.vql | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/plugin/Queries.vql (limited to 'Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/plugin/Queries.vql') diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/plugin/Queries.vql b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/plugin/Queries.vql new file mode 100644 index 00000000..3e7fc68c --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/plugin/Queries.vql @@ -0,0 +1,54 @@ +package ca.mcgill.ecse.socialnetwork.plugin + +import epackage "http://ecse.mcgill.ca/socialnetwork" + +//@Constraint(message="terminatorAndInformation", severity="error", key={T}) +//pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { +// FunctionalOutput.outgoingLinks(Out,I); +// FunctionalOutput.terminator(Out,T); +//} or { +// InformationLink.to(I,In); +// FunctionalInput.terminator(In,T); +//} + +@Constraint(message="singleFriendship", severity="error", key={p1}) +pattern singleFriendship(p1: Person) { + find friendship(p1, p); + neg find friendship(p, p1); +} + +//@Constraint(message="cycle", severity="error", key={p}) +//pattern cycleInParenthood(p: Person) { +// find isAncestor(p, p); +//} + +@Constraint(message="noFriend", severity="error", key={p}) +pattern noFriend(p: Person){ + neg find friendship(p, _); +} + +//@Constraint(message="brothhoodParent", severity="error", key={p1,p2}) +//pattern brothhoodParent(p1: Person, p2: Person){ +// Person.parents(p1, parent1); +// Person.parents(p2, parent2); +// parent1 == parent2; +// find isAncestor(p1, p2); +//} +@Constraint(message="selfFriend", severity="error", key={p}) +pattern selfFriend(p: Person){ + Person.friends(p,p); +} + +pattern friendship(p1: Person, p2: Person){ + Person.friends(p1,p2); +} + +//pattern isAncestor(person : Person, ancestor : Person){ +// Person.parents(person, ancestor); +//} or { +// Person.parents(person, parent); +// find isAncestor(parent, ancestor); +//} + + + -- cgit v1.2.3-54-g00ecf