Modern software engineering, foundations and current perspectives
Modern software engineering, foundations and current perspectives
Category theory for computing science
Category theory for computing science
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
Categories, types, and structures: an introduction to category theory for the working computer scientist
Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
Categories and computer science
Categories and computer science
Algebra of programming
Specification of abstract data types
Specification of abstract data types
Algorithms + Data Structures = Programs
Algorithms + Data Structures = Programs
A Theory of Objects
Formal Models for Cognition - Taxonomy of Spatial Location Description and Frames of Reference
Spatial Cognition, An Interdisciplinary Approach to Representing and Processing Spatial Knowledge
Specifying Open GIS with Functional Languages
SSD '95 Proceedings of the 4th International Symposium on Advances in Spatial Databases
Qualified types: theory and practice (ordering relation)
Qualified types: theory and practice (ordering relation)
Modeling the Semantics of Geographic Categories through Conceptual Integration
GIScience '02 Proceedings of the Second International Conference on Geographic Information Science
A Mathematical Tool to Extend 2D Spatial Operations to Higher Dimensions
ICCSA '08 Proceeding sof the international conference on Computational Science and Its Applications, Part I
A simplex-based approach to implement dimension independent spatial analyses
Computers & Geosciences
CASL specifications of qualitative calculi
COSIT'05 Proceedings of the 2005 international conference on Spatial Information Theory
Map algebra extended with functors for temporal data
ER'05 Proceedings of the 24th international conference on Perspectives in Conceptual Modeling
An interstage change model for sandbox geography
GeoS'05 Proceedings of the First international conference on GeoSpatial Semantics
Hi-index | 0.00 |
A fundamental scientific question today is how to construct complex systems from simple parts. Science today seems mostly to analyze limited pieces of the puzzle; the combination of these pieces to form a whole is left for later or others. The lack of efficient methods to deal with the combination problem is likely the main reason. How to combine individual results is a dominant question in cognitive science or geography, where phenomena are studied from individuals and at different scales, but the results cannot be brought together. This paper proposes to use parameterized algebras much the same way that we use functional abstraction (procedures in programming languages) to create abstract building blocks which can be combined later. Algebras group operations (which are functional abstractions) and can be combined to construct more complex algebras. Algebras operate therefore at a higher level of abstraction. A table shows the parallels between procedural abstraction and the abstraction by parameterized algebras. This paper shows how algebras can be combined to form more complex pieces and compares the steps to the combination of procedures in programming. The novel contribution is to parameterize algebras and make them thus ready for reuse. The method is first explained with the familiar construction of vector space and then applied to a larger example, namely the description of geometric operations for GIS, as proposed in the current draft standard document ISO 15046 Part 7: Spatial Schema. It is shown how operations can be grouped, reused, and combined, and useful larger systems built from the pieces. The paper compares the method to combine algebras - which are independent of an implementation - with the current use of object-orientation in programming languages (and in the UML notation often used for specification). The widely used 'structural' (or subset) polymorphism is justified by implementation considerations, but not appropriate for theory development and abstract specifications for standardization. Parametric polymorphism used for algebras avoids the contravariance of function types (which its semantically confusing consequences). Algebraic methods relate cleanly to the mathematical category theory and the method translates directly to modern functional programming or Java.