attacks = eafTheory.getAttacks();
- for (Attack attack : attacks) {
- BipolarEntity froms = attack.getAttacker();
- BipolarEntity tos = attack.getAttacked();
-
- for (BArgument arg : args) {
- if (froms.contains(arg) || tos.contains(arg)) {
- Q_prime.add(arg.getName());
- }
- }
- }
- return Q_prime;
- }
-
- /**
- * Creates a virtual DAF from EAFTheory without including the support links
- * This is not a great conversion method, however works good for queries.
- *
- * FIXME: this assumes that the internal structure when attacks exist does not have a support link inside the subgraph
- *
- * @param eafTheory an EAFTheory object
- * @return a DungTheory object
- */
- @Deprecated
- protected DungTheory createDAF(EAFTheory eafTheory) {
- Map argumentsInAttack = new HashMap();
- DungTheory dungTheory = new DungTheory();
- for (Attack attack : eafTheory.getAttacks()) {
- String from = this.convertEArgumentsToDAFArgumentName(attack.getAttacker());
-
- if (!argumentsInAttack.containsKey(from)) {
- Argument fromArg = new Argument(from);
- argumentsInAttack.put(from, fromArg);
- dungTheory.add(fromArg);
- }
-
- String to = this.convertEArgumentsToDAFArgumentName(attack.getAttacked());
- if (!argumentsInAttack.containsKey(to)) {
- Argument toArg = new Argument(to);
- argumentsInAttack.put(to, toArg);
- dungTheory.add(toArg);
- }
-
- dungTheory.addAttack(argumentsInAttack.get(from), argumentsInAttack.get(to));
- }
- return dungTheory;
- }
-
- /**
- * Joins EArguments' names with a delimiter to create a new name for the conversion from EAF to DAF
- *
- * @param eArguments a set of arguments
- * @return the joint (sorted) name of arguments
- */
- private String convertEArgumentsToDAFArgumentName(BipolarEntity eArguments) {
- return ((ArgumentSet) eArguments).stream()
- .map(BArgument::getName)
- .sorted()
- .collect(Collectors.joining("_"));
- }
-
-
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/Analysis.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/Analysis.java
deleted file mode 100644
index 6a046af02..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/Analysis.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.tweetyproject.arg.bipolar.analysis;
-
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-
-import java.util.Set;
-
-/**
- * The interface of the analyses in arg.peaf
- *
- * @author Taha Dogan Gunes
- */
-public interface Analysis {
- /**
- * Creates an AnalysisResult to store the results of the analysis
- *
- * @param args the set of arguments necessary for the query
- * @return an AnalysisResult object
- */
- AnalysisResult query(Set args);
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/AnalysisResult.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/AnalysisResult.java
deleted file mode 100644
index f0391d6eb..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/AnalysisResult.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package org.tweetyproject.arg.bipolar.analysis;
-
-/**
- * Represents the result of an analysis, including performance metrics and analysis type.
- *
- * This class encapsulates details about the analysis result such as the result value, number of iterations,
- * analysis type, and total probability. It provides methods to retrieve these values and to print the results
- * for debugging purposes.
- *
- *
- * @author Taha Dogan Gunes
- */
-public class AnalysisResult {
-
- /** The result value of the analysis. */
- private final double result;
-
- /** The number of iterations performed during the analysis. */
- private final long noIterations;
-
- /** The type of analysis conducted. */
- private final AnalysisType type;
-
- /** The total probability calculated during the analysis. */
- private final double totalProbability;
-
- /**
- * Constructs an {@code AnalysisResult} with the specified parameters.
- *
- * @param result the result of the analysis
- * @param noIterations the number of iterations performed
- * @param type the type of analysis conducted
- * @param totalProbability the total probability calculated
- */
- public AnalysisResult(double result, long noIterations, AnalysisType type, double totalProbability) {
- this.result = result;
- this.noIterations = noIterations;
- this.type = type;
- this.totalProbability = totalProbability;
- }
-
- /**
- * Returns the result of the analysis.
- *
- * @return the result value
- */
- public double getResult() {
- return result;
- }
-
- /**
- * Returns the number of iterations performed during the analysis.
- *
- * @return the number of iterations
- */
- public long getNoIterations() {
- return noIterations;
- }
-
- /**
- * Returns the type of analysis conducted.
- *
- * @return the type of analysis
- */
- public AnalysisType getType() {
- return type;
- }
-
- /**
- * Returns the total probability calculated during the analysis.
- *
- * @return the total probability
- */
- public double getTotalProbability() {
- return totalProbability;
- }
-
- /**
- * Prints the details of the analysis result to the standard output.
- *
- * The output includes the type of analysis, result value, number of iterations, and total probability.
- *
- */
- public void print() {
- System.out.println("Type: " + this.type +
- ", Result: " + this.getResult() +
- ", Iterations: " + this.getNoIterations() +
- ", Total Probability: " + this.getTotalProbability());
- }
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/AnalysisType.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/AnalysisType.java
deleted file mode 100644
index 0ea2848b8..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/AnalysisType.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package org.tweetyproject.arg.bipolar.analysis;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * The types of analysis supported by arg.peaf
- *
- * @author Taha Dogan Gunes
- */
-public enum AnalysisType {
- /**
- * see ExactAnalysis
- */
- EXACT("exact"),
- /**
- * see ApproxAnalysis
- */
- APPROX("approx"),
- /**
- * see ConcurrentApproxAnalysis
- */
- CONCURRENT_APPROX("con_approx"),
- /**
- * see ConcurrentExactAnalysis
- */
- CONCURRENT_EXACT("con_exact"),
- /**
- * see PreferredAnalysis
- */
- PREFERRED("preferred"),
-
- /**
- * see GroundedAnalysis
- */
- GROUNDED("grounded"),
-
- /**
- * see org.tweetyproject.arg.peaf.analysis.voi.TargetOutputAnalysis
- */
- VOI_TARGET_OUTPUT("voi_target_output"),
-
- /**
- * see org.tweetyproject.arg.peaf.analysis.voi.MinimiseEntropyAnalysis
- */
- VOI_MINIMISE_ENTROPY("voi_min_entropy"),
-
- /**
- * see org.tweetyproject.arg.peaf.analysis.voi.MaximiseChangeAnalysis
- */
- VOI_MAXIMISE_CHANGE("voi_max_change"),
-
- /**
- * see org.tweetyproject.arg.peaf.analysis.voi.KLDivergenceAnalysis
- */
- VOI_KL_DIVERGENCE("voi_kl_divergence");
-
-
- /**
- * Internal map for string enumeration
- */
- private static final Map ENUM_MAP;
-
- static {
- Map map = new ConcurrentHashMap<>();
- for (AnalysisType instance : AnalysisType.values()) {
- map.put(instance.getName().toLowerCase(), instance);
- }
- ENUM_MAP = Collections.unmodifiableMap(map);
- }
-
- /**
- * The keyword of the analysis
- */
- private final String text;
-
- /**
- * Creates an AnalysisType object
- *
- * @param text the keyword
- */
- AnalysisType(final String text) {
- this.text = text;
- }
-
- /**
- * Get the AnalysisType by giving the keyword
- *
- * @param name the keyword in string
- * @return the AnalysisType
- */
- public static AnalysisType get(String name) {
- return ENUM_MAP.get(name.toLowerCase());
- }
-
- @Override
- public String toString() {
- return text;
- }
-
- /**
- * Return the keyword of the AnalysisType
- *
- * @return the keyword in string
- */
- private String getName() {
- return text;
- }
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ApproxAnalysis.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ApproxAnalysis.java
deleted file mode 100644
index f053e000f..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ApproxAnalysis.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.tweetyproject.arg.bipolar.analysis;
-
-import org.tweetyproject.arg.dung.reasoner.AbstractExtensionReasoner;
-import org.tweetyproject.arg.bipolar.inducers.ApproxPEAFInducer;
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-import org.tweetyproject.arg.bipolar.syntax.PEAFTheory;
-
-import java.util.Set;
-
-/**
- * This class implements approximate probabilistic justification of a set of queries using Monte Carlo Sampling of
- * induced EAFs from a PEAF.
- * see Li, Hengfei. Probabilistic argumentation. 2015. PhD Thesis. Aberdeen University.
- *
- * @author Taha Dogan Gunes
- */
-public class ApproxAnalysis extends AbstractAnalysis implements ProbabilisticJustificationAnalysis {
-
- /**
- * The error level defines how much the computed result is tolerated for deviation.
- *
- * Example: If errorLevel is 0.1, then the result will be in the range [x - 0.1, x + 0.1].
- */
- private final double errorLevel;
-
- /**
- * Creates an ApproxAnalysis object
- *
- * @param peafTheory The PEAFTheory object
- * @param extensionReasoner An extension reasoner object
- * @param errorLevel the error level in double
- */
- public ApproxAnalysis(PEAFTheory peafTheory, AbstractExtensionReasoner extensionReasoner, double errorLevel) {
- super(peafTheory, extensionReasoner, AnalysisType.APPROX);
- this.errorLevel = errorLevel;
- }
-
- /**
- * Computes approximately what is probabilistic justification of the given set of arguments in the PEAF given error
- * level
- *
- * @param args the set of arguments necessary for the query
- * @return the result of the analysis
- */
- @Override
- public AnalysisResult query(Set args) {
- final double[] M = {0.0};
- final double[] N = {0.0};
- final double[] metric = {0.0};
- final double[] p_i = {0.0};
- final long[] i = {0};
- final double[] total = {0.0};
-
- do {
- ApproxPEAFInducer approxPEAFInducer = new ApproxPEAFInducer(this.peafTheory);
- approxPEAFInducer.induce(iEAF -> {
- double contribution = 0;
-
- contribution = computeContributionOfAniEAF(args, iEAF);
-
- total[0] += contribution;
- M[0] = M[0] + contribution;
- N[0] = N[0] + 1.0;
- i[0] += 1;
- p_i[0] = (M[0] + 2) / (N[0] + 4);
- metric[0] = ((4.0 * p_i[0] * (1.0 - p_i[0])) / Math.pow(errorLevel, 2)) - 4.0;
- });
- } while (N[0] <= metric[0]);
-
-
- return this.createResult(M[0] / N[0], i[0], total[0]);
- }
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ConcurrentApproxAnalysis.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ConcurrentApproxAnalysis.java
deleted file mode 100644
index 67cc1ecd1..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ConcurrentApproxAnalysis.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.analysis;
-
-import org.tweetyproject.arg.dung.reasoner.AbstractExtensionReasoner;
-import org.tweetyproject.arg.bipolar.inducers.ApproxPEAFInducer;
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-import org.tweetyproject.arg.bipolar.syntax.PEAFTheory;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Set;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- * This class implements approximate probabilistic justification of a set of queries using Monte Carlo Sampling of
- * induced EAFs from a PEAF. The computation is done in batches, the main thread checks the condition of when to stop
- * after each batch.
- *
- * @author Taha Dogan Gunes
- */
-public class ConcurrentApproxAnalysis extends AbstractAnalysis implements ProbabilisticJustificationAnalysis {
- /**
- * The error level defines how much the computed result is tolerated for deviation.
- *
- * Example: If errorLevel is 0.1, then the result will be in the range [x - 0.1, x + 0.1].
- */
- private final double errorLevel;
- /**
- * The fixed thread pool to run the contributions in parallel
- */
- private final ExecutorService executorService;
- /**
- * The number of jobs to be completed for checking when to stop.
- * This is to reduce the effect of one thread stalling all the batch
- * (increasing too much would create unnecessary iterations)
- */
- private final int batchSize;
-
- /**
- * Constructs ConcurrentApproxAnalysis with noThreads equal to availableProcessors - 1
- *
- * @param peafTheory the PEAFTheory to be analyzed
- * @param extensionReasoner the extension reasoner
- * @param errorLevel the error level in double
- */
- public ConcurrentApproxAnalysis(PEAFTheory peafTheory, AbstractExtensionReasoner extensionReasoner, double errorLevel) {
- this(peafTheory, extensionReasoner, errorLevel, Runtime.getRuntime().availableProcessors() - 1);
- }
-
- /**
- * Constructs ConcurrentApproxAnalysis with batchSize equal to noThreads*2
- *
- * @param peafTheory the PEAFTheory to be analyzed
- * @param extensionReasoner the extension reasoner
- * @param errorLevel the error level in double
- * @param noThreads the number of threads
- */
- public ConcurrentApproxAnalysis(PEAFTheory peafTheory, AbstractExtensionReasoner extensionReasoner, double errorLevel, int noThreads) {
- this(peafTheory, extensionReasoner, errorLevel, noThreads, noThreads * 2);
- }
-
- /**
- * The default constructor for ConcurrentApproxAnalysis
- *
- * @param peafTheory the PEAFTheory to be analyzed
- * @param extensionReasoner the extension reasoner
- * @param errorLevel the error level in double
- * @param noThreads the number of threads
- * @param batchSize the number jobs to be completed for checking when to stop
- */
- public ConcurrentApproxAnalysis(PEAFTheory peafTheory, AbstractExtensionReasoner extensionReasoner, double errorLevel, int noThreads, int batchSize) {
- super(peafTheory, extensionReasoner, AnalysisType.CONCURRENT_APPROX);
- this.errorLevel = errorLevel;
- this.executorService = Executors.newFixedThreadPool(noThreads);
- this.batchSize = batchSize;
- }
- /** Total */
- public double total = 0.0;
- /**
- * Computes approximately what is probabilistic justification of the given set of arguments in the PEAF given error
- * level concurrently.
- *
- * @param args the set of arguments necessary for the query
- * @return an AnalysisResult object
- */
- @Override
- public AnalysisResult query(Set args) {
-
- // tests for cyclic
- new ApproxPEAFInducer(peafTheory);
-
- final double[] M = {0.0};
- final double[] N = {0.0};
- final double[] metric = {0.0};
- final double[] p_i = {0.0};
- final long[] i = {0};
- this.total = 0.0;
- AtomicInteger poolAvailability = new AtomicInteger(this.batchSize);
- List> futures = new ArrayList>();
-
-
- do {
- // Submit a group of threads
- if (poolAvailability.get() > 0) {
- Future future = executorService.submit(() -> {
- poolAvailability.decrementAndGet();
- double[] contribution = {0.0};
- ApproxPEAFInducer approxPEAFInducer = new ApproxPEAFInducer(peafTheory);
- approxPEAFInducer.induce(iEAF -> {
- contribution[0] = computeContributionOfAniEAF(args, iEAF);
-
- this.total = contribution[0];
- });
- return contribution[0];
- });
- futures.add(future);
- }
-
- // Make sure all the batch is completed.
- ListIterator> iter = futures.listIterator();
- while (iter.hasNext()) {
- Future future = iter.next();
-
- double contribution = 0;
- try {
- // future.get() stalls the main thread
- contribution = future.get();
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- M[0] = M[0] + contribution;
- N[0] = N[0] + 1.0;
- i[0] += 1;
- p_i[0] = (M[0] + 2) / (N[0] + 4);
- metric[0] = ((4.0 * p_i[0] * (1.0 - p_i[0])) / Math.pow(errorLevel, 2)) - 4.0;
-
- poolAvailability.incrementAndGet();
- iter.remove();
- }
-
- } while (N[0] <= metric[0]);
-
-
- // The condition is now satisfied, we don't need to run all the tasks now.
- executorService.shutdownNow();
-
- return this.createResult(M[0] / N[0], i[0], total);
- }
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ConcurrentExactAnalysis.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ConcurrentExactAnalysis.java
deleted file mode 100644
index 04f9a85ff..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ConcurrentExactAnalysis.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package org.tweetyproject.arg.bipolar.analysis;
-
-
-import org.tweetyproject.arg.dung.reasoner.AbstractExtensionReasoner;
-import org.tweetyproject.arg.bipolar.inducers.LiExactPEAFInducer;
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-import org.tweetyproject.arg.bipolar.syntax.PEAFTheory;
-
-import java.util.Set;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicLong;
-
-/**
- * This class implements exact probabilistic justification of a set of queries by generating all possible
- * induces EAFs from a PEAF in parallel.
- *
- * @author Taha Dogan Gunes
- */
-public class ConcurrentExactAnalysis extends AbstractAnalysis implements ProbabilisticJustificationAnalysis {
- /**
- * The fixed thread pool to run the contributions in parallel
- */
- private final ExecutorService executorService;
-
- /**
- * Constructs ConcurrentExactAnalysis with noThreads equal to availableProcessors - 1
- *
- * @param peafTheory the PEAFTheory to be analyzed
- * @param extensionReasoner the extension reasoner
- */
- public ConcurrentExactAnalysis(PEAFTheory peafTheory, AbstractExtensionReasoner extensionReasoner) {
- this(peafTheory, extensionReasoner, Runtime.getRuntime().availableProcessors() - 1);
- }
-
- /**
- * Constructs ConcurrentExactAnalysis with given noThreads
- *
- * @param peafTheory the PEAFTheory to be analyzed
- * @param extensionReasoner the extension reasoner
- * @param noThreads the number of threads
- */
- public ConcurrentExactAnalysis(PEAFTheory peafTheory, AbstractExtensionReasoner extensionReasoner, int noThreads) {
- super(peafTheory, extensionReasoner, AnalysisType.CONCURRENT_EXACT);
- this.executorService = Executors.newFixedThreadPool(noThreads);
- }
-
- /** Total */
- public Double total = Double.valueOf(0.0);
- /** P */
- public Double p = Double.valueOf(0.0);
- /**
- * Computes exactly what is probabilistic justification of the given set of arguments in the PEAF.
- *
- * Warning: It is intractable when the number of arguments in PEAF is above 15.
- *
- * @param args the set of arguments necessary for the query
- * @return the result of the analysis
- * @see ConcurrentApproxAnalysis for larger PEAFs
- */
- @Override
- public AnalysisResult query(Set args) {
- LiExactPEAFInducer exactPEAFInducer = new LiExactPEAFInducer(this.peafTheory);
- this.total = 0.0;
- this.p = 0.0;
- AtomicLong i = new AtomicLong(0);
-
-
-
- exactPEAFInducer.induce(iEAF ->
- executorService.submit((Callable) () -> {
- double contribution = computeContributionOfAniEAF(args, iEAF);
- this.total += contribution;
- this.p += contribution * iEAF.getInducePro();
- i.incrementAndGet();
- return null;
- }));
-
- try {
- executorService.shutdown();
- } finally {
- try {
- //noinspection ResultOfMethodCallIgnored
- executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.SECONDS);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
-
- return this.createResult(p.doubleValue(), i.get(), total.doubleValue());
- }
-
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ExactAnalysis.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ExactAnalysis.java
deleted file mode 100644
index 1f32d0dbe..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ExactAnalysis.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.analysis;
-
-
-import org.tweetyproject.arg.dung.reasoner.AbstractExtensionReasoner;
-import org.tweetyproject.arg.bipolar.inducers.LiExactPEAFInducer;
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-import org.tweetyproject.arg.bipolar.syntax.PEAFTheory;
-
-import java.util.Set;
-
-/**
- * This class implements exact probabilistic justification of a set of queries by generating all possible
- * induces EAfs from a PEAF.
- *
- * See
- *
- * Li, Hengfei. Probabilistic argumentation. 2015. PhD Thesis. Aberdeen University.
- *
- * @author Taha Dogan Gunes
- */
-public class ExactAnalysis extends AbstractAnalysis implements ProbabilisticJustificationAnalysis {
-
- /**
- * Creates an ExactAnalysis object
- *
- * @param peafTheory The PEAFTheory object
- * @param extensionReasoner An extension reasoner object
- */
- public ExactAnalysis(PEAFTheory peafTheory, AbstractExtensionReasoner extensionReasoner) {
- super(peafTheory, extensionReasoner, AnalysisType.EXACT);
- }
-
- /**
- * Computes exactly what is probabilistic justification of the given set of arguments in the PEAF.
- *
- * Warning: It is intractable when the number of arguments in PEAF is above 12.
- *
- * @param args the set of arguments necessary for the query
- * @return the result of the analysis
- * @see ApproxAnalysis for larger PEAFs
- */
- @Override
- public AnalysisResult query(Set args) {
-
- LiExactPEAFInducer exactPEAFInducer = new LiExactPEAFInducer(this.peafTheory);
-
- final double[] p = {0.0};
- final double[] total = {0.0};
- final long[] i = {0};
-
-
- exactPEAFInducer.induce(iEAF -> {
- double contribution = 0;
-
- contribution = computeContributionOfAniEAF(args, iEAF);
-
-// if (iEAF.getInducePro() > 0.0 && contribution > 0.0) {
-// System.out.println(iEAF + " c:" +contribution);
-// }
-
-
- p[0] += contribution * iEAF.getInducePro();
- total[0] += iEAF.getInducePro();
- i[0] += 1;
-
- });
-// System.out.println("Total is: " + total[0]);
-
- return this.createResult(p[0], i[0], total[0]);
- }
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ProbabilisticJustificationAnalysis.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ProbabilisticJustificationAnalysis.java
deleted file mode 100644
index ac028a982..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/ProbabilisticJustificationAnalysis.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.analysis;
-
-/**
- * probablisitic justification analysis
- * @author Matthias Thimm
- *
- */
-public interface ProbabilisticJustificationAnalysis {
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/extensions/AbstractExtensionAnalysis.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/extensions/AbstractExtensionAnalysis.java
deleted file mode 100644
index 6e746ecd4..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/extensions/AbstractExtensionAnalysis.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.analysis.extensions;
-
-import org.tweetyproject.arg.dung.reasoner.AbstractExtensionReasoner;
-import org.tweetyproject.arg.dung.semantics.Extension;
-import org.tweetyproject.arg.dung.syntax.Argument;
-import org.tweetyproject.arg.dung.syntax.DungTheory;
-import org.tweetyproject.arg.bipolar.analysis.AbstractAnalysis;
-import org.tweetyproject.arg.bipolar.analysis.AnalysisResult;
-import org.tweetyproject.arg.bipolar.analysis.AnalysisType;
-import org.tweetyproject.arg.bipolar.io.eaf.EAFToDAFConverter;
-import org.tweetyproject.arg.bipolar.syntax.EAFTheory;
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-import org.tweetyproject.arg.bipolar.syntax.NamedPEAFTheory;
-import org.tweetyproject.arg.bipolar.syntax.PEAFTheory;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * An abstract class for performing extension analysis on a PEAF (Process-Entity-Attribute-Function) theory.
- *
- * This class is designed to convert a PEAF theory into an EAF (Extended Argumentation Framework) theory,
- * then into a Dung theory, and finally use an extension reasoner to compute the extensions of the Dung theory.
- *
- */
-public abstract class AbstractExtensionAnalysis extends AbstractAnalysis implements ExtensionAnalysis {
- /**
- * The default constructor
- *
- * @param peafTheory The PEAF Theory
- * @param extensionReasoner The extension reasoner
- * @param analysisType The type of the analysis
- */
- public AbstractExtensionAnalysis(PEAFTheory peafTheory, AbstractExtensionReasoner extensionReasoner, AnalysisType analysisType) {
- super(peafTheory, extensionReasoner, analysisType);
- }
-
- @Override
- public List> getExtensions() {
- // Convert peaf -> eaf -> daf, then run jargsemsat
- EAFTheory eafTheory = EAFTheory.newEAFTheory(peafTheory);
- DungTheory dungTheory = EAFToDAFConverter.convert(eafTheory);
- Collection> extensions = extensionReasoner.getModels(dungTheory);
-
- NamedPEAFTheory namedPEAFTheory = (NamedPEAFTheory) this.peafTheory;
- List> results = new ArrayList>();
- for (Extension extension : extensions) {
- Set extensionWithNames = new HashSet();
- for (Argument argument : extension) {
-
- String[] argumentNames = argument.getName().split("_");
-
- for (String argumentName : argumentNames) {
- BArgument eArgument = namedPEAFTheory.getArguments().get(Integer.parseInt(argumentName));
- String name = namedPEAFTheory.getNameOfArgument(eArgument);
-
- extensionWithNames.add(name);
- }
-
- }
- results.add(extensionWithNames);
- }
-
- return results;
- }
-
- @Override
- public AnalysisResult query(Set args) {
- return null;
- }
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/extensions/ExtensionAnalysis.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/extensions/ExtensionAnalysis.java
deleted file mode 100644
index dcd6fe704..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/extensions/ExtensionAnalysis.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.analysis.extensions;
-
-import java.util.List;
-import java.util.Set;
-
-/**
- * The `ExtensionAnalysis` interface provides a contract for analyzing and retrieving extensions
- * in the context of argumentation frameworks, particularly within the domain of bipolar argumentation.
- */
-public interface ExtensionAnalysis {
-
- /**
- * Computes and returns a list of extensions.
- *
- *
- * Each extension is represented as a set of strings, where each string corresponds to an argument
- * in the argumentation framework. The method returns all extensions that are found according to
- * the specific analysis performed by the implementing class.
- *
- *
- * @return a list of sets, where each set contains strings representing an extension of the argumentation framework.
- */
- List> getExtensions();
-}
\ No newline at end of file
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/extensions/GroundedAnalysis.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/extensions/GroundedAnalysis.java
deleted file mode 100644
index 5147ceb8d..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/extensions/GroundedAnalysis.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.analysis.extensions;
-
-import org.tweetyproject.arg.bipolar.analysis.AnalysisType;
-import org.tweetyproject.arg.dung.reasoner.SimpleGroundedReasoner;
-import org.tweetyproject.arg.bipolar.syntax.NamedPEAFTheory;
-
-/**
- * Computes the preferred extension of the given PEAF
- *
- * Uses `jargsemsat` for computing extensions.
- *
- * @author Taha Dogan Gunes
- */
-public class GroundedAnalysis extends AbstractExtensionAnalysis {
- /**
- * Construct a GroundedAnalysis
- * @param peaf a PEAF theory
- */
- public GroundedAnalysis(NamedPEAFTheory peaf) {
- super(peaf, new SimpleGroundedReasoner(), AnalysisType.GROUNDED);
- }
-
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/extensions/PreferredAnalysis.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/extensions/PreferredAnalysis.java
deleted file mode 100644
index f8c984006..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/analysis/extensions/PreferredAnalysis.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.analysis.extensions;
-
-import org.tweetyproject.arg.bipolar.analysis.AnalysisType;
-import org.tweetyproject.arg.dung.reasoner.SimplePreferredReasoner;
-import org.tweetyproject.arg.bipolar.syntax.NamedPEAFTheory;
-
-/**
- * Computes the preferred extension of the given PEAF
- *
- * Uses `jargsemsat` for computing extensions.
- *
- * @author Taha Dogan Gunes
- */
-public class PreferredAnalysis extends AbstractExtensionAnalysis {
- /**
- * Constructor
- * @param peaf NamedPEAFTheory
- */
- public PreferredAnalysis(NamedPEAFTheory peaf) {
- super(peaf, new SimplePreferredReasoner(), AnalysisType.PREFERRED);
- }
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/AllPEAFInducerExample.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/AllPEAFInducerExample.java
deleted file mode 100644
index 320b7a900..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/AllPEAFInducerExample.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.examples;
-
-import org.tweetyproject.arg.bipolar.inducers.LiExactPEAFInducer;
-import org.tweetyproject.arg.bipolar.io.EdgeListWriter;
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-import org.tweetyproject.arg.bipolar.syntax.PEAFTheory;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.concurrent.atomic.AtomicInteger;
-
-
-/**
- * Example class demonstrating the use of the PEAF (Preference-based Argumentation Framework) inducer.
- *
- * This example sets up a PEAF theory with a specified number of arguments, adds various support and attack relationships
- * between the arguments, and then uses the `LiExactPEAFInducer` to induce new EAF (Argumentation Framework) theories from the
- * given PEAF theory. The results are printed and saved to files.
- *
- */
-public class AllPEAFInducerExample {
- /**
- * Main method to run the example.
- *
- * This method initializes a PEAF theory with a set number of arguments, defines support and attack relationships,
- * and uses the `LiExactPEAFInducer` to induce new EAF theories. It prints each induced EAF and saves it to a file.
- *
- *
- * @param args Command line arguments (not used in this example).
- */
- public static void main(String[] args) {
- int numOfArgs = 8;
-
-
- PEAFTheory peafTheory = new PEAFTheory();
-
- for (int i = 0; i < numOfArgs; i++) {
- peafTheory.addArgument(i);
- }
-
- peafTheory.addSupport(new HashSet(), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(0)))), 1.0);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(1)))), 0.3);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(1)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(2)))), 0.8);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(1)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(3)))), 0.9);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(2)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(4)))), 0.85);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(3)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(5)))), 0.5);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(3)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(6)))), 0.6);
- HashSet myArgs = new HashSet();
- myArgs.add(peafTheory.getArguments().get(5));
- myArgs.add(peafTheory.getArguments().get(4));
- peafTheory.addSupport(myArgs, new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(7)))), 0.4);
-
- peafTheory.addAttack(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(5)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(4)))));
- peafTheory.addAttack(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(2)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(6)))));
-
- peafTheory.prettyPrint();
-
- EdgeListWriter.write("0.peaf", peafTheory);
-
- AtomicInteger i = new AtomicInteger();
- LiExactPEAFInducer inducer = new LiExactPEAFInducer(peafTheory);
-
- inducer.induce(ind -> {
- int n = i.getAndIncrement();
- System.out.println(ind);
- EdgeListWriter.write(n + ".eaf", ind.toNewEAFTheory());
-
- });
-
- }
-
- /** Default Constructor */
- public AllPEAFInducerExample(){}
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/ApproximateJustificationAnalysisExample.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/ApproximateJustificationAnalysisExample.java
deleted file mode 100644
index 13b485237..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/ApproximateJustificationAnalysisExample.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.examples;
-
-import org.tweetyproject.arg.bipolar.analysis.AnalysisResult;
-import org.tweetyproject.arg.bipolar.analysis.ApproxAnalysis;
-import org.tweetyproject.arg.bipolar.analysis.ExactAnalysis;
-import org.tweetyproject.arg.dung.reasoner.SimplePreferredReasoner;
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-import org.tweetyproject.arg.bipolar.syntax.PEAFTheory;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Demonstrates the use of exact and approximate justification analysis on a PEAFTheory.
- *
- * This example sets up a PEAFTheory with a number of arguments, defines supports and attacks among them,
- * and then performs exact and approximate analyses to justify a specific argument.
- *
- */
-public class ApproximateJustificationAnalysisExample {
-
- /**
- * Example
- * @param args the args
- */
- public static void main(String[] args) {
- int numOfArgs = 7; // Number of arguments to add to the PEAFTheory
- PEAFTheory peafTheory = new PEAFTheory();
-
- // Add arguments to the theory
- for (int i = 0; i < numOfArgs; i++) {
- peafTheory.addArgument(i);
- }
-
- // Define supports among arguments with associated probabilities
- peafTheory.addSupport(
- new HashSet<>(),
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(0))),
- 1.0
- );
- peafTheory.addSupport(
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(0))),
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(2))),
- 0.6
- );
- peafTheory.addSupport(
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(0))),
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(1))),
- 0.7
- );
- peafTheory.addSupport(
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(0))),
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(3))),
- 0.9
- );
- peafTheory.addSupport(
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(0))),
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(4))),
- 0.3
- );
- peafTheory.addSupport(
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(3))),
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(5))),
- 0.5
- );
-
- // Define supports involving multiple arguments
- Set argSet = new HashSet<>();
- argSet.add(peafTheory.getArguments().get(3));
- argSet.add(peafTheory.getArguments().get(4));
- peafTheory.addSupport(
- argSet,
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(6))),
- 0.9
- );
-
- // Define attack relationships among arguments
- peafTheory.addAttack(
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(5))),
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(2)))
- );
- peafTheory.addAttack(
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(5))),
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(1)))
- );
- peafTheory.addAttack(
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(1))),
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(5)))
- );
- peafTheory.addAttack(
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(1))),
- new HashSet<>(Arrays.asList(peafTheory.getArguments().get(6)))
- );
-
- // Define the query for analysis
- Set query = new HashSet<>();
- query.add(peafTheory.getArguments().get(0));
-
- // Perform exact analysis
- ExactAnalysis exactAnalysis = new ExactAnalysis(peafTheory, new SimplePreferredReasoner());
- AnalysisResult exactResult = exactAnalysis.query(query);
- exactResult.print();
-
- // Perform approximate analysis
- ApproxAnalysis approxAnalysis = new ApproxAnalysis(peafTheory, new SimplePreferredReasoner(), 0.1);
- AnalysisResult approxResult = approxAnalysis.query(query);
- approxResult.print();
- }
-
- /** Default Constructor */
- public ApproximateJustificationAnalysisExample() {}
-}
-
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/CheckIfSelfSupportingExample.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/CheckIfSelfSupportingExample.java
deleted file mode 100644
index ce2c20bb3..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/CheckIfSelfSupportingExample.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.examples;
-
-import org.tweetyproject.arg.bipolar.syntax.EAFTheory;
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * This class demonstrates the use of the {@link EAFTheory} class to check for self-supporting sets of arguments.
- *
- * In this example, an extended argumentation framework (EAF) is created with a set of arguments and supports/attacks between them.
- * The goal is to check whether certain sets of arguments are self-supporting using the {@code checkIsSelfSupporting} method
- * of the {@link EAFTheory} class.
- *
- * @author Your Name
- */
-public class CheckIfSelfSupportingExample {
-
- /**
- * The entry point of the example program that sets up an {@link EAFTheory} instance,
- * adds arguments, defines supports and attacks, and checks whether various sets of arguments
- * are self-supporting.
- *
- * @param args command-line arguments (not used)
- */
- public static void main(String[] args) {
- EAFTheory eafTheory = new EAFTheory();
- for (int i = 0; i < 4; i++) {
- eafTheory.addArgument(i);
- }
-
- // Arguments:
- // eta = 0, a = 1, b = 2, c = 3
-
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(0)))), new HashSet(Arrays.asList(eafTheory.getArguments().get(1))));
- eafTheory.addSupport(new HashSet(Arrays.asList(eafTheory.getArguments().get(0))), new HashSet(Arrays.asList(eafTheory.getArguments().get(2))));
- eafTheory.addAttack(new HashSet(Arrays.asList(eafTheory.getArguments().get(2))), new HashSet(Arrays.asList(eafTheory.getArguments().get(1))));
- eafTheory.addSupport(new HashSet(Arrays.asList(eafTheory.getArguments().get(1))), new HashSet(Arrays.asList(eafTheory.getArguments().get(3))));
-
- List eArguments = eafTheory.getArguments();
- Set selfSupported = new HashSet<>();
-
- // Various checks for self-supporting sets of arguments
- selfSupported.add(eArguments.get(0));
- System.out.println("{eta} is " + eafTheory.checkIsSelfSupporting(selfSupported) + ", but must be true");
- selfSupported.clear();
-
- selfSupported.add(eArguments.get(2));
- System.out.println("{b} is " + eafTheory.checkIsSelfSupporting(selfSupported) + ", but must be false");
- selfSupported.clear();
-
- selfSupported.add(eArguments.get(1));
- selfSupported.add(eArguments.get(2));
- System.out.println("{a, b} is " + eafTheory.checkIsSelfSupporting(selfSupported) + ", but must be false");
- selfSupported.clear();
-
- selfSupported.add(eArguments.get(0));
- selfSupported.add(eArguments.get(1));
- selfSupported.add(eArguments.get(3));
- System.out.println("{eta, a, c} is " + eafTheory.checkIsSelfSupporting(selfSupported) + ", but must be true");
- selfSupported.clear();
-
- selfSupported.add(eArguments.get(0));
- selfSupported.add(eArguments.get(2));
- System.out.println("{eta, b} is " + eafTheory.checkIsSelfSupporting(selfSupported) + ", but must be true");
-
- selfSupported.add(eArguments.get(0));
- selfSupported.add(eArguments.get(3));
- System.out.println("{eta, c} is " + eafTheory.checkIsSelfSupporting(selfSupported) + ", but must be false");
- }
-
- /**
- * Default constructor for the {@code CheckIfSelfSupportingExample} class.
- * Initializes an instance of this class, though it currently has no specific initialization logic.
- */
- public CheckIfSelfSupportingExample() {}
-}
-
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/DeductiveArgumentation.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/DeductiveArgumentation.java
deleted file mode 100644
index 05df978fe..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/DeductiveArgumentation.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2016 The TweetyProject Team
- */
-
-
-package org.tweetyproject.arg.bipolar.examples;
-
-import org.tweetyproject.arg.bipolar.reasoner.deductive.*;
-import org.tweetyproject.arg.bipolar.syntax.*;
-import org.tweetyproject.arg.dung.reasoner.SimpleCompleteReasoner;
-import org.tweetyproject.arg.dung.reasoner.SimpleGroundedReasoner;
-import org.tweetyproject.arg.dung.reasoner.SimplePreferredReasoner;
-import org.tweetyproject.arg.dung.reasoner.SimpleStableReasoner;
-import org.tweetyproject.arg.dung.syntax.DungTheory;
-import org.tweetyproject.logics.pl.sat.Sat4jSolver;
-import org.tweetyproject.logics.pl.sat.SatSolver;
-
-/**
- * Demonstrates the construction of deductive argumentation frameworks and the computation of their extensions.
- *
- * This example uses the Deductive Argumentation Framework to create an argumentation framework, add arguments and relationships,
- * and then compute various types of extensions. The example framework and its associated Dung theory are used to compute extensions
- * using different reasoners.
- *
- * The example is based on the work by Cayrol and Lagasquie-Schiex on bipolarity in argumentation graphs.
- */
-public class DeductiveArgumentation {
-
- /**
- * The entry point of the example program. Constructs a deductive argumentation framework, adds arguments, attacks, and supports,
- * and computes various types of extensions using different reasoners.
- *
- * The following steps are performed in the main method:
- *
- * - Create a {@link DeductiveArgumentationFramework} instance.
- * - Add four arguments to the framework.
- * - Add one attack and two support relationships between the arguments.
- * - Obtain the associated Dung theory and meta-framework for the deductive argumentation framework.
- * - Set the default SAT solver to {@link Sat4jSolver}.
- * - Compute and print the closed extensions and safe extensions using the {@link ClosureReasoner} and {@link SafetyReasoner}.
- * - Compute and print the preferred, grounded, and stable extensions for the Dung theory using the {@link SimplePreferredReasoner}, {@link SimpleGroundedReasoner}, and {@link SimpleStableReasoner}.
- * - Compute and print the complete extensions for both the Dung theory and the meta-framework using the {@link SimpleCompleteReasoner}.
- *
- *
- * @param args command-line arguments (not used)
- */
- public static void main(String[] args) {
- // Example from Cayrol, Lagasquie-Schiex. Bipolarity in argumentation graphs: Towards a better understanding. 2013
- DeductiveArgumentationFramework at = new DeductiveArgumentationFramework();
- BArgument a = new BArgument("a");
- BArgument b = new BArgument("b");
- BArgument c = new BArgument("c");
- BArgument x = new BArgument("x");
- at.add(a);
- at.add(b);
- at.add(c);
- at.add(x);
-
- Attack att1 = new BinaryAttack(x, c);
- at.add(att1);
-
- Support supp1 = new BinarySupport(a, x);
- Support supp2 = new BinarySupport(b, c);
- at.add(supp1);
- at.add(supp2);
-
- DungTheory dt = at.getCompleteAssociatedDungTheory();
- DungTheory mt = at.getMetaFramework();
-
- SatSolver.setDefaultSolver(new Sat4jSolver());
-
- System.out.println("Closed extensions at: " + new ClosureReasoner().getModels(at));
- System.out.println("Safe extensions at: " + new SafetyReasoner().getModels(at));
-
- System.out.println("Preferred extensions: " + new SimplePreferredReasoner().getModels(dt));
- System.out.println("Grounded extensions: " + new SimpleGroundedReasoner().getModels(dt));
- System.out.println("Stable extensions: " + new SimpleStableReasoner().getModels(dt));
-
- System.out.println("Complete extensions dt: " + new SimpleCompleteReasoner().getModels(dt));
- System.out.println("Complete extensions mt: " + new SimpleCompleteReasoner().getModels(mt));
- }
-
- /**
- * Default constructor for the {@code DeductiveArgumentation} class.
- * Initializes an instance of this class, though it currently has no specific initialization logic.
- */
- public DeductiveArgumentation() {}
-}
-
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/DeductiveBipolarArgumentation.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/DeductiveBipolarArgumentation.java
new file mode 100644
index 000000000..ca7dcc65c
--- /dev/null
+++ b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/DeductiveBipolarArgumentation.java
@@ -0,0 +1,73 @@
+/*
+ * This file is part of "TweetyProject", a collection of Java libraries for
+ * logical aspects of artificial intelligence and knowledge representation.
+ *
+ * TweetyProject is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program 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 program. If not, see .
+ *
+ * Copyright 2026 The TweetyProject Team
+ */
+package org.tweetyproject.arg.bipolar.examples;
+
+import org.tweetyproject.arg.bipolar.reasoner.SimpleDeductiveReasoner;
+import org.tweetyproject.arg.bipolar.syntax.BipolarArgumentationFramework;
+import org.tweetyproject.arg.bipolar.syntax.Support;
+import org.tweetyproject.arg.dung.reasoner.SimplePreferredReasoner;
+import org.tweetyproject.arg.dung.semantics.Semantics;
+import org.tweetyproject.arg.dung.syntax.Argument;
+import org.tweetyproject.arg.dung.syntax.DungTheory;
+
+/**
+ * Demonstrates the construction of deductive argumentation frameworks and the computation of their extensions.
+ *
+ * @author Lars Bengel
+ */
+public class DeductiveBipolarArgumentation {
+
+ /**
+ * The entry point of the example program. Constructs a deductive argumentation framework, adds arguments, attacks, and supports,
+ * and computes extensions using different reasoners.
+ *
+ * @param args command-line arguments (not used)
+ */
+ public static void main(String[] args) {
+ // Example from Cayrol, Lagasquie-Schiex. Bipolarity in argumentation graphs: Towards a better understanding. 2013
+ BipolarArgumentationFramework at = new BipolarArgumentationFramework();
+ Argument a = new Argument("a");
+ Argument b = new Argument("b");
+ Argument c = new Argument("c");
+ Argument x = new Argument("x");
+ at.add(a);
+ at.add(b);
+ at.add(c);
+ at.add(x);
+
+ at.addAttack(x,c);
+ at.addSupport(a,x);
+ at.addSupport(b,c);
+
+ DungTheory dt = at.getAssociatedTheory(Support.Type.DEDUCTIVE);
+
+ System.out.println(at.prettyPrint());
+
+ // Computing the preferred extensions directly or via the associated abstract argumentation framework should yield the same result
+ System.out.println("Preferred extensions of at: " + new SimpleDeductiveReasoner(Semantics.PR).getModels(at));
+ System.out.println("Preferred extensions of dt: " + new SimplePreferredReasoner().getModels(dt));
+ }
+
+ /**
+ * Default constructor for the {@code DeductiveBipolarArgumentation} class.
+ * Initializes an instance of this class, though it currently has no specific initialization logic.
+ */
+ public DeductiveBipolarArgumentation() {}
+}
+
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EAFExample.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EAFExample.java
deleted file mode 100644
index c62c84cd9..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EAFExample.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.examples;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-
-import org.tweetyproject.arg.bipolar.io.EdgeListWriter;
-import org.tweetyproject.arg.bipolar.syntax.*;
-
-/**
- * Provides an example of constructing an Argumentation Framework (EAFTheory) and saving its representation to a file.
- *
- * This example demonstrates the creation of an argumentation framework with eight arguments, setting up various support
- * and attack relationships between these arguments, and finally writing the resulting framework to a file.
- */
-public class EAFExample {
-
- /**
- * The entry point of the example program. Constructs an {@link EAFTheory} instance, adds arguments, support, and attack
- * relationships, and writes the framework to a file.
- *
- * The following steps are performed in the main method:
- *
- * - Create an instance of {@link EAFTheory}.
- * - Add eight arguments to the framework.
- * - Define support relationships between various sets of arguments.
- * - Define attack relationships between specific arguments.
- * - Print the string representation of the framework to the console.
- * - Write the framework to a file named "eaf.txt" using {@link EdgeListWriter}.
- *
- *
- * @param _args command-line arguments (not used in this example)
- */
- public static void main(String[] _args) {
- int numOfArgs = 8;
-
- EAFTheory eafTheory = new EAFTheory();
-
- for (int i = 0; i < numOfArgs; i++) {
- eafTheory.addArgument(i);
- }
-
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(1)))));
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(2)))));
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(2)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(3)))));
- HashSet args1 = new HashSet();
- args1.add(eafTheory.getArguments().get(1));
- args1.add(eafTheory.getArguments().get(3));
- eafTheory.addSupport(args1, new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(3)))));
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(5)))));
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(6)))));
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(6)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(7)))));
- HashSet args2 = new HashSet();
- args2.add(eafTheory.getArguments().get(5));
- args2.add(eafTheory.getArguments().get(7));
- eafTheory.addSupport(args2, new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(4)))));
-
- eafTheory.addAttack(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(5)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(4)))));
- eafTheory.addAttack(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(2)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(6)))));
-
- System.out.println(eafTheory.toString());
-
- EdgeListWriter.write("eaf.txt", eafTheory);
- }
-
- /**
- * Default constructor for the {@code EAFExample} class.
- * Initializes an instance of this class. This constructor does not perform any specific initialization.
- */
- public EAFExample() {}
-}
-
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EasyPEAFExample.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EasyPEAFExample.java
deleted file mode 100644
index c8fb33454..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EasyPEAFExample.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.examples;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-
-import org.tweetyproject.arg.bipolar.inducers.LiExactPEAFInducer;
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-import org.tweetyproject.arg.bipolar.syntax.PEAFTheory;
-/**
- * Provides an example of constructing a Probabilistic Argumentation Framework (PEAFTheory), adding support relationships,
- * and inducing extensions using a specific inducer.
- *
- * This example demonstrates the creation of a PEAFTheory instance with two arguments, setting up support relationships
- * with specified probabilities, and then inducing extensions of the framework using the {@link LiExactPEAFInducer}.
- */
-public class EasyPEAFExample {
-
- /**
- * The entry point of the example program. Constructs a {@link PEAFTheory} instance, adds arguments, defines support
- * relationships with associated probabilities, prints the framework, and induces extensions using the
- * {@link LiExactPEAFInducer}.
- *
- * The following steps are performed in the main method:
- *
- * - Create an instance of {@link PEAFTheory}.
- * - Add two arguments to the framework.
- * - Define support relationships between the arguments with specified probabilities.
- * - Print the framework in a human-readable format using {@link PEAFTheory#prettyPrint()}.
- * - Induce extensions of the framework using {@link LiExactPEAFInducer} and print each induced extension.
- *
- *
- * @param args command-line arguments (not used in this example)
- */
- public static void main(String[] args) {
- PEAFTheory peafTheory = new PEAFTheory();
- peafTheory.addArgument(0);
- peafTheory.addArgument(1);
-
-
- peafTheory.addSupport(new HashSet(), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(0)))), 1.0);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(1)))), 0.3);
-
-
- peafTheory.prettyPrint();
- LiExactPEAFInducer inducer = new LiExactPEAFInducer(peafTheory);
-
- inducer.induce(ind -> {
- System.out.println(ind);
-
-
- });
- }
-
- /** Default Constructor */
- public EasyPEAFExample(){}
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EvidentialAcceptability.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EvidentialAcceptability.java
deleted file mode 100644
index 351825fcf..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EvidentialAcceptability.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2016 The TweetyProject Team
- */
-
-
-package org.tweetyproject.arg.bipolar.examples;
-
-import org.tweetyproject.arg.bipolar.syntax.*;
-
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * Demonstrates the use of evidential argumentation frameworks.
- *
- * This example shows how to construct an instance of {@link EvidentialArgumentationFramework},
- * add arguments, support, and attack relationships, and check the acceptability of arguments
- * with respect to a given set of arguments.
- * It also prints the framework in a human-readable format.
- */
-public class EvidentialAcceptability {
-
- /**
- * The entry point of the example program. Constructs an {@link EvidentialArgumentationFramework} instance,
- * adds arguments, defines support and attack relationships, specifies prima facie arguments, and checks
- * the acceptability of various arguments with respect to a specified set of arguments.
- *
- * @param args command-line arguments (not used in this example)
- */
- public static void main(String[] args) {
- EvidentialArgumentationFramework et = new EvidentialArgumentationFramework();
- BArgument a = new BArgument("a");
- BArgument b = new BArgument("b");
- BArgument c = new BArgument("c");
- BArgument d = new BArgument("d");
- BArgument e = new BArgument("e");
- BArgument f = new BArgument("f");
- et.add(a);
- et.add(b);
- et.add(c);
- et.add(d);
- et.add(e);
- et.add(f);
- SetAttack att1 = new SetAttack(a, f);
- SetAttack att2 = new SetAttack(b, e);
- SetAttack att3 = new SetAttack(d, c);
- SetAttack att4 = new SetAttack(c, e);
- SetSupport supp1 = new SetSupport(f, b);
- SetSupport supp2 = new SetSupport(d, e);
- et.add(att1);
- et.add(att2);
- et.add(att3);
- et.add(att4);
- et.add(supp1);
- et.add(supp2);
-
-
- et.addPrimaFacie(a);
- et.addPrimaFacie(c);
- et.addPrimaFacie(d);
- et.addPrimaFacie(f);
-
-
- System.out.println(et.prettyPrint());
-
- Set s1 = new HashSet<>();
- s1.add(et.getEta());
- s1.add(a);
- s1.add(d);
-
- System.out.println("Argument a is acceptable wrt. " + s1 + ": " + et.isAcceptable(a, s1));
- System.out.println("Argument b is acceptable wrt. " + s1 + ": " + et.isAcceptable(b, s1));
- System.out.println("Argument c is acceptable wrt. " + s1 + ": " + et.isAcceptable(c, s1));
- System.out.println("Argument d is acceptable wrt. " + s1 + ": " + et.isAcceptable(d, s1));
- System.out.println("Argument e is acceptable wrt. " + s1 + ": " + et.isAcceptable(e, s1));
- System.out.println("Argument f is acceptable wrt. " + s1 + ": " + et.isAcceptable(f, s1));
-
- }
-
- /** Default Constructor */
- public EvidentialAcceptability(){}
-}
\ No newline at end of file
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EvidentialArgumentation.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EvidentialArgumentation.java
deleted file mode 100644
index a1cba9c96..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EvidentialArgumentation.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2016 The TweetyProject Team
- */
-
-
-package org.tweetyproject.arg.bipolar.examples;
-
-import org.tweetyproject.arg.bipolar.reasoner.evidential.*;
-import org.tweetyproject.arg.bipolar.syntax.*;
-
-/**
- * More examples for evidential argumentation frameworks.
- */
-public class EvidentialArgumentation {
-
- /**
- * Example
- * @param args the args
- */
- public static void main(String[] args) {
- // Example from Polberg, Oren. Revisiting Support in Abstract Argumentation Systems. 2014
- EvidentialArgumentationFramework et = new EvidentialArgumentationFramework();
- BArgument a = new BArgument("a");
- BArgument b = new BArgument("b");
- BArgument c = new BArgument("c");
- BArgument d = new BArgument("d");
- BArgument e = new BArgument("e");
- BArgument f = new BArgument("f");
- et.add(a);
- et.add(b);
- et.add(c);
- et.add(d);
- et.add(e);
- et.add(f);
-
- SetAttack att1 = new SetAttack(b, a);
- SetAttack att2 = new SetAttack(b, c);
- SetAttack att3 = new SetAttack(c, b);
- SetAttack att4 = new SetAttack(c, d);
- SetAttack att5 = new SetAttack(d, f);
- SetAttack att6 = new SetAttack(f, f);
- et.add(att1);
- et.add(att2);
- et.add(att3);
- et.add(att4);
- et.add(att5);
- et.add(att6);
-
- SetSupport supp1 = new SetSupport(d, e);
- et.add(supp1);
-
- et.addPrimaFacie(b);
- et.addPrimaFacie(c);
- et.addPrimaFacie(d);
- et.addPrimaFacie(f);
-
- System.out.println("Self-Supporting extensions: " + new SelfSupportingReasoner().getModels(et));
- System.out.println("Conflict-Free extensions: " + new ConflictFreeReasoner().getModels(et));
- System.out.println("Admissible extensions: " + new AdmissibleReasoner().getModels(et));
- System.out.println("Grounded extensions: " + new GroundedReasoner().getModels(et));
- System.out.println("Complete extensions: " + new CompleteReasoner().getModels(et));
- System.out.println("Preferred extensions: " + new PreferredReasoner().getModels(et));
- System.out.println("Stable extensions: " + new StableReasoner().getModels(et));
- }
-
- /** Default Constructor */
- public EvidentialArgumentation(){}
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EvidentialArgumentation2.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EvidentialArgumentation2.java
deleted file mode 100644
index f9a793892..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/EvidentialArgumentation2.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2016 The TweetyProject Team
- */
-
-package org.tweetyproject.arg.bipolar.examples;
-
-import org.tweetyproject.arg.bipolar.reasoner.evidential.*;
-import org.tweetyproject.arg.bipolar.syntax.*;
-
-/**
- * More examples for evidential argumentation frameworks.
- */
-public class EvidentialArgumentation2 {
- /**
- * Example
- * @param args the args
- */
- public static void main(String[] args) {
- // Example from Oren, Norman. Semantics for Evidence-Based Argumentation. 2008
- EvidentialArgumentationFramework et = new EvidentialArgumentationFramework();
- BArgument a = new BArgument("a");
- BArgument b = new BArgument("b");
- BArgument c = new BArgument("c");
- BArgument x = new BArgument("x");
- et.add(a);
- et.add(b);
- et.add(c);
- et.add(x);
-
- Attack att1 = new SetAttack(a, c);
- Attack att2 = new BinaryAttack(a, b);
- Attack att3 = new BinaryAttack(c, x);
- et.add(att1);
- et.add(att2);
- et.add(att3);
-
- SetSupport supp1 = new SetSupport(b, x);
- et.add(supp1);
-
- et.addPrimaFacie(a);
- et.addPrimaFacie(b);
- et.addPrimaFacie(c);
- et.addPrimaFacie(x);
-
- System.out.println(et.prettyPrint());
-
- System.out.println("Self-Supporting extensions: " + new SelfSupportingReasoner().getModels(et));
- System.out.println("Conflict-Free extensions: " + new ConflictFreeReasoner().getModels(et));
- System.out.println("Admissible extensions: " + new AdmissibleReasoner().getModels(et));
- System.out.println("Grounded extensions: " + new GroundedReasoner().getModels(et));
- System.out.println("Complete extensions: " + new CompleteReasoner().getModels(et));
- System.out.println("Preferred extensions: " + new PreferredReasoner().getModels(et));
- System.out.println("Stable extensions: " + new StableReasoner().getModels(et));
- }
-
- /** Default Constructor */
- public EvidentialArgumentation2(){}
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/ExpandMCExample.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/ExpandMCExample.java
deleted file mode 100644
index 0a46fcc90..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/ExpandMCExample.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.examples;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-
-import org.tweetyproject.arg.bipolar.inducers.ExactPEAFInducer;
-import org.tweetyproject.arg.bipolar.inducers.LiExactPEAFInducer;
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-import org.tweetyproject.arg.bipolar.syntax.PEAFTheory;
-
-/**
- * Demonstrates the use of various PEAF (Probabilistic Evidential Argumentation Framework)
- * inducers to compute and display argumentation frameworks and their associated probabilities.
- *
- * This example constructs a {@link PEAFTheory} with a set of arguments and support relationships,
- * prints the framework, and uses different inducers to process the framework and output the results.
- */
-public class ExpandMCExample {
-
- /**
- * The entry point of the example program. Constructs a {@link PEAFTheory} instance,
- * adds arguments and support relationships, and utilizes two types of inducers to process
- * the framework. It prints the framework and the results obtained from using the
- * {@link LiExactPEAFInducer} and {@link ExactPEAFInducer}.
- *
- * The following steps are performed in the main method:
- *
- * - Create an instance of {@link PEAFTheory}.
- * - Add four arguments to the framework.
- * - Define and add support relationships between the arguments with associated probabilities.
- * - Print the framework using {@link PEAFTheory#prettyPrint()}.
- * - Create an instance of {@link LiExactPEAFInducer} and use it to induce and print the
- * results along with the accumulated probability.
- * - Reset the probability and repeat the induction process with {@link ExactPEAFInducer},
- * printing the results and the accumulated probability.
- *
- *
- * @param args command-line arguments (not used in this example)
- */
- public static void main(String[] args) {
- PEAFTheory peafTheory = new PEAFTheory();
- for(int i = 0; i < 4; i++) {
- peafTheory.addArgument(i);
- }
-
- peafTheory.addSupport(new HashSet(), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(0)))), 1.0);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(1)))), 0.8);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(1)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(2)))), 0.9);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(2)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(3)))), 0.9);
-
- peafTheory.prettyPrint();
-
- System.out.println("The LiExactPEAFInducer:");
- System.out.println();
- final double[] p = {0.0};
- LiExactPEAFInducer inducer = new LiExactPEAFInducer(peafTheory);
- inducer.induce(inducibleEAF -> {
- System.out.println(inducibleEAF);
- p[0] += inducibleEAF.getInducePro();
- });
-
- System.out.println("The result is: " + p[0]);
- p[0] = 0.0;
-
- System.out.println();
- System.out.println("The ExactPEAFInducer:");
- System.out.println();
- ExactPEAFInducer inducer2 = new ExactPEAFInducer(peafTheory);
- inducer2.induce(inducibleEAF -> {
- System.out.println(inducibleEAF);
- p[0] += inducibleEAF.getInducePro();
- });
-
- System.out.println("The result is: " + p[0]);
- }
-
- /** Default Constructor */
- public ExpandMCExample(){}
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/JustificationAnalysisExample.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/JustificationAnalysisExample.java
deleted file mode 100644
index 613ca2081..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/JustificationAnalysisExample.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.examples;
-
-import org.tweetyproject.arg.bipolar.analysis.AnalysisResult;
-import org.tweetyproject.arg.bipolar.analysis.ExactAnalysis;
-import org.tweetyproject.arg.dung.reasoner.SimplePreferredReasoner;
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-import org.tweetyproject.arg.bipolar.syntax.PEAFTheory;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-/**
- * JustificationAnalysisExample class
- */
-public class JustificationAnalysisExample {
- /**
- * Example
- * @param s string array
- */
- public static void main(String[] s) {
- int numOfArgs = 7;
- PEAFTheory peafTheory = new PEAFTheory();
-
- for (int i = 0; i < numOfArgs; i++) {
- peafTheory.addArgument(i);
- }
-
-
- peafTheory.addSupport(new HashSet(), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(0)))), 1.0);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(2)))), 0.6);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(1)))), 0.7);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(3)))), 0.9);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(4)))), 0.3);
- peafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(3)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(5)))), 0.5);
- HashSet arg3And4 = new HashSet();
- arg3And4.add(peafTheory.getArguments().get(3));
- arg3And4.add(peafTheory.getArguments().get(4));
- peafTheory.addSupport(arg3And4, new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(6)))), 0.9);
- peafTheory.addAttack(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(5)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(2)))));
- peafTheory.addAttack(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(5)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(1)))));
- peafTheory.addAttack(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(1)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(5)))));
- peafTheory.addAttack(new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(1)))), new HashSet(new ArrayList(Arrays.asList(peafTheory.getArguments().get(6)))));
-
- List args = peafTheory.getArguments();
-// args.get(0).setName("eta");
-// args.get(1).setName("b");
-// args.get(2).setName("d");
-// args.get(3).setName("e");
-// args.get(4).setName("f");
-// args.get(5).setName("a");
-//
-//
-// args.get(6).setName("c");
-
- Set query = new HashSet<>();
-// query.add(args.get(0));
- query.add(args.get(1));
- query.add(args.get(6));
-
- ExactAnalysis analysis = new ExactAnalysis(peafTheory, new SimplePreferredReasoner());
- AnalysisResult result = analysis.query(query);
- result.print();
-
-
- }
-
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/LiThesisPage21EAFExample.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/LiThesisPage21EAFExample.java
deleted file mode 100644
index cd89da0f4..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/LiThesisPage21EAFExample.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.examples;
-
-import org.tweetyproject.arg.dung.reasoner.SimplePreferredReasoner;
-import org.tweetyproject.arg.dung.semantics.Extension;
-import org.tweetyproject.arg.dung.syntax.DungTheory;
-import org.tweetyproject.arg.bipolar.syntax.*;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-
-/**
- * LiThesisPage21EAFExample class
- */
-public class LiThesisPage21EAFExample {
-
- /**
- * Example
- * @param args the args
- */
- public static void main(String[] args) {
- EAFTheory eafTheory = new EAFTheory();
- for(int i = 0; i< 9; i++) {
- eafTheory.addArgument(i);
- }
-
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(1)))));
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(2)))));
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(3)))));
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(0)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(4)))));
- HashSet arg3And4 = new HashSet();
- arg3And4.add(eafTheory.getArguments().get(3));
- arg3And4.add(eafTheory.getArguments().get(4));
- eafTheory.addSupport(arg3And4, new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(7)))));
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(1)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(5)))));
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(5)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(8)))));
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(2)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(6)))));
- eafTheory.addSupport(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(6)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(8)))));
-
- eafTheory.addAttack(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(2)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(5)))));
- eafTheory.addAttack(new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(6)))), new HashSet(new ArrayList(Arrays.asList(eafTheory.getArguments().get(3)))));
-
-
- DungTheory dungTheory = eafTheory.convertToDAFNaively();
-
- System.out.println("EAF Theory Pretty Print:");
- eafTheory.prettyPrint();
-
- System.out.println("DAF Theory Pretty Print:");
- System.out.println(dungTheory.prettyPrint());
-
- System.out.println("SimplePreferredReasoner:");
- SimplePreferredReasoner reasoner1 = new SimplePreferredReasoner();
- for (Extension model : reasoner1.getModels(dungTheory)) {
- System.out.println(model);
- }
- }
-}
diff --git a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/MeetingPEAFExample.java b/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/MeetingPEAFExample.java
deleted file mode 100644
index d828283bd..000000000
--- a/org-tweetyproject-arg-bipolar/src/main/java/org/tweetyproject/arg/bipolar/examples/MeetingPEAFExample.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * This file is part of "TweetyProject", a collection of Java libraries for
- * logical aspects of artificial intelligence and knowledge representation.
- *
- * TweetyProject is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program 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 program. If not, see .
- *
- * Copyright 2022 The TweetyProject Team
- */
-package org.tweetyproject.arg.bipolar.examples;
-
-import org.tweetyproject.arg.bipolar.inducers.ExactPEAFInducer;
-import org.tweetyproject.arg.bipolar.inducers.LiExactPEAFInducer;
-import org.tweetyproject.arg.bipolar.syntax.BArgument;
-import org.tweetyproject.arg.bipolar.syntax.PEAFTheory;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- * MeetingPEAFExample class
- */
-public class MeetingPEAFExample {
-
- /** total */
- static double total = 0;
-
- /**
- * Example
- * @param s args
- */
- public static void main(String[] s) {
- int numOfArgs = 7;
-
-
- PEAFTheory peafTheory = new PEAFTheory();
-
- for (int i = 0; i < numOfArgs; i++) {
- peafTheory.addArgument(i);
- }
- HashSet arg0 = new HashSet();
- arg0.add(peafTheory.getArguments().get(0));
- HashSet arg1 = new HashSet();
- arg1.add(peafTheory.getArguments().get(1));
- HashSet arg2 = new HashSet();
- arg2.add(peafTheory.getArguments().get(2));
- HashSet arg3 = new HashSet();
- arg3.add(peafTheory.getArguments().get(3));
- HashSet arg4 = new HashSet