The Forum for Discussion about The Third Manifesto and Related Matters

Please or Register to create posts and topics.

Which Result?

Quote from Paul Vernon on November 18, 2021, 12:03 pm
Quote from Dave Voorhis on November 18, 2021, 11:54 am

In other words, the literal 2 or π is untyped (aside from trivially being type "literal" or "string", if you like) until used in some context that asserts it is a value and then pragmatically it must have a type.

OK. Cool. I agree.

That is, give or take, what I've been trying to say: Values are (fundamentally) untyped until used.

No, literals are often (but not always) untyped until turned into a value. To be of any use, values must be typed. Literals are not values (except incidentally of type string); they denote values.

Literals that have not been converted to (typed) values are -- in (at least) computational contexts -- both meaningless and useless.

Though some symbolic computation systems defer the conversion of literals to values until the latest opportunity, and may manipulate them as opaque or abstract symbols, atoms, elements, etc., before that happens. Numerical computation systems (which is most of them, and includes non-numerical computation like string manipulation, object-oriented or procedural programming, etc.) convert literals to (typed) values at the earliest opportunity.

I'm the forum administrator and lead developer of Rel. Email me at dave@armchair.mb.ca with the Subject 'TTM Forum'. Download Rel from https://reldb.org
Quote from dandl on November 18, 2021, 12:15 pm

I would say the users first create the new scalar values (using some unique representation that is not shared by any other value), and only then would they collect them together into a set that they can then name and nominate as a type. I would still maintain that values come first, types come second

OK, then lets start at the other end: natural language.

I claim that words referring to things are meaningless unless they also come with a named type, implicitly or explicitly.

OK. Yes, words are a useful example.

In particular, many words suffer from the problem of having the same representation for different things. In a similar way that I strongly believe that it is a very bad idea to have two ways of representing the same thing, it is also a bad idea (well, worse actually) to have two different things that are represented in the same way. (Logically you could argue there is an inherent contradiction here - if things are different, they can't be the same, and if things are the same, they can't be different.  I agree, but nonetheless the following example still holds.)

Let's take the representation "button". In everyday English, that representation can stand for (lets agree) two things:

1. a small disc or knob sewn on to a garment
2. a small device on a piece of electrical or electronic equipment which is pressed to operate it.

Those are descriptions of two different things, two different concepts.

Now "in my system", I would not allow one representation for two different things. So what to do?

Well, I would advocate disambiguation. For example I might say that "button" is not a word. It is a string, but it is not a word. To "turn it into" a word (assuming  it is ever correct to say "one value can turn into another value) , we need an unambiguous representation. So, my humble suggestion would be that "button₁" is a word, and represents the first concept above, and  "button₂" is a word and represents the second concept above.

One could tweak such an idea. So, for example, maybe the 1st definition (of some agreed English dictionary) is always the one a string represents if there is no superscript suffix.

Alternatively,  we might say "button" is an ambiguous-word.  (i.e. is of or is at type ambiguous-word if that helps your cognition), while "button₁"  and "button₂" are both words  (or, if we prefer - unambiguous-words).

In deciding which way to go, one would need to consider what happens when an existing word that has only one dictionary entry (and hence is unambiguous) it co-opted by new lingo for a new meaning. It would be awkward to think of "updating" all existing representations of that word with a suffix!

One could also consider that most dictionaries don't number their definitions for an ambiguous-word from 1 to n. They number within groupings by category. E.g. Noun, Verb etc.  The dictionary on my computer has 2 numbered verb definitions and 2 noun definitions for "button" So, possibly "buttonₙ₂" would represent the thing that is described as "(button it) informal stop talking."

Oddly maybe, Unicode only has certain subscript letter code points. ₐₑₒₓₔⱼₕₖₗₘₙₚₛₜ so I believe. So no subscript v for verb... which is maybe a pity, and would maybe force me to say an subscript number with no letter is always the verb definition.

The point is, it is much more important to stick to the rule that there must be only one representation for one thing, and only one thing for one representation.  Breaking that rule is where I see much unnecessary complexity arising in things like TTM.  So, yes, I strongly dislike the concept of "multiple possible representations".  and yes I have read (and re-read) the arguments in favour, but that only makes me more sure of my position.  (that and the crazy conclusion that "INTEGERS AREN’T RATIONAL NUMBERS" that Chris (and Hugh) incautiously published)

(P.S. please start a new topic (or restart an old one if there is a good one on it), if anyone really wants to debate that last comment in parenthesis)

 

P.P.S. I do agree that the concept of "context" is also important, and some such function as Disambiguate() could accept the (value of the) "current context" and an ambiguous-word such as "button" and return a disambiguated word such as "button₂" .  The important thing is not to have two representations for the same value, or the same representation for different thing.     OK, so maybe it is OK in some visual interface with some indication of the current context -  suffixing most words in a book with subscripts would not be nice.  But in the model, in how we talk about how things conceptually work, it is madness to not equate representation with things we can talk about. How else can you even talk about a thing if you don't have a canonical form with which to know that you only have one thing and not two things?

Well, I would advocate disambiguation. For example I might say that "button" is not a word. It is a string, but it is not a word. To "turn it into" a word (assuming  it is ever correct to say "one value can turn into another value) , we need an unambiguous representation. So, my humble suggestion would be that "button₁" is a word, and represents the first concept above, and  "button₂" is a word and represents the second concept above.

No, again you missed my point. I used ambiguous words to emphasise that a word only has meaning as a reference if you know the type of thing it refers to. You can take something absolutely unambiguous such as "31st December 1931" or "42 Oxford St London W1" and it's still meaningless unless you also know (somehow) the first is of type date and the second of type street address.

So I reverse the onus: please supply a value or a reference or a name or anything you like that has meaning but has no type.

Andl - A New Database Language - andl.org
Quote from Dave Voorhis on November 18, 2021, 10:31 am
Quote from Paul Vernon on November 18, 2021, 10:03 am
Quote from dandl on November 17, 2021, 11:19 pm
Quote from Paul Vernon on November 17, 2021, 5:44 pm

 

As a "programmer type" who has spent 35+ years writing code and teaching others to write code for "business users" (and who has been a "business user"), I note that I can count on one hand the number of times I've seen a fractional notation like 3²⁄₃ used in business.

Hmm? I think you're old enough to have seen something like £3. 12/6. I just about remember farthings and definitely ha'pennies.

"Computers and calculators sold pre-decimalisation – mostly in the 1960s – occasionally came with special support for the £sd system in the form of a fixed-point currency datatype. The IBM 1401 is one such machine; on Sterling models with sd support, it had a switch for selecting between IBM and BSI data layouts of £sd on its auxiliary console (see image). The ICT 1301 and the PL/I language[8] also had £sd support." "The ICT 1301 ... unusual in that they were based on decimal logic instead of binary." (You could understand ICL offering an £sd model, but IBM??!

A decimal approximation like 3.67 or 3.667 is far more typical, and whilst it may have been the case that in the early days of mechanised bookkeeping the use of decimal literals were grudgingly accepted because technical limitations precluded fractional notation -- and I'm only guessing that might have been the case -- all those who perhaps grudgingly endured it are long deceased now, so decimal notation is now not only technically easier, it's expected (for most uses) by business users.

There being 240 pence to a pound, a decimal approximation for the price of a 'penny chew' would rapidly get the tuck shop into trouble at school break. I had a Post Office savings book, first 'investment' by my grandparents, with a running balance totalled as £sd columns in copperplate -- and it paid interest. Decimalise that!

Quote from AntC on November 19, 2021, 5:09 am
Quote from Dave Voorhis on November 18, 2021, 10:31 am
Quote from Paul Vernon on November 18, 2021, 10:03 am
Quote from dandl on November 17, 2021, 11:19 pm
Quote from Paul Vernon on November 17, 2021, 5:44 pm

 

As a "programmer type" who has spent 35+ years writing code and teaching others to write code for "business users" (and who has been a "business user"), I note that I can count on one hand the number of times I've seen a fractional notation like 3²⁄₃ used in business.

Hmm? I think you're old enough to have seen something like £3. 12/6. I just about remember farthings and definitely ha'pennies.

"Computers and calculators sold pre-decimalisation – mostly in the 1960s – occasionally came with special support for the £sd system in the form of a fixed-point currency datatype. The IBM 1401 is one such machine; on Sterling models with sd support, it had a switch for selecting between IBM and BSI data layouts of £sd on its auxiliary console (see image). The ICT 1301 and the PL/I language[8] also had £sd support." "The ICT 1301 ... unusual in that they were based on decimal logic instead of binary." (You could understand ICL offering an £sd model, but IBM??!

Ah, indeed, yes. Muy bad. I had forgotten these.

I'm the forum administrator and lead developer of Rel. Email me at dave@armchair.mb.ca with the Subject 'TTM Forum'. Download Rel from https://reldb.org
Quote from dandl on November 18, 2021, 11:21 pm

No, again you missed my point. I used ambiguous words to emphasise that a word only has meaning as a reference if you know the type of thing it refers to.

So I reverse the onus: please supply a value or a reference or a name or anything you like that has meaning but has no type.

OK. That sounds like a fair enough challenge.

So, this might get a bit philosophical, although maybe that is no bad thing. I would certainly like to get to the point where either we agree, or at least we agree more clearly on what we disagree about. Let me try to state our positions.

You think:

> a value or a reference or a name only has meaning as a reference if you know the type of thing it refers to

I think:

> a value or a reference or a name only has meaning as a reference if you know the type of thing it refers to

So is this this is ultimately a question about our mutual definition of "a thing"?

I think we would agree on the following statement

> A thing is only a thing if it has some meaning

What we disagree on is this statement. You believe it to be true, I believe it to be false

> A thing is only a thing if (and only if) it has some meaning and some type

Now, to prove your believe in a direct way you are at a disadvantage (or an advantage depending on how you look at it). You would need to make a list of all things and give each one a type.

To prove your belief otherwise would require some argument (from agreed axioms) that proves that all things must have a type. Some logical contradiction say that follows if there exists a thing without a type.

I simply need to list one thing that has no type.

Humm

Let me try this thing. the universe

You say that

>  a value or a reference or a name only has meaning as a reference if you know the type of thing it refers to

So,  the universe refers (in this context) to the thing that is:

1 (the universe) all existing matter and space considered as a whole; the cosmos. The universe is believed to be at least 10 billion light years in diameter and contains a vast number of galaxies; it has been expanding since its creation in the Big Bang about 13 billion years ago.

So, the thing we are talking about is the universe. You say I need to know "what type of thing is the universe"?

So I claim that the universe does not have a type. It is not a member of some named set of things that we call a type.

And as the universe does not have a type. I claim that things don't have to have a type,  and hence (?) nor do the values, references or names that we use as references to things

Not sure how useful (or convincing - even to me) all the above is.. but still...


What I'm really trying to get at (I think), is that there is no benefit (in our Model) in considering that a representation is different from the thing it represents. I say that things are simpler, clearer, better, if we just take the position that (for all intents and purposes) the representation is the thing. The representation is the value.

To talk about multiple possible representations of some amorphous, conceptual "value" is a complication and a confusion that adds nothing to our model. As far as our model is concerned, The representation is the value. They are the same. We just need one concept here.

You say "representation + type" = value

I say representation = value,  and hence lets drop the word representation from our set of concepts and just use the word value

The word type we can keep, as that becomes  type = named set of values, often, but not exclusively disjoint, and which are commonly used in constraints and safety mechanisms; the values in a type being commonly determined by the set of input/output values of operator relations and general patterns of "usage".


BTW a second example that comes to mind is type .

1 a category of people or things having common characteristics: this type of heather grows better in a drier habitat | blood types.

What is the type of type?

Let me try this. Taking the following paragraph from DTARM

As we saw in Chapter 1, there is a logical difference between (a) a value as such, on the one hand, and (b) the physical encoding or representation of such a value inside the system, on the other.

I agree with that statement but think the word logical is incorrect.  There is a difference, but it is between a logical concept and a physical one, so maybe a "logical/physical difference"?

Nonetheless, what I do disagree with is the usefulness of maintaining this difference in our model. In our model we should not have any consideration for physical encoding or representation inside the system.

The next sentence in DARTM is where things start to go wrong

In fact, of course, this logical difference is really a consequence of a more fundamental one: namely, the difference between a type and its physical representation.

Of particular note is the incorrect assumption (or implication) that a "type" has one (i.e. "it's") representation, and the consequential argument that 1 can't be a rational because rationals have to have a numerator/denominator representation, and 1 (the integer) is not the same as ¹⁄₁ (the rational)!

Of course, the simple answer is that rationals have two representations - one is the representation used for integers, the other is the representation used for non-integer-rationals such as ¹⁄₂

¹⁄₁ , if it is a thing, is not a number, nor, for that matter is ²⁄₄

But that is all by the by. How can a logical difference be a consequence of difference to a physical representation?

Quote from AntC on November 19, 2021, 5:09 am

Hmm? I think you're old enough to have seen something like £3. 12/6. I just about remember farthings and definitely ha'pennies.

Ha. Well, I will say I'm not (quite) old enough that have seen those in shops, but certainly old enough to have many things in the house with 4d (like a not all that old Beano comic) and such like on them.

Maybe being able to add £sd values to a system would be a nice test of the capabilities of it to add new atoms and operators/functions (ok, I could just say new types I guess)

Let me try this.

If I always have to nominate a type for every value either explicitly, or implicitly via some "context', how do I know that the following values are the same value

1:integer, 1:rational, 1:odd, 1:1, 1:alpha

but that these are not the same value

1:integer, 1:string, 1:bit, 1:boolean

?

(yes, I know an answer would be:  use the = (or == ) operator, if it returns false or an error, then the values are not the same.  But I'm not sure I like that answer)

Quote from Paul Vernon on November 19, 2021, 10:14 am
Quote from dandl on November 18, 2021, 11:21 pm

No, again you missed my point. I used ambiguous words to emphasise that a word only has meaning as a reference if you know the type of thing it refers to.

So I reverse the onus: please supply a value or a reference or a name or anything you like that has meaning but has no type.

OK. That sounds like a fair enough challenge.

So, this might get a bit philosophical, although maybe that is no bad thing. I would certainly like to get to the point where either we agree, or at least we agree more clearly on what we disagree about. Let me try to state our positions.

You think:

> a value or a reference or a name only has meaning as a reference if you know the type of thing it refers to

I think:

a value or a reference or a name only has meaning as a reference if you know the type of thing it refers to

That isn't going to work. The first is a reference to a dog, one of many. The second is a reference to the dog, just one. The difference is more than mere definition.

So is this this is ultimately a question about our mutual definition of "a thing"?

I think we would agree on the following statement

A thing is only a thing if it has some meaning

Even worse. A thing exists in the real physical world, whether it has a name or not. The sun rises whether or not it has a name or meaning.

What we disagree on is this statement. You believe it to be true, I believe it to be false

> A thing is only a thing if (and only if) it has some meaning and some type

Now, to prove your believe in a direct way you are at a disadvantage (or an advantage depending on how you look at it). You would need to make a list of all things and give each one a type.

To prove your belief otherwise would require some argument (from agreed axioms) that proves that all things must have a type. Some logical contradiction say that follows if there exists a thing without a type.

I simply need to list one thing that has no type.

Humm

Let me try this thing. the universe

Compounding the problem. At a language level it's legitimate to talk about a universe, one of many, a member of a class of things. In the multiverse there are many such.

You say that

>  a value or a reference or a name only has meaning as a reference if you know the type of thing it refers to

So,  the universe refers (in this context) to the thing that is:

1 (the universe) all existing matter and space considered as a whole; the cosmos. The universe is believed to be at least 10 billion light years in diameter and contains a vast number of galaxies; it has been expanding since its creation in the Big Bang about 13 billion years ago.

The visible universe is more like 80 billion LY (which is odd, given an age of 14 billion years), and the total matter of our universe spans more like 200 billion LY. Expansion is a wonderful thing. A metaverse would contain many other universes and be very much larger.

 

So, the thing we are talking about is the universe. You say I need to know "what type of thing is the universe"?

So I claim that the universe does not have a type. It is not a member of some named set of things that we call a type.

And as the universe does not have a type. I claim that things don't have to have a type,  and hence (?) nor do the values, references or names that we use as references to things

Not sure how useful (or convincing - even to me) all the above is.. but still...


What I'm really trying to get at (I think), is that there is no benefit (in our Model) in considering that a representation is different from the thing it represents. I say that things are simpler, clearer, better, if we just take the position that (for all intents and purposes) the representation is the thing. The representation is the value.

To talk about multiple possible representations of some amorphous, conceptual "value" is a complication and a confusion that adds nothing to our model. As far as our model is concerned, The representation is the value. They are the same. We just need one concept here.

You say "representation + type" = value

No, I say a "dog" is a reference/denotation/name for a type of animal, a reference only has meaning in terms of its accompanying type. "Lucy" is the name of my dog (identity, not type). I can create many representations of a dog or of Lucy, in the form of a photo, drawing, sculpture, written description.

I say representation = value,  and hence lets drop the word representation from our set of concepts and just use the word value

The word type we can keep, as that becomes  type = named set of values, often, but not exclusively disjoint, and which are commonly used in constraints and safety mechanisms; the values in a type being commonly determined by the set of input/output values of operator relations and general patterns of "usage".


BTW a second example that comes to mind is type .

1 a category of people or things having common characteristics: this type of heather grows better in a drier habitat | blood types.

What is the type of type?

Whatever you choose when you use the word and want to convey meaning.

Andl - A New Database Language - andl.org