Closed jamjolu closed 6 months ago
I think it should be possible to reopen an issue, if you've closed it, but don't worry.
Thanks for the new proposal. I like it, since it's very generic and can be used in very flexible ways. Therefore it's fitting with the general idea of AsTeRICS Grid to be as flexible as possible for many use cases.
I think of the following extensions of your proposal:
we could provide an optional possibility to add something like tags or a label to word forms. So it could be used in a generic way (like for sibling names) or for something like verb conjugations, where each word form could have a label like this:
1.PS
2.PS
3.PS
...Then we could add an action "change word form to" to any element and e.g. add it to an element containing "I" with "change word form to 1.PS
" changing all words of the grid to word form "1.PS" (if existing). In that way some kind of grammar could be modelled within the configuration without having to add explicit grammar rules for a specific language.
Hi Benjamin,
Yes, going through the exercise of creating a grid set made me realize how challenging it is to create one that was both grammatically complete and efficient as far as minimizing user interactions. Other speech devices use language models that include some features for accessing variations on words in some cases by anticipating what comes next (which I do in some cases), in other cases by providing a way to alter word endings - a special button to add -ing, or similar to a word (for which there is no current action in AG). But, I think the generic word-forms approach offers utility and efficiency. Right now in my grid set, I find that I frequently have to navigate to the verb branch that has the correct conjugation via the Home page which adds at least 3 extra button pushes just to get to the correct verb form. Currently, on my home page, if you select I, You, He, She, etc, navigation takes you to the verb branch that suits the pronoun in the present tense. So, "I said.." requires that I return to the Home page, select the button for verb variations, then select the past tense verb branch, and search grids for the "said" element. I actually think that for students, selecting the correct (or desired) tense or conjugation from the root verb element grid would be instructive, and reduce the navigation load and grid count.
As for using a pop up, I like the idea of the user being able to see all the options from which they can choose, rather than indexing through a list.
Thanks for considering this,
jl
On Mon, Mar 27, 2023 at 4:22 AM Benjamin Klaus @.***> wrote:
I think it should be possible to reopen an issue, if you've closed it, but don't worry.
Thanks for the new proposal. I like it, since it's very generic and can be used in very flexible ways. Therefore it's fitting with the general idea of AsTeRICS Grid to be as flexible as possible for many use cases.
I think of the following extensions of your proposal:
-
we could provide an optional possibility to add something like tags or a label to word forms. So it could be used in a generic way (like for sibling names) or for something like verb conjugations, where each word form could have a label like this:
"am" 1.PS
- "are" 2.PS
- "is" 3.PS ...
Then we could add an action "change word form to" to any element and e.g. add it to an element containing "I" with "change word form to 1.PS" changing all words of the grid to word form "1.PS" (if existing). In that way some kind of grammar could be modelled within the configuration without having to add explicit grammar rules for a specific language.
for verbs we could still use a way to import conjugations (and automatically add the labels) using the API from verbix.com https://api.verbix.com/
I think some kind of popup shown by a separate action that shows all existing word forms would also be great. So e.g. "normal tap" = select element with current word form, "long tap" = show popup with all exsting alternatives, making it possible to directly select one. Although we would have to think about how to make this accessible if alternative input options like scanning are used.
— Reply to this email directly, view it on GitHub https://github.com/asterics/AsTeRICS-Grid/issues/254#issuecomment-1484713043, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF4D6ZW7MBRFDVAINNV73CLW6FE6DANCNFSM6AAAAAAWHTFJK4 . You are receiving this because you authored the thread.Message ID: @.***>
I'm working on a board set that works for different languages. We've already discussed some things, Benjamin, here now some specific examples.
Sign explanation: "xxx" = normal button, speaks xxx zzz = Grammar button, content is not spoken, changes the text of button "xxx" to 'yyy'. Functions summable.
Sentence: You (plural, feminine) aren't doctors.
English: click "You" click 2nd person plural changes all verbs to 2nd person plural, including "be" to 'are' click 'are' click "not" => are + not merge in the speaking bar to aren't click plural (nominative) changes all words to plural, including "doctor" to 'doctors' click 'doctors'.
German: click "Ihr" click 2nd person plural , changes "be" to 'seid' click 'seid' click feminine (nominative, singular) (+ click plural (nominative) but it's the same form in German) changes "kein" to 'keine' click 'keine' click feminine (nominative, singular) + click plural (nominative) changes "Arzt" to 'Ärztinnen' click 'Ärztinnen'
French: click "Vous" click "non" click 2nd person plural changes "être" to 'êtes' click 'êtes' => non + êtes merges to n'êtes in the speaking bar click "pas" click "des" click plural (nominative) changes "docteur" to 'docteurs' click 'docteurs'
Turkish: click "doktor" click "değil (not)" click 2nd person plural changes "olmak (to be)" to... '-siniz'(?) click '-siniz' => değil + -siniz merge to değilsiniz in the speaking bar
(?) Means that I'm not sure which if any changed word the button "olmak" should show after clicking the grammar button, because the wordform depends on the previous word and while you've told me it would be possible to make word changes in the speaking bar according to the previous word (like with are + not => aren't), I could imagine that making already the button show a specific word depending on the word in the speaking bar would be additionally tricky to code? Like after clicking "are" the "not"-button automatically changing to "n't"? As an example for the ending differences in Turkish: "You are doctors" would be click "doktor" click 2nd person plural changes "olmak (to be) to '-siniz'(?) click '-siniz' => doktor + -siniz merge in the speaking bar to the correct form 'doktorsunuz'
click "You" click 2nd person plural changes all verbs to 2nd person plural, including "be" to 'are'
That's the basic form how actions could change word forms which I have in mind. However it would also be possible to attach the action to change to 2nd person plural to the "You" button, so that there is no need to click an extra button for that. But it also will be possible with the extra button.
click "not" => are + not merge in the speaking bar to aren't
I think that will be possible if the not button also is a button which changes the word form, like 2nd person plural before. So it will change all word forms (where existing) to the form labelled with NEGATION
. And therefore it could also change words in the collection bar to this NEGATION
form, which has to be added within the original button for "is/are/aren't". However in this case we'll need a system where it's possible to add multiple labels to word forms like this:
1.P
-> am
2.P
-> are
3.P
-> is
1.P
, NEGATION
-> "am not"2.P
, NEGATION
-> "aren't"3.P
, NEGATION
-> "isn't"So then the first button 2nd person plural selects the first word form with label 2.P
("are") and the not button will then additionally select NEGATION
, so that in total it will select 2.P
+ NEGATION
= "aren't".
To consider here:
NEGATION
form probably will have to be 2 different buttons. Otherwise it will be difficult to know when to add "not" to the bar and when to change the last word to NEGATION
form. Maybe it's possible to only add "not" if the last word in the bar wasn't changed - but this is something which needs more evaluation.2.P
and then NEGATION
and when to not collect / start with a new collection of tags. E.g. if you do:
2.P
and FEMININE
and apply it to the selected word are
. But maybe it's ok to try to apply it and simply discard it, if the tag FEMININE
is not available on the word are
.click 'êtes' => non + êtes merges to n'êtes in the speaking bar
This is different from "are" to "aren't" in the example before since "non" was first. I think in this case the user would have to select "êtes" first and afterwards click not in order to apply the NEGATION
. Or another possibility is that the non button doesn't write something to the bar and just changes "êtes" to "n'êtes" in the grid, which then can be selected.
click 2nd person plural changes "olmak (to be)" to... '-siniz'(?) click '-siniz' => değil + -siniz merge to değilsiniz in the speaking bar
I think I don't fully understand this example. However I think "değilsiniz" probably should be a word form of "olmak", also with the tags 2.P
(or 2.PPLURAL
if plural is different) and NEGATION
. Then the same as for the previous example applies, either "olmak" could be written first and then can be changed using not and 2nd person plural or the other way around (first change the form within the grid, then add it to the bar). I think like in the french example "değil (not)" shouldn't be written to the bar before, since it shouldn't be existing as a separate word in the final sentence, but it's determining the word form of "olmak (to be)".
That's the basic form how actions could change word forms which I have in mind. However it would also be possible to attach the action to change to 2nd person plural to the "You" button, so that there is no need to click an extra button for that. But it also will be possible with the extra button.
So then it would show "You" and "are" in the bar? One thing that speaks against that is that "are" might be need to be used without "you" previously, like in questions (Are you tired?) but if this could also be possible, that's good to know.
for me it's not entirely clear when to "collect" tags like in the example before, so first
2.P
and thenNEGATION
and when to not collect / start with a new collection of tags. E.g. if you do:
- click 2nd person plural changes all verbs to 2nd person plural, including "be" to 'are'
- click 'are'
- click feminine - changes all adjectives (spanish) to feminine form
- here it's the question how the program knows, that in this case we don't want to collect the tags
2.P
andFEMININE
and apply it to the selected wordare
. But maybe it's ok to try to apply it and simply discard it, if the tagFEMININE
is not available on the wordare
.
I'd assume that if the user clicks a "wrong" combination (like 2nd person plural + feminine for an English verb) then it doesn't matter if other fields change. As long as everything resets once a "normal word"-button is clicked.
- a button which writes "not" to the bar and the one which selects the
NEGATION
form probably will have to be 2 different buttons. Otherwise it will be difficult to know when to add "not" to the bar and when to change the last word toNEGATION
form. Maybe it's possible to only add "not" if the last word in the bar wasn't changed - but this is something which needs more evaluation.click 'êtes' => non + êtes merges to n'êtes in the speaking bar
This is different from "are" to "aren't" in the example before since "non" was first. I think in this case the user would have to select "êtes" first and afterwards click not in order to apply the
NEGATION
. Or another possibility is that the non button doesn't write something to the bar and just changes "êtes" to "n'êtes" in the grid, which then can be selected.
Okay, so I guess then some kind of conditional programming "if last word in bar is xxx, replace it with xyy after clicking this button" is not possible or difficult to program?
click 2nd person plural changes "olmak (to be)" to... '-siniz'(?) click '-siniz' => değil + -siniz merge to değilsiniz in the speaking bar
I think I don't fully understand this example. However I think "değilsiniz" probably should be a word form of "olmak", also with the tags
2.P
(or2.PPLURAL
if plural is different) andNEGATION
. Then the same as for the previous example applies, either "olmak" could be written first and then can be changed using not and 2nd person plural or the other way around (first change the form within the grid, then add it to the bar). I think like in the french example "değil (not)" shouldn't be written to the bar before, since it shouldn't be existing as a separate word in the final sentence, but it's determining the word form of "olmak (to be)".
It would be an advanced version of the previously mentioned question. "1.) change this (verb)-button to 2.P after selecting the grammar-button for 2.P 2.) if last word in bar is xxx, replace it with x2z after clicking this now conjugated (verb-)button" respectively "1.) change this (verb)-button to 1.P after selecting the grammar-button for 1.P 2.) if last word in bar is xxx, replace it with x1w after clicking this now conjugated (verb-)button"
The suggestions you've made would also work and I can think of other options too, but purely from the view of how the word would be produced and formed verbally, in the case of Turkish left-to-right, that would be the optimal solution so I want to check if that's possible and if not.
Hi everyone,
I am inclined to think that the introduction of technical jargon and other grammatical understanding requirements to access language excludes communicators who lack those learned skills, but who might otherwise be able to hear when a correct word form "sounds right."
When I constructed Quick Say 20, I did try to anticipate correct verb forms by simply linking to likely grids as in: I --> am (what about the possibility of "will", "was" ?) You --> are ( what about the possibility of "will", "were" ? ) She, it --> is ( what about the possibility of "will", "was" ? ) This doesn't always work, but the communicator can always go to the home page and drill down to the correct word form - at the expense of extra button pushes. Then there is the possibility of some sort of natural language processing that offers predictions for the next word - this seems like a modern approach, but may not work well offline. A simple approach, as I suggested before, is not grammar based, but offers the communicator choices, and can be used in instances to cover verb tenses, singular/plural, fast/faster/fastest, etc.
It would work like this:
Users could rely on their innate grammatical sense to arrive at what sounds right to them.
The main drawback for my simple approach would be potentially many clicks needed to arrive at the desired word form. Another drawback would be that the word list action may preclude auto-linking back to a home page, or previous page - if that is desired.
Anyway, I am glad you all are thinking about this and I look forward to trying out any of your ideas.
Thanks, Jim Luther
So, I am advocating the
On Mon, Mar 27, 2023 at 4:22 AM Benjamin Klaus @.***> wrote:
I think it should be possible to reopen an issue, if you've closed it, but don't worry.
Thanks for the new proposal. I like it, since it's very generic and can be used in very flexible ways. Therefore it's fitting with the general idea of AsTeRICS Grid to be as flexible as possible for many use cases.
I think of the following extensions of your proposal:
-
we could provide an optional possibility to add something like tags or a label to word forms. So it could be used in a generic way (like for sibling names) or for something like verb conjugations, where each word form could have a label like this:
"am" 1.PS
- "are" 2.PS
- "is" 3.PS ...
Then we could add an action "change word form to" to any element and e.g. add it to an element containing "I" with "change word form to 1.PS" changing all words of the grid to word form "1.PS" (if existing). In that way some kind of grammar could be modelled within the configuration without having to add explicit grammar rules for a specific language.
for verbs we could still use a way to import conjugations (and automatically add the labels) using the API from verbix.com https://api.verbix.com/
I think some kind of popup shown by a separate action that shows all existing word forms would also be great. So e.g. "normal tap" = select element with current word form, "long tap" = show popup with all exsting alternatives, making it possible to directly select one. Although we would have to think about how to make this accessible if alternative input options like scanning are used.
— Reply to this email directly, view it on GitHub https://github.com/asterics/AsTeRICS-Grid/issues/254#issuecomment-1484713043, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF4D6ZW7MBRFDVAINNV73CLW6FE6DANCNFSM6AAAAAAWHTFJK4 . You are receiving this because you authored the thread.Message ID: @.***>
So then it would show "You" and "are" in the bar? One thing that speaks against that is that "are" might be need to be used without "you" previously, like in questions (Are you tired?) but if this could also be possible, that's good to know.
I think all of this should be possible:
2.PP
which changes the word forms of other elements to a specific label like 2.PP
, so changing "is" to "are".2.PP
, but doesn't add anything to the bar.So the user should be as flexible as possible to create a solution that fits best for a use case.
As long as everything resets once a "normal word"-button is clicked.
Yes, that's where I'm not completely sure, when to reset the collection of tags in the background. But yes, probably if any element without an "change word form"-action is selected. Maybe also if the collected tags like 2.P
and FEMININE
aren't existing for any element.
Okay, so I guess then some kind of conditional programming "if last word in bar is xxx, replace it with xyy after clicking this button" is not possible or difficult to program?
Nearly everything you can imagine is possible to program ;) However for me the goal is to create a system that's as easy and at the same time as flexible as possible. So if the goal to change "êtes" to "n'êtes" is reachable using the existing idea (like I've described it) - I think it's not good to add additional logic, which will probably confuse many users.
The suggestions you've made would also work and I can think of other options too, but purely from the view of how the word would be produced and formed verbally, in the case of Turkish left-to-right, that would be the optimal solution
click "doktor" click "değil (not)" click 2nd person plural changes "olmak (to be)" to... '-siniz'(?) click '-siniz' => değil + -siniz merge to değilsiniz in the speaking bar
So if it's about the order of clicking, I think this should be possible with the proposed system:
NEGATION
- doesn't add something to the bar, but changes all word forms to NEGATION
, so "olmak" to "(not) olmak" (whatever the base form of negation is here)In this example "değilsiniz" is stored and defined as a word form of "olmak" with tags 2.PP
and NEGATION
which is intuitive and understandable. If I would have to define any rule like "değil" + "olmak" + "2.PP" = "değilsiniz"
it wouldn't be so clear where to define this and therefore probably more confusing for the user.
Thanks @jamjolu for your thoughts!
I think your ideas could also be integrated or be a special form of the approach with tags I'm discussing with @msantos-87.
I --> am (what about the possibility of "will", "was" ?)
Here it could be possible to define word forms of and elment with the base form "be" like this:
1.P
, INFINITIVE
: "am"1.P
, PAST
: "was"1.P
, FUTURE
: "will be"Then there could be an action like change to 1.P
on the element "I", so clicking on on it adds "I" to the bar and at the same time changes "be" to the first word form including 1.P
= "am" in the grid. Then at the "be" ("am") button there could be another action defined like go to next word form , so clicking on "am" adds "am" to the bar and at the same time changes "am" to "was". The user then could click "was" in order replace "am" with "was" in the bar, or leave it as it is, if "am" is the desired form.
A simple special form of the approach would be to define word forms of an element without any tags so, e.g.:
As before an action like go to next word form on this element would make it possible to choose one of the siblings.
The page designer would add a "word list" action to a grid element.
Yes, I think both should be in the same tab for "word forms" in the "edit element" dialog. There you could define word forms with tags to be able to do more sophisticated things like discussed before or only a list of words without tags for the simple use case, like for the siblings.
A question that arises for me: "How to manage the tags for word forms"? Some possibilities:
1.P
, 2.P
, ... NEGATION
, PLURAL
, ... - maybe with the possibility to extend these default tags with own ones.1.P
, PLURAL
), (1.P
, PLURAL
, NEGATION
), (1.P
, PLURAL
, NEGATION
, PAST
), ...VERB
-> (1.P
, PLURAL
), (1.P
, PLURAL
, NEGATION
), (1.P
, PLURAL
, NEGATION
, PAST
), ...NOUN
-> (SINGULAR
), (PLURAL
), (SINGUAR
, ACCUSATIVE
), ...ADJECTIVE
-> (MASCULINE
), (FEMININE
)VERB
and get all predefined groups of tags, which then only have to be filled with the correct values ("are", "aren't", "weren't", ...). For verbs these forms could automatically be retrieved from the verbix API.Yes, I think what you are proposing would work well for generic word forms. I wonder if adding a "next word form" element could be added to the Global Grid to cycle through options, if there are any? And, would that be preferable?
Anyway, I am open to trying anything.
By the way, I just put together an audio book search and play page based on a collaboration between Project Gutenberg (public domain literature in English) and Microsoft AI where the folks at Microsoft converted 4840 texts to audio books. The PG+M Project page is a simple flat list of the 4840 books in alphabetical order- no search, no embedded player. https://marhamilresearch4.blob.core.windows.net/gutenberg-public/Website/index.html#Listen They do have links to where the books can be searched such as at the Internet Archive and other podcast aggregators, but nothing that can be customized for users who have accessibility challenges.
My page offers search by author or title and a booklist feature so the user can save books they wish to listen to. The playpoint for each book is also saved so user can play the audio book from where they last paused. I leveraged a prior web app I made to provide supports for multiple access methods, various TTS voices, various foreground/background color themes, etc. There are a few bugs related to a YouTube player that can cause the page to hang (usually refreshing the page clears the errors). Also, currently the page voice defaults to English, but on iPads I get all kinds of non-English TTS voices causing comical pronounciation issues. https://jamjolu.neocities.org/gutenberg/gutenberg_AWP https://jamjolu.neocities.org/gutenberg/gutenberg_AWP I have spent too much time on the above page, but I do hope to iron out the wrinkles sometime, and to put together a YouTube demo/how-to.
Thanks, jl
On Tue, Jan 2, 2024 at 7:14 AM Benjamin Klaus @.***> wrote:
Thanks @jamjolu https://github.com/jamjolu for your thoughts!
I think your ideas could also be integrated or be a special form of the approach with tags I'm discussing with @msantos-87 https://github.com/msantos-87.
I --> am (what about the possibility of "will", "was" ?)
Here it could be possible to define word forms of and elment with the base form "be" like this:
- 1.P, INFINITIVE: "am"
- 1.P, PAST: "was"
- 1.P, FUTURE: "will be"
Then there could be an action like change to 1.P on the element "I", so clicking on on it adds "I" to the bar and at the same time changes "be" to the first word form including 1.P = "am" in the grid. Then at the "be" ("am") button there could be another action defined like go to next word form , so clicking on "am" adds "am" to the bar and at the same time changes "am" to "was". The user then could click "was" in order replace "am" with "was" in the bar, or leave it as it is, if "am" is the desired form.
A simple special form of the approach would be to define word forms of an element without any tags so, e.g.:
- base form (label): "sibling"
- other forms: "max", "anna", "peter"
As before an action like go to next word form on this element would make it possible to choose one of the siblings.
The page designer would add a "word list" action to a grid element.
Yes, I think both should be in the same tab for "word forms" in the "edit element" dialog. There you could define word forms with tags to be able to do more sophisticated things like discussed before or only a list of words without tags for the simple use case, like for the siblings.
— Reply to this email directly, view it on GitHub https://github.com/asterics/AsTeRICS-Grid/issues/254#issuecomment-1873953420, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF4D6ZVJYXIF6KFKRAONN5DYMP2ZFAVCNFSM6AAAAAAWHTFJK6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZTHE2TGNBSGA . You are receiving this because you were mentioned.Message ID: @.***>
I wonder if adding a "next word form" element could be added to the Global Grid to cycle through options, if there are any? And, would that be preferable?
I think it should be possible. However then it probably would only cycle through the forms for the last element added to the bar and not all elements with word forms in the grid?!
By the way, I just put together an audio book search and play page based on a collaboration between Project Gutenberg (public domain literature in English)
Great idea. I've planned an integration of podcasts to AG, which would be quite similar in terms of listening to long audio files. However I've not thought about it in detail and further discussions about it should be done in a separate issue.
I have more questions about the word form implementation. I've to decide how to save the data internally and this has implications on the usability. So we have to decide if:
1.P
+ NEGATION
) and for another language (PLURAL
, FEMININE
). This example doesn't make sense of course, but maybe in some cases it makes sense?!1.P
+ NEGATION
) for instance for "German", this combination of tags is also available in all other languages where word forms for this element are defined. However if a word form doesn't make sense for a specific language, the value could simply be empty.What do you think?
I think (2) makes more sense. Then it would be only needed to define all possible tag combinations like (1.P
+ NEGATION
), (2.P
+ NEGATION
), (3.P
+ NEGATION
), ... once and then fill the values for all languages. If there is a special case for a language, then you could simply add a new tag combination and fill the value only for this language.
A set of possible tag combinations additionally could be linked to specific word types, which would reduce the work of setting up word forms, see my previous question.
So technically speaking the data format would be something like this:
let wordforms = [
{
tags: ["BASE"],
value: {
"DE": "sein",
"EN": "be"
}
},
{
tags: ["1P"],
value: {
"DE": "bin",
"EN": "am"
}
},
{
tags: ["2P"],
value: {
"DE": "bist",
"EN": "are"
}
},
{
tags: ["1P", "NEGATION"],
value: {
"DE": "bin nicht",
"EN": "am not"
}
},
{
tags: ["2P", "NEGATION"],
value: {
"DE": "bist nicht",
"EN": "aren't"
}
}
// ...
]
And this would be an example, were some tags are only for available for specific languages:
let wordforms = [
{
tags: ["BASE"],
value: {
"EN": "red",
"ES": "rojo"
}
},
{
tags: ["FEMININE"],
value: {
"ES": "roja"
}
},
{
tags: ["MASCULINE"],
value: {
"ES": "rojo"
}
}
]
So if the current content language is "EN" and the action change to MASCULINE
is performed, the word form would simply stay at the base form "red".
For the "sibling usecase" I think it will be something like this:
let wordforms = [
{
value: {
"DEFAULT": "Benjamin",
}
},
{
value: {
"DEFAULT": "Jim"
}
},
{
value: {
"DEFAULT": "Matthew",
"DE": "Matthias",
"EN": "Matthew",
"ES": "Mateo",
"IT": "Matteo"
}
}
]
So Benjamin
and Jim
would be displayed for all languages and the third one would be different accross languages (but default to Matthew
for all non-defined languages). Here we wouldn't necessarily have any tags, since it's just a list of words.
I think that will be possible if the not button also is a button which changes the word form, like 2nd person plural before. So it will change all word forms (where existing) to the form labelled with NEGATION. And therefore it could also change words in the collection bar to this NEGATION form, which has to be added within the original button for "is/are/aren't". However in this case we'll need a system where it's possible to add multiple labels to word forms like this:
1.P -> am 2.P -> are 3.P -> is 1.P, NEGATION -> "am not" 2.P, NEGATION -> "aren't" 3.P, NEGATION -> "isn't" So then the first button 2nd person plural selects the first word form with label 2.P ("are") and the not button will then additionally select NEGATION, so that in total it will select 2.P + NEGATION = "aren't".
I just realised that I'm not sure if I understood this correctly.
1.P
changes the button "be" to "am"
Click on "am" adds it to the collection bar
Click on NEGATION
changes the "am" in the collection bar to "am not"
Like that?
Because if that's the way you meant it, that's the same I meant to achieve with the if-then suggestion.
And that would just change the last word? So one could write "I am small, you aren't small"?
A question that arises for me: "How to manage the tags for word forms"? Some possibilities:
I'd go with 2 (default tags for the most important concepts like 1.P, 2.P, ... NEGATION, PLURAL, ... with the possibility to extend these default tags with own ones) but while trying it to keep it as language-neutral as possible. Which could be done by using abbreviations, so not SINGULAR but SG, PLURAL but PL, ACCUSATIVE but ACC etc. Also yes to groups of tags, though not sure default combinations would be needed. 4 just as long as this is an optional thing and all tags are available when no word form is chosen, because what is an adjective in one language is a noun in another etc. Or like word can be used both as noun and as verb.
I have more questions about the word form implementation. I've to decide how to save the data internally and this has implications on the usability. So we have to decide if:
The most common case will be that a word in one language can use tags that another language doesn't need. E.g. an example with an adjective like "small". For English the tags (comparative, superlative) is all that could be applied to the word. For Spanish the tags (masculine/feminine, singular/plural, comparative, superlative, diminutive) could be applied.
1.P changes the button "be" to "am" Click on "am" adds it to the collection bar Click on NEGATION changes the "am" in the collection bar to "am not" Like that? Because if that's the way you meant it, that's the same I meant to achieve with the if-then suggestion.
Yes, exactly, this was my idea. And yes, in this case you can achieve the same thing like with the if-then rules, but with no extra system which has to be there to define these if-then rules - that's why I like it better.
And that would just change the last word? So one could write "I am small, you aren't small"?
Yes. We also could think of some special rules like "if a button changes the last word in the bar, don't add it to the bar, otherwise add it" and "if a word form is added to the bar, where the last word in the bar caused this word form, remove the last word before adding the new one". A practical example:
NEGATION
Other way:
NEGATION
and NEGATION
is a tag of the currently added word form "aren't" - so only "aren't" remains in the barThe most common case will be that a word in one language can use tags that another language doesn't need. E.g. an example with an adjective like "small". For English the tags (comparative, superlative) is all that could be applied to the word. For Spanish the tags (masculine/feminine, singular/plural, comparative, superlative, diminutive) could be applied.
OK, so you would think that tags should be completely independent for every language? Maybe with the possibility to add some predefined / user defined sets of tags to a word form for a specific language (I think of verbs, where it will be cumbersome to add all persons / plural for every language again)? Then the question of how to implement / define the change to form XY
actions becomes harder. Then probably we would need to be able to define XY
separately for every language.
So the word forms would look more like this (just writing it down for me, in order to be able to imagine):
let wordforms = {
"EN": [
{
tags: ["BASE"],
value: "tall"
},
{
tags: ["COMPARATIVE"],
value: "taller"
},
{
tags: ["SUPERLATIVE"],
value: "tallest"
}
],
"ES": [
{
tags: ["BASE"],
value: "alto"
},
{
tags: ["FEMININE"],
value: "alta"
},
{
tags: ["MASCULINE"],
value: "alto"
},
{
tags: ["MASCULINE", "PLURAL"],
value: "altos"
},
{
tags: ["MASCULINE", "SUPERLATIVE"],
value: "el mas alto"
}
]
}
And here I think it needs some feature to quickly add sets of tags to a word, in order to prevent duplicated work. So if adding many spanish adjectives, to quickly add serveral word forms with tags: ["BASE"]
, ["FEMININE"]
, ["MASCULINE"]
, ["FEMININE", "PLURAL"]
, ...
For actions we would need something like this:
let changeWordAction = {
"EN": {
changeToTags: ["SUPERLATIVE"]
// maybe more properties
},
"ES": {
changeToTags: ["MASCULINE", "SUPERLATIVE"]
// maybe more properties
}
}
Yes, exactly, this was my idea.
Yay, perfect =)
"if a button changes the last word in the bar, don't add it to the bar, otherwise add it"
So that would in the case of "am/is/are not" result in one not having to programm "am not" in the "to be" button, because that would happen automatically? Sure could be useful in some cases / for some languages.
"if a word form is added to the bar, where the last word in the bar caused this word form, remove the last word before adding the new one".
Can't right now think of a case where that would be useful respectively how it isn't already kinda covered with the other options but I haven't finished going through all of the grammar of the languages that I want to translate to.
OK, so you would think that tags should be completely independent for every language? Maybe with the possibility to add some predefined / user defined sets of tags to a word form for a specific language (I think of verbs, where it will be cumbersome to add all persons / plural for every language again)?
I think having a set of predefined tags for all languages of the most common flexions/changes not connected to a word form can be useful. Jim and others would have to say if they deem an additional connection to word forms useful for them, for me I don't need it.
I think the most common tags would be for verbs 1.p.sg. 2.p.sg. 3.p.sg. 1.p.pl. 2.p.pl. 3.p.pl.
then for adjectives comparative, superlative and for nouns maybe all the "common" cases? nominative, accusative, dative, genitive, ablative, locative, instrumental. And indefinite/definite. And for all three word forms masculine/feminine and singular/plural
Then the question of how to implement / define the change to form XY actions becomes harder. Then probably we would need to be able to define XY separately for every language. So the word forms would look more like this (just writing it down for me, in order to be able to imagine):
Not sure if I'm understanding this correctly. Is XY
the name of the tag? Because if yes, then in the example it should FEMININO, MASCULINO, SUPERLATIVO.
Though for my set, the XY would be the same accross languages, so like... neg. for negation, independently whether you are on the English, German or French version of the set, and I'd document it for people so they understand the tags even if "neg." doesn't mean anything at all in their language. Having XY different accross languages (e.g. accusative
in English, Akkusativ
in German) might be more user-friendly but could lead to a mess of tag names. I can provide a list of all the tags I will use once I finished going through the grammar of the languages.
But yeah, I'm not sure if I've understood that correctly.
So that would in the case of "am/is/are not" result in one not having to programm "am not" in the "to be" button, because that would happen automatically?
Can't right now think of a case where that would be useful
Please look at my two practical examples in my comment right below these rules to see where I think these rules could make sense.
Not sure if I'm understanding this correctly. Is XY the name of the tag?
No, it's the tag to which the word forms should be changed to. I also think that I wouldn't translate tag names, so NEGATION
or 1.PERS
or whatever is the same for everyone in every language. My question was related to this, imagine:
FEMININE
for SpanishFEMININE
for this same word for EnglishFEMININE
we'll have to define that this is only performed, if the current language is Spanish. But maybe it's not needed. I think probably I'll just start to implement something, which then can be tested - maybe it was enough theoretical thinking for now ;)My first draft for the UI defining word forms:
On the top possibilities to add new word forms and import / export them from / to some spreadsheet software. In the table the possibilities to edit, remove and rearrange them:
Rendering of the tags within the table should be the same like in the selection element, but as said, it's the first draft. Feel free to give feedback.
I just shouldn't multitask while writing a post here ;) Re-writing my previous post.
My first draft for the UI defining word forms:
It's looking good for me, very intuitive and user-friendly. :)
Also, something that just crossed my mind: Since you wrote that it could be possible to import conjugations (and automatically add the labels) using the API from verbix.com... If tables with all the necessary flexions for non-verbs exist for all needed languages and they are somewhere online, would it be possible to import them in one go via API too? After applying whatever-necessary programming to it, of course, I'm struggling to understand how APIs work...
Also, will the imported conjugations be visible in the word forms overview or will only the word forms that people specifically create be visible there?
If tables with all the necessary flexions for non-verbs exist for all needed languages and they are somewhere online, would it be possible to import them in one go via API too?
There are services which really provice an API, which is meant to be used programmatically by other applications (like Verbix). So you can do a request to a specified enpoint like https://api.verbix.com/finder/json/<apikey>/<version>/<language>/<verb>
and get a machine-readable result (e.g. in JSON format).
There are many other services, which also provide the data, but no API, e.g. Reverso. Now of course it is also possible to programmatically retrieve data from a website like this, however it's more effort and probably also often violates the copyright/terms of use of the sevice.
I saw that you have to apply to get access to the Verbix API, which I've done now.
There are also other projects like these which provide ways to use data from an open source, which has no API (like Wiktionary):
If tables with all the necessary flexions for non-verbs exist for all needed languages and they are somewhere online, would it be possible to import them in one go via API too? After applying whatever-necessary programming to it, of course, I'm struggling to understand how APIs work...
Yes, if we find good APIs, which is the hard part. I've also found paid ones like ultralingua.com, but the quality of the result wasn't very convincing for my tests.
Also, will the imported conjugations be visible in the word forms overview or will only the word forms that people specifically create be visible there?
All should be visible in the table, shouldn't matter if it's added manually or via spreadsheet import or an API.
If tables with all the necessary flexions for non-verbs exist for all needed languages and they are somewhere online, would it be possible to import them in one go via API too? After applying whatever-necessary programming to it, of course, I'm struggling to understand how APIs work...
To clarify where I want to go to with this question: For the word forms that are not available through verbix - or if verbix wouldn't work then for all necessary forms - I will be producing them myself. Originally in excel but that can then be transformed to whatever other format needed. So, once this data is created, I'd be totally fine with making it publicly available for everyone under CC, like it could be uploaded to the domain of my project or even directly to asterics.eu or to github. What I want to know as I don't understand the programming part of it, is if it would be possible to transform/program the data in a way that would make it available for automatic use in AsTeRICS Grid for everyone, like you're planning with verbix? Maybe even in a way where anyone who wants to add more words or more languages would be free to contribute and it would then again be automatically available for AsTeRICS Grid? (If I'm understanding the screenshot correctly, with the import option you've created one would have to import the data for each word separatedly, not all at once?)
All should be visible in the table, shouldn't matter if it's added manually or via spreadsheet import or an API.
Great! :) If possible it would then be great to have some way to either filter it or to have subsections for different languages or something else like that. From the screenshot at the moment it looks like all word forms for all languages would be listed one after the other, not just the language you're currently in, and when you have a boardset that is translated to 5 languages, even if you just have 12 verb forms (present, past) for each it would be already 60 words and it would quickly get hard to keep an overview.
So, once this data is created, I'd be totally fine with making it publicly available for everyone under CC, like it could be uploaded to the domain of my project or even directly to asterics.eu or to github.
That's great and very much fits with our idea of open ressources for AAC 👍
What I want to know as I don't understand the programming part of it, is if it would be possible to transform/program the data in a way that would make it available for automatic use in AsTeRICS Grid for everyone, like you're planning with verbix?
Yes, it would be definitely possible, however of course some more work to do. At the moment I would just try to create the data in machine-readable way, then it can be transformed to whatever needed for an API easily. I can imagine creating such an API on my own in the future or maybe also @arasaac-dga could imagine to do it?!
The easiest way would be just to upload it on github (probably best within an own repository) and if the structure is good, then github also could be used as an API, like ian-hamlin/verb-data already did it. At this repo it's already possible to use the github API like https://raw.githubusercontent.com/ian-hamlin/verb-data/master/json/spanish/content/e/echar.json and directly use this within AsTeRICS Grid. This repo could also be forked (copied) and then more language/words could be added.
But as said, the first step is to create the data in a machine readable way. I would propose this format within a spreadsheet: | LANG | BASE | TAGS | VALUE |
---|---|---|---|---|
DE | sein | 1.PERS | bin | |
DE | sein | 2.PERS | bist | |
DE | sein | 3.PERS | ist | |
DE | sein | 1.PERS, PLURAL | sind | |
DE | sein | 2.PERS, PLURAL | seid | |
DE | sein | 3.PERS, PLURAL | sind |
Then it's easy to filter the words within the spreadsheet and also to import/export them to/from AsTeRICS Grid or any format that's needed for an API. It would be also possible to try to write a program that automatically extracts word forms data from these Wiktionary tables: https://de.wiktionary.org/wiki/Flexion:sein - it would be OK, since these ressources are already CC licensed.
But as said, the first step is to create the data in a machine readable way. I would propose this format within a spreadsheet:
Perfect :)
I have moved forward in implementing and I have a question. Look at this example:
What happens in the background:
2.PERS
-> "be" changes to "are"2.PERS
and NEGATION
are accumulated for "are" in the bar -> changes to "aren't" in the bar. This accumulation of the tags is only done for this one word in the bar, the general collection of tags was cleared in the last step, so there is only the NEGATION
tag and the "be" element shows the first form with NEGATION
, which is "am not"3.PERS
-> collection of tags in the background is NEGATION
and 3.PERS
-> "be" shows "isn't"My question: how now one could write "you aren't he is" instead of "you aren't he isn't" using our system? I think we need some extra button/action "reset word forms" for cases like this. Or do you have a different idea?
With this clicking order everything would be fine:
So the problem is only for the case where the word in the bar is changed afterwards.
Would it be possible to clear the tags whenever a grammar button is clicked that changes a word in the speaking bar? (Provided that "2.Pers" and "negation" are different kinds of grammar buttons in that if one were to click first "you" then "be" and afterwards "2.pers." it would not change the "be" in the bar to "are"?) Or better, would it be possible to tell it to apply the negation only to the bar and not the rest of the board?
Theoretically anything which is a consistent rule is possible to program. However I wonder what's most intuitive and understandable.
I wonder what's the benefit if it's possible to change word forms within the bar and within the grid at the same time or if it would be better to globally choose between one of both approaches:
You
-> be
-> 2.PERS
-> NEGATION
(changes "be" to "aren't" in bar) -> He
-> be
-> 3.PERS
(changes "be" to "is" in bar)You
-> 2.PERS
-> NEGATION
-> be
(which is changed to "aren't" in the element) -> He
-> 3.PERS
-> be
(which is changed to "is" in the element)I think approach (2) in general is more intuitive and also has the benefit that "You" could already have the action change to 2.PERS
, so in total it would need less clicks. From a learning perspective maybe it doesn't make sense to mix both approaches, for the learner it probably won't be consistent if he/she sometimes has to press the grammar button before and sometimes after the word that has to be changed.
Approach (2) additionally has the benefit, that the acoustic feedback is correct.
For (1) the learner hears:
You
be
he
be
-> after clicking on the bar: You aren't he is
For (2) the learner hears:
You
aren't
he
is
-> after clicking on the bar: You aren't he is
So my question is: why not stick only with approach (2), what would be the downside of it?
I've released a first test version to: https://grid.asterics.eu/latest/
There are now 4 types of "change word form" actions:
Change word form in grid elements
: only changes word forms in grid elements, not in the barChange word form in collection element
: only changes word forms in the bar (only the last element)Change word form everywhere
: change word forms in the bar and in elementsChange this element to next word form
: only iterates through the word forms of this element, like @jamjolu suggestedThis is my demo for the different options, you can also use it (you have to unzip it): test-grammar_2024-01-12_14-37_asterics-grid-full-backup.zip
Here a screencast of the demo with Change word form in grid elements
:
There now is also the possibility to import/export word forms from spreadsheets. Please test and give me your feedback.
Ok, It took me some time to figure this out - I learn best by fiddling with things - and I think I understand how it works now. I did notice that in the change everywhere scheme a little strangeness:
-ing or -ing > be
I am pretty sure this is not what is intended, but correct me if I am wrong.
Thanks, Jim Luther
On Fri, Jan 12, 2024 at 8:50 AM Benjamin Klaus @.***> wrote:
I've released a first test version to: https://grid.asterics.eu/latest/
There are now 4 types of "change word form" actions:
- Change word form in grid elements: only changes word forms in grid elements, not in the bar
- Change word form in collection element: only changes word forms in the bar (only the last element)
- Change word form everywhere: change word forms in the bar and in elements
- Change this element to next word form: only iterates through the word forms of this element, like @jamjolu https://github.com/jamjolu suggested
This is my demo for the different options, you can also use it (you have to unzip it): test-grammar_2024-01-12_14-37_asterics-grid-full-backup.zip https://github.com/asterics/AsTeRICS-Grid/files/13919717/test-grammar_2024-01-12_14-37_asterics-grid-full-backup.zip
Here a screencast of the demo with Change word form in grid elements: chrome_sER85IuPSH.gif (view on web) https://github.com/asterics/AsTeRICS-Grid/assets/2537025/de3f4e89-8b4b-49f0-8db8-5b0e13847723
There now is also the possibility to import/export word forms from spreadsheets. Please test and give me your feedback.
— Reply to this email directly, view it on GitHub https://github.com/asterics/AsTeRICS-Grid/issues/254#issuecomment-1889259120, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF4D6ZWTI5NJAYHS2DSLYUDYOE5RRAVCNFSM6AAAAAAWHTFJK6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBZGI2TSMJSGA . You are receiving this because you were mentioned.Message ID: @.***>
So my question is: why not stick only with approach (2), what would be the downside of it?
It would not work for "I am not" (respectively "I'm not"), the user would have to type a different kind of sequence instead of being able to stick to the same pattern for all conjugations. For this specifical example "I am not" and "you are not" are perfectly correct sentences, so it wouldn't sound fully wrong, it's just like a neat thing that the words are changed in the bar to the coloquial form without the user having to think about it. Or am I missing something?
There are now 4 types of "change word form" actions:
Thanks! :) Time for experimenting.
- However, If I try: I > am > Negation I get: "I am not" and I get kind of stuck. The label of the element for the base word "be" has changed to "am not" with no obvious way to return to the base value "be".
Yes, that's the problem for the change everywhere
action, which changes the last word in the bar and the words within the grid at the same time. What's happening in the background:
1.PERS
1.PERS
, NEGATION
, for all other words the globally collected tag is only NEGATION
-> nevertheless "am not" in the element, since it's the first word form with NEGATION
in the list.GERUND
to "am not" in the bar -> there is no form for 1.PERS
, NEGATION
, GERUND
, therefore it's discarded and it stays at 1.PERS
, NEGATION
GERUND
to the globally collected tags which are now: NEGATION
and GERUND
. There is no word form defined for that, so the element in the grid shows "be", which is the base form.That's what's happening in the background. If you're adding another word form like:
NEGATION
, GERUND
-> not being
and then try the same thing, I think it's more clear what's happening and what's the problem:
We want that NEGATION
is applied to the bar, and not to the grid, but that would be the action "change only in bar", which is already existing. For "change everywhere" that's what we get and what doesn't make sense in some cases.
I can add another action "reset word forms" which clears the currently globally collected tags and fixates the last word in the bar, but this would have to again an additional another button and makes the approach even more complex. In general it's the question how far/complex it should be and if there are users which would need to write "I am not being" using symbols and cannot simply use a keyboard. Aside from that: it's already possible to write "I am not being", however then one has to stick with either "change in bar" or "change in grid elements" and not use "change everywhere".
It would not work for "I am not" (respectively "I'm not"), the user would have to type a different kind of sequence instead of being able to stick to the same pattern for all conjugations. For this specifical example "I am not" and "you are not" are perfectly correct sentences, so it wouldn't sound fully wrong, it's just like a neat thing that the words are changed in the bar to the coloquial form without the user having to think about it. Or am I missing something?
Hmm, I think both approaches would in general work, but there are these pros and cons for using actions "change word forms everywhere":
I wonder if it maybe would be better to stick with "change word forms only in elements" - there is this single downside of non-intuitive order of clicking, however maybe for the learner it's also an advantage to have to the press the buttons in the same order for every language?!
I've found a way of making the "I am not being" sentence easily possible with the "change everywhere" action. I've changed the way how word forms are determined depending on which tags are added:
1.PERS
and NEGATION
, adding GERUND
doesn't change anything, if no word form is defined for these 3 tags1.PERS
,NEGATION
and GERUND
and if there is no word form for these tags, then tags are discarded, starting from the beginning, so step 2 is to search for NEGATION
and GERUND
and finally only for GERUND
. If any of these combinations yields a result, it is used.As a result it's possible to do:
I
-> am
-> NEGATION
-> GERUND
-> being
which results in I am not being
It also makes it possible to do:
1.PERS
-> 2.PERS
-> 3.PERS
-> current form for "be" is "is", since the last one selected 3.PERS
defines the current form. So it's possible to somehow search through word forms by clicking several actions in sequence.
One question:
Currently clicking the same change wordform action several times toggles the tag, so e.g. clicking NEGATION
and then NEGATION
again, removes it from the currently collected tags. Do you think this behaviour should be configurable? I think I'll just add an option to the action to configure it.
I've just released a new test version to https://grid.asterics.eu/latest/
Reset currently displayed word forms
which resets all word forms within the grid and fixates the word form of the last element in the barSee this screencast for 2 ways how it's now possible to write I am not being
(the "RESET" now doesn't make very much sense since it's possible to reach the goal easier, but maybe there are cases where this action is needed):
Here an updated backup of my test configuration: test-grammar_2024-01-15_14-41_asterics-grid-full-backup.zip
I've just changed the format for importing / exporting word forms, now it's:
Reason: with this format it's possible to also import word forms without language or tags.
I finally had some time to test things. It's looking good! 👍
I think at the moment is not possible to add / not add an element to the collect element based on the language? Just as a general option for the button? Edit: Thinking about it, having just that option language-specific wouldn't make sense, it would've to be combined with the option of speaking the button. (So, "add this button to the collect element and speak it" in language A, "don't add nor speak this button but use these option from the 'change word forms'" in language B). It would be neat to be able to do that, but if it gets too complicated, I also can work my way around and program things differently.
but if it gets too complicated, I also can work my way around and program things differently.
Experimenting with alternatives. The example is: "Where are you?" in English respectively "Whereareyou" ('are you' as an added suffix) in Syrian:
Version 1:
English:
Click 'where' -> added to collect element
click question
(option change in grid elements), click 2.p.sg.
(option change in grid elements) -> 'to be' in grid changes to 'are you'
click 'are you' -> added to collect element.
I could do the same programming for Syrian.
Disadvantage: that would result in "where areyou" so the suffix wouldn't be added as suffix but it would be a separate word and hence potentially be pronounced wrongly.
Version 2:
English: Same
Syrian:
Not add a label to 'where' just add where
tag
Click 'where' -> added to collect element but nothing is spoken
Click 2.p.sg.
(option change in grid elements) -> 'to be' in grid changes to 'whereareyou'
Click 'whereareyou' -> added to collect element.
Disadvantage: the user can't say 'where' as an only word, respectively there would need to be two buttons for 'where', once to use it as single word for other sentences (e.g. for 'where the house?', there is no 'is' used in this case), once to use it with the word 'to be' and the user would need to understand this cognitively.
Version 3:
English: Same
Syrian:
Click 'where' -> added to collect element
click 2.p.sg.
(option change in collect element), click to be
(option change in collect element) -> changes 'where' to 'whereareyou' in the collect element, but it also adds the 'to be' to the collect element, so this version doesn't work.
Any option I am missing?
Another thing I noticed, is, that it's not possible to combine the 'change word form in...' and 'change this element to next word form'. So, I can't make it possible for a more advanced user to decide whether they want to say 'you are' by either clicking twice on 'to be' or by clicking 2.p.sg.
and 'to be'. If I have both options programmed and try to use the grammar buttons version, it shows the correct change to 'you are' in the grid but then shows 'I am' in the collect element as it's the first word form in the list.
I could imagine that a combination could be useful for advanced users who then could select the most common forms (e.g. I am, you are, he is) by multiple clicking and more complex forms with the grammar buttons (e.g. 'they have been' through 2.p.pl.
present perfect continuous
). I also could imagine that not many users would have this skill, though, so if it's not possible to combine, that's also fine.
So, "add this button to the collect element and speak it" in language A, "don't add nor speak this button but use these option from the 'change word forms'" in language B
As said, everything is possible to program - however, I think I wouldn't do it, since it's very complicated for both the professional user and the AAC user to understand it. I think the system should be as easy as possible and work the same way in every language.
Version 1: English: Click 'where' -> added to collect element click question (option change in grid elements), click 2.p.sg. (option change in grid elements) -> 'to be' in grid changes to 'are you' click 'are you' -> added to collect element. I could do the same programming for Syrian. Disadvantage: that would result in "where areyou" so the suffix wouldn't be added as suffix but it would be a separate word and hence potentially be pronounced wrongly.
That should be possible to fix via a property use as suffix
for the word forms. If activated, the space between the last word and the word form could be omitted (at least for speaking, it will still be 2 separate elements in the bar). I also think that it would be most consistent to have are you
as a word form of be
with tags QUESTION
, 2.PERS
.
That's also an open question: which tags should be selectable by default? Currently we have these:
'NEGATION', 'SINGULAR', 'PLURAL', '1.PERS', '2.PERS', '3.PERS', '1.CASE', '2.CASE', '3.CASE', '4.CASE', '5.CASE', '6.CASE', 'FEMININE', 'MASCULINE', 'NEUTRAL', 'COMPARATIVE', 'SUPERLATIVE', 'PRESENT', 'PAST', 'FUTURE', 'INDEFINITE', 'DEFINITE'
Should we add QUESTION
? (in general custom tags are also possible)
That should be possible to fix via a property
use as suffix
for the word forms. If activated, the space between the last word and the word form could be omitted (at least for speaking, it will still be 2 separate elements in the bar).
I think for a beginner to understand the sentence visually, having still both icons in the bar even when words are added as suffix would actually be a good thing. If also the written words are separated in the bar, that's disadvantageous for literacy skills, but it would be a compromise.
That's also an open question: which tags should be selectable by default? Currently we have these:
'NEGATION', 'SINGULAR', 'PLURAL', '1.PERS', '2.PERS', '3.PERS', '1.CASE', '2.CASE', '3.CASE', '4.CASE', '5.CASE', '6.CASE', 'FEMININE', 'MASCULINE', 'NEUTRAL', 'COMPARATIVE', 'SUPERLATIVE', 'PRESENT', 'PAST', 'FUTURE', 'INDEFINITE', 'DEFINITE'
I'd be using two more cases, '7.CASE', '8.CASE'.
And grammatical moods. So actually what I for testing purposes labelled as QUESTION
would be interrogative, then imperative, sujunctive, optative, admirative, conditional, jussive. More grammatical moods exist of course but those are the ones I'd need to start with, I think. Although the question is if it would be needed to actually write it out or to just add options '1.MOOD', '2.MOOD' etc. Probably the second, and then I'd just document for my board set which case and mood I'm using for which label.
I'll also be using diminutive, elative, augmentative, nominalization. And 1-3 more tenses. Not sure yet about a 'polite form' button. The overall question is how many tags to add as default as some of them are only needed in a few languages and - except for me - most users I guess will be using the word forms "just" for English, German, Spanish...
most users I guess will be using the word forms "just" for English, German, Spanish...
...well, at least for the moment. No clue how much this could take off once I create the multilingual board, how many people would start to join in, doing more translations... :)
If also the written words are separated in the bar, that's disadvantageous for literacy skills, but it would be a compromise.
Yes, within our system it won't be possible differently, because then "where" belongs to the first symbol and "are you" to the second one. However, for literacy it would maybe be possible to add a second bar, which only shows the text only and no symbols with "whereareyou".
I'd be using two more cases, '7.CASE', '8.CASE'.
OK, I assume that most people which will fully use the system, will have spreadsheets and import the data from there. In this case it doesn't matter which labels are used, any label can be imported. The question is which are most used and should be available in the UI by default. So maybe I'll keep it as it is, or add 2 more moods, I don't know, but probably not so important.
Another thing I noticed, is, that it's not possible to combine the 'change word form in...' and 'change this element to next word form'.
I've fixed this with https://github.com/asterics/AsTeRICS-Grid/commit/c3877b0a277c3f35015395bd50c06ad90eb8f896 - so please test in about 15 minutes at https://grid.asterics.eu/latest/
Yes, within our system it won't be possible differently, because then "where" belongs to the first symbol and "are you" to the second one. However, for literacy it would maybe be possible to add a second bar, which only shows the text only and no symbols with "whereareyou".
That could be interesting and helpful. But just if you have any extra time to program this at the end, not a must-have at the moment for me.
OK, I assume that most people which will fully use the system, will have spreadsheets and import the data from there. In this case it doesn't matter which labels are used, any label can be imported.
Oh, right, forgot about that. Yeah, in that case it's fine as it is.
I've fixed this with https://github.com/asterics/AsTeRICS-Grid/commit/c3877b0a277c3f35015395bd50c06ad90eb8f896
Great! :)
I've fixed this with c3877b0 - so please test in about 15 minutes at https://grid.asterics.eu/latest/
Hm, grammar is now not working properly. Clicking 1.P.SG.
( without 'change this element to next word form' active, to see the problem more clearly) changes 'to be' to 'I am' in the grid. In English it then doesn't add the element to the collect bar after clicking on it (I don't have 'don't add to collect element' activated.), in German it strangely does. In both cases however I can't then click on 2.P.SG.
to say 'you are', it gets stuck on 'I am' until click the trash button. It doesn't help to click on another "normal" word (e.g. I am doctor) for the button to get reset to 'to be' either.
Yeah, I've also noticed it - the new "feature" broke something, sorry. I'm investigating it.
Should be fixed at "latest". See this backup for a new test-grid "Change in element + next wordform" where both forms are combined: test-grammar_2024-02-05_15-56_asterics-grid-full-backup.zip
Thank you! Grammar is working fine now again. :) Only issue remaining is that the fields in the grid don't reset after doing a grammar action when both options are activated. So, 2.P.SG.
changes 'to be' in the grid to 'you are', then one can click on it and it's added to the collection bar. The button isn't however reset to 'to be' but shows the next possible word form from the list, which in this case is 'he is'.
The button isn't however reset to 'to be' but shows the next possible word form from the list, which in this case is 'he is'.
I thought that this is the intention?! So you think it would be better this way:
2.PERS
-> to be
changes to are
are
-> added to bar, are
returns to to be
in the elementto be
in order to add it again to the bar?! So the bar contains are to be
and the to be
element changes to next word form are
are
changes to be
to are in bar, so bar contains are are
, are
element switches to next word form is
...Or this way:
2.PERS
-> to be
changes to are
are
-> are
is added to bar, are
element switches to next word form containing 2.PERS
, e.g. aren't
aren't
in order to change are
to aren't
in the bar, aren't
element switches to next word form containing 2.PERS
, e.g. are you
.Maybe the second would make most sense?
Okay, something that wasn't working earlier is working now. So as an example of use, for "They're not tired but I am" 'They're not' could be created using the grammar buttons and 'I am' by clicking twice on 'to be'. What wasn't working previously as far as I remember is "to be" resetting to base after clicking "tired". So since this works it's fine now. :)
Different topic: Pondering if the 'next wordform' option could be used to solve the following dilemma but currently it's not working:
Verb forms creation option 1:
3.p.pl.
(not spoken, not added to collect bar, changes 'to be' in the grid) -> «they are» «tired»
«Ana» «and» «Tom» 3.p.pl
-> «they are» «tired»
The "they" gets superfluous.
Verb forms creation option 2:
they
(spoken, added to the collect bar, changes 'to be' in the grid) -> «are» «tired»
«Ana» «and» «Tom» they
(spoken, added to the collect bar, changes 'to be' in the grid) -> «are» «tired»
Again, the "they" gets superfluous.
Possible solution:
they
(spoken, added to the collect bar) -> «are» «tired»
«Ana» «and» «Tom» they
(spoken, added to the collect bar) <- clicking the button again after activating 'next wordform' changes it to " " (nothing) -> «are» «tired»
There is an extra icon in the bar and the spoken 'they' might be confusing but afterwards, when clicking the full sentence, it's spoken correctly. (Edit: Although the spoken 'they' could be eliminated by having it as the second click instead of the first.)
However at the moment using 'change word forms in grid element' and 'change this element to the next word form' in the same button seems not to work.
Or any other idea for a solution?
So since this works it's fine now. :)
Great :)
and 'I am' by clicking twice on 'to be'
So you're using I am
as a word form of to be
? I'm not sure it if this is the most flexible in the long term, and if forms of to be
should really include the persons?!
Regarding Tom and Ana they are tired
:
I think the best possibility is to add an option to toggle elements within the bar, which I've added now:
So you can do:
Tom and Ana
-> they
(changes be
to are
) -> they
(removes it from collection element) -> are
-> tired
-> in total Tom and Ana are tired
.
I closed my own issue, #252 by accident (my own Github ignorance.) It is just as well as the suggestion by Klues led me to this proposal instead. I propose a button action that would permit users to toggle through various word forms for verbs, nouns, and adjective/adverbs. As Klues proposed a new tab in the button editing box called "grammar" into which one could record various verb conjugations and inflections, singular/plural noun forms, adjectival or adverbial alternatives etc.. I propose a more generic "word forms" tab that would be independent of grammar. Examples: be am is are being was were been box boxes hot hotter hottest
It could also function as a way to toggle through members of a related set: (positive, comparative, superlative) - good better best (sibling names) - John Mary Bob Mike
The Word Forms tab would would allow user's to record the set of word alternatives. The element action would index over the set of alternatives based on the last entry in the Collection element and replace the last element if an alternative exists. A button element with more than one word form could have a small + on it (similar to the small box for links) to denote the existence of word alternatives.
Please check out #252 for a more complete discussion. Thanks, jl