Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Kleisli, a functional query system

Published: 01 January 2000 Publication History

Abstract

Kleisli is a modern data integration system that has made a significant impact on bioinformatics data integration. This paper contains a brief introduction to the Kleisli system and an example to illustrate its uses in the bioinformatics arena. The primary query language provided by Kleisli is called CPL, which is a functional query language whose surface syntax is based on the comprehension syntax. Kleisli is itself implemented using the functional language SML. So this paper also describes the influence of functional programming research that benefits the Kleisli system, especially the less obvious ones at the implementation level.Availability. Kleisli has been commercialized under the name “KRIS”. It is available from Kris Technology Inc., 713 Santa Cruz Ave, #2, Menlo Park, CA 94025, USA. Direct email to [email protected] and web browser to http://www.kris-inc.com.

References

[1]
Aho, A. V., Sethi, R. and Ullman, J. D. (1986) Compilers: Principles, Techniques, and Tools. Addison-Wesley.
[2]
Altschul, S. F. and Gish, W. (1996). Local alignment statistics. Methods in Enzymology, 266, 460-480.
[3]
Altschul, S. F., Madden, T. L., Schaffer, A. A., Zhang, J., Zhang, Z., Miller, W. and Lipman, D. J. (1997) Gapped BLAST and PSI-BLAST: A new generation of protein database search programs. Nucleic Acids Research, 25(17), 3389-3402.
[4]
Baker, P. G. and Brass, A. (1998) Recent development in biological sequence databases. Current Opinion in Biotechnology, 9, 54-58.
[5]
Baker, P. G., Brass, A., Bechhofer, S., Goble, C., Paton, N. and Stevens, R. (1998) TAMBIS - transparent access to multiple bioinformatics information sources. Proc. 6th Int. Conf. on Intelligent Systems for Molecular Biology, pp. 25-34.
[6]
Benton, D. (1996) Bioinformatics - principles and potential of a new multidisciplinary tool. Trends in Biotechnology, 14 (August), 261-272.
[7]
Breazu-Tannen, V. and Subrahmanyam, R. (1991) Logical and computational aspects of programming with Sets/Bags/Lists. LNCS 510: Proc. 18th International Colloquium on Automata, Languages, and Programming, pp. 60-75. Springer-Verlag.
[8]
Breazu-Tannen, V., Buneman, P. and Naqvi, S. (1991) Structural recursion as a query language. Proc. 3rd Int. Workshop on Database Programming Languages, pp. 9-19. Morgan Kaufmann.
[9]
Buneman, P., Naqvi, S., Tannen, V. and Wong, L. (1995) Principles of programming with complex objects and collection types. Theoretical Computer Science, 149(1), 3-48.
[10]
Burks, C., Cinkosky, M. J., Fischer, W. M., Gilna, P., Hayden, J. E., Keen, G. M., Kelly, M., Kristofferson, D. and Lawrence, J. D. (1992) GenBank. Nucleic Acids Research, 20(Supplement), 2065-2069.
[11]
Cattell, R. G. G. (ed). (1996) The Object Database Standard: ODMG-93. Morgan Kaufmann.
[12]
Chen, J. and Wong, L. (1998) The Kleisli/Perl Reference Manual: A data exchange format and some supporting tools. Kent Ridge Digital Labs, 21 Heng Mui Keng Terrace, Singapore 119613.
[13]
Chen, J., Chua, N.-H., Strauss, D. and Wong, L. (1998a) Extracting Kozak consensus sequence using Kleisli. Proc. 1st Int. Conf. on Bioinformatics of Genome Regulation and Structure, pp. 218-223.
[14]
Chen, J., Zhang, L. and Wong, L. (1998b) A protein patent query system powered by Kleisli. Proc. ACM SIGMOD International Conference on Management of Data, pp. 593-595.
[15]
Chen, J., Strauss, D. and Wong, L. (1998c) Using Kleisli to bring out features in BLASTP results. Genome Informatics 1998, pp. 102-111. Tokyo, Japan: Universal Academy Press.
[16]
Codd, E. F. (1970) A relational model for large shared data bank. Comm. ACM, 13(6), 377-387.
[17]
Date, C. J. (1984) A critique of the SQL database language. SIGMOD Record, 14(3), 8-52.
[18]
Davidson, S., Overton, C., Tannen, V. and Wong, L. (1997) BioKleisli: A digital library for biomedical researchers. Int. J. Digital Libraries, 1(1), 36-53.
[19]
Dong, G., Libkin, L. and Wong, L. (1997) Local properties of query languages. Proc. 6th Int. Conf. on Database Theory, pp. 140-154.
[20]
Frakes, W. B. and Baeza-Yates, R. (1992) Information Retrieval: Data Structures and Algorithms . Prentice Hall.
[21]
Goldberg, A. and Paige, R. (1984) Stream processing. Proc. ACM Symposium on LISP and Functional Programming, pp. 53-62.
[22]
Hart, K. W., Searls, D. B. and Overton, G. C. (1994a) SORTEZ: A relational translator for NCBI's ASN.1 database. Computer Applications in the Biosciences, 10(4), 369-378.
[23]
Hart, K., Wong, L., Overton, C. and Buneman, P. (1994b) Using a query language to integrate biological data. Abstracts of 1st Meeting on the Interconnection of Molecular Biology Databases.
[24]
ISO. (1987) Standard 8824. Information Processing Systems. Open Systems Interconnection. Specification of Abstraction Syntax Notation One (ASN.1).
[25]
Karp, P. D. (1996) Database links are a foundation for interoperability. Trends in Biotechnology , 14, 273-279.
[26]
Kosky, A. (1996) Transforming Databases with Recursive Data Structures. PhD thesis, Department of Computer and Information Science, University of Pennsylvania.
[27]
Leser, U., Lehrach, H. and Crollius, H. R. (1998) Issues in developing integrated genomic databases and application to the human X chromosome. Bioinformatics, 14(7), 583-590.
[28]
Libkin, L. and Wong, L. (1997) Query languages for bags and aggregate functions. J. Computer & System Sci. 55(2), 241-272.
[29]
Litwin, W., Mark, L. and Roussopoulos, N. (1990) Interoperability of multiple autonomous databases. ACM Comput. Surv. 22(3), 267-293.
[30]
Lodish, H., Baltimore, D., Berk, A., Zipursky, S. L., Matsudaira, P. and Darnell, J. (1995) Molecular Cell Biology. W. H. Freeman.
[31]
Murzin, A., Brenner, S. E., Hubbard, T. and Chothia, C. (1995) SCOP: A structural classification of protein database for the investigation of sequences and structures. J. Molecular Biology, 247, 536-540.
[32]
National Center for Biotechnology Information. (1992) NCBI ASN.1 Specification. Revision 2.0.
[33]
Ngu, A., Yan, L. and Wong, L. (1993) Heterogeneous query optimisation using maximal subqueries. Proc. 3rd Int. Symposium on Database Systems for Advanced Applications, pp. 413-420.
[34]
Ohori, A., Buneman, P. and Breazu-Tannen, V. (1989) Database programming in Machiavelli, a polymorphic language with static type inference. Proc. ACM-SIGMOD International Conference on Management of Data, pp. 46-57.
[35]
Papakonstantinou, Y., Garcia-Molina, H. and Widom, J. (1995) Object exchange across heterogenous information sources. Proc. IEEE Int. Conf. on Data Engineering, pp. 251-260.
[36]
Paulson, L. C. (1983) A higher-order implementation of rewriting. Science of Computer Programming, 3, 119-149.
[37]
Pearson, P., Matheson, N., Flescher, N. and Robbins, R. J. (1992) The GDB human genome data base anno 1992. Nucleic Acids Research, 20, 2201-2206.
[38]
Pearson, W. R. (1995) Comparison of methods for searching protein sequence databases. Protein Science, 4, 1145-1160.
[39]
Remy, D. (1989) Typechecking records and variants in a natural extension of ML. Proc. 16th Symposium on Principles of Programming Languages, pp. 77-88.
[40]
Remy, D. (1992) Effcient representation of extensible records. In: Lee, P., editor, Proc. ACM SIGPLAN Workshop on ML and its Applications, pp. 12-16.
[41]
Schuler, G. D., Epstein, J. A., Ohkawa, H. and Kans, J. A. (1996) Entrez: Molecular biology database and retrieval system. Methods in Enzymology, 266, 141-162.
[42]
Selletin, J. and Mitschang, B. (1998) Data-intensive intra- & internet applications - Experiences using Java and CORBA in the World Wide Web. Proc. 14th IEEE International Conference on Data Engineering, pp. 302-311.
[43]
Siegel, J. (1997) CORBA: Fundamentals and Programming. John Wiley.
[44]
Spivey, M. (1990) A functional theory of exceptions. Science of Computer Programming, 14, 25-42.
[45]
Suciu, D. (1997) Bounded fixpoints for complex objects. Theoretical Computer Science, 176(1-2), 283-328.
[46]
Suciu, D. and Wong, L. (1995) On two forms of structural recursion. LNCS 893: Proc. 5th International Conference on Database Theory, pp. 111-124. Prague: Springer-Verlag.
[47]
Tan, W. C., Wang, K. and Wong, L. (1998) A graphical interface to genome multidatabases. J. Database Management, 9(1), 24-32.
[48]
Ullman, J. D. (1989) Principles of Database and Knowledgebase Systems II: The New Technologies . Computer Science Press.
[49]
Wadler, P. (1992) Comprehending monads. Mathematical Structures in Computer Science, 2, 461-493.
[50]
Wadler, P. (1998) Functional programming: An angry half-dozen. SIGPLAN Notices, 33(2), 25-30.
[51]
Walsh, S., Anderson, M. and Cartinhour, S. W. (1998) ACEDB: A database for genome information. Methods Biochem Anal. 39, 299-318.
[52]
Wong, L. (1994) Querying Nested Collections. PhD thesis, Department of Computer and Information Science, University of Pennsylvania.
[53]
Wong, L. (1995a) An introduction to Remy's fast polymorphic projection. ACM SIGMOD Record, 24(3), 34-39.
[54]
Wong, L. (1995b) The Kleisli Query System Reference Manual. Kent Ridge Digital Labs, 21 Heng Mui Keng Terrace, Singapore 119613.
[55]
Wong, L. (1995c) The Kleisli/CPL Extensible Query Optimizer Programmer Guide. Kent Ridge Digital Labs, 21 Heng Mui Keng Terrace, Singapore 119613.
[56]
Wong, L. (1998a) The Collection Programming Language Reference Manual. Kent Ridge Digital Labs, 21 Heng Mui Keng Terrace, Singapore 119613.
[57]
Wong, L. (1998b) The Simplified SQL Reference Manual. Kent Ridge Digital Labs, 21 Heng Mui Keng Terrace, Singapore 119613.

Cited By

View all
  • (2023)Comprehending queries over finite mapsProceedings of the 25th International Symposium on Principles and Practice of Declarative Programming10.1145/3610612.3610620(1-12)Online publication date: 22-Oct-2023
  • (2022)Deep Fusion for Efficient Nested Recursive ComputationsProceedings of the 21st ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3564719.3568698(33-44)Online publication date: 29-Nov-2022
  • (2022)Functional collection programming with semi-ring dictionariesProceedings of the ACM on Programming Languages10.1145/35273336:OOPSLA1(1-33)Online publication date: 29-Apr-2022
  • Show More Cited By
  1. Kleisli, a functional query system

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Journal of Functional Programming
    Journal of Functional Programming  Volume 10, Issue 1
    January 2000
    134 pages

    Publisher

    Cambridge University Press

    United States

    Publication History

    Published: 01 January 2000

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 13 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Comprehending queries over finite mapsProceedings of the 25th International Symposium on Principles and Practice of Declarative Programming10.1145/3610612.3610620(1-12)Online publication date: 22-Oct-2023
    • (2022)Deep Fusion for Efficient Nested Recursive ComputationsProceedings of the 21st ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3564719.3568698(33-44)Online publication date: 29-Nov-2022
    • (2022)Functional collection programming with semi-ring dictionariesProceedings of the ACM on Programming Languages10.1145/35273336:OOPSLA1(1-33)Online publication date: 29-Apr-2022
    • (2021)Scalable querying of nested dataProceedings of the VLDB Endowment10.14778/3430915.343093314:3(445-457)Online publication date: 9-Dec-2021
    • (2021)Comprehending Monoids with ClassThe 18th International Symposium on Database Programming Languages10.1145/3475726.3475728(17-22)Online publication date: 16-Aug-2021
    • (2020)A Survey of Multitier ProgrammingACM Computing Surveys10.1145/339749553:4(1-35)Online publication date: 26-Sep-2020
    • (2020)Multi-layer optimizations for end-to-end data analyticsProceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization10.1145/3368826.3377923(145-157)Online publication date: 22-Feb-2020
    • (2020)The optics of language-integrated queryScience of Computer Programming10.1016/j.scico.2020.102395190:COnline publication date: 1-May-2020
    • (2019)Language-integrated updatable viewsProceedings of the 31st Symposium on Implementation and Application of Functional Languages10.1145/3412932.3412945(1-12)Online publication date: 25-Sep-2019
    • (2019)Mixing set and bag semanticsProceedings of the 17th ACM SIGPLAN International Symposium on Database Programming Languages10.1145/3315507.3330202(70-73)Online publication date: 23-Jun-2019
    • Show More Cited By

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media