Scalars & atomic values & variables

From: Dawn M. Wolthuis <dwolt_at_tincat-group.com>
Date: Sat, 3 Jan 2004 12:26:12 -0600
Message-ID: <bt71g8$ts5$1_at_news.netins.net>



There has been so much banter using the terms scalars & atomic values and variables that I thought I'd pipe up with the definitions I have been using to see if refinement is needed.

Space (mathematics): A set of objects with functions that operate on the objects, mapping them to other objects in the space.

Scalar value (mathematics): An object in a space for which there is no operation in that space that takes a single operand and maps that object to two or more other objects (decomposes the object), which can then be rebuilt into the original object with another operation in the space.

atomic value = scalar value
atomic variable = scalar variable = a variable whose values can be only atomic/scalar values
atomic type = scalar type = sets of atomic/scalar values such that objects of that type must be in the set

I'm sure others have better-stated definitions, but I'm interested in knowing whether these definitions are sound.

Musings & conclusions:
In a space with a minimal number of operations, such as + - / * the idea of a scalar is useful, but as more operators are added, it becomes less so. Add in the factorToPrimes operator into a space of integers with arithmetic operators and now only prime numbers are scalar.

Now take a space where new objects and new operators can be defined and the concept of a scalar must be considered with respect to a well-defined space.

A delivered DBMS of version xyz from vendor ABC could be considered a space with the collection of objects being those that are of a delivered type
(element of one of the sets that define a type delivered with the database)
and the operators being those delivered with the DBMS. Additionally, a logical model of a database that specifies all types and operators that are part of it can yield scalar values.

However, with the ability to extend the space in any way, whatever was a scalar with respect to a particular model or a particular DBMS could no longer be a scalar in the new space. So, a database implementation could have a delivered scalar type of integer plus the ability for the user to define types. The user could define the factorToPrimes type and now the delivered "scalar type" is no longer a scalar type in the new database.

Therefore, unless everyone is discussing the exact same set of objects
(which could be defined by a set of types) and operators, the use of the
term scalar is inexact and apt to be confusing as different values will be scalar in different models. When the whole idea of the model is to be extensible, then the term scalar is also not very useful as adding in another function/operator into the space and/or adding in new objects can change what is and is not a scalar.

Your thoughts? --dawn Received on Sat Jan 03 2004 - 19:26:12 CET

Original text of this message