The Sisyphus problems are intended to enable the comparison of knowledge acquisition tools. Sisyphus-I is an office allocation problem. This interface shows how it is solved using WebKB. Click here to see an article explaining the solution (and here for slides).
The following text area includes the commands which are sent to the WebKB processor. The default set of commands first specifies an ontology for the data set to use (rationale here) then the data set, and finally the script to run. (The whole article may also be used: "load ../../doc/papers/sisyphus1/index.html"). Replace "sisyphus1DataSet1.html" by "sisyphus1DataSet2.html" to indicate another predefined data set. You may create your own ontologies, data sets and scripts and test them by giving their URLs. You may also directly insert knowledge assertion and query commands in the text area below.
Possible commands (see "control structures" at the end of this list for how to combine commands) ================== Search & Display ================================ spec CG1/T1 //give the specialisations of a CG or type ('?' may be used instead of "spec") gene CG/T1 //give the generalisations of a CG or type def of T1 //give the list of lambdas used for defining T1 on [CGs | def | lambdas | all] //the next queries must be done on CGs and/or type definitions use [linear | CGs | Repr | Repr&CGs] //the next queries must show [linear] CGs and/or document elements [no] meta //next CG displays must [not] show meta-information [no] context //next CG displays must [not] show their context display CG1 [CG2... CGn] //useful with CG names or pipes ================== Test ================================== ? CG1/T1 < CG2/T2 //test if CG1 (resp. T1) specializes CG2 (resp. T2) proj CG1 CG2 //project CG1 on CG2 ================== Assertion ============================== CT1 {* comment *} //declare the concept type CT1 CT1 : I1 //declare the instance I1 (the spaces are important here) RT1 (CT1,..,CTn) {* comment *} //declare the relation type RT1 and its signature CG1 //assert CG1 T1 > T2 [T3 .. Tn] //subtype T1 by T2 ..Tn T1 < T2 [T3 .. Tn] //subtype T2 ..Tn by T1 NSC for T1 (x1,..,xn) are CG1 //define the relation type T1 with necessary&sufficient conditions NC for T1 (x) are CG1 //add a definition with necessary conditions to the concept type T1 SC for T1 (x) are CG1 //add a definition with sufficient conditions to the concept type T1 TC for T1 (x) are CG1 //add a definition with typical conditions (schema) to the concept type T1 name new_name CG1 //(re)assert CG1 or a lambda and (re)name it (even if other CGs refered to it) copy CG1 CG2_name //(re)assert and copy CG1 under another name ================== CG generation ========================== maxjoin [-n CG_result_name] CG1 CG2 [CG3 ... CGn] //join CGs -> maximal number of nodes isojoin on c1 c2 CG1 CG2 [CG_result_name] //isojoin on two CGs join on c1 c2 CG1 CG2 [CG_result_name] //join on two CGs; concept format: type[:referent] ijoin on c1 c2 CG [CG_result_name] //internal join on a CG ---------------- Combination example ------------------ spec CG | maxjoin //join the specialisations of a CG ================== Deletion ============================== delCT CT1 [CT2 ... CTn] //delete concept types if no CG uses them delRT RT1 [RT2 ... RTn] //delete relation types if no CG uses them delI I1 [I2 ... In] //delete individual marks if no CG uses them delCG CG1 [CG2 ... CGn] //delete CG(s) delDef L1 [L2 ... Ln] //delete definitions (-> defined types may become atomic) delCGs //delete all CGs ================== Run/Load/Call ======================== run DOC [ARG1 ... ARGn] //display and execute the commands which are in the document load DOC [ARG1 ... ARGn] //execute the commands which are in the documents load whatIs.html T1/C1 //"whatIs" lists the characteristics of a type or a concept call DOC1 [ARG1 ... ARGn] //call a CGI server or open a document ================== Miscellaneous ======================== echo [-n] [ARG1 ... ARGn] //similar to Unix echo nbArguments [ARG1 ... ARGn] //count the number of arguments count [-bytes] [-words] [-lines] [-paragraphs] [DOC1 ... DOCn] //similar to Unix wc pwd //similar to Unix pwd cd [DIR] //similar to Unix cd cat [-removeHTMLmarks | -makeURLsVisible] [DOC1 ... DOCn] //similar to Unix cat grep [OPTIONS] REGULAR_EXPR [DOC1 ... DOCn] //cf. Unix grep fgrep [OPTIONS] STRING [DOC1 ... DOCn] //cf. Unix fgrep diff [OPTIONS] [DOC1 ... DOCn] //cf. Unix diff head [OPTIONS] [DOC1 ... DOCn] //cf. Unix head tail [OPTIONS] [DOC1 ... DOCn] //cf. Unix tail awk [-Fc] [prog] [parameters] [DOC1 ... DOCn] //cf. Unix awk accessibleDocFrom [-maxlevel DIGIT] [-HTMLonly] [DOC1 ... DOCn] ================== Control structures =================== COMMAND_RETURNING_SMALL_VALUES | COMMAND //commands returning CGs may be piped if ( STRING_OR_NUMBER_COMPARISON ) { COMMANDS } [ else { COMMANDS } ] while ( STRING_OR_NUMBER_COMPARISON ) { COMMANDS } //op.: <, >, <=, >=, = (==), != and ! do { COMMANDS } while ( STRING_OR_NUMBER_COMPARISON ) //op.: <, >, <=, >=, = (==), != and ! for VAR in ( WHITE_SEPARATED_STRINGS ) { COMMANDS } for VAR in STRING { COMMANDS } //the different values in the string must be separated by spaces set VARIABLE VALUE //set a variable; then, prefixed by '$', this variable will be substituted by its value cd "../../kb/"; load "sisyphus1Ontology.html"; load "sisyphus1DataSet1.html"; load "sisyphus1Script.html";