|
Does anyone know how Semantic Tableaux works?..
Here is an example:
|| (a=>b) ^ c
c||(a=>b) (a=>b) || c
c,a|| || c, a, b b,c||a
I need it to work in java.. any ideas? I am having problems developing it when the tableaux splits into 2 when 2 options are needed. this is what ive got so far..
public class Algorithm {
LinkedList left;
LinkedList right;
//Gains Node root from parser and passes to Algorithm and creates and new linkedlist left and right
public Algorithm(Node root) {
parent = new LinkedList();
left = new LinkedList();
right = new LinkedList();
right.addElement(root, 0); //adds root to rightList and sets the count of that tree to 0 (heirarchy/treeid)
int count = 0;
while((left.length() > 0) || (right.length() > 0)){
while (right.length() > 0)
{
Node temp = right.getElement();
if(temp.data == "^")
{
right.deleteElement();
left.addElement(temp.left, count);
right.addElement(temp.right, count);
count++;
left.addElement(temp.right, count);
right.addElement(temp.left, count);
Node tmp = temp.left;
System.out.println(tmp.data);
tmp = temp.right;
System.out.println(tmp.data);
}
if (temp.data == "=>")
{
System.out.println(temp.data );
Node tmp = temp.left;
System.out.println(tmp.data);
tmp = temp.right;
System.out.println(tmp.data);
right.deleteElement();
left.addElement(temp.left, count);
right.addElement(temp.right, count);
}
if (temp.data == "v")
{
right.deleteElement();
left.addElement(temp.left, count);
right.addElement(temp.right, count);
count++;
left.addElement(temp.right, count);
right.addElement(temp.left, count);
Node tmp = temp.left;
System.out.println(tmp.data);
tmp = temp.right;
System.out.println(tmp.data);
}
if (temp.data == "-")
{
left.addElement(temp.right, count);
right.deleteElement();
}
}
while(left.length() > 0)
{
Node temp = (Node) left.getElement();
if(temp.data == "^")
{
left.addElement(temp.left, count);
left.addElement(temp.right, count);
left.deleteElement();
Node tmp = (Node) left.data;
System.out.println(tmp.data);
tmp = (Node) right.data;
System.out.println(tmp.data);
}
if(temp.data == "v")
{
left.addElement(temp.left, count);
right.addElement(temp.right, count);
count++;
left.addElement(temp.right, count);
left.addElement(temp.left, count);
left.deleteElement();
Node tmp = (Node) left.data;
System.out.println(tmp.data);
tmp = (Node) right.data;
System.out.println(tmp.data);
}
if(temp.data == "=>")
{
left.addElement(temp.right, count);
right.addElement(temp.left, count);
count ++;
right.addElement(temp.right, count);
right.addElement(temp.left, count);
left.deleteElement();
Node tmp = (Node) left.data;
System.out.println(tmp.data);
tmp = (Node) right.data;
System.out.println(tmp.data);
}
if(temp.data == "-")
{
right.addElement(temp.left, count);
left.deleteElement();
}
}
}
}
}
class Node
{
public String data;
public Node left ;
public Node right ;
}
|