bdi-network-resilience

Changes

Details

diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/AnomalyDetectionCapability.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/AnomalyDetectionCapability.java
index c2ce25f..8612756 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/AnomalyDetectionCapability.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/AnomalyDetectionCapability.java
@@ -28,7 +28,7 @@ import bdi4jade.annotation.Parameter;
 import bdi4jade.annotation.Parameter.Direction;
 import bdi4jade.belief.Belief;
 import bdi4jade.belief.BeliefSet;
-import bdi4jade.belief.PredicateBelief;
+import bdi4jade.belief.Predicate;
 import bdi4jade.belief.TransientBeliefSet;
 import bdi4jade.core.GoalUpdateSet;
 import bdi4jade.event.GoalEvent;
@@ -86,7 +86,7 @@ public class AnomalyDetectionCapability extends RouterAgentCapability implements
 
 		@Parameter(direction = Direction.IN)
 		public void setBeliefName(AnomalousUsage anomalousUsage) {
-			this.link = anomalousUsage.getVariable();
+			this.link = anomalousUsage.getConcept();
 		}
 	}
 
@@ -136,7 +136,7 @@ public class AnomalyDetectionCapability extends RouterAgentCapability implements
 
 		@Parameter(direction = Direction.IN)
 		public void setBeliefName(Restricted restricted) {
-			this.ip = restricted.getVariable();
+			this.ip = restricted.getConcept();
 		}
 	}
 
@@ -174,7 +174,7 @@ public class AnomalyDetectionCapability extends RouterAgentCapability implements
 
 		@Parameter(direction = Direction.IN)
 		public void setBeliefName(Restricted restricted) {
-			this.ip = restricted.getVariable();
+			this.ip = restricted.getConcept();
 		}
 	}
 
@@ -218,10 +218,10 @@ public class AnomalyDetectionCapability extends RouterAgentCapability implements
 			@Override
 			public boolean isContextApplicable(Goal goal) {
 				BeliefGoal<Restricted> bg = (BeliefGoal<Restricted>) goal;
-				PredicateBelief<IpRateLimited> ipRateLimited = (PredicateBelief<IpRateLimited>) getBeliefBase()
+				Predicate<IpRateLimited> ipRateLimited = (Predicate<IpRateLimited>) getBeliefBase()
 						.getBelief(
 								new IpRateLimited(bg.getBeliefName()
-										.getVariable()));
+										.getConcept()));
 				return (ipRateLimited != null && ipRateLimited.getValue());
 			}
 		};
@@ -234,10 +234,10 @@ public class AnomalyDetectionCapability extends RouterAgentCapability implements
 		Set<Belief<?, ?>> anomalousIpBeliefs = getBeliefBase()
 				.getBeliefsByType(Anomalous.class);
 		for (Belief<?, ?> belief : anomalousIpBeliefs) {
-			PredicateBelief<Anomalous> anomalous = (PredicateBelief<Anomalous>) belief;
-			Ip ip = anomalous.getName().getVariable();
+			Predicate<Anomalous> anomalous = (Predicate<Anomalous>) belief;
+			Ip ip = anomalous.getName().getConcept();
 			if (anomalous.getValue()) {
-				PredicateBelief<Benign> benign = (PredicateBelief<Benign>) getBeliefBase()
+				Predicate<Benign> benign = (Predicate<Benign>) getBeliefBase()
 						.getBelief(new Benign(ip));
 				if (benign == null) {
 					// Anomalous(ip) AND ~Benign(ip) -->
@@ -245,7 +245,7 @@ public class AnomalyDetectionCapability extends RouterAgentCapability implements
 					goal(goalUpdateSet, new Benign(ip), this);
 				}
 
-				PredicateBelief<Restricted> restricted = (PredicateBelief<Restricted>) getBeliefBase()
+				Predicate<Restricted> restricted = (Predicate<Restricted>) getBeliefBase()
 						.getBelief(new Restricted(ip));
 				if ((benign == null || !benign.getValue())
 						&& (restricted == null || !restricted.getValue())) {
@@ -259,11 +259,11 @@ public class AnomalyDetectionCapability extends RouterAgentCapability implements
 		Set<Belief<?, ?>> restrictedBeliefs = getBeliefBase().getBeliefsByType(
 				Restricted.class);
 		for (Belief<?, ?> belief : restrictedBeliefs) {
-			PredicateBelief<Restricted> restricted = (PredicateBelief<Restricted>) belief;
+			Predicate<Restricted> restricted = (Predicate<Restricted>) belief;
 			if (restricted.getValue()) {
-				PredicateBelief<Benign> benign = (PredicateBelief<Benign>) getBeliefBase()
+				Predicate<Benign> benign = (Predicate<Benign>) getBeliefBase()
 						.getBelief(
-								new Benign(restricted.getName().getVariable()));
+								new Benign(restricted.getName().getConcept()));
 				if (benign != null && benign.getValue()) {
 					// Restricted(l) AND Benign(l) --> not
 					// Restricted(l)
@@ -301,10 +301,10 @@ public class AnomalyDetectionCapability extends RouterAgentCapability implements
 			if (overUsageCause.getValue().isEmpty()) {
 				removeBelief(overUsageCause);
 			}
-			PredicateBelief<AnomalousUsage> anomalousUsage = (PredicateBelief<AnomalousUsage>) getBeliefBase()
+			Predicate<AnomalousUsage> anomalousUsage = (Predicate<AnomalousUsage>) getBeliefBase()
 					.getBelief(
 							new AnomalousUsage(overUsageCause.getName()
-									.getVariable()));
+									.getConcept()));
 			if (anomalousUsage != null
 					&& (anomalousUsage.getValue() == null || !anomalousUsage
 							.getValue())) {
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/belief/AnomalousUsageBelief.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/belief/AnomalousUsageBelief.java
index 89511be..7296744 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/belief/AnomalousUsageBelief.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/belief/AnomalousUsageBelief.java
@@ -38,7 +38,7 @@ public class AnomalousUsageBelief extends DerivedPredicate<AnomalousUsage> {
 	@Override
 	protected Boolean evaluate() {
 		BeliefSet<OverUsageCause, Ip> overUsageCauseBeliefs = (BeliefSet<OverUsageCause, Ip>) getMainBeliefBase()
-				.getBelief(new OverUsageCause(getName().getVariable()));
+				.getBelief(new OverUsageCause(getName().getConcept()));
 		return overUsageCauseBeliefs == null ? false : !overUsageCauseBeliefs
 				.getValue().isEmpty();
 	}
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/belief/BenignBelief.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/belief/BenignBelief.java
index 4612425..9bce2e6 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/belief/BenignBelief.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/belief/BenignBelief.java
@@ -25,7 +25,7 @@ import java.util.Set;
 
 import bdi4jade.belief.Belief;
 import bdi4jade.belief.DerivedPredicate;
-import bdi4jade.belief.PredicateBelief;
+import bdi4jade.belief.Predicate;
 import br.ufrgs.inf.bdinetr.domain.predicate.Benign;
 import br.ufrgs.inf.bdinetr.domain.predicate.Threat;
 
@@ -43,10 +43,10 @@ public class BenignBelief extends DerivedPredicate<Benign> {
 		Set<Belief<?, ?>> threatBeliefs = getMainBeliefBase().getBeliefsByType(
 				Threat.class);
 		for (Belief<?, ?> belief : threatBeliefs) {
-			PredicateBelief<Threat> threat = (PredicateBelief<Threat>) belief;
+			Predicate<Threat> threat = (Predicate<Threat>) belief;
 			assert threat.getValue();
-			if (getName().getVariable().equals(
-					threat.getName().getVariable().getDstIp())) {
+			if (getName().getConcept().equals(
+					threat.getName().getConcept().getDstIp())) {
 				exists = true;
 				break;
 			}
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/ClassifierCapability.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/ClassifierCapability.java
index b215b89..955fd13 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/ClassifierCapability.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/ClassifierCapability.java
@@ -27,7 +27,7 @@ import java.util.Set;
 import bdi4jade.annotation.Parameter;
 import bdi4jade.annotation.Parameter.Direction;
 import bdi4jade.belief.Belief;
-import bdi4jade.belief.PredicateBelief;
+import bdi4jade.belief.Predicate;
 import bdi4jade.core.GoalUpdateSet;
 import bdi4jade.event.GoalEvent;
 import bdi4jade.goal.BeliefGoal;
@@ -94,7 +94,7 @@ public class ClassifierCapability extends RouterAgentCapability implements
 
 		@Parameter(direction = Direction.IN)
 		public void setBeliefName(Benign benign) {
-			this.ip = benign.getVariable();
+			this.ip = benign.getConcept();
 		}
 	}
 
@@ -131,7 +131,7 @@ public class ClassifierCapability extends RouterAgentCapability implements
 
 		@Parameter(direction = Direction.IN)
 		public void setBeliefName(Threat threat) {
-			this.flow = threat.getVariable();
+			this.flow = threat.getConcept();
 		}
 	}
 
@@ -166,7 +166,7 @@ public class ClassifierCapability extends RouterAgentCapability implements
 				LimitFlowRatePlan.class) {
 			public boolean isContextApplicable(Goal goal) {
 				BeliefNotPresentGoal<Threat> bg = (BeliefNotPresentGoal<Threat>) goal;
-				PredicateBelief<Threat> threat = (PredicateBelief<Threat>) getBeliefBase()
+				Predicate<Threat> threat = (Predicate<Threat>) getBeliefBase()
 						.getBelief(bg.getBeliefName());
 				return (threat != null && threat.getValue());
 			};
@@ -179,7 +179,7 @@ public class ClassifierCapability extends RouterAgentCapability implements
 		Set<Belief<?, ?>> threatBeliefs = getBeliefBase().getBeliefsByType(
 				Threat.class);
 		for (Belief<?, ?> belief : threatBeliefs) {
-			PredicateBelief<Threat> threat = (PredicateBelief<Threat>) belief;
+			Predicate<Threat> threat = (Predicate<Threat>) belief;
 			if (threat.getValue()) {
 				goal(goalUpdateSet, threat.getName(), (Boolean) null);
 			}
@@ -197,7 +197,7 @@ public class ClassifierCapability extends RouterAgentCapability implements
 				Benign.class);
 		Iterator<Belief<?, ?>> it = benignBeliefs.iterator();
 		while (it.hasNext()) {
-			PredicateBelief<Benign> benignBelief = (PredicateBelief<Benign>) it.next();
+			Predicate<Benign> benignBelief = (Predicate<Benign>) it.next();
 			if (benignBelief.getValue() == null || benignBelief.getValue()) {
 				removeBelief(benignBelief);
 			}
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalRequestPlan.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalRequestPlan.java
index db4a69e..7d37d87 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalRequestPlan.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalRequestPlan.java
@@ -41,7 +41,7 @@ import java.util.Set;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import bdi4jade.belief.PredicateBelief;
+import bdi4jade.belief.Predicate;
 import bdi4jade.belief.TransientPredicate;
 import bdi4jade.core.BDIAgent;
 import bdi4jade.core.Capability;
@@ -83,7 +83,7 @@ public class GoalRequestPlan extends DefaultPlan {
 						GoalResponse<?> response = (GoalResponse<?>) myAgent
 								.getContentManager().extractContent(reply);
 
-						PredicateBelief<?> predicate = new TransientPredicate(
+						Predicate<?> predicate = new TransientPredicate(
 								response.getPredicate(), response.getValue());
 						((BeliefGoal) getGoal()).setOutputBelief(predicate);
 
@@ -273,11 +273,11 @@ public class GoalRequestPlan extends DefaultPlan {
 		private static final long serialVersionUID = 1328980796345824527L;
 
 		private Capability capability;
-		private PredicateBelief<?> predicate;
+		private Predicate<?> predicate;
 		private boolean done;
 
 		public ReceiveUpdatesBehavior(Agent agent, MessageTemplate mt,
-				Capability capability, PredicateBelief<?> predicate) {
+				Capability capability, Predicate<?> predicate) {
 			super(agent, mt, INFINITE, new DataStore(),
 					ReceiveUpdatesBehavior.class.getSimpleName());
 			this.capability = capability;
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalResponsePlan.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalResponsePlan.java
index aee3a0c..66bfc81 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalResponsePlan.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalResponsePlan.java
@@ -33,7 +33,7 @@ import org.apache.commons.logging.LogFactory;
 
 import bdi4jade.annotation.Parameter;
 import bdi4jade.annotation.Parameter.Direction;
-import bdi4jade.belief.PredicateBelief;
+import bdi4jade.belief.Predicate;
 import bdi4jade.core.Capability;
 import bdi4jade.event.BeliefEvent;
 import bdi4jade.event.BeliefEvent.Action;
@@ -66,7 +66,7 @@ public class GoalResponsePlan extends DefaultPlan {
 		private Boolean lastValue;
 		private MessageTemplate mt;
 		private Capability partCapability;
-		private PredicateBelief<?> predicate;
+		private Predicate<?> predicate;
 		private GoalRequest<?> request;
 		private long responseTime;
 		private State state;
@@ -81,7 +81,7 @@ public class GoalResponsePlan extends DefaultPlan {
 			if (GoalStatus.ACHIEVED.equals(event.getStatus())) {
 				reply.setPerformative(ACLMessage.INFORM);
 				if (goal instanceof BeliefGoal) {
-					predicate = (PredicateBelief<?>) partCapability.getBeliefBase()
+					predicate = (Predicate<?>) partCapability.getBeliefBase()
 							.getBelief(((BeliefGoal<?>) goal).getBeliefName());
 					GoalResponse response = new GoalResponse();
 					response.setPredicate(predicate.getName());
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/LinkMonitorCapability.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/LinkMonitorCapability.java
index 42b0be1..153d6ca 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/LinkMonitorCapability.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/LinkMonitorCapability.java
@@ -28,7 +28,7 @@ import java.util.Set;
 import bdi4jade.annotation.Parameter;
 import bdi4jade.annotation.Parameter.Direction;
 import bdi4jade.belief.Belief;
-import bdi4jade.belief.PredicateBelief;
+import bdi4jade.belief.Predicate;
 import bdi4jade.core.GoalUpdateSet;
 import bdi4jade.event.GoalEvent;
 import bdi4jade.event.GoalListener;
@@ -91,7 +91,7 @@ public class LinkMonitorCapability extends RouterAgentCapability implements
 
 		@Parameter(direction = Direction.IN)
 		public void setBeliefName(AttackPrevented attackPrevented) {
-			this.link = attackPrevented.getVariable();
+			this.link = attackPrevented.getConcept();
 		}
 	}
 
@@ -129,7 +129,7 @@ public class LinkMonitorCapability extends RouterAgentCapability implements
 
 		@Parameter(direction = Direction.IN)
 		public void setBeliefName(AttackPrevented attackPrevented) {
-			this.link = attackPrevented.getVariable();
+			this.link = attackPrevented.getConcept();
 		}
 	}
 
@@ -171,10 +171,10 @@ public class LinkMonitorCapability extends RouterAgentCapability implements
 			@Override
 			public boolean isContextApplicable(Goal goal) {
 				BeliefGoal<AttackPrevented> bg = (BeliefGoal<AttackPrevented>) goal;
-				PredicateBelief<LinkRateLimited> linkRateLimited = (PredicateBelief<LinkRateLimited>) getBeliefBase()
+				Predicate<LinkRateLimited> linkRateLimited = (Predicate<LinkRateLimited>) getBeliefBase()
 						.getBelief(
 								new LinkRateLimited(bg.getBeliefName()
-										.getVariable()));
+										.getConcept()));
 				return (linkRateLimited != null && linkRateLimited.getValue());
 			}
 		};
@@ -185,10 +185,10 @@ public class LinkMonitorCapability extends RouterAgentCapability implements
 		Set<Belief<?, ?>> overUsageBeliefs = getBeliefBase().getBeliefsByType(
 				OverUsage.class);
 		for (Belief<?, ?> belief : overUsageBeliefs) {
-			PredicateBelief<OverUsage> overUsage = (PredicateBelief<OverUsage>) belief;
-			Link link = overUsage.getName().getVariable();
+			Predicate<OverUsage> overUsage = (Predicate<OverUsage>) belief;
+			Link link = overUsage.getName().getConcept();
 			if (overUsage.getValue()) {
-				PredicateBelief<AnomalousUsage> anomalousUsage = (PredicateBelief<AnomalousUsage>) getBeliefBase()
+				Predicate<AnomalousUsage> anomalousUsage = (Predicate<AnomalousUsage>) getBeliefBase()
 						.getBelief(new AnomalousUsage(link));
 				if (anomalousUsage == null) {
 					// OverUsage(l) AND ~AnomalousUsage(l) -->
@@ -196,7 +196,7 @@ public class LinkMonitorCapability extends RouterAgentCapability implements
 					goal(goalUpdateSet, new AnomalousUsage(link), this);
 				}
 
-				PredicateBelief<AttackPrevented> attackPrevented = (PredicateBelief<AttackPrevented>) getBeliefBase()
+				Predicate<AttackPrevented> attackPrevented = (Predicate<AttackPrevented>) getBeliefBase()
 						.getBelief(new AttackPrevented(link));
 				if ((anomalousUsage == null || anomalousUsage.getValue())
 						&& (attackPrevented == null || !attackPrevented
@@ -211,12 +211,12 @@ public class LinkMonitorCapability extends RouterAgentCapability implements
 		Set<Belief<?, ?>> attackPreventedBeliefs = getBeliefBase()
 				.getBeliefsByType(AttackPrevented.class);
 		for (Belief<?, ?> belief : attackPreventedBeliefs) {
-			PredicateBelief<AttackPrevented> attackPrevented = (PredicateBelief<AttackPrevented>) belief;
+			Predicate<AttackPrevented> attackPrevented = (Predicate<AttackPrevented>) belief;
 			if (attackPrevented.getValue()) {
-				PredicateBelief<AnomalousUsage> anomalousUsage = (PredicateBelief<AnomalousUsage>) getBeliefBase()
+				Predicate<AnomalousUsage> anomalousUsage = (Predicate<AnomalousUsage>) getBeliefBase()
 						.getBelief(
 								new AnomalousUsage(attackPrevented.getName()
-										.getVariable()));
+										.getConcept()));
 				// AttackPrevented(l) AND not AnomalousUsage(l) --> not
 				// AttackPrevented(l)
 				if (anomalousUsage != null && !anomalousUsage.getValue()) {
@@ -249,7 +249,7 @@ public class LinkMonitorCapability extends RouterAgentCapability implements
 		for (Link link : role.getLinks()) {
 			OverUsage overUsage = new OverUsage(link);
 			if (role.isOverUsage(link)) {
-				PredicateBelief<OverUsage> overUsageBelief = (PredicateBelief<OverUsage>) getBeliefBase()
+				Predicate<OverUsage> overUsageBelief = (Predicate<OverUsage>) getBeliefBase()
 						.getBelief(overUsage);
 				if (overUsageBelief == null || !overUsageBelief.getValue()) {
 					belief(overUsage, true);
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RateLimiterCapability.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RateLimiterCapability.java
index c0d6594..ffb1044 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RateLimiterCapability.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RateLimiterCapability.java
@@ -23,7 +23,7 @@ package br.ufrgs.inf.bdinetr.agent;
 
 import bdi4jade.annotation.Parameter;
 import bdi4jade.annotation.Parameter.Direction;
-import bdi4jade.belief.PredicateBelief;
+import bdi4jade.belief.Predicate;
 import bdi4jade.goal.BeliefGoal;
 import bdi4jade.goal.Goal;
 import bdi4jade.goal.GoalTemplateFactory;
@@ -57,7 +57,7 @@ public class RateLimiterCapability extends RouterAgentCapability {
 
 		@Parameter(direction = Direction.IN)
 		public void setBeliefName(FlowRateLimited flowRateLimited) {
-			this.flow = flowRateLimited.getVariable();
+			this.flow = flowRateLimited.getConcept();
 		}
 	}
 
@@ -74,7 +74,7 @@ public class RateLimiterCapability extends RouterAgentCapability {
 
 		@Parameter(direction = Direction.IN)
 		public void setBeliefName(IpRateLimited ipRateLimited) {
-			this.ip = ipRateLimited.getVariable();
+			this.ip = ipRateLimited.getConcept();
 		}
 	}
 
@@ -91,7 +91,7 @@ public class RateLimiterCapability extends RouterAgentCapability {
 
 		@Parameter(direction = Direction.IN)
 		public void setBeliefName(LinkRateLimited linkRateLimited) {
-			this.link = linkRateLimited.getVariable();
+			this.link = linkRateLimited.getConcept();
 		}
 	}
 
@@ -108,7 +108,7 @@ public class RateLimiterCapability extends RouterAgentCapability {
 
 		@Parameter(direction = Direction.IN)
 		public void setBeliefName(IpRateLimited ipRateLimited) {
-			this.ip = ipRateLimited.getVariable();
+			this.ip = ipRateLimited.getConcept();
 		}
 	}
 
@@ -125,7 +125,7 @@ public class RateLimiterCapability extends RouterAgentCapability {
 
 		@Parameter(direction = Direction.IN)
 		public void setBeliefName(LinkRateLimited linkRateLimited) {
-			this.link = linkRateLimited.getVariable();
+			this.link = linkRateLimited.getConcept();
 		}
 	}
 
@@ -160,7 +160,7 @@ public class RateLimiterCapability extends RouterAgentCapability {
 				RestoreLinkRate.class) {
 			public boolean isContextApplicable(Goal goal) {
 				BeliefGoal<LinkRateLimited> bg = (BeliefGoal<LinkRateLimited>) goal;
-				PredicateBelief<LinkRateLimited> rateLimited = (PredicateBelief<LinkRateLimited>) getBeliefBase()
+				Predicate<LinkRateLimited> rateLimited = (Predicate<LinkRateLimited>) getBeliefBase()
 						.getBelief(bg.getBeliefName());
 				return (rateLimited != null && rateLimited.getValue());
 			};
@@ -175,7 +175,7 @@ public class RateLimiterCapability extends RouterAgentCapability {
 				RestoreIPRatePlan.class) {
 			public boolean isContextApplicable(Goal goal) {
 				BeliefGoal<IpRateLimited> bg = (BeliefGoal<IpRateLimited>) goal;
-				PredicateBelief<IpRateLimited> rateLimited = (PredicateBelief<IpRateLimited>) getBeliefBase()
+				Predicate<IpRateLimited> rateLimited = (Predicate<IpRateLimited>) getBeliefBase()
 						.getBelief(bg.getBeliefName());
 				return rateLimited != null && rateLimited.getValue();
 			};
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RouterAgentCapability.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RouterAgentCapability.java
index 7c341b1..8337217 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RouterAgentCapability.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RouterAgentCapability.java
@@ -28,7 +28,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import bdi4jade.belief.Belief;
-import bdi4jade.belief.PredicateBelief;
+import bdi4jade.belief.Predicate;
 import bdi4jade.belief.TransientPredicate;
 import bdi4jade.core.Capability;
 import bdi4jade.core.GoalUpdateSet;
@@ -46,7 +46,8 @@ import br.ufrgs.inf.bdinetr.domain.Role;
 /**
  * @author Ingrid Nunes
  */
-public abstract class RouterAgentCapability extends Capability implements DeliberationFunction {
+public abstract class RouterAgentCapability extends Capability implements
+		DeliberationFunction {
 
 	public static final String ROLE_BELIEF = "role";
 	private static final long serialVersionUID = -3491170777812144486L;
@@ -62,15 +63,15 @@ public abstract class RouterAgentCapability extends Capability implements Delibe
 		log.info("belief added or updated: " + belief);
 	}
 
-	protected PredicateBelief<?> belief(Object proposition, Boolean value) {
+	protected Predicate<?> belief(Object proposition, Boolean value) {
 		if (value == null) {
 			getBeliefBase().removeBelief(proposition);
-			log.info("belief(not " + proposition + "))");
+			log.info("belief(~" + proposition + "))");
 			return null;
 		} else {
-			PredicateBelief<?> predicate = new TransientPredicate(proposition, value);
+			Predicate<?> predicate = new TransientPredicate(proposition, value);
 			getBeliefBase().addOrUpdateBelief(predicate);
-			log.info("belief(" + predicate + ")");
+			log.info("belief(" + (value ? "" : "not ") + proposition + ")");
 			return predicate;
 		}
 	}
@@ -111,11 +112,13 @@ public abstract class RouterAgentCapability extends Capability implements Delibe
 		goal(goalUpdateSet, proposition, (GoalListener) null);
 	}
 
-	protected void goal(GoalUpdateSet goalUpdateSet, Object proposition, Boolean value) {
+	protected void goal(GoalUpdateSet goalUpdateSet, Object proposition,
+			Boolean value) {
 		goal(goalUpdateSet, proposition, value, null);
 	}
 
-	protected void goal(GoalUpdateSet goalUpdateSet, Object proposition, Boolean value, GoalListener listener) {
+	protected void goal(GoalUpdateSet goalUpdateSet, Object proposition,
+			Boolean value, GoalListener listener) {
 		Goal goal;
 		if (value == null) {
 			goal = new BeliefNotPresentGoal(proposition);
@@ -132,7 +135,8 @@ public abstract class RouterAgentCapability extends Capability implements Delibe
 		}
 	}
 
-	protected void goal(GoalUpdateSet goalUpdateSet, Object proposition, GoalListener listener) {
+	protected void goal(GoalUpdateSet goalUpdateSet, Object proposition,
+			GoalListener listener) {
 		Goal goal = new BeliefPresentGoal(proposition);
 		if (!getMyAgent().hasGoal(goal)) {
 			log.info("goal(?" + proposition + "))");
@@ -144,7 +148,8 @@ public abstract class RouterAgentCapability extends Capability implements Delibe
 		if (GoalStatus.WAITING.equals(goalDesc.getStatus())) {
 			if (goalDesc.getGoal() instanceof BeliefGoal) {
 				BeliefGoal<?> bg = (BeliefGoal<?>) goalDesc.getGoal();
-				return bg.getBeliefName().getClass().equals(getLowPriorityGoal());
+				return bg.getBeliefName().getClass()
+						.equals(getLowPriorityGoal());
 			}
 		}
 		return false;
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/ontology/BDI4JADEOntology.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/ontology/BDI4JADEOntology.java
index b382fc6..bf084e4 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/ontology/BDI4JADEOntology.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/ontology/BDI4JADEOntology.java
@@ -11,7 +11,7 @@ import bdi4jade.belief.AbstractBeliefSet;
 import bdi4jade.belief.Belief;
 import bdi4jade.belief.BeliefSet;
 import bdi4jade.belief.PersistentBelief;
-import bdi4jade.belief.PredicateBelief;
+import bdi4jade.belief.Predicate;
 import bdi4jade.belief.TransientBelief;
 import bdi4jade.belief.TransientBeliefSet;
 import bdi4jade.belief.TransientPredicate;
@@ -58,7 +58,7 @@ public class BDI4JADEOntology extends Ontology implements BDI4JADEVocabulary {
 			
 			add(new PredicateSchema(BELIEF), Belief.class);
 			add(new PredicateSchema(BELIEF_SET), BeliefSet.class);
-			add(new PredicateSchema(PROPOSITIONAL_BELIEF), PredicateBelief.class);
+			add(new PredicateSchema(PROPOSITIONAL_BELIEF), Predicate.class);
 
 			add(new PredicateSchema(ABSTRACT_BELIEF), AbstractBelief.class);
 			add(new PredicateSchema(ABSTRACT_BELIEF_SET), AbstractBeliefSet.class);
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/ontology/BDINetROntology.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/ontology/BDINetROntology.java
index f52e366..faefac1 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/ontology/BDINetROntology.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/ontology/BDINetROntology.java
@@ -28,8 +28,6 @@ import jade.content.schema.ConceptSchema;
 import jade.content.schema.ObjectSchema;
 import jade.content.schema.PredicateSchema;
 import jade.content.schema.PrimitiveSchema;
-import bdi4jade.extension.palliative.logics.BinaryPredicate;
-import bdi4jade.extension.palliative.logics.UnaryPredicate;
 import br.ufrgs.inf.bdinetr.domain.Flow;
 import br.ufrgs.inf.bdinetr.domain.Ip;
 import br.ufrgs.inf.bdinetr.domain.Link;
@@ -40,6 +38,7 @@ import br.ufrgs.inf.bdinetr.domain.predicate.Anomalous;
 import br.ufrgs.inf.bdinetr.domain.predicate.AnomalousUsage;
 import br.ufrgs.inf.bdinetr.domain.predicate.AttackPrevented;
 import br.ufrgs.inf.bdinetr.domain.predicate.Benign;
+import br.ufrgs.inf.bdinetr.domain.predicate.BinaryPredicate;
 import br.ufrgs.inf.bdinetr.domain.predicate.FlowExport;
 import br.ufrgs.inf.bdinetr.domain.predicate.FlowRateLimited;
 import br.ufrgs.inf.bdinetr.domain.predicate.IpRateLimited;
@@ -47,6 +46,7 @@ import br.ufrgs.inf.bdinetr.domain.predicate.LinkRateLimited;
 import br.ufrgs.inf.bdinetr.domain.predicate.OverUsage;
 import br.ufrgs.inf.bdinetr.domain.predicate.Restricted;
 import br.ufrgs.inf.bdinetr.domain.predicate.Threat;
+import br.ufrgs.inf.bdinetr.domain.predicate.UnaryPredicate;
 
 /**
  * @author Ingrid Nunes
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/Anomalous.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/Anomalous.java
index 0f065f5..1ce1a20 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/Anomalous.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/Anomalous.java
@@ -21,7 +21,6 @@
 //----------------------------------------------------------------------------
 package br.ufrgs.inf.bdinetr.domain.predicate;
 
-import bdi4jade.extension.palliative.logics.UnaryPredicate;
 import br.ufrgs.inf.bdinetr.domain.Ip;
 
 /**
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/AnomalousUsage.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/AnomalousUsage.java
index 24a0254..ba21c81 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/AnomalousUsage.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/AnomalousUsage.java
@@ -21,7 +21,6 @@
 //----------------------------------------------------------------------------
 package br.ufrgs.inf.bdinetr.domain.predicate;
 
-import bdi4jade.extension.palliative.logics.UnaryPredicate;
 import br.ufrgs.inf.bdinetr.domain.Link;
 
 /**
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/AttackPrevented.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/AttackPrevented.java
index 2e3b3e2..82f7a61 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/AttackPrevented.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/AttackPrevented.java
@@ -21,7 +21,6 @@
 //----------------------------------------------------------------------------
 package br.ufrgs.inf.bdinetr.domain.predicate;
 
-import bdi4jade.extension.palliative.logics.UnaryPredicate;
 import br.ufrgs.inf.bdinetr.domain.Link;
 
 /**
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/Benign.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/Benign.java
index 1deae70..880f09f 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/Benign.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/Benign.java
@@ -21,7 +21,6 @@
 //----------------------------------------------------------------------------
 package br.ufrgs.inf.bdinetr.domain.predicate;
 
-import bdi4jade.extension.palliative.logics.UnaryPredicate;
 import br.ufrgs.inf.bdinetr.domain.Ip;
 
 /**
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/BinaryPredicate.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/BinaryPredicate.java
new file mode 100644
index 0000000..d88f96b
--- /dev/null
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/BinaryPredicate.java
@@ -0,0 +1,93 @@
+//----------------------------------------------------------------------------
+// Copyright (C) 2011  Ingrid Nunes
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+// 
+// To contact the authors:
+// http://inf.ufrgs.br/prosoft/bdi4jade/
+//
+//----------------------------------------------------------------------------
+package br.ufrgs.inf.bdinetr.domain.predicate;
+
+import jade.content.Concept;
+import jade.content.ContentElement;
+
+import java.io.Serializable;
+
+/**
+ * @author Ingrid Nunes
+ */
+public abstract class BinaryPredicate<T, U> implements Serializable, Concept,
+		ContentElement {
+
+	private static final long serialVersionUID = -1506723105103606268L;
+
+	protected T first;
+	protected U second;
+
+	public BinaryPredicate() {
+
+	}
+
+	public BinaryPredicate(T first, U second) {
+		this.first = first;
+		this.second = second;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (obj != null && this.getClass().equals(obj.getClass())) {
+			BinaryPredicate<?, ?> p = (BinaryPredicate<?, ?>) obj;
+			return this.first.equals(p.first) && this.second.equals(p.second);
+		}
+		return false;
+	}
+
+	public T getFirst() {
+		return first;
+	}
+
+	public U getSecond() {
+		return second;
+	}
+
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result
+				+ ((this.getClass() == null) ? 0 : this.getClass().hashCode());
+		result = prime * result + ((first == null) ? 0 : first.hashCode());
+		result = prime * result + ((second == null) ? 0 : second.hashCode());
+		return result;
+	}
+
+	public void setFirst(T first) {
+		this.first = first;
+	}
+
+	public void setSecond(U second) {
+		this.second = second;
+	}
+
+	@Override
+	public String toString() {
+		StringBuffer sb = new StringBuffer();
+		sb.append(this.getClass().getSimpleName());
+		sb.append("(").append(first).append(",").append(second).append(")");
+		return sb.toString();
+	}
+
+}
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/FlowRateLimited.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/FlowRateLimited.java
index 47307e6..cd8187e 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/FlowRateLimited.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/FlowRateLimited.java
@@ -21,7 +21,6 @@
 //----------------------------------------------------------------------------
 package br.ufrgs.inf.bdinetr.domain.predicate;
 
-import bdi4jade.extension.palliative.logics.UnaryPredicate;
 import br.ufrgs.inf.bdinetr.domain.Flow;
 
 /**
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/IpRateLimited.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/IpRateLimited.java
index 9928fbc..9eaf048 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/IpRateLimited.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/IpRateLimited.java
@@ -21,7 +21,6 @@
 //----------------------------------------------------------------------------
 package br.ufrgs.inf.bdinetr.domain.predicate;
 
-import bdi4jade.extension.palliative.logics.UnaryPredicate;
 import br.ufrgs.inf.bdinetr.domain.Ip;
 
 /**
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/LinkRateLimited.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/LinkRateLimited.java
index 7fc3706..720260e 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/LinkRateLimited.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/LinkRateLimited.java
@@ -21,7 +21,6 @@
 //----------------------------------------------------------------------------
 package br.ufrgs.inf.bdinetr.domain.predicate;
 
-import bdi4jade.extension.palliative.logics.UnaryPredicate;
 import br.ufrgs.inf.bdinetr.domain.Link;
 
 /**
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/OverUsage.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/OverUsage.java
index f8763a1..7b93463 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/OverUsage.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/OverUsage.java
@@ -21,7 +21,6 @@
 //----------------------------------------------------------------------------
 package br.ufrgs.inf.bdinetr.domain.predicate;
 
-import bdi4jade.extension.palliative.logics.UnaryPredicate;
 import br.ufrgs.inf.bdinetr.domain.Link;
 
 /**
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/OverUsageCause.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/OverUsageCause.java
index 51ff5b6..0180a70 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/OverUsageCause.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/OverUsageCause.java
@@ -21,7 +21,6 @@
 //----------------------------------------------------------------------------
 package br.ufrgs.inf.bdinetr.domain.predicate;
 
-import bdi4jade.extension.palliative.logics.UnaryPredicate;
 import br.ufrgs.inf.bdinetr.domain.Link;
 
 /**
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/Restricted.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/Restricted.java
index b5bef9a..2f36fd5 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/Restricted.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/Restricted.java
@@ -21,7 +21,6 @@
 //----------------------------------------------------------------------------
 package br.ufrgs.inf.bdinetr.domain.predicate;
 
-import bdi4jade.extension.palliative.logics.UnaryPredicate;
 import br.ufrgs.inf.bdinetr.domain.Ip;
 
 /**
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/UnaryPredicate.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/UnaryPredicate.java
new file mode 100644
index 0000000..d0bdade
--- /dev/null
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/predicate/UnaryPredicate.java
@@ -0,0 +1,82 @@
+//----------------------------------------------------------------------------
+// Copyright (C) 2011  Ingrid Nunes
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// 
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+// 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+// 
+// To contact the authors:
+// http://inf.ufrgs.br/prosoft/bdi4jade/
+//
+//----------------------------------------------------------------------------
+package br.ufrgs.inf.bdinetr.domain.predicate;
+
+import jade.content.Concept;
+import jade.content.ContentElement;
+
+import java.io.Serializable;
+
+/**
+ * @author Ingrid Nunes
+ */
+public abstract class UnaryPredicate<T> implements Serializable, Concept,
+		ContentElement {
+
+	private static final long serialVersionUID = -1506723105103606268L;
+
+	protected T concept;
+
+	public UnaryPredicate() {
+
+	}
+
+	public UnaryPredicate(T concept) {
+		this.concept = concept;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (obj != null && this.getClass().equals(obj.getClass())) {
+			UnaryPredicate<?> p = (UnaryPredicate<?>) obj;
+			return this.concept.equals(p.concept);
+		}
+		return false;
+	}
+
+	public T getConcept() {
+		return concept;
+	}
+
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result
+				+ ((this.getClass() == null) ? 0 : this.getClass().hashCode());
+		result = prime * result + ((concept == null) ? 0 : concept.hashCode());
+		return result;
+	}
+
+	public void setConcept(T concept) {
+		this.concept = concept;
+	}
+
+	@Override
+	public String toString() {
+		StringBuffer sb = new StringBuffer();
+		sb.append(this.getClass().getSimpleName());
+		sb.append("(").append(concept).append(")");
+		return sb.toString();
+	}
+
+}