Jason Donnell Devon Dawson Abductees The SQL string that creates the database table for Findings is: "create table disease1f ("id integer,name char(32),description char(128))" The table name is a name for a case, followed by an 'f'. 'id' is not currently used, but gives a unique numerical identifier if needed. 'name' is the name of the Finding. 'description' is a detailed description of the Finding. The SQL string the creates the database table for Hypotheses is: "create table disease1h ("id integer,name char(32),implied char(255), expected char(255),notexpected char(255),contra char(255), alwaysaccounts char(255),rating integer)" The table name is a name for a case, followed by an 'h'. 'id' is not currently used, but gives a unique numerical identifier if needed. 'name' is the name of the Hypothesis. 'implied','expected','notexpected','contra' are lists of names of other Hypotheses related to this one. The lists are separated by the '|' token (e.g., "hyp1|hyp2|hyp3"). 'alwaysaccounts' is a list of names of Findings that this Hypothesis always accounts for. The list is separated by the '|' token (e.g., "find1|find2|find3"). 'rating' is the rating given this hypothesis by the classifier (integer between -3 and +3). Output (*.OUT) file format: Case: Believed Hypotheses: HYPOTHESIS: Original Rating: Justification: ...Repeated for as many believed hypotheses are present (0 or more)... Unexplained Findings: FINDING: Additional Finding Data: ...Repeated for as many unexplained findings are present (0 or more)... See the included .OUT files for an example of this file format. To try out the abduction with database application: 1) To run this app, you will need the ABDB.ZIP file (the application), the EXJAVA.ZIP file (the database drivers), and the CLASSES.ZIP file the comes with Java. 2) No modifications of the classpath are required. Simply put the ABDB.ZIP and EXJAVA.ZIP files into a directory, and run the JAVA command with the -CLASSPATH option: JAVA -CLASSPATH [path]\CLASSES.ZIP;[path]\ABDB.ZIP;[path]\EXJAVA.ZIP abduct.AbductionFrame The [path] and \ or / will depend on the file locations and your machine type. 3) The Abduction application will now run. Notice the variables are already filled in with values appropriate for this test case. If you try to change them, you will notice they are limited in range. Their ranges are as follows: Expectation Rating Adjustment: 0 to 3 Weak Best Distance, Clear Best Distance: 0 to 3 Weak Best Threshold, Clear Best Threshold: -3 to 3 Entering an out of range value will cause the field to be set to the closest value in range. 4) With all the values left at their defaults, click the 'Go!' button. A dialog will appear so you can specify the name and location of the output file to be created (default file name is the name of the case; in this case 'DISEASE1.OUT'). This output file will contain the results of the abduction algorithm. Once a file name is selected, the application will connect to the database URL. When the 'Status' reads 'Output Successfully Created!', the program is done. The output file now contains the results of the abduction algorithm run on the first test case 'disease1'. 5) Now change the 'Case Name' field to read 'disease2' (no quotes). Once again, click 'Go!'. The same steps will create an output file for this test case (default DISEASE2.OUT). 6) When the program runs, it creates tables of Hypotheses and Findings for each of these two test cases (disease1 and disease2). You should examine the DISEASE1 and DISEASE2 .HYP and .FND files (found in TESTCASE.ZIP) if you want an idea what is going on, but here's the bottom line. The disease2 case is identical to the disease1 case, but missing what is the "correct" hypothesis for this case. Because of this, DISEASE2.OUT contains several hypotheses that incompletely explain the findings, while DISEASE1.OUT contains the one best "correct" hypothesis that is missing in the disease2 case. These examples are contrived, but should serve as a basic example of what the algorithm is doing. Included is the paper on the Peirce abduction algorithm, which is what this should emulate (pierce_tool_2.ps).