GithubHelp home page GithubHelp logo

gleiss / saturation-visualization Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 3.0 26.21 MB

A visualization tool, which enables an efficient and interactive analysis of Vampire proof attempts.

HTML 0.79% CSS 8.13% JavaScript 2.76% Shell 0.02% TypeScript 88.29%

saturation-visualization's People

Contributors

dependabot[bot] avatar gleiss avatar lenaschnedlitz avatar mailea avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

saturation-visualization's Issues

parse proof_extra full

Would be great to parse --proof_extra full to display age and weight of a selected clause in the graph.

Extend the Node-class

Our nodes should correspond to clauses, together with the following information:

  • whether it occured as a final preprocessing clause
  • the point at which it was added to passive
  • the point at which it was added to active if such a point exists

We want to change the Node-class accordingly:

  • Keep the fields number, clause, inference_rule, parents and children
  • Add fields passiveTime and activeTime, denoting the time when the clause was added to passive/active
  • Add field isFromPreprocessing for those clauses occuring in the final preprocessing
  • modify sanity check accordingly

Add Node Information

The right column of the tool currently contains two blocks of functionality:

  1. functionality to get a new graph and
  2. functionality to find/select certain nodes.

We want to add a third block, which displays information (name, number and inference) about the currently selected node (if exactly one node is selected).

(Later this third block will also get functionality to change how the node is displayed)

Extend parser to support active and passive clauses

The proof output is a series of events, where each event has one of the following forms:

  • [PP] final: Clause
  • [SA] passive: Clause
  • [SA] active: Clause

where Clause is of the form

  • id, the clause formula, some statistics of the form (a : b : c), the inference and the parent ids, e.g. 67. ~$less(sK0,0) (0:3:1) [cnf transformation 57].

We want to parse these events into the modified Node-class.
To compute passiveTime and activeTime, we should use a counter which tracks the number of already parsed passive and active lines / events.

show uploaded file name

Would be great to display the name of the uploaded file as I use multiple tabs with different vampire outputs to compare!

Refactor get_layout

We use different visual representations for different nodes, e.g. for hidden nodes, nodes from preprocessing, theory axioms, ...

It would be good if we have an enum of all the possible representations (hidden, preprocessing, theoryAxiom, passive, active, maybe other stuff in the future).

We then can refactor the main functionality of get_layout into two sub-methods:

  • computeRepresentation(node, history_state), which returns for each node the appropriate representation
  • formatNode(node, representation) / formatEdge(node, representation), which returns the json-encoding for a node and a given representation

Add select Children

Similar to the already existing "select parents"-button, but for selecting children.

The children-ids of a node can be obtained using the already implemented children()-method from the Dag-class.

Implement highlighting of nodes

The user should be able to highlight certain nodes using a checkbox, which is located in the third block of the right column.
Highlighted nodes could be colored e.g. red or orange.

Extend get_layout to handle active and passive clauses

Currently get_layout uses the node-id to determine whether it should display the node or not.
We want to change this to:

  • if the passive-time is smaller or equal the history_state, display the node
  • depending on whether the active-time (if it exists) is smaller or equal the history_state, display the node as passive node or as active node (passive nodes should be in the background, I expect that we are mainly interested in the active nodes, and only look at the passive nodes from time to time)

Add findCommonConsequences

Add a button to the find/select block, which selects all common consequences of a set of selected nodes.

Given a set of ids, one can get the id of common consequences using the findCommonConsequences()-method already implemented in the file search.py.

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.