GithubHelp home page GithubHelp logo

kenrick95 / aba-web Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 2.0 994 KB

Final Year Project: Web-based Argumentation

Home Page: https://aba-web.azurewebsites.net/

License: MIT License

Python 76.78% HTML 7.49% CSS 2.29% JavaScript 13.44%
fyp argumentation aba assumptions

aba-web's Introduction

Web-based Argumentation

Test status: CircleCI

Extra short summary of this project:

  • Assumption-based Argumentation solver
  • Plus a web interface
  • Input: argumentation rules
  • Output: which argument is conflict-free, stable, complete, admissible, ideal, grounded.
  • FYP report: link.
  • How to setup this project for local development: link

Architecture

  • Static page served by Python Flask web-framework
  • Input parsed by Parser
  • Parser attempts to construct the ABA Framework, including
    • ABA Arguments
    • ABA Dispute Trees
  • Outputs the visualization of the arguments and dispute trees, including
    • semantics, elaborated in subsequent section

Parser

a, b, c |- d.

Rule

  • LHS contains zero or more space-separated symbols
  • RHS conrains exactly one symbol

Meaning

  • Symbols in LHS supports the RHS symbol, making a potential argument
  • If LHS is empty, then the potential argument is a ground truth
  • If the symbols contained in LHS are ground truths or assumptions or both, then the potential argument is an actual argument

Notes

  • If the sentence is potential argument, it will not be used in the dispute tree derivation
contrary(a, b).

Rule

  • a function containing two parameters, both accepting a symbol

Meaning

  • first symbol is a contrary of second symbol
  • first symbol is an assumption
assumption(x).

Rule

  • a function containing one parameter accepting a symbol

Meaning

  • explicitly state the parameter is an assumption

Argument semantics implemented

  • Conflict-free
  • Admissible
  • Complete
  • Grounded
  • Stable
  • Ideal

Testing

Using Python unittest framework, tests mainly sourced from examples presented at Craven, Toni "Argument Graphs and Assumption-Based Argumentation" (2016).

Notes

This work is based mainly on the book chapter authored by Dung, Kowalski, Toni titled "Assumption-based Argumentation" (2009).

requirements.txt contains libraries needed for setting up the project.

The following files are related to deployment in Microsoft Azure, please disregard them when evaluating the project:

  • ptvs_virtualenv_proxy.py
  • runtime.txt
  • web.config
  • wheelhouse/ujson-1.35-cp34-none-win32

Performance Testing

  • perf_memory_limitter.py is for limitting RAM usage, returning MemoryError if Python overshoot a certain amount of RAM usage
  • perf_test.py is the main file to test performance of this project.
  • perf_test_runonly.txt is the list of test cases used in perf_test.py
  • pert_test_proxdd.py is a wrapper to test the performance of proxdd, a Prolog program by Toni (2012).
  • perf_test_proxdd_setup.txt is the list of test cases used in pert_test_proxdd.py, essentially the same as perf_test_runonly.txt

aba-web's People

Contributors

kenrick95 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

aba-web's Issues

Add help page

Having a help page would be useful. The things you put in the help can be part of your report, e.g., definition of the implemented semantics and examples.

AND & OR of ABA_Rule

Fan Xiuyi:

However, I’m still a bit concerned about your program.

It seems you don’t distinguish between:

b |- a
c |- a

and

b, c |- a

As you can see, these two sets of rules mean very different things. First set says, if b OR c holds, then a holds; whereas the second set says if b AND c holds, then a holds.


Haven’t read your code, but it more or less means that you need to duplicate your search structure for each of these OR branches. And you need to search through all possible branches and check for loops. (I know, I know, this is very tedious … But there isn’t any other way to do it, as far as I know …)

Do lazy-rendering of D3 graphs

Current implementation renders all graphs, and then hide it. It might cause performance issue on browser when it gets a lot of symbols.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.