Semantic Array Programming with Mastrave - Introduction to Semantic Computational Modelling. de Rigo, D. The Mastrave project.
Semantic Array Programming with Mastrave - Introduction to Semantic Computational Modelling [link]Paper  abstract   bibtex   
Computational scientists in the domains of environmental modelling are challenged to cope with data impressively growing in complexity, heterogeneity and size. Computational models are mathematical descriptions which usually try to capture numerically some essential (i.e. in most cases, approximated) relationships between key aspects of observed phenomena. As a consequence, they should in principle be unambiguously deterministic and therefore scientifically reproducible - including unintentional algorithm errors or weaknesses which this way have a chance to be discovered and corrected in a collaborative effort of the involved scientific community. [\n] However, the experience of computational modelling scientists is often quite different: the distance between scientific publications describing research models and the corresponding source code implementations (if publicly available...) can be so remarkable to practically discourage computational models' evolution outside the close group of their original authors, exclusive owners of essential, undisclosed (but also isolated) knowledge. [\n] Reducing this distance is the strategic objective of the semantic array programming paradigm, which is exposed in this book along with its supporting implementation, the Mastrave modelling library. [\n] Array programming was originally conceived for mitigating the gap between mathematical notation and algorithm implementations. Despite programming languages are universal, executable - thus suitable to actually perform extensive experiments - and unambiguous, "most programming languages are decidedly inferior to mathematical notation and are little used as tools of thought in ways that would be considered significant by, say, an applied mathematician. The thesis [...] is that the advantages of executability and universality found in programming languages can be effectively combined, in a single coherent language, with the advantages offered by mathematical notation." (Iverson). Array programming promotes as atomic quantities vectors, matrices, tensors and natively provides extremely concise operators for manipulating them. Coherent array-based mathematical description of models can simplify complex algorithm design and prototyping while moving mathematical reasoning directly into the source code - because of its substantial size reduction - where the mathematical description is actually expressed in a completely formalized and reproducible way. [\n] Two additional design concepts define semantic array programming as supported by the Mastrave library: [::1] modularizing sub-models and autonomous tasks with a strong effort toward their most concise generalization and reusability in other contexts; [::2] semantically constraining - with terse array-based constraints - the information entered in and returned by each module instead of relying on external assumptions. [\n] Several examples of scientific applications in the field of environmental modelling are provided, along with a comprehensive documentation of the Mastrave modelling library.
@book{derigoSemanticArrayProgramming2012a,
  title = {Semantic {{Array Programming}} with {{Mastrave}} - {{Introduction}} to Semantic Computational Modelling},
  author = {de Rigo, Daniele},
  date = {2012},
  publisher = {{The Mastrave project}},
  url = {http://mastrave.org/doc/MTV-1.012-1/},
  abstract = {Computational scientists in the domains of environmental modelling are challenged to cope with data impressively growing in complexity, heterogeneity and size. Computational models are mathematical descriptions which usually try to capture numerically some essential (i.e. in most cases, approximated) relationships between key aspects of observed phenomena. As a consequence, they should in principle be unambiguously deterministic and therefore scientifically reproducible - including unintentional algorithm errors or weaknesses which this way have a chance to be discovered and corrected in a collaborative effort of the involved scientific community.

[\textbackslash n] However, the experience of computational modelling scientists is often quite different: the distance between scientific publications describing research models and the corresponding source code implementations (if publicly available...) can be so remarkable to practically discourage computational models' evolution outside the close group of their original authors, exclusive owners of essential, undisclosed (but also isolated) knowledge.

[\textbackslash n] Reducing this distance is the strategic objective of the semantic array programming paradigm, which is exposed in this book along with its supporting implementation, the Mastrave modelling library.

[\textbackslash n] Array programming was originally conceived for mitigating the gap between mathematical notation and algorithm implementations. Despite programming languages are universal, executable - thus suitable to actually perform extensive experiments - and unambiguous, "most programming languages are decidedly inferior to mathematical notation and are little used as tools of thought in ways that would be considered significant by, say, an applied mathematician. The thesis [...] is that the advantages of executability and universality found in programming languages can be effectively combined, in a single coherent language, with the advantages offered by mathematical notation." (Iverson). Array programming promotes as atomic quantities vectors, matrices, tensors and natively provides extremely concise operators for manipulating them. Coherent array-based mathematical description of models can simplify complex algorithm design and prototyping while moving mathematical reasoning directly into the source code - because of its substantial size reduction - where the mathematical description is actually expressed in a completely formalized and reproducible way.

[\textbackslash n] Two additional design concepts define semantic array programming as supported by the Mastrave library:

[::1] modularizing sub-models and autonomous tasks with a strong effort toward their most concise generalization and reusability in other contexts; [::2] semantically constraining - with terse array-based constraints - the information entered in and returned by each module instead of relying on external assumptions.

[\textbackslash n] Several examples of scientific applications in the field of environmental modelling are provided, along with a comprehensive documentation of the Mastrave modelling library.},
  keywords = {*imported-from-citeulike-INRMM,~INRMM-MiD:c-11744308,c-plus-plus,computational-science,data-transformation-codelets,data-transformation-modelling,environmental-modelling,gnu-bash,gnu-octave,gnu-r,integrated-natural-resources-modelling-and-management,integration-techniques,mastrave-modelling-library,numpy,php,python,scipy,semantic-array-programming,semantics,semap},
  options = {useprefix=true}
}
Downloads: 0