OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

office-formula message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: RE: [office-formula] Separation of concerns - Chapter 4 and Booleans too

I am completely aligned with Rob's responses here.

 - Dennis

PS: Tangential to the pseudo-type discussion, there are also disguised
types, that is a type that is achieved by constrained usage of another type
by applying some sort of convention.  Apropos today's discussion, there is
no type Boolean in the C Language in pre-20xy JTC1 International Standard
specifications.  However, where a boolean choice is made, numeric values of
0 are understood to represent "false" and non-zero numeric values are
understood to represent "true" (and don't ask about NaNs).  Similarly, where
a boolean choice is a result of calculation and a numeric value is required
(for storage or for further use in a formula evaluation), 0 is supplied for
"false" and 1 is supplied for "true".  Notice the way this is expressed and
how there is a similar way of handling this in OpenFormula that would make
great sense.  (No operations in Standard C Language are defined as having
boolean results, since there is no need, but describing it this way is
appropriate if there is the possibility of there being a boolean type as
well as disguised use of numeric types for representing boolean cases.)

PPS: Historically, the use of "disguise" goes back to the so-called
Hollerith Data type in Fortran 66.  The mapping of a wider-ranging type to
and from boolean cases goes back to the original LISP, which only had one
type (a.k.a SEXPR), with the atom NIL understood to represent "false" and
anything else accepted as representing "true."

-----Original Message-----
From: robert_weir@us.ibm.com [mailto:robert_weir@us.ibm.com] 
Sent: Tuesday, December 08, 2009 06:57
To: office-formula@lists.oasis-open.org
Subject: Re: [office-formula] Separation of concerns - Chapter 4

Patrick Durusau <patrick@durusau.net> wrote on 12/08/2009 09:32:09 AM:
> So, if we are going to separate out the concerns of parts 1 and 2 as 
> documents and formulas respectively, may I assume that all the 
> statements in chapter 4 about OpenDocument attribute values and their 
> meanings simply goes away?

1) We should not be referring to office attributes

2) We not be talking about UTF-8 versus UTF-16.  OpenFormula expressions 
are syntactically defined in terms of Unicode strings.  We're in the value 
space of xsd:string, not the XML lexical representation or in the Unicode 
encoded character.  However, at the semantic level, there are a few 
specific functions that do character conversions, like CHAR().  The 
semantics of these functions will need to be defined in terms of character 

3) There are a few constraints, like : "In OpenDocument, the 
office:value-type of text (string) values is string; if the computed value 
is stored, it is stored in the attribute office:string-value.".  IMHO, 
these should be moved into Part 1, since they are independent of 
OpenFormula.  In particular, if an Extended ODF document uses another 
formula expression language, not OpenFormula, I'd expect that these 
constraints would still hold, since these are really type consistency 
constraints, not statements about Expressions or Evaluators.

> BTW, pseudotypes? (Google "pseudotypes databases" returns 82,800 "hits")
> PostgresSQL uses pseudo-types.
> I really don't think of "database" as a "pseudotype," however it is 
> Suggest the easier route is just to define types.

I think of a pseudotype as an alias for another type, used notationally to 
simplify the specification.  They are never necessary to have.  In fact, 
if they were essentially, they would be real types.  But they can be 
useful.  For example, if two types are lexically identical, but one has 
distinct semantics.  But there would be no abuse of logic to call these 
all 'types'. 


[ ... ]

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]