A Generic Module System for Web Rule Languages: Divide and Rule

  • Uwe Aßmann
  • Sacha Berger
  • François Bry
  • Tim Furche
  • Jakob Henriksson
  • Paula-Lavinia Pătrânjan
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4824)

Abstract

An essential feature in practically usable programming languages is the ability to encapsulate functionality in reusable modules. Modules make large scale projects tractable by humans. For Web and Semantic Web programming, many rule-based languages, e.g. XSLT, CSS, Xcerpt, SWRL, SPARQL, and RIF Core, have evolved or are currently evolving. Rules are easy to comprehend and specify, even for non-technical users, e.g. business managers, hence easing the contributions to the Web. Unfortunately, those contributions are arguably doomed to exist in isolation as most rule languages are conceived without modularity, hence without an easy mechanism for integration and reuse. In this paper a generic module system applicable to many rule languages is presented. We demonstrate and apply our generic module system to a Datalog-like rule language, close in spirit to RIF Core. The language is gently introduced along the EU-Rent use case. Using the Reuseware Composition Framework, the module system for a concrete language can be achieved almost for free, if it adheres to the formal notions introduced in this paper.

Keywords

Body Part Module System Logic Programming Dependency Relation Module Algebra 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abiteboul, S., Hull, R., Vianu, V.: Foundations of Databases. Addison-Wesley Publishing Co, Boston, MA, USA (1995)MATHGoogle Scholar
  2. 2.
    Aßmann, U., Berger, S., Bry, F., Furche, T., Henriksson, J., Johannes, J.: Modular web queries—from rules to stores (submitted for publication, 2007)Google Scholar
  3. 3.
    Bergstra, J.A., Heering, J., Klint, P.: Module algebra. Journal of the ACM 37(2), 335–372 (1990)MATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Bowen, K.A., Kowalski, R.A.: Amalgamating language and metalanguage in logic programming. In: Clark, K., Tarnlund, S.A. (eds.) Logic Programming, Apic Studies in Data Processing, Academic Press, Inc, London (1983)Google Scholar
  5. 5.
    Brogi, A., Mancarella, P., Pedreschi, D., Turini, F.: Modular logic programming. ACM Trans. Program. Lang. Syst. 16(4), 1361–1398 (1994)CrossRefGoogle Scholar
  6. 6.
    Codish, M., Debray, S.K., Giacobazzi, R.: Compositional analysis of modular logic programs. In: Proc. ACM Symp. on Principles of Programming Languages (POPL), pp. 451–464. ACM Press, New York (1993)CrossRefGoogle Scholar
  7. 7.
    Giurca, A., Savulea, D.: An algebra of logic programs with applications in distributed environments. In: Annales of Craiova University. Mathematics and Computer Science Series, vol. XXVIII, pp. 147–159 (2001)Google Scholar
  8. 8.
    Henriksson, J., Aßmann, U., Heidenreich, F., Johannes, J., Zschaler, S.: How dark should a component black box be? The Reuseware Answer. In: ECOOP 2007. Proc. of the 12th International Workshop on Component-Oriented Programming (WCOP) co-located with 21st European Conf. on Object-Oriented Programming (to appear, 2007)Google Scholar
  9. 9.
    Henriksson, J., Johannes, J., Zschaler, S., Aßmann, U.: Reuseware – adding modularity to your language of choice. In: Proc. of TOOLS EUROPE 2007: Special Issue of the Journal of Object Technology (to appear, 2007)Google Scholar
  10. 10.
    Karali, I., Pelecanos, E., Halatsis, C.: A versatile module system for prolog mapped to flat prolog. In: Proc. ACM Symp. on Applied Computing (SAC), pp. 578–585. ACM Press, New York (1993)Google Scholar
  11. 11.
    Kifer, M., de Bruijn, J., Boley, H., Fensel, D.: A realistic architecture for the semantic web. In: RuleML, pp. 17–29 (2005)Google Scholar
  12. 12.
    Miller, D.: A theory of modules for logic programming. In: Proc. IEEE Symp. on Logic Programming, pp. 106–114. IEEE Computer Society Press, Los Alamitos (1986)Google Scholar
  13. 13.
    Sannella, D.T., Wallen, L.A.: A calculus for the construction of modular prolog programs. Journal of Logic Programming 12(1-2), 147–177 (1992)MATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    Wirsing, M.: Structured algebraic specifications: A kernel language. Theoretical Computer Science 42(2), 123–244 (1986)MATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Uwe Aßmann
    • 1
  • Sacha Berger
    • 2
  • François Bry
    • 2
  • Tim Furche
    • 2
  • Jakob Henriksson
    • 1
  • Paula-Lavinia Pătrânjan
    • 2
  1. 1.Technische Universität Dresden, Nöthnitzer Str. 46, D-01187 DresdenGermany
  2. 2.Institute for Informatics, University of Munich, Oettingenstr. 67, D-80538 MünchenGermany

Personalised recommendations