Abstract
Rule-based specifications in Datalog are used in a number of application areas, such as configuration management, access control and trust management, decision making, etc. However, rules sets are typically hard to maintain; the rules often interact in subtle ways, making them difficult to understand and reason about. This has impeded the wide-spread adoption of rule-based computing. This paper describes the design and implementation of XcelLog, a deductive spreadsheet system (DSS), that permits users to specify and maintain Datalog rules using the popular and easy-to-use spreadsheet interface. The driving idea underlying the system is to treat sets as the fundamental data type and rules as specifying relationships among sets, and use the spreadsheet metaphor to create and view the materialized sets. The fundamental feature that makes XcelLog suitable even for non-programmers is that the user mainly sees the effect of the rules; when rules or basic facts change, the user sees the impact of the change immediately. This enables the user to gain confidence in the rules and their modification, and also experiment with what-if scenarios without any programming. XcelLog is implemented as an add-in to Excel with XSB serving as the rule engine for evaluating Datalog specifications. Preliminary experience with using XcelLog indicates that it is indeed feasible to combine the power of rule-based computing and the elegance and simplicity of the spreadsheet metaphor, so that end users can encode and maintain rule bases with little or no programming.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Augusti, J., Puigsegur, J., Robertson, D., Schorleme, W.: Visual logic programming through set inclusion and chaining. In: CADE 13 Workshop on Visual Reasoning (1996)
Couch, A.L., Gilfi, M.: It’s elementary, dear watson: Applying logic programming to convergent system management processes. In: Proceedings of the 13th USENIX Conference on Systems Administration (LISA), pp. 123–138 (1999)
Das, S.K.: Deductive Databases and Logic programming. Addison-Wesley, Reading (1992)
Dong, Y., Ramakrishnan, C.R., Smolka, S.A.: Evidence Explorer: A Tool for Exploring Model-Checking Proofs. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 215–218. Springer, Heidelberg (2003)
Gupta, G., Akhter, S.F.: Knowledgesheet: A Graphical Spreadsheet Interface for Interactively Developing a Class of Constraint Programs. In: Pontelli, E., Santos Costa, V. (eds.) PADL 2000. LNCS, vol. 1753, pp. 308–323. Springer, Heidelberg (2000)
Guttman, J.D., Herzog, A.L., Ramsdell, J.D.: Information flow in operating systems: Eager formal methods. In: Workshop on Issues in the Theory of Security (WITS) (2003)
Jaeger, T., Sailer, R., Zhang, X.: Analyzing integrity protection in the selinux example policy. In: USENIX Security Symposium (2003)
Jayaraman, B., Moon, K.: Subset logic programs and their implementation. Journal of Logic Programming 42, 71–110 (2000)
Jones, S.P., Blackwell, A., Burnett, M.: A user-centered approach to function in excel. In: Intl. Conf. on Functional Programming (2003)
Kassoff, M., Zen, L.-M., Garg, A., Genesereth, M.: Predicalc: A logical spreadsheet management system. In: 31st International Conference on Very Large Databases (VLDB) (2005)
Li, N., Grosof, B., Feigenbaum, J.: A practically implementable and tractable delegation logic. In: IEEE Symposium on Security and Privacy, pp. 27–42 (2000)
Li, N., Winsborough, W.H., Mitchell, J.C.: Distributed credential chain discovery in trust management. Journal of Computer Security 11, 35–86 (2003)
Lloyd, J.W.: Foundations of Logic Programming. Springer, Heidelberg (1987)
Loscocco, P., Smalley, S.: Integrating flexible support for security policies into the linux operating system. In: FREENIX track of the 2001 Usenix Annual Technical Conference (2001), Available from: http://www.nsa.gov/selinx/
Maier, D., Warren, D.S.: Computing with Logic: Logic Programming and Prolog, p. 535. Benjamin/Cummings Publishers, Menlo Park (1988)
Li, N., Mitchell, J., Winsborough, W.: Design of a role-based trust-management framework. In: Proceedings of 2002 IEEE Symposium on Security and Privacy, pp. 114–130 (May 2002)
Ou, X., Govindavajhala, S., Appel, A.W.: Mulval: A logic-based network security analyzer. In: 14th Usenix Security Symposium (2005)
Ramakrishnan, C.R., Sekar, R.: Model-based analysis of configuration vulnerabilities. Journal of Computer Security (JCS) 10, 189–209 (2002)
Reeves, D.M., Wellman, M.P., Grosof, B.N.: Automated negotiation from declarative contract descriptions. In: Proceedings of the Fifth International Conference on Autonomous Agents, pp. 51–58. ACM Press, New York (2001)
Roychoudhury, A., Ramakrishnan, C.R., Ramakrishnan, I.V.: Justifying proofs using memo tables. In: Principles and Practice of Declarative Programming (PPDP), pp. 178–189. ACM Press, New York (2000)
Sagonas, K., Swift, T., Warren, D.S., Freirre, J., Rao, P.: XSB programmers manual (2001), http://xsb.sourceforge.net/
Saha, D., Ramakrishnan, C.R.: Incremental Evaluation of Tabled Prolog: Beyond Pure Logic Programs. In: Van Hentenryck, P. (ed.) PADL 2006. LNCS, vol. 3819, pp. 215–229. Springer, Heidelberg (2005)
Sarna-Starosta, B., Stoller, S.D.: Policy analysis for security-enhanced linux. In: Workshop on Issues in the Theory of Security (WITS), pp. 1–12 (2004), Available at: http://www.cs.sunysb.edu/~stoller/WITS2004.html
Schwartz, J.T., Dewar, R.B., Schonberg, E., Dubinsky, E.: Programming with sets; an introduction to SETL. Springer, New York (1986)
Tsur, S., Zaniolo, C.: LDL: A logic-based data language. In: VLDB 1986, pp. 33–41 (1986)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ramakrishnan, C.R., Ramakrishnan, I.V., Warren, D.S. (2006). Deductive Spreadsheets Using Tabled Logic Programming. In: Etalle, S., Truszczyński, M. (eds) Logic Programming. ICLP 2006. Lecture Notes in Computer Science, vol 4079. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11799573_29
Download citation
DOI: https://doi.org/10.1007/11799573_29
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-36635-5
Online ISBN: 978-3-540-36636-2
eBook Packages: Computer ScienceComputer Science (R0)