open-standards/aac/aac-rs/tools/pagesets/phrases/sources/intent.yaml
Transaction Science 7c29c52054 feat(aac pagesets): four phrase page sets, built from readable sources, in English and ten languages
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]>
2026-10-05 12:18:45 -04:00

589 lines
22 KiB
YAML

# Intent-first vocabulary: pages that start from what the person wants to
# DO, with predictable branches, operational commands on every page, popups
# that close after a choice, and a layout that also works as a printed book
# a partner reads from. Our own design; see tools/pagesets/DESIGN-intent.md
# (it says which published principles it follows and what it does not copy).
#
# Built in three sizes from the same sections: 12 cells (3 x 4), 20 (4 x 5)
# and 40 (5 x 8). Each size has a frame -- the operational commands, in the
# same place on every page -- and the generator flows each section's items,
# in order, into the other cells row by row. A section longer than a page
# continues on the next page, linked by "Turn the page" in the bottom-right
# corner (on the last page it goes back to the first). `min_size: 20` keeps
# an item out of the 12-cell book, so the smallest book stays small.
set:
name: "Intent first ({size})"
description: >-
Start from what you want to do -- tell something, say something's
wrong, ask, want, chat, go somewhere -- and each choice opens the page
with the words for it. {size} cells per page, with the same
operational commands on every page; also printable as a book a
partner reads from.
version: 2026-10-05
license:
type: CC-BY-SA-4.0
copyright_notice_url: https://creativecommons.org/licenses/by-sa/4.0/
author_name: AuraSense Tech Corporation and the open-standards AAC contributors
source_url: https://aac.aurasense.ai/
symbols: [mulberry, openmoji]
root: start
palette:
op: "#E0E0E0"
tell: "#BBDEFB"
wrong: "#FFCDD2"
question: "#E1BEE7"
want: "#C8E6C9"
chat: "#FFF9C4"
go: "#FFE0B2"
do: "#B2EBF2"
feel: "#F8BBD0"
people: "#D7CCC8"
time: "#CFD8DC"
answers: "#DCEDC8"
describe: "#F0F4C3"
food: "#FFCCBC"
things: "#E6EE9C"
core: "#FFFFFF"
cells:
# Operational commands (the frame)
start: {label: "Back to the start", go: start, symbol: "home", color: op}
back: {label: "Go back", go: "@back", symbol: "nav:back", color: op}
oops: {label: "Oops, that's a mistake", do: backspace, symbol: "wrong", color: op}
finished: {label: "I'm finished", do: speak, symbol: "all done", color: op}
wrongq: {label: "Something's wrong", say: "Something's wrong.", go: wrong, color: wrong}
turn: {label: "Turn the page", go: start, want_symbol: "turn the page", color: op}
# The intents: words that start the message, and the page with the rest
tell: {label: "I want to tell you something", say: "I want to tell you something.", go: tell, color: tell, want_symbol: "tell"}
question: {label: "I have a question", say: "I have a question.", go: question, color: question, symbol: "question"}
want: {label: "I want something", say: "I want", go: want, color: want, symbol: "want"}
chat: {label: "Let's chat", go: chat, color: chat, symbol: "hi"}
go: {label: "I want to go somewhere", say: "I want to go", go: places, color: go, symbol: "go"}
do: {label: "Let's do something", say: "Let's", go: activities, color: do, symbol: "play"}
people: {label: "People", go: people, color: people, symbol: "friend"}
answers: {label: "Yes, no, maybe", go: answers, color: answers}
feel: {label: "How I feel", say: "I feel", go: feelings, color: feel, symbol: "happy"}
time: {label: "When", go: time, color: time, symbol: "when"}
describe: {label: "Describe it", go: describe, color: describe}
more: {label: "More words", go: categories, color: op}
# Core words on the 40-cell start page (Universal Core vocabulary,
# CC BY 4.0 / CC BY-SA 4.0, Project Core / UNC CLDS: the words only)
w-i: {say: "I", color: core, src: universal-core}
w-you: {say: "you", color: core, src: universal-core}
w-it: {say: "it", color: core, src: universal-core}
w-that: {say: "that", color: core, src: universal-core}
w-here: {say: "here", color: core, src: universal-core}
w-want: {say: "want", symbol: "want", color: core, src: universal-core}
w-like: {say: "like", color: core, src: universal-core}
w-go: {say: "go", symbol: "go", color: core, src: universal-core}
w-get: {say: "get", symbol: "get", color: core, src: universal-core}
w-make: {say: "make", symbol: "make", color: core, src: universal-core}
w-look: {say: "look", symbol: "look", color: core, src: universal-core}
w-put: {say: "put", symbol: "put", color: core, src: universal-core}
w-open: {say: "open", symbol: "open", color: core, src: universal-core}
w-turn: {say: "turn", color: core, src: universal-core}
w-help: {say: "help", symbol: "help", color: core, src: universal-core}
w-stop: {say: "stop", symbol: "stop", color: core, src: universal-core}
w-more: {say: "more", symbol: "more", color: core, src: universal-core}
w-all: {say: "all", color: core, src: universal-core}
w-not: {say: "not", color: core, src: universal-core}
w-different: {say: "different", color: core, src: universal-core}
w-good: {say: "good", symbol: "good", color: core, src: universal-core}
sizes:
12:
grid: [3, 4]
frame:
- {at: [0, 0], cell: $start}
- {at: [1, 0], cell: $oops}
- {at: [2, 0], cell: $finished}
turn: [2, 3]
20:
grid: [4, 5]
frame:
- {at: [0, 0], cell: $start}
- {at: [1, 0], cell: $back}
- {at: [2, 0], cell: $oops}
- {at: [3, 0], cell: $finished}
turn: [3, 4]
40:
grid: [5, 8]
frame:
- {at: [0, 0], cell: $start}
- {at: [1, 0], cell: $back}
- {at: [2, 0], cell: $wrongq}
- {at: [3, 0], cell: $oops}
- {at: [4, 0], cell: $finished}
turn: [4, 7]
sections:
start:
name: Start
description: >-
Point to what you want to do; the page it opens has the words for it.
A partner reading the book aloud reads each row, then each choice in
the row the person picks.
items_by_size:
12: [$tell, $wrongq, $question, $want, $chat, $go, $answers, $feel, $more]
20: [$tell, $wrongq, $question, $want, $chat, $go, $do, $people,
$answers, $feel, $time, $more,
{say: "Yes", symbol: "yes", color: answers}, {say: "No", symbol: "no", color: answers},
{say: "Help me.", symbol: "help", color: wrong}, {say: "Stop!", symbol: "stop", color: wrong}]
40: [$tell, $question, $want, $chat, $go, $do, $people,
$feel, $answers, $time, $describe, $more,
{say: "Yes", symbol: "yes", color: answers}, {say: "No", symbol: "no", color: answers},
$w-i, $w-you, $w-it, $w-that, $w-here, $w-want, $w-like,
$w-go, $w-get, $w-make, $w-look, $w-put, $w-open, $w-turn,
$w-help, $w-stop, $w-more, $w-all, $w-not, $w-different, $w-good]
tell:
name: I want to tell you something
style: {color: tell}
items:
- "Something happened."
- "It's good news."
- "It's bad news."
- {say: "It's funny.", symbol: "funny"}
- {say: "It's important.", min_size: 20}
- {label: "About someone", say: "It's about someone.", go: people, color: people}
- {label: "About a place", say: "It's about a place.", go: places, color: go}
- {label: "About something I did", say: "It's about something I did.", go: activities, color: do}
- {label: "About how I feel", say: "It's about how I feel.", go: feelings, color: feel}
- {label: "When it was", go: time, color: time}
- {say: "It happened today.", symbol: "today"}
- {say: "It happened yesterday.", symbol: "yesterday"}
- {say: "It's going to happen.", min_size: 20}
- "Guess!"
- "Ask me questions to find out."
- {say: "I'll show you.", symbol: "show"}
- {say: "It's a secret.", min_size: 20}
wrong:
name: Something's wrong
style: {color: wrong}
items:
- {label: "It hurts", say: "It hurts.", go: body, symbol: "hurting"}
- {label: "I feel sick", say: "I feel sick.", go: sick, symbol: "sick"}
- {label: "Something's broken", say: "Something's broken.", go: broken}
- {label: "How bad", go: howbad}
- {say: "I need help.", symbol: "help"}
- {say: "Stop!", symbol: "stop"}
- "I don't like it."
- {label: "I'm upset", say: "I'm upset.", go: feelings, color: feel}
- "Someone is bothering me."
- {say: "I'm scared.", symbol: "scared"}
- {say: "I'm too hot.", symbol: "hot"}
- {say: "I'm too cold.", symbol: "cold"}
- {say: "I need the bathroom.", symbol: "bathroom"}
- {say: "I'm hungry.", symbol: "hungry"}
- {say: "I'm thirsty.", symbol: "thirsty"}
- {say: "I'm tired.", symbol: "tired"}
- {say: "It's too loud.", symbol: "loud", min_size: 20}
- {say: "I'm lost.", min_size: 20}
- {say: "I can't see.", min_size: 20}
- {say: "I can't reach it.", min_size: 20}
- {say: "Something is missing.", min_size: 20}
- {say: "It's not fair.", min_size: 20}
- {say: "I made a mistake.", min_size: 20}
body:
name: Body
parent: wrong
popup: true
style: {color: wrong}
items:
- {say: "my head", symbol: "head"}
- {say: "my eyes", symbol: "eye"}
- {say: "my ears", symbol: "ear", min_size: 20}
- {say: "my nose", symbol: "nose", min_size: 20}
- {say: "my mouth", symbol: "mouth"}
- {say: "my teeth", symbol: "teeth", min_size: 20}
- {say: "my throat", want_symbol: "throat"}
- {say: "my neck", want_symbol: "neck"}
- {say: "my chest", want_symbol: "chest"}
- {say: "my stomach", symbol: "stomach"}
- {say: "my back", symbol: "back"}
- {say: "my arm", want_symbol: "arm"}
- {say: "my hand", want_symbol: "hand"}
- {say: "my leg", want_symbol: "leg"}
- {say: "my knee", want_symbol: "knee", min_size: 20}
- {say: "my foot", symbol: "foot"}
- "all over"
- "I'll show you where."
howbad:
name: How bad
parent: wrong
popup: true
style: {color: wrong}
items: ["A little.", "A lot.", "Very bad.", "It's getting worse.", "It's getting better.", "It comes and goes."]
sick:
name: I feel sick
parent: wrong
popup: true
style: {color: wrong}
items:
- "I'm going to throw up."
- {say: "I have a headache.", symbol: "head"}
- {say: "I feel dizzy.", symbol: "dizzy"}
- {say: "I feel hot.", symbol: "hot"}
- {say: "My stomach hurts.", symbol: "stomach"}
- {say: "I need to lie down.", symbol: "bed"}
- {say: "I need my medicine.", symbol: "medicine"}
- {say: "I can't breathe well.", symbol: "breathing"}
- {say: "Please call the nurse.", symbol: "nurse"}
- {say: "I have a cough.", min_size: 20}
- {say: "I feel weak.", min_size: 20}
- {say: "I have a runny nose.", symbol: "nose", min_size: 20}
broken:
name: Something's broken
parent: wrong
popup: true
style: {color: wrong}
items:
- "It's not working."
- "It's stuck."
- "It needs charging."
- "Please fix it."
- {say: "my wheelchair", symbol: "wheelchair"}
- "my glasses"
- {say: "my phone", symbol: "phone"}
- {say: "the TV", symbol: "tv"}
- "my communication book"
- {say: "my tablet", min_size: 20}
- {say: "the computer", symbol: "computer", min_size: 20}
- {say: "the light", min_size: 20}
- {say: "my hearing aid", min_size: 20}
question:
name: I have a question
style: {color: question}
items:
- {say: "Who?", symbol: "who"}
- {say: "What?", symbol: "what"}
- {say: "Where?", symbol: "where"}
- {say: "When?", symbol: "when"}
- {say: "Why?", symbol: "why"}
- {say: "How?", symbol: "how"}
- "What's that?"
- "What are we doing?"
- "What's next?"
- "Where are we going?"
- "Who is coming?"
- "Can I have a turn?"
- {label: "Can I …?", say: "Can I", go: activities, color: do}
- {say: "Which one?", min_size: 20}
- {say: "How many?", symbol: "how many", min_size: 20}
- {say: "When is it finished?", min_size: 20}
- {say: "What happened?", min_size: 20}
- {say: "Are you OK?", min_size: 20}
want:
name: I want something
style: {color: want}
items:
- {label: "to eat", say: "to eat", go: food, symbol: "eat", color: food}
- {label: "to drink", say: "to drink", go: drinks, symbol: "drink", color: food}
- {label: "to go somewhere", say: "to go", go: places, symbol: "go", color: go}
- {label: "to do something", say: "to", go: activities, symbol: "play", color: do,
note: "Says only the word 'to'; the page it opens adds an activity: 'I want' + 'to' + 'watch TV'."}
- {label: "someone", go: people, symbol: "friend", color: people}
- {label: "a thing", go: things, color: things}
- {say: "more", symbol: "more"}
- {say: "help", symbol: "help"}
- "a break"
- {say: "a hug", symbol: "hug"}
- {say: "to rest", symbol: "rest"}
- {say: "to stop", symbol: "stop"}
- "a turn"
- "to be alone"
- "something else"
- "I don't want it."
chat:
name: Let's chat
style: {color: chat}
items:
- {say: "Hi!", symbol: "hi"}
- "How are you?"
- {say: "I'm good.", symbol: "good"}
- "Not so good."
- {say: "Guess what?"}
- {say: "Wow!"}
- "Oh no!"
- {say: "That's funny!", symbol: "funny"}
- "Really?"
- "I like it."
- "I don't like it."
- "Your turn."
- "My turn."
- "I don't know"
- {say: "Thank you."}
- "Bye!"
- {say: "What's new?", min_size: 20}
- {say: "Cool!", min_size: 20}
- {say: "Yuck!", symbol: "yucky", min_size: 20}
- {say: "Me too.", min_size: 20}
- {say: "Not me.", min_size: 20}
- {say: "I agree.", min_size: 20}
- {say: "No way!", min_size: 20}
- {say: "Tell me more.", min_size: 20}
- {say: "Sorry.", min_size: 20}
- {say: "See you later.", min_size: 20}
places:
name: Places
popup: true
style: {color: go}
items:
- {say: "outside", symbol: "outside"}
- {say: "home", symbol: "home"}
- {say: "to the bathroom", symbol: "bathroom"}
- {say: "to bed", symbol: "bed"}
- "to my room"
- {say: "to school", symbol: "school"}
- {say: "to work", symbol: "work"}
- {say: "to the store", symbol: "store"}
- {say: "to the park", symbol: "park"}
- {say: "to the doctor", symbol: "doctor"}
- {say: "for a walk", symbol: "walk"}
- {say: "for a drive", symbol: "car"}
- {say: "to a friend's house", symbol: "friend"}
- "somewhere else"
- {say: "to the kitchen", min_size: 20}
- {say: "to the library", min_size: 20}
- {say: "to a restaurant", symbol: "restaurant", min_size: 20}
- {say: "to the pool", min_size: 20}
food:
name: Food
parent: want
popup: true
style: {color: food}
items:
- {say: "breakfast", symbol: "breakfast"}
- {say: "lunch", symbol: "lunch"}
- {say: "dinner", symbol: "dinner"}
- "a snack"
- {say: "fruit", symbol: "fruit"}
- {say: "an apple", symbol: "apple"}
- {say: "a banana", symbol: "banana"}
- {say: "bread", symbol: "bread"}
- {say: "rice", symbol: "rice"}
- "soup"
- {say: "chicken", symbol: "chicken"}
- {say: "fish", symbol: "fish"}
- {say: "cheese", symbol: "cheese"}
- {say: "a cookie", symbol: "cookie"}
- "ice cream"
- "something else"
- {say: "pasta", min_size: 20}
- {say: "a sandwich", min_size: 20}
- {say: "pizza", min_size: 20}
- {say: "eggs", min_size: 20}
- {say: "yogurt", min_size: 20}
- {say: "cereal", min_size: 20}
- {say: "vegetables", min_size: 20}
- {say: "cake", min_size: 20}
drinks:
name: Drinks
parent: want
popup: true
style: {color: food}
items:
- {say: "water", symbol: "water"}
- {say: "milk", symbol: "milk"}
- {say: "juice", symbol: "juice"}
- "tea"
- "coffee"
- "a soda"
- {say: "something hot", symbol: "hot"}
- {say: "something cold", symbol: "cold"}
- "something else"
- {say: "hot chocolate", min_size: 20}
- {say: "a smoothie", min_size: 20}
- {say: "with ice", min_size: 20}
activities:
name: Things to do
popup: true
style: {color: do}
items:
- {say: "play a game", symbol: "game"}
- {say: "watch TV", symbol: "tv"}
- {say: "listen to music", symbol: "music"}
- {say: "read a book", symbol: "book"}
- {say: "draw", symbol: "draw"}
- {say: "go outside", symbol: "outside"}
- {say: "go for a walk", symbol: "walk"}
- {say: "play with a ball", symbol: "ball"}
- {say: "sing", symbol: "sing"}
- {say: "see my friends", symbol: "friend"}
- {say: "rest", symbol: "rest"}
- {say: "watch a movie", symbol: "movie"}
- "do something else"
- {say: "dance", symbol: "dance", min_size: 20}
- {say: "cook", symbol: "cook", min_size: 20}
- {say: "swim", symbol: "swim", min_size: 20}
- {say: "do a puzzle", min_size: 20}
- {say: "use the computer", symbol: "computer", min_size: 20}
- {say: "use my tablet", min_size: 20}
people:
name: People
popup: true
style: {color: people}
items:
- "me"
- "you"
- {say: "Mom", symbol: "mom"}
- {say: "Dad", symbol: "dad"}
- {say: "my brother", symbol: "brother"}
- {say: "my sister", symbol: "sister"}
- {say: "my friend", symbol: "friend"}
- {say: "my teacher", symbol: "teacher"}
- "my helper"
- {say: "the doctor", symbol: "doctor"}
- "someone else"
- {label: "A person I know", say: "…", fill: {photo: true, words: true, hint: "Add a photo and their name"}}
- {say: "my grandma", symbol: "grandma", min_size: 20}
- {say: "my grandpa", symbol: "grandpa", min_size: 20}
- {say: "the nurse", symbol: "nurse", min_size: 20}
- {say: "everyone", min_size: 20}
- {label: "Another person I know", say: "…", min_size: 20,
fill: {photo: true, words: true, hint: "Add a photo and their name"}}
feelings:
name: How I feel
popup: true
style: {color: feel}
items:
- {say: "happy", symbol: "happy"}
- {say: "sad", symbol: "sad"}
- {say: "angry", symbol: "angry"}
- {say: "scared", symbol: "scared"}
- {say: "excited", symbol: "excited"}
- {say: "tired", symbol: "tired"}
- "bored"
- "frustrated"
- {say: "worried", symbol: "worried"}
- {say: "sick", symbol: "sick"}
- {say: "OK", symbol: "ok"}
- {say: "confused", symbol: "confused"}
- {say: "calm", min_size: 20}
- {say: "silly", symbol: "silly", min_size: 20}
- {say: "proud", min_size: 20}
- {say: "lonely", min_size: 20}
- {say: "great", min_size: 20}
- {say: "embarrassed", min_size: 20}
answers:
name: Yes, no, maybe
popup: true
style: {color: answers}
items:
- {say: "Yes", symbol: "yes"}
- {say: "No", symbol: "no"}
- "Maybe."
- {say: "I don't know", symbol: "i don't know"}
- "I'm not sure."
- "Sometimes."
- {say: "Not now.", symbol: "now"}
- "Later."
- "Ask me again later."
- {say: "Both.", min_size: 20}
- {say: "Neither.", min_size: 20}
time:
name: When
popup: true
style: {color: time}
items:
- {say: "now", symbol: "now"}
- "later"
- "soon"
- {say: "today", symbol: "today"}
- {say: "tomorrow", symbol: "tomorrow"}
- {say: "yesterday", symbol: "yesterday"}
- {say: "this morning", symbol: "morning"}
- {say: "tonight", symbol: "night"}
- "I don't know when."
- {say: "this afternoon", symbol: "afternoon", min_size: 20}
- {say: "on the weekend", min_size: 20}
- {say: "next week", symbol: "week", min_size: 20}
- {say: "every day", symbol: "day", min_size: 20}
- {say: "before", symbol: "before", min_size: 20}
- {say: "after", symbol: "after", min_size: 20}
- {say: "a long time ago", min_size: 20}
describe:
name: Describe it
popup: true
style: {color: describe}
items:
- {say: "big", symbol: "big"}
- {say: "little", symbol: "little"}
- {say: "hot", symbol: "hot"}
- {say: "cold", symbol: "cold"}
- {say: "good", symbol: "good"}
- {say: "bad", symbol: "bad"}
- {say: "yummy", symbol: "delicious"}
- {say: "yucky", symbol: "yucky"}
- {say: "fast", symbol: "fast", min_size: 20}
- {say: "slow", symbol: "slow", min_size: 20}
- {say: "loud", symbol: "loud", min_size: 20}
- {say: "quiet", symbol: "quiet", min_size: 20}
- {say: "new", min_size: 20}
- {say: "old", symbol: "old", min_size: 20}
- {say: "the same", symbol: "same", min_size: 20}
- {say: "different", min_size: 20}
- {say: "funny", symbol: "funny", min_size: 20}
- {say: "scary", symbol: "scary", min_size: 20}
- {say: "easy", min_size: 20}
- {say: "hard", symbol: "hard", min_size: 20}
things:
name: Things
parent: want
popup: true
style: {color: things}
items:
- {say: "my phone", symbol: "phone"}
- {say: "a book", symbol: "book"}
- "the remote"
- "my glasses"
- {say: "my blanket", symbol: "blanket"}
- {say: "a ball", symbol: "ball"}
- {say: "music", symbol: "music"}
- "my tablet"
- "something else"
- {say: "a toy", symbol: "toy", min_size: 20}
- {say: "my bag", min_size: 20}
- {say: "paper", symbol: "paper", min_size: 20}
- {say: "a pen", min_size: 20}
- {say: "my coat", symbol: "jacket", min_size: 20}
- {say: "my shoes", symbol: "shoes", min_size: 20}
- {say: "the light", min_size: 20}
categories:
name: More words
style: {color: op}
items:
- {label: "Food", go: food, symbol: "food", color: food}
- {label: "Drinks", go: drinks, symbol: "drink", color: food}
- {label: "Places", go: places, color: go}
- {label: "People", go: people, symbol: "friend", color: people}
- {label: "Things to do", go: activities, symbol: "play", color: do}
- {label: "Things", go: things, color: things}
- {label: "How I feel", go: feelings, symbol: "happy", color: feel}
- {label: "When", go: time, symbol: "when", color: time}
- {label: "Body", go: body, symbol: "head", color: wrong}
- {label: "Describe it", go: describe, color: describe}
- {label: "Yes, no, maybe", go: answers, color: answers}