Re: What's the intent for ":"?

There are some basic tokens that have so many meanings that I think of them
as punctuation whose meaning is entirely dictated by context and that they
have no meaning on their own.

This is different from "+" and "=" where you have a good idea of the
choices.    But for some things, like commas, spaces, parentheses, colons,
semicolons, I think of them more as punctuation in a larger context.

For colons, we have time, mapping specifications, ratios, set
qualifications (such that), field extensions, coordinates of affine points,
naming fields or function arguments in programming languages, and so on.
So I agree with the "can of worms" comment.

Stephen

On Thu, Jul 27, 2023 at 11:57 PM Neil Soiffer <soiffer@alum.mit.edu> wrote:

> Using a literal on a leaf (to get desired speech) as opposed to a concept
> name is a good point, one that I don't think I'm alone in forgetting. I did
> a quick scan of the spec and it seems we don't specifically call that out.
> I think an additional example would be particularly useful.
>
> Your reminder that it should be a literal solves the problem for me.
> People should probably use
>    <mo intent='ratio'>:</mo>
> and the AT should know what to speak (assuming "ratio" is a core concept).
>
> I'm less sure "time" is an appropriate core concept name as I suspect it
> could encompass dates and other time. Maybe that's ok, or maybe it's too
> generic. I'd need to see a list of all the things it encompasses to know
> whether it introduces ambiguity or not.
>
> Although I can see the appeal of using an intent value of "_to:ratio",
> that means almost all concepts can be properties. But concepts have arity
> and airity doesn't exist on tokens. So a concept name and a property of the
> same name differ. It seems like a can of worms. Of course, there is the can
> of worms of why "ratio" on a leaf is ok, but assumedly (by me),
> intent="transpose" (as opposed to "_transpose") on a "T" is not ok. The
> devil is in the details...
>
>     Neil
>
>
> On Thu, Jul 27, 2023 at 7:06 PM Deyan Ginev <deyan.ginev@gmail.com> wrote:
>
>> Hi Neil,
>>
>> I'm focusing on the single "ratio" in the latter half of your email. As
>> you say, the legal concept annotation is intent="ratio".
>> Selecting explicit English prepositions should be done via a literal,
>> i.e. intent="_to" or intent="_for". Similarly the empty literal override
>> for time would be intent="_".
>> In those cases we could enforce speech, but will lose the concept
>> information.
>>
>> Similarly for Bulgarian prepositions: one can choose between the literals
>> intent="_към" or intent="_за", but the concept is still intent="ratio",
>> which is localized intent="съотношение", with a possible alias name
>> "отношение".
>>
>> I think being disciplined about the distinction between (mathematical)
>> concepts and (language) literals is one of the lifelines we have available
>> in making these decisions, while retaining a clear naming scheme.
>>
>> Some additions:
>> 1. The wikipedia page on ratio[1] suggests that one can also encounter
>> the notation "a to b" directly, where one would assume an <mtext>to</mtext>
>> in MathML, possibly with wrapping spaces.  So a Braille reader may also
>> encounter the "to" word directly as text.
>>
>> 2. Wikipedia also provides an alternative readout of a ratio when the
>> context is a "proportion", i.e. an equality between two ratios. In "a:b =
>> c:d" the left-hand side "a:b" can be narrated "a is to b", where the "c:d"
>> right-hand side can also be narrated "c is to d", with the connecting "="
>> read "as".
>>
>> In an AT that wants to provide specialized readings for proportion, one
>> could imagine recognizing a wrapping mrow property <mrow
>> intent=":proportion">.
>> Or alternatively, having a pattern that recognizes infix use of "=" where
>> both arguments can be identified as ratios.
>> On the argument level, AT can either try to detect the infix use of <mo
>> intent="ratio">:</mo>, or cases where the argument is wrapped with a
>> property, as in <mrow intent=":ratio">.
>> The wrapping mrow could be a helpful technique for something harder to
>> detect such as the n-ary ratio "2 : 4 : 8 : 16".
>>
>> I think embracing the "progressive enhancement" spirit could be healthy
>> in this kind of ladder of ever increasing annotation burden. Does the
>> completely raw MathML get narrated well? If yes, leave as-is. If not,
>> annotate the innermost nodes that encounter issues. If the speech remains
>> unnatural at places, gradually climb up the subtrees, depositing properties
>> and compound intent expressions, until the desired outcome is achieved.
>>
>> Greetings,
>> Deyan
>>
>> [1] https://en.wikipedia.org/wiki/Ratio
>>
>> On Thu, Jul 27, 2023 at 9:30 PM Neil Soiffer <soiffer@alum.mit.edu>
>> wrote:
>>
>>> I think everyone would agree that ":" is ambiguous. It's one of the few
>>> cases where the braille Nemeth code (but not UEB) cares about the meaning.
>>>
>>> Here's a case I came across:  3:30
>>>
>>> It certainly could be a ratio. Or it could be a time. In normal use,
>>> there might be more context to help (3:30 = 1:10 or 3:30pm). However, when
>>> standing alone, there is no way to know.
>>>
>>> I think both ratio and time are common enough to be in core. Probably
>>> also function definition (f: x → y) is in core along with "such that"
>>> ({x: x>0}).
>>>
>>> As per the discussion today (and times in the past), the intent should
>>> be on ":" when possible. However, ":" is a case where it doesn't work out
>>> well. One can force the speech (e.g., "intent='to' for ratio or intent=' '
>>> for time). But how does the braille know that 'to' means it is a ratio and
>>> should output the braille for ratios instead of the braille for a
>>> punctuation ":"?
>>>
>>> Aside: listening to Khan Academy, "to" is used in something like "3:2"
>>> but "for" or "for every" is used in the videos when there are
>>> quantities/units given as in "3 dogs : 2 cats". So here you would use
>>> intent="for" -- so saying AT should know that "to" used on ":" means ratio
>>> is not going to work.
>>>
>>> I think this is a case where pushing intent to the operator doesn't work
>>> despite it being an infix operator and it needs to be on the mrow. Being in
>>> core, an intent value of "ratio" could be spoken as "to" by AT, but still
>>> recognized easily when generating braille.
>>>
>>> Thoughts?
>>>
>>>     Neil
>>>
>>>

Received on Friday, 28 July 2023 22:57:48 UTC