Plato: A Compiler for Interactive Web Forms

Modern web forms interact with the user in real-time by detecting errors and filling-in implied values, which in terms of automated reasoning amounts to SAT solving and theorem proving. This paper presents PLATO, a compiler that automatically generates web forms that detect errors and fill-in implied values from declarative web form descriptions. Instead of writing HTML and JavaScript directly, web developers write an ontology in classical logic that describes the relationships between web form fields, and PLATO automatically generates HTML to display the form and browser scripts to implement the requisite SAT solving and theorem proving. We discuss PLATO's design and implementation and evaluate PLATO's performance both analytically and empirically.

[1]  Philip Wadler,et al.  Links: Web Programming Without Tiers , 2006, FMCO.

[2]  Anthony Hunter,et al.  Algorithms for Effective Argumentation in Classical Propositional Logic: A Connection Graph Approach , 2008, FoIKS.

[3]  V. S. Subrahmanian,et al.  A General Framework for Reasoning On Inconsistency , 2013, SpringerBriefs in Computer Science.

[4]  Salem Benferhat,et al.  An Egalitarist Fusion of Incommensurable Ranked Belief Bases under Constraints , 2007, AAAI.

[5]  Frank D. Valencia,et al.  Formal Methods for Components and Objects , 2002, Lecture Notes in Computer Science.

[6]  Michael R. Genesereth,et al.  Inconsistency-Tolerant Reasoning with Classical Logic and Large Databases , 2009, SARA.

[7]  Fan Yang,et al.  A unified platform for data driven web applications with automatic client-server partitioning , 2007, WWW '07.

[8]  Claus Brabrand,et al.  PowerForms: Declarative client-side form field validation , 2004, World Wide Web.

[9]  Leonid Libkin,et al.  Elements of Finite Model Theory , 2004, Texts in Theoretical Computer Science.

[10]  Ilkka Niemelä,et al.  Developing a Declarative Rule Language for Applications in Product Configuration , 1999, PADL.

[11]  Fan Yang,et al.  Hilda: A High-Level Language for Data-DrivenWeb Applications , 2006, 22nd International Conference on Data Engineering (ICDE'06).

[12]  Seif Haridi,et al.  A Tool for Developing Interactive Configuration Applications , 1996, J. Log. Program..

[13]  Benjamin Livshits,et al.  Ripley: Automatically Securing Distributed Web Applications Through Replicated Execution , 2008 .

[14]  Guillermo Ricardo Simari,et al.  An Argumentative Approach to Reasoning with Inconsistent Ontologies , 2008 .

[15]  Joost Vennekens,et al.  A logical framework for configuration software , 2009, PPDP '09.

[16]  Benjamin Livshits,et al.  Ripley: automatically securing web 2.0 applications through replicated execution , 2009, CCS.

[17]  Anthony Hunter,et al.  Practical First-Order Argumentation , 2005, AAAI.

[18]  Patrick K. Nicholson,et al.  Unification of Arrays in Spreadsheets with Logic Programming , 2008, PADL.

[19]  Dan Suciu,et al.  Declarative specification of Web sites with Strudel , 2000, The VLDB Journal.

[20]  André Valente,et al.  An introduction to logical spreadsheets , 2007, Knowl. Eng. Rev..

[21]  Michael R. Genesereth,et al.  PrediCalc: a logical spreadsheet management system , 2005, The Knowledge Engineering Review.

[22]  Sébastien Konieczny,et al.  Conflict-Based Merging Operators , 2008, KR.

[23]  Anthony Hunter,et al.  Elements of Argumentation , 2007, ECSQARU.

[24]  Thomas Lukasiewicz Proceedings of the 7th International Symposium on the Foundations of Information and Knowledge Systems‚ FoIKS 2012‚ Kiel‚ Germany‚ March 5−9‚ 2012 , 2000 .

[25]  Michael Hanus,et al.  An ER-Based Framework for Declarative Web Programming , 2010, PADL.

[26]  Frank van Harmelen,et al.  Reasoning with Inconsistent Ontologies , 2005, IJCAI.

[27]  Gopal Gupta,et al.  Knowledgesheet: A Graphical Spreadsheet Interface for Interactively Developing a Class of Constraint Programs , 2000, PADL.

[28]  Michael Hanus,et al.  Declarative Programming of User Interfaces , 2009, PADL.

[29]  Erick Gallesio,et al.  Hop: a language for programming the web 2.0 , 2006, OOPSLA Companion.

[30]  Carsten Lutz,et al.  Combined FO Rewritability for Conjunctive Query Answering in DL-Lite , 2009, Description Logics.

[31]  Xin Zheng,et al.  Secure web applications via automatic partitioning , 2007, SOSP.

[32]  Jeff Z. Pan,et al.  Inconsistencies, Negations and Changes in Ontologies , 2006, AAAI.

[33]  Ioana Manolescu,et al.  Declarative specification of Web applications exploiting Web services and workflows , 2004, SIGMOD '04.

[34]  Pierre Marquis,et al.  A Knowledge Compilation Map , 2002, J. Artif. Intell. Res..

[35]  Juan-Carlos Cano,et al.  HOP: achieving efficient anonymity in MANETs by combining HIP, OLSR, and pseudonyms , 2006, OOPSLA 2006.

[36]  Michael Hanus,et al.  High-Level Database Programming in Curry , 2008, PADL.

[37]  R. M. Jensen,et al.  Comparing Two Implementations of a Complete and Backtrack-Free Interactive Configurator , 2004 .

[38]  Takehiro Tokuda,et al.  Automatic Generation of Intelligent JavaScript Programs for Handling Input Forms in HTML Documents , 2002 .