Our own page sets for the reference app and any Open Board Format app: - Adult conversation (41 boards): an always-row (Back, Yes, No, I don't know, Wait), a 0-10 scale, pain, comfort and feelings scales, repairs, word finding, six scripts as one-press-per-line sequences, cards that explain aphasia, ALS/MND, PPA, brain injury and Parkinson's in the person's own voice, care, positioning and breathing requests that claim nothing is sent, life-story and people templates for the person's photos, a page for banked messages, and a staged plan for PPA written for partners. - Intent first in 12, 20 and 40 cells: start pages by purpose, predictable branches, operational commands in one place on every page, popups that close after a choice, and page numbers for a printed partner book. - Themed phrases: nine 6x3 pages of starters, words and messages. - First switches and messages: one-message pages, sequences, press for fun, two and four choices, and learn-to-scan pages. tools/pagesets/phrases/build.py validates the YAML sources (layout, links, symbol concepts, proprietary names, medical-claim wording) and writes the packages, a catalogue and the licence into --out DIR, reproducibly; --check fails on a non-reproducible build or stale reports. Packages are generated by the site build, not committed. Every text was drafted, back-translated by a reader who never saw the English, and judged, in up to three rounds: 10,748 of 10,750 agreed (es fr de pt it zh ja ar hi ru), recorded per text as "agreed by two model readers; native review pending"; the two others stay in English, marked. A new aac-core test runs the generator, then imports every package with the app's importer and an independent OBF validator, and checks structure, links, symbol references, that no language moves a cell, that each cell is in one language and says so, and that translated cells import as the person's own words with their chosen symbols. The design notes propose (not implemented) a sequence extension, popups, speak-only pages, links that say words and one-target scanning, with SPEC text, and how the chooser should offer each set. Co-Authored-By: Claude Opus 5.5 <[email protected]>
144 lines
9.3 KiB
Markdown
144 lines
9.3 KiB
Markdown
# Intent first: pages that start from what the person wants to do
|
||
|
||
`intent-12.obz`, `intent-20.obz`, `intent-40.obz`, built from
|
||
`phrases/sources/intent.yaml`. Shared conventions:
|
||
[DESIGN-phrases-common.md](DESIGN-phrases-common.md).
|
||
|
||
## Where the idea comes from, and what is ours
|
||
|
||
Pragmatically organised communication books — the best known is PODD, by
|
||
Gayle Porter (PODD® and its templates © Gayle Porter) — start each message
|
||
from its purpose (to tell, to ask, to complain, to request) rather than from
|
||
a category of words, branch predictably from there, carry operational
|
||
commands on every page, and are built to be used on paper with a partner as
|
||
well as on a device. Those *principles* are published practice (report
|
||
§2.2). The PODD name, templates, page layouts, wording and page names are
|
||
not used here, and nothing on any board is named after it. Every page, page
|
||
name, word list, position and colour in this set was written for this
|
||
project. (The app's old "PODD-inspired" label in `defaults.rs` should go, as
|
||
the report says; it is not this set.)
|
||
|
||
## Start from the purpose
|
||
|
||
The **Start** page holds the intents. Each intent says its opening words and
|
||
opens the page with the rest:
|
||
|
||
| Intent | Says | Opens |
|
||
|---|---|---|
|
||
| I want to tell you something | "I want to tell you something." | Tell: what kind of news, about whom, where, when; "Guess!", "Ask me questions to find out." |
|
||
| Something's wrong | "Something's wrong." | Wrong: it hurts → body; I feel sick → symptoms; something's broken → what and how; how bad; help, stop, too hot / cold, hungry, thirsty, tired, bathroom, someone is bothering me, … |
|
||
| I have a question | "I have a question." | Question words and common questions; "Can I …?" → things to do |
|
||
| I want something | "I want" | Want: to eat → food; to drink → drinks; to go → places; to do something → things to do; someone → people; a thing → things; more, help, a break, a hug, to rest, to stop, … |
|
||
| Let's chat | — | Chat: greetings, comments, turn-taking, "Tell me more." |
|
||
| I want to go somewhere | "I want to go" | Places |
|
||
| Let's do something | "Let's" | Things to do |
|
||
| How I feel | "I feel" | Feelings |
|
||
| Yes, no, maybe · When · Describe it · People | — | the matching pages |
|
||
| More words | — | an index of every word page |
|
||
|
||
So "I want" + "to eat" + "an apple" builds *I want to eat an apple*;
|
||
"Something's wrong." + "It hurts." + "my head" + "A lot." builds the
|
||
complaint a partner needs. A link that also says words uses the proposed
|
||
`ext_aurasense_link_says` (the words go into the message, then the page
|
||
opens). Until the app has it, the link opens the page and the page's words
|
||
carry the message.
|
||
|
||
**Predictable branches.** "Something's wrong" always leads the same way:
|
||
*It hurts* → the body page; *I feel sick* → feeling-sick messages;
|
||
*Something's broken* → the broken things and "It's not working.", "It's
|
||
stuck.", "It needs charging.", "Please fix it."; *How bad* → a little / a
|
||
lot / very bad / getting worse or better / comes and goes. Branches never
|
||
loop back to a different place: after a body part, the popup closes and the
|
||
person is back on "Something's wrong", where *How bad* is.
|
||
|
||
## Operational commands, in the same place on every page
|
||
|
||
Each size has a **frame**: the commands, in the same cells of every page,
|
||
coloured grey. The test checks that each is in one place throughout a book.
|
||
|
||
| Size | Grid | Left column, top to bottom | Bottom right |
|
||
|---|---|---|---|
|
||
| 12 | 3 × 4 | Back to the start · Oops, that's a mistake · I'm finished | Turn the page (when a section continues) |
|
||
| 20 | 4 × 5 | Back to the start · Go back · Oops, that's a mistake · I'm finished | Turn the page |
|
||
| 40 | 5 × 8 | Back to the start · Go back · Something's wrong · Oops, that's a mistake · I'm finished | Turn the page |
|
||
|
||
- **Back to the start**: to the Start page (on Start itself, the place stays empty).
|
||
- **Go back**: to the page this section is reached from (20 and 40).
|
||
- **Something's wrong** (40): so a complaint is one press from anywhere.
|
||
- **Oops, that's a mistake**: removes the last word (`:backspace`). On paper, it tells the partner to drop the last thing they said back.
|
||
- **I'm finished**: says the whole message (`:speak`). On paper, it tells the partner the message is complete.
|
||
- **Turn the page**: to the next page of the same section; on the last page, back to its first. On paper, it is the page-turn signal.
|
||
|
||
## Popups close after a choice
|
||
|
||
Pages that complete a message — body, how bad, feeling sick, broken things,
|
||
places, food, drinks, things to do, people, feelings, yes/no/maybe, when,
|
||
describe it, things — are popups (`ext_aurasense_behaviour.after_choice:
|
||
"return"`): after a word is chosen, the app returns to the page that opened
|
||
the popup (its continuation pages count as the popup). The person can turn
|
||
popups off in their settings (proposed SPEC §2.3), and a person who has
|
||
chosen "After a word on another board, go back to Home" (Track A) goes Home
|
||
instead. Until the app has it, the popup stays open and the frame's
|
||
commands lead on.
|
||
|
||
## Three sizes from one set of sections
|
||
|
||
The sections are written once. The generator flows each section's items,
|
||
in order, into the cells the frame leaves, row by row, and continues onto
|
||
another page when a section is longer than a page. Items marked
|
||
`min_size: 20` are left out of the 12-cell book, so the smallest book has
|
||
fewer words (and fewer page turns) rather than the same words spread thinly.
|
||
Order is priority: the most needed words come first, on the first page.
|
||
|
||
| | 12 cells | 20 cells | 40 cells |
|
||
|---|---|---|---|
|
||
| Content cells per page | 9 (8 when continued) | 16 (15) | 35 (34) |
|
||
| Pages | 33 | 32 | 21 |
|
||
| Cells | 366 | 495 | 468 |
|
||
|
||
The 40-cell Start page adds 21 single core words (I, you, it, that, here,
|
||
want, like, go, get, make, look, put, open, turn, help, stop, more, all, not,
|
||
different, good) from the Universal Core vocabulary (CC BY / BY-SA, words
|
||
only), so a person can say what no page foresaw.
|
||
|
||
## A printed book a partner reads from
|
||
|
||
Each board carries its page number (`ext_aurasense_book.page`: breadth-first
|
||
from Start, continuation pages straight after their first page), and each
|
||
link the page it leads to (`ext_aurasense_book_goto`), for the printing
|
||
track to print as "→ 12". The layout is designed for partner-assisted
|
||
scanning:
|
||
|
||
- **Visual scanning:** the partner points along the rows; the person signals yes at the row, then at the cell. The frame is always the left column, so the partner can skip it or start with it.
|
||
- **Auditory scanning:** the partner reads each row aloud, then each choice in the row the person picks. Items are ordered so that a row holds related words (the body page reads head, eyes, ears, nose, mouth, teeth, throat, neck, chest, …).
|
||
- **Eye pointing:** large cells and few per page (12 or 20) suit an E-tran style frame or a book held up.
|
||
- The Start page's description says this to the partner in plain words.
|
||
|
||
The printing track (`aac/printing`) needs only: the boards' `grid.order`,
|
||
labels, colours, `ext_aurasense_book.page`, `ext_aurasense_book_goto`, and
|
||
the pictures from the English package.
|
||
|
||
## What a translation cannot fix
|
||
|
||
The starters build messages in English word order, and each language's
|
||
drafter shaped its fragments to survive that (their notes are in
|
||
`phrases/translations/<lang>.json`):
|
||
|
||
- **Spanish, Portuguese, Italian, French:** activities are infinitives after "I want" / "Let's"; places carry their preposition ("al parque", "para o parque"); "to" is empty. Remaining seams: contractions (*a el*, *à le*), and a default gender where the next word differs (the themed Health page's French "My" became "Moi," with body words that carry their own possessive, after "Ma" + "ventre" was disputed).
|
||
- **German:** verbs are infinitives ("Ich möchte" + "fernsehen"), destinations carry their preposition ("in den Park"); a few starters force a case or verb-final order the next word cannot follow, noted per item.
|
||
- **Russian:** feelings follow «Мне» as -о words (грустно, страшно); things are accusative after «Я хочу»; some joins break case agreement and are noted.
|
||
- **Chinese:** question starters use the A-not-A form (我能不能 + 去厕所) so they stay questions without a final 吗; place words carry their own verb (回家, 去公园).
|
||
- **Japanese:** starters are said first as inverted predicates (ほしいです, 行きたいです) or topics (私は), so a combined message is spoken-inverted Japanese, understandable but not textbook order.
|
||
- **Hindi:** verb-final, so combinations are telegraphic; a starter that forces a masculine form (मेरा, कैसा रहा आपका) was accepted where Hindi has no neutral form.
|
||
- **Arabic:** feelings are verbal nouns after أشعر بـ; activities are verbal nouns, so "I want to" is أريد and "to" is empty.
|
||
|
||
Phrase cells (whole messages) do not have the problem. A language's own
|
||
intent-first book would order its pages for its own grammar (the object
|
||
first, then the want); that is design work for native speakers, best
|
||
started from the 12-cell book.
|
||
|
||
## Not yet
|
||
|
||
- A keyboard page for spelling (the keyboard track).
|
||
- Colour-coded partner-scanning groups beyond the row (e.g. coloured row numbers for "red row, third one"): a printing choice.
|
||
- Photo pages for the person's own people and places: two fill-in cells in People now; more once Track B's photos are in.
|