December 28, 2020

2336 words 11 mins read

Conversational assistant

Biscott

Hello, I am Biscott, the pedagogical assistant, for which it is easy to write interactive lessons, the medical assistant for which it is easy to program diagnostics, the cooking or training coach for which it is easy to write training sessions of recipes …

The idea of this app started with a quote by Alex Beard from this international conference about pedagogy :

“We are natural learners”

Alex Beard mentions PISA 1 results from multiple countries, in multiple contexts. He supports the idea that : creating individually personnalised conditions makes learning easier. The best progression is naturally reached by someone who’s choosing his subjects and timetable. In this context, how can a digital assistant help ?

Of course nothing replaces direct human interaction between a teacher and a learner. As a complementary tool, the digital assistant 2 allow a teacher to create individual learning conditions, by giving his pedagogical artifacts 3 the strength of an individual / interactive dialog to each leaner. The teacher designs / writes an artifact. The assistant helps to setup an interactive session, in the scope of a prepared activity, and for a large number of students.

For Biscott, pedagogical artifacts are called activities.

About accessibility, in case of sight problems, Biscott has the advantage to be used eyes closed, simply by listing and answering. This approach explains some features like speak slower / faster or repeat that are implemented /available for all activities.

Here is what the application looks like :

To start and try Biscott, there are 3 steps :

  • Install the application from the AppStore : AppStore
  • Clic on this activity exemple for Biscott to start : Activité Exemple
  • Discover, reading further down, how to write an activity :

How to write an activity ?

You only need a text editor. For instance, under MacOS, launch TextEdit.

From a writer’s point of view, the idea is to give to the reader many alternatives to explore. His decisions will shape his experience : experiential learning, the best way to learn ;)

From a technical point of view, writing an activity starts as follows :

# Title of my activity
:discipline:Art
A short description of my activity
Suitable for age 6-99 yo

The sharp # character starts an activity, followed by its title Title of my activity. Biscott recognizes the mark :discipline: to classify the activity, in our case as Art. After this first line, a free text describes the activity. One can for instance mention the targeted audience, minimum age, etc. Next, we can add some steps to the activity, as follows :

## Step1
Here we start, once upon a time ...
...
Do you choose this or that ? 

The double sharp ## mark starts a new step, followed by its unique name, in one word. A free text follows, it’s the content of the step that will be displayed and read by the Biscott assistant. In this text it is possible to insert images and links, as follow :

## Step2
Ok, here is a picture for that : ![my pic title](myPic.jpg)
...
To browse the web site 'blabla' here is a link : [my link title](http://my.link.com)

The part surrounded by square brackets [] will be displayed as a link label. The part surrounded by curly brackets {} is the file name or internet address. To differentiate an image from a link, the image starts with an exclamation mark !.

Where do we put the text file and the images ?

At the root of a folder named after activity, hence, in our example, in a folder named exemple. The text filename is also named like the activity, with the extension md : exemple.md. All the images are placed in the folder, at its root (no sub folder) There must be at least on image, named after the activity, with png extension : exemple.png. This image will be used to present the activity.

Writing an activity is a fun an creative process, trying to imagine the reader’s reactions and define possible alternatives.

Writing alternatives

Here is a complete activity, with alternatives. Explanations follow.

# Example
:discipline:Other
Discover the Biscott assistant with this activity.

## _intro
Hello, I'm assistant Biscott.

:next:intro2

## intro2
You want to pause me ? Press my noze once.
You  want to answer without waiting ? Press twice.

:next:intro3

## intro3
Here is what we can do  :
- cook a banana cake
- get a tight six pack, make some gymnastic exercices
- help me solve a quest.
You can also ask me to tell a joke. 
What is your choice ?

:next:_root

## _root

:to:infos
:lem:other,more
:and:information,info
:label:More information

:to:_do_shop
:lem:new
:and:activity
:label:New activity

:to:cuisine
:lem:eat,cook,cake,ungry
:and:cake,banana,cook,ungry
:label:I'm ungry

:to:sport
:lem:exercice,gymnastic,slim,sport
:and:go,exercice,gymnastic,slim,sport

:to:énigme
:lem:help,solve,quest
:and:help,solve,quest

:to:_do_nothing
:lem:nothing,none

:to:blague_intro
:lem:tell,joke
:and:tell,joke

## infos

At any time, you can ask me :
 - to display available activities,
 - to export our dialog, 
 - to speak slower or faster,
 - to pause,
 - to start again from the beginning,
 - to repeat,
 - who am I, how old I am,
 - to help you ...
And voilà, you know everything !
And don't hesitate to press my noze ;)
You can write me at the e-mail adress  : [arfntz@gmail.com](arfntz@gmail.com)

## cuisine

We are going to cook a banana cake for 4 persons.
The recipe requires 5 minutes for preparation and 15 minutes to bake.
![image of the cake](banana_logo.png)
Do we have the  ingredients ?

:to:ingredients
:lem:no
:feelGTE:-1
:feelLTE:1
:label:List the ingredients :)

:to:melange
:lem:yes

## ingredients

We need  :
- 2 eggs
- 150 grammes flour
- 55 grammes sugar
- 100 grammes softened butter
- 1 teaspoon baking powder
- 2 large ripe banana
Tell me when it's ok to continue

:to:melange
:lem:I,am,ok,continue,ready
:and:I,am,ok,continue,ready

## melange

Mix everything, starting with : 
Eggs, sugar, flour, mashed bananas, and the butter.
Keep a half banana to cut in washer and put on top of the cake. 
Tell me when it's ok to continue.

:to:cuisson
:lem:I,am,ok,continue,ready
:and:I,am,ok,continue,ready

:to:ingredients
:lem:ingredient,ingredients
:label:Give me the ingredients

## cuisson

Bake at  200°C for 15 minutes.
Have a look, cook 5 minutes more if needed.
Et voilà ... bon appétit.

:next:_root

## blague_intro

I know only 3 jokes.
:next:blague

## blague

:next:jésus,crochet,fromage

## fromage

What is the preferred cheese for musicians ?

:to:blague
:lem:other,another

:to:bravo
:lem:mozzarella,mozart

:to:mozzarella

## bravo

Bravo !

:next:mozzarella
:score:1

## mozzarella

Mozzarella

:next:_root

## jésus

In french, que fait jésus quand il a mal ?

:to:blague
:lem:other,another

:to:bravo
:lem:crier,christ

:to:cri

## cri

Jésus cri

:next:_root

## crochet

How did Captain Hook die ?

:to:blague
:lem:other,another

:to:bravo
:lem:scratch,scratching

:to:grattant

## grattant

He scratched himself

:next:_root

## sport

We can do soft training, to keep in shape, with a daily activity,
What week day do you want ?

:to:natation,repos,marche,dos1,dos2
:lem:monday,tuesday,wednesday,thursday,friday,saturday,sunday,another,other

:to:_do_nothing
:lem:none,nothing

## dos1

Today's program can relax your back.
Here is the position : 
![back](bas_du_dos.png)

Start : lying down, on the back, flat.
Then slowly reach to pictured position.
Do this 5 times.
See you tomorrow.

## dos2

![back](bas_du_dos.png)

Start by placing one foot in front of the other with your front leg bent to about 45 degrees.
Keeping your toes pointing forward, begin to press your knee directly forward.
Press your knee past your foot until you feel a nice stretch just below the kneecap, then return to your starting position.
Do 2 sets of 7-10 reps on each leg.


Lying down on the back, knees bent and joined, arms crossed ;
Bend the knees one side and the other, while turning the head at the opposite.
Stay / keep the position for 8 seconds ;
Make the same movement on the other side ;
Repeat the exercise 5 times..
See you tomorrow.

## repos

Lucky day, today is made for rest 😁
See you tomorrow.


## natation

![swimming](bas_du_dos.png)
Today we're swimming :
- 4 lengths back,
- 2 lenghts crawl,
- 1 pause : 4 minutes,
- then 10 lenghts the swim you want.
Wood floats.
See you tomorrow.

## marche

![walking](sport_divers.png)
A walk oustide to breath the air is always good for health : about  4 kilometers.
Rendez-vous at the beach, in the swamp, or near the lake.
Doctors recommend  6 000 foot steps per day.
See you tomorrow.

## énigme

![Hamster Roborovski](union.png)
3 squirells names Tic,Tac, and Tuc, are standing up on a tree, near the river.
Tic sees a lumberjack coming. He warns his two friends.
Tac goes back in his house to hide.
What can Tuc do ?

:to:refugier
:lem:back,go,house,home
:and:back,go,house,home
:label:go back home

:to:rester
:lem:swim,river,lumberjack,kill,nite,shout,wait,stay,face
:and:swim,river,lumberjack,kill,nite,shout,wait,stay,face
:label:face the lumberjack

:to:ramener
:lem:get,call,out,Taque,Tique,Toc,Tac,squirell,other
:and:get,call,out,Taque,Tique,Toc,Tac,squirell,other
:label:call Tac

## refugier

Tic is alone out now.
He can't do anoything against the lumberjack, who logs the tree and destroys the 3 squirell houses.
The squirells have to leave and build again their houses in another tree.

:next:noisette
:score:2

## rester

Tic and Tuc are now in front of the lumberjack, while Tac shakes in his house, frightened.
Tic attracts the lumberjack's attention while Tuc pushes his axe into the river.
The lummberjack, unhappy, starts his chaisaw and saws the tree in one step. 
The squirells have to find another tree.

:next:noisette
:score:4

## ramener

Tac gets out and the 3 squirells face the situation together.
While the lumberjack looks at Tac, shaking, Tic pushes the axe into the river, and Tuc unscrew the gazoline cap of the chainsaw.
When the lumberjack tries to catch back his axe, Tac drops a nut into the chainsaw's gas tank.
The lumberjack, without any tool, leaves.

:next:noisette
:score:10

## noisette

Tac stayed confined in his house during all summer. He probaly has a subscription to ApMovFlix.
Winter has arrived, and starving, he knocks at Tic's door, asking him for some nuts.
Does Tic accepts or refuses to give some nuts ?

:to:refus
:lem:refuse
:label:refuse

:to:accepte
:lem:accept,give
:and:accept,nut,yes
:label:accept

## refus

Next summer, the lumberjack comes back and Tac, who has nothing to eat, is too weak to help his friends.
The lumberjack starts his chainsaw and cuts down the tree in one step. 
Game over this time, but you can start from the beginning and help Tic Tac and Tuc to save their houses.

:next:_end
:score:4

## accepte

Next summer, the lumberjack comes back and Tac, who had a few nuts to eat, is strong enough to help his friends.
The 3 squirells manage to trick the lumberjack once again.
Well done and thank you for your help. Tic, Tac and Tuc are fine.

:next:_end
:score:10

To reach the step cuisine the speaker / reader can use the verbs eat,cook, or the word cake in his sentence, which also has to contain the word cake or banana. He can also say I'm ungry. This is written as follows :

:to:cuisine
:lem:eat,cook,cake,be,am
:and:cake,banana,ungry
:label:I'm ungry
  • :to: is used to mark the name of the step, in one unique word
  • :lem: is used to list the words to be detected
  • :and: another list of words to be detected
  • :label: is used to display a button for this choice

A lemme 4 defines a lexical and semantical unit. In the user’s response, conjugation, gender, and number will be recognized. There is no need to enter conjugated or plural forms.

Here is how the step is displayed :

If needed one can use this complementary marks :

  • :next:
  • :feelGTE:
  • :feelLTE:

:next: is used to chain steps, without any question or user interaction. This allows to separated ideas into paragraphs.

The user’s speech is processed to compute a feel indicator, between -1 and 1. If you want to activate a destination when the user makes a negative sentence, then use :feelGTE:-0.6 for instance. :feelLTE: is not used.

Finally, please note that Biscott assistant provides pre-defined steps, ready to be used. They have reserved names, starting with _ :

  • _intro and _root : the assistant starts an activity with these mandatory entry points steps, they must be defined
  • _end : use this destination to indicate the end of an activity.
  • _quit_activity can be used to quit an activity and start again from the beginning, at the _root step.

Writing an activity is a fun an creative process, trying to imagine the reader’s reactions and define possible alternatives. You can play :)

How to give the activity to Biscott ?

We will :

  • create an archive file
  • send this file to the iOS device

Create the archive

Under MacOS, launch the application Archive Utility : Press the keys Command-Espace, this launches the MacOS search engine. Start typing the application’s name, Archi, the application is proposed.

In Archive Utility preferences, check that the ‘Use archive format’ option is set to Compressed Archive.

In the File menu, choose the option Create archive

Select the folder that contains your activity file an images. Clic on archive. Here under, the folder is named exemple :

An archive file is created. Rename the file extension from exemple.cpgz to exemple.bsct.

Send the activity to the iOS device

The file exemple.bsct can be sent to the iOS device via mail, as attachment, or via AirDrop, or any other way made possible by Apple (Cloud, Drive).

The iOS device will automatically launch Biscott when a .bsct file is received via AirDrop or opened from a mail.

Biscott analyses the steps and eventually displays anomalies. If everything is fine the activity starts.

During the activity it is possible to say activate the analysis mode to display step detection informations. This is used to refine the activity.

Can I edit my activity on the iOS device ?

Yes. The application shares its files.

Hence it is possible to use iOS’s file manager and your favorite application to edit the text and the images of an activity.

Here is a screen shot of the activity exemple that we created, as seen in the file manager app on iPad :

AppStore


  1. PISA on wikipedia. ↩︎

  2. Digital assistant : software and hardware providing dialogue abilities using natural language, for instance ‘Alexa’, ‘Google home’ or ‘Home Pod’ ↩︎

  3. Artifact : pedagogy, definition on edutechwiki edutechwiki.unige.ch ↩︎

  4. Lemme : defines a lexical and semantical unit, wikipedia ↩︎