WEBVTT

00:00.000 --> 00:10.540
Okay, afternoon everybody, as this part of the slide says, my name is Steve and as this

00:10.540 --> 00:12.780
part of the slide says I'm a bit of a geek.

00:12.780 --> 00:16.540
If we've all turned up to the correct deaf loom, this is to talk about grammar.

00:16.540 --> 00:22.480
Yeah, I should probably tell you from my accent, I'm English, anyone else here from England?

00:22.480 --> 00:24.480
Welcome to Europe.

00:24.480 --> 00:27.680
I hope you're in the course of the next 15, 20 minutes.

00:27.840 --> 00:32.800
I'm really talking about this little random block of code that attends to turn normal English

00:32.800 --> 00:35.360
into grammatically correct English.

00:35.360 --> 00:39.920
And I know the joke is that they know there's British English and there's wrong.

00:39.920 --> 00:43.560
That's not directed towards the Americans, that's just fact.

00:43.560 --> 00:47.560
So I'm going to be talking about the origins of this little project.

00:47.560 --> 00:49.920
It's all up and get hub slides at the end.

00:49.920 --> 00:57.280
The problem I was trying to solve and the solutions that I adopted to solve that problem.

00:57.280 --> 01:01.920
It will be focused on some of the earlier stuff, but I should probably do who am I?

01:01.920 --> 01:04.840
What have I done to deserve a place on this stage?

01:04.840 --> 01:08.160
Or is the slides should be called the ego slide?

01:08.160 --> 01:10.480
This is where the speaker blides about themselves for 10 minutes.

01:10.480 --> 01:14.200
Well, everyone else thinks, can I get to the other deaf room I wanted to go to?

01:14.200 --> 01:15.880
Well, basically, I'm a geek.

01:15.880 --> 01:22.080
I've written some books, I write some music and someone recognized me as a magician earlier.

01:22.080 --> 01:25.240
I was doing it on the main stage a couple of years ago in the magic show.

01:25.240 --> 01:28.240
Does anyone see me do stuff at first and then before?

01:28.240 --> 01:30.240
And you came back?

01:30.240 --> 01:32.240
You're blabbering, I thought.

01:32.240 --> 01:38.240
So I've done a whole lot of crap, but the important thing is what's not on this slide.

01:38.240 --> 01:43.240
Yes, I've made games and but I'm not a translator, my English is awful.

01:43.240 --> 01:47.240
That's why I have editors to sort my books out for me.

01:47.240 --> 01:52.240
This is all about, well, if I can do this, anyone can.

01:52.240 --> 01:57.240
It should not be beyond the width of human beings to do just decent language.

01:57.240 --> 02:04.240
So this project started in about 2018, 2017 with that thing.

02:04.240 --> 02:10.240
Alexa, I was at a JavaScript meeting because JavaScript is the one true language.

02:10.240 --> 02:14.240
And no one's picked me up on that, okay, that's a different pattern all.

02:14.240 --> 02:18.240
No one's picked me up on that, okay, that's a different pattern all.

02:18.240 --> 02:21.240
Okay, so I thought, okay, I'll get one, I'll mess around with it.

02:21.240 --> 02:24.240
I went to various meetups, I wrote a lot of Alexa skills.

02:24.240 --> 02:27.240
And I found this was really interesting.

02:27.240 --> 02:33.240
I could harness a very complex technology into some very, very simple JavaScript.

02:33.240 --> 02:35.240
I thought, I liked that.

02:35.240 --> 02:39.240
And voice-in-touching, I thought, I like that.

02:39.240 --> 02:42.240
And voice-in-touching, I thought, I like that.

02:42.240 --> 02:45.240
And voice-in-touching, I thought, I like that.

02:45.240 --> 02:48.240
And voice-in-touching, I thought, I like that.

02:48.240 --> 02:53.240
And voice-in-touching, I thought, I was very interesting topic.

02:53.240 --> 02:57.240
Most of the time we have a screen with text on it, we can refer back to the text, if we forget.

02:57.240 --> 03:00.240
With the voice-in-touching, you can't.

03:00.240 --> 03:02.240
It plays, the voice ends.

03:02.240 --> 03:05.240
And you've got to remember everything that was said.

03:05.240 --> 03:07.240
I thought that was quite intriguing.

03:07.240 --> 03:10.240
So I started playing around with this, I wrote things that would tell you what they,

03:10.240 --> 03:12.240
the bins are taken out.

03:12.240 --> 03:15.240
Do you, everyone can remember what day they've got to take the bins out?

03:15.240 --> 03:16.240
No.

03:16.240 --> 03:19.240
Well, I don't need to either, because the person next to me,

03:19.240 --> 03:21.240
they take their bins out the day before, and I can see them.

03:21.240 --> 03:25.240
They are quite literally a bin fluencer.

03:25.240 --> 03:28.240
OK, never mind.

03:28.240 --> 03:31.240
So I thought, OK, I can do this JavaScript thing,

03:31.240 --> 03:35.240
and I'll do it as a service, because everything is as a service.

03:35.240 --> 03:38.240
You know, it's set software, as a service.

03:38.240 --> 03:40.240
You know, oh, Cracky.

03:40.240 --> 03:41.240
Anyone actually like AI here?

03:41.240 --> 03:43.240
Am I allowed to harass about AI in this room?

03:43.240 --> 03:44.240
Yes.

03:44.240 --> 03:45.240
Good.

03:45.240 --> 03:46.240
OK.

03:46.240 --> 03:47.240
I like Cracky as a service.

03:47.240 --> 03:48.240
It's like, oh, OK.

03:48.240 --> 03:49.240
Everything's as a service.

03:49.240 --> 03:50.240
I thought, OK, great.

03:50.240 --> 03:52.240
Well, this is a service thing.

03:52.240 --> 03:53.240
You make an API call.

03:53.240 --> 03:54.240
It fixes your grammar.

03:54.240 --> 03:56.240
It spits out the correct grammar.

03:56.240 --> 04:00.240
And this would do it in both English and as a speech thing.

04:00.240 --> 04:03.240
And that was an intentional choice.

04:03.240 --> 04:06.240
Because speech is different to words.

04:06.240 --> 04:08.240
And there were a lot of subtle things in speech

04:08.240 --> 04:11.240
that we just don't generally acknowledge.

04:11.240 --> 04:13.240
And hopefully, I'm going to come through some of them.

04:13.240 --> 04:15.240
And in 2025, that's last year.

04:15.240 --> 04:19.240
I know it feels like a lifetime ago, but it's only 30 odd days.

04:19.240 --> 04:23.240
And I thought, well, I'd written this thing for Alexa.

04:23.240 --> 04:26.240
Amazon said, hey, we really like this idea of this grammar

04:26.240 --> 04:27.240
as a service thing.

04:27.240 --> 04:31.240
We would like to promote you on our blog.

04:31.240 --> 04:32.240
OK.

04:32.240 --> 04:33.240
Are you paying me money?

04:33.240 --> 04:34.240
No, no, no.

04:34.240 --> 04:36.240
But we'll put a mention on our blog.

04:36.240 --> 04:38.240
No, I'm open-sourcing it.

04:38.240 --> 04:39.240
There's no money involved.

04:39.240 --> 04:40.240
It's open-sourcing.

04:40.240 --> 04:42.240
So I open-sourcing a whole lot last year.

04:42.240 --> 04:44.240
It's been used in a number of things.

04:44.240 --> 04:47.240
I don't know whether it's useful to anyone else except me.

04:47.240 --> 04:51.240
Because I get annoyed by a lot of bad, groundbreaking things.

04:51.240 --> 04:55.240
And that's someone who's not very good at English themselves.

04:55.240 --> 04:58.240
You know, my second language is drunkenese.

04:58.240 --> 05:02.240
You know, things like that says you have one email open-backed S.

05:02.240 --> 05:04.240
Isn't that just lazy?

05:04.240 --> 05:06.240
That should not be, I think.

05:06.240 --> 05:08.240
You pick up a axe.

05:08.240 --> 05:10.240
It's an axe.

05:10.240 --> 05:11.240
Look at it.

05:11.240 --> 05:13.240
Are we looking at a vowel here?

05:13.240 --> 05:15.240
Is this a vowel sound?

05:15.240 --> 05:17.240
And again, I mention it comes from Alexa.

05:17.240 --> 05:20.240
Comes from voice interfaces.

05:20.240 --> 05:22.240
What's this word, by the way?

05:22.240 --> 05:23.240
What's this?

05:23.240 --> 05:26.240
Oh, now you know there's a trick, don't you?

05:26.240 --> 05:29.240
Yeah, that's not AI.

05:29.240 --> 05:30.240
That's, ah.

05:30.240 --> 05:33.240
That's a free-toed slice.

05:33.240 --> 05:36.240
It's a perfectly valid word in scrabble.

05:36.240 --> 05:40.240
You can get up to 35 points with that word, but it's not AI.

05:40.240 --> 05:44.240
And if you throw that into a speaks synthesizer, it gets it wrong every time.

05:44.240 --> 05:48.240
So you need somewhere you're actually fixing just normal plain text

05:48.240 --> 05:51.240
when it goes out to the other end.

05:51.240 --> 05:54.240
What do you think happens when you feed this thing in?

05:54.240 --> 05:56.240
It is 30 minutes past five.

05:56.240 --> 05:58.240
No, it's not 30.

05:58.240 --> 06:00.240
That's how we say we say 30.

06:00.240 --> 06:01.240
We don't say 30.

06:02.240 --> 06:05.240
So when it comes out of the speaks thing, that feels very wrong.

06:05.240 --> 06:08.240
Us does Angela Merkel.

06:08.240 --> 06:10.240
Doesn't it great when it says Angela?

06:10.240 --> 06:12.240
That is Angela, but it's not his anger.

06:12.240 --> 06:14.240
So you've got to fix it.

06:14.240 --> 06:16.240
I always like this one.

06:16.240 --> 06:19.240
It's Polish or Polish.

06:19.240 --> 06:23.240
Maybe as a writer, I've just got sloppy and I haven't capitalised it.

06:23.240 --> 06:27.240
When it's a correct form there, you've got to get it and, you know,

06:27.240 --> 06:29.240
what language is this?

06:29.240 --> 06:31.240
It's not C sharp.

06:31.240 --> 06:34.240
It's C hash.

06:34.240 --> 06:37.240
Just the natural way it gets possessor C hash.

06:37.240 --> 06:39.240
But that's okay.

06:39.240 --> 06:43.240
Everyone that programs in this language is, you know, they all wear glasses

06:43.240 --> 06:45.240
because they can't C sharp.

06:45.240 --> 06:50.240
You kick me off the stage already.

06:50.240 --> 06:53.240
I'm going to annoy you with my question.

06:53.240 --> 06:56.240
Is it not C octauthor?

06:57.240 --> 06:58.240
Okay.

06:58.240 --> 07:00.240
It's one of those, is it?

07:00.240 --> 07:08.240
So there's a lot of cases where just the text doesn't quite convey all the information

07:08.240 --> 07:10.240
that it should convey.

07:10.240 --> 07:15.240
So I thought, well, either we can teach everyone to write AI this way.

07:15.240 --> 07:18.240
Or we could kind of kind of fix things.

07:18.240 --> 07:22.240
Because there is a book called The Chicago Manual of Style.

07:22.240 --> 07:25.240
And obviously when I say style, I don't mean dress style.

07:25.240 --> 07:28.240
Clearly, I've got read a book on style.

07:28.240 --> 07:29.240
But the shirt is good.

07:29.240 --> 07:30.240
You like the shirt?

07:30.240 --> 07:31.240
Yes.

07:31.240 --> 07:36.240
If my wife is watching, see, they like the shirt.

07:36.240 --> 07:42.240
Style in this sense means, how do you write proper like?

07:42.240 --> 07:45.240
You know, if you have a number, if it's below 10,

07:45.240 --> 07:48.240
you will actually write out the word for the number.

07:48.240 --> 07:50.240
If it's above 10, you write it out in digits.

07:50.240 --> 07:54.240
These very simple things is apparently quite hard.

07:55.240 --> 07:58.240
And I'm kind of a moderately native speaker of English.

07:58.240 --> 08:01.240
But it is still very difficult to make sure you get all the things right.

08:01.240 --> 08:03.240
So let's pass that off to a computer.

08:03.240 --> 08:07.240
And by a computer, I do not mean AI.

08:07.240 --> 08:10.240
What is the point of spending 14 billion a year on AI

08:10.240 --> 08:14.240
when you can just write 12 lines of JavaScript to do the same thing?

08:14.240 --> 08:18.240
So the solutions are basically, don't create a problem in the first place.

08:18.240 --> 08:20.240
This means everyone that writes code,

08:20.240 --> 08:25.240
this to be fluent in both language and in English.

08:25.240 --> 08:28.240
That's going to be expensive, that's going to be time difficult.

08:28.240 --> 08:30.240
So that's going to be a tricky thing.

08:30.240 --> 08:31.240
We can fix it manually.

08:31.240 --> 08:34.240
We can have a bunch of people just going through all the code,

08:34.240 --> 08:36.240
checking for all the grammar.

08:36.240 --> 08:38.240
Again, expense is not going to happen.

08:38.240 --> 08:40.240
We can ignore the problem.

08:40.240 --> 08:42.240
Most people ignore the problem.

08:42.240 --> 08:45.240
Every now and again, I'll see another piece of software.

08:45.240 --> 08:47.240
I'm going, no, another one.

08:47.240 --> 08:49.240
They're just ignored it.

08:49.240 --> 08:53.240
My attempt is, can we kind of find some way to automate this

08:53.240 --> 08:57.240
so that it doesn't just grind your gears?

08:57.240 --> 09:03.240
So, these are the types of things which the library automate.

09:03.240 --> 09:05.240
So it will look for numbers.

09:05.240 --> 09:08.240
And if there are numbers which is a plural number,

09:08.240 --> 09:10.240
it will make sure there's an S on the end.

09:10.240 --> 09:12.240
And this has been an employee melody for English,

09:12.240 --> 09:15.240
but it's been structured in such a way that any other language

09:15.240 --> 09:17.240
can just be plugged in.

09:17.240 --> 09:20.240
You write a little function that says, is this number a plural?

09:20.240 --> 09:21.240
Yes, no.

09:21.240 --> 09:22.240
Boolean, true false.

09:22.240 --> 09:24.240
At the end of the day, it will then fix it.

09:24.240 --> 09:25.240
Factions.

09:25.240 --> 09:28.240
If you write one slash two,

09:28.240 --> 09:30.240
the screen will say one slash two.

09:30.240 --> 09:31.240
It won't say a half.

09:31.240 --> 09:34.240
But we don't always say one half.

09:34.240 --> 09:36.240
So it will fix that sort of things.

09:36.240 --> 09:39.240
Symbols indefinite articles, the A's and the Anz,

09:39.240 --> 09:41.240
and certainly pronunciation,

09:41.240 --> 09:44.240
is certainly cursed into this as well,

09:44.240 --> 09:46.240
when it could be ambiguous.

09:46.240 --> 09:48.240
So what did he do?

09:48.240 --> 09:51.240
Well, it's JavaScript.

09:51.240 --> 09:55.240
You bring in the library, you say fix it.

09:55.240 --> 09:59.240
Throwing the text, make reference that there's going to be a number there,

09:59.240 --> 10:03.240
and it will just do the work.

10:03.240 --> 10:07.240
These are the different options you don't have to put every option in there.

10:07.240 --> 10:09.240
I want the style formatting.

10:09.240 --> 10:12.240
I want the plowels, but don't do the word number thing.

10:12.240 --> 10:14.240
The number is less than 10, you write it out.

10:14.240 --> 10:17.240
Sometimes that's not always what you want,

10:17.240 --> 10:19.240
so everything is switch on it lovable.

10:19.240 --> 10:21.240
Which can be fun.

10:21.240 --> 10:24.240
And then it looks like this, yes, it wraps around a bit.

10:24.240 --> 10:27.240
But all the code does is, things in a sentence,

10:27.240 --> 10:30.240
splits it up, looks at everything in there, and goes,

10:30.240 --> 10:34.240
okay, I'm going to process every single word in this sentence.

10:34.240 --> 10:37.240
I'm going to fix it up.

10:37.240 --> 10:41.240
And it's done in this way, so that you can add additional processes.

10:41.240 --> 10:46.240
So if your language is not English, and it has things which are not one of these five,

10:46.240 --> 10:49.240
it just sorts it out for you.

10:49.240 --> 10:51.240
So I'm using a number of other people's libraries,

10:51.240 --> 10:54.240
because I'm far too lazy to write my own.

10:54.240 --> 10:57.240
The pluralized library is really handy.

10:57.240 --> 10:59.240
You know the plowel of sheep.

10:59.240 --> 11:01.240
It's sheep.

11:01.240 --> 11:04.240
The plowel of person is people.

11:04.240 --> 11:07.240
This is not sticking us on the end.

11:07.240 --> 11:09.240
English has been such an annoying language,

11:09.240 --> 11:12.240
but it's everything has got an exception somewhere.

11:12.240 --> 11:14.240
And I'm sure I'm not the only one that gets annoyed by that.

11:14.240 --> 11:17.240
So there are other libraries, luckily out there that do this stuff.

11:17.240 --> 11:21.240
There's libraries that convert digits into actual numbers,

11:21.240 --> 11:25.240
spoken words, numbers into words, words that actually have silent

11:25.240 --> 11:29.240
h's that then change the ways, an hour or eight on this note,

11:29.240 --> 11:31.240
and on this person.

11:31.240 --> 11:35.240
Ooh, which I think I'm roughly almost getting now.

11:35.240 --> 11:38.240
And all the initialisms.

11:38.240 --> 11:42.240
All of this stuff, a normal speech synthesizer thing,

11:42.240 --> 11:44.240
is just going to look at that and go,

11:44.240 --> 11:46.240
A, C, or A, or A,

11:46.240 --> 11:49.240
is probably not going to do what you mean it to.

11:49.240 --> 11:52.240
And the fun one, all the capitalisms.

11:52.240 --> 11:54.240
These words change their meaning,

11:54.240 --> 11:57.240
whether this is a capital or not.

11:57.240 --> 12:00.240
So in lower case, it's August.

12:00.240 --> 12:02.240
A capital A is August.

12:02.240 --> 12:04.240
Completely different word.

12:04.240 --> 12:06.240
Polish we did earlier, Polish and Polish,

12:06.240 --> 12:08.240
and Job and Job again.

12:08.240 --> 12:11.240
I had a copy of these from Wikipedia.

12:11.240 --> 12:12.240
I'm not that smart.

12:12.240 --> 12:16.240
These are the sort of things that you just have to worry about,

12:16.240 --> 12:18.240
particularly with voice interfaces.

12:18.240 --> 12:20.240
And if you're thinking, well, I'm never going to do a voice

12:20.240 --> 12:21.240
interface thing ever in my life.

12:21.240 --> 12:23.240
So like, well, why not?

12:23.240 --> 12:27.240
At some point, we have people who just can't lead the screen.

12:27.240 --> 12:30.240
I am now getting to that age where I can't see the screen as well

12:30.240 --> 12:32.240
as I used to when I was a younger person.

12:32.240 --> 12:33.240
I was going to say a younger person.

12:33.240 --> 12:35.240
I think I've ever been young in my life.

12:35.240 --> 12:36.240
I was born old.

12:36.240 --> 12:38.240
But I'm getting to the point.

12:38.240 --> 12:40.240
It's like, I need these helping.

12:40.240 --> 12:43.240
I need the device to say things to me if I can't lead the screen.

12:43.240 --> 12:46.240
So at some point, screen readers are going to become much more prevalent,

12:46.240 --> 12:48.240
especially as our generation of people get older.

12:48.240 --> 12:49.240
And we suddenly realize,

12:49.240 --> 12:52.240
damn, I actually do need screen readers now.

12:52.240 --> 12:56.240
So these sort of things are going to become my think more permanent.

12:56.240 --> 12:59.240
So as an example, what is that?

12:59.240 --> 13:02.240
That's a fup agent.

13:03.240 --> 13:07.240
Because, I mean, how many, I'm not going to test anybody.

13:07.240 --> 13:08.240
There's no quiz at the end of this.

13:08.240 --> 13:10.240
The quiz was last night.

13:10.240 --> 13:12.240
Was anyone there for the quiz last night?

13:12.240 --> 13:13.240
No?

13:13.240 --> 13:14.240
Well, you should have been there.

13:14.240 --> 13:15.240
It was brilliant.

13:15.240 --> 13:17.240
We gave out free beer to everyone.

13:17.240 --> 13:18.240
You missed it.

13:18.240 --> 13:19.240
Sorry.

13:19.240 --> 13:21.240
It was me again, yeah.

13:21.240 --> 13:25.240
So there were about four problems with that sentence.

13:25.240 --> 13:28.240
And if you flow it into the library, it fixes it.

13:28.240 --> 13:30.240
That's the correct output.

13:30.240 --> 13:32.240
It's not a, it's an, because it's f.

13:32.240 --> 13:34.240
And that's a vowel sound.

13:34.240 --> 13:36.240
It's a capital A.

13:36.240 --> 13:38.240
And it has to have a full stop at the end.

13:38.240 --> 13:40.240
And FPI agent.

13:40.240 --> 13:43.240
And this is the SSML, which is the speech version of it.

13:43.240 --> 13:47.240
So it will actually spell out FPI.

13:47.240 --> 13:49.240
This stuff is really quite handy.

13:49.240 --> 13:51.240
And look at teach me.

13:51.240 --> 13:53.240
This is either the most useful thing of the library,

13:53.240 --> 13:55.240
or the most pretentious.

13:55.240 --> 13:59.240
I put a bit in the library that man explains to you where you went wrong.

13:59.240 --> 14:04.240
FPI is an initialism, not an acronym.

14:04.240 --> 14:05.240
A initialism.

14:05.240 --> 14:06.240
There's a difference.

14:06.240 --> 14:08.240
And should be written with dots like this.

14:08.240 --> 14:11.240
And it uses the example in the output as well.

14:11.240 --> 14:16.240
So it kind of handles itself as a teaching tool for everyone else.

14:16.240 --> 14:20.240
And it gives it in text, standard plane, HTML along with the SSML.

14:20.240 --> 14:22.240
So that's all good.

14:22.240 --> 14:24.240
One fairly nice example.

14:24.240 --> 14:27.240
The next steps on this, I truly don't know.

14:27.240 --> 14:30.240
I wrote this stuff because I liked it.

14:30.240 --> 14:33.240
I needed it when I was doing Alexa stuff.

14:33.240 --> 14:35.240
I needed the library.

14:35.240 --> 14:38.240
Well, now I don't do Alexa stuff anymore.

14:38.240 --> 14:40.240
Do I still need the library?

14:40.240 --> 14:41.240
I don't know.

14:41.240 --> 14:42.240
I think it's an interesting problem.

14:42.240 --> 14:44.240
I think it's a worthwhile problem to look at.

14:44.240 --> 14:47.240
So I'm here to sort of say, look, is this fun?

14:47.240 --> 14:48.240
Is this interesting?

14:48.240 --> 14:49.240
Is this even useful?

14:49.240 --> 14:52.240
If not, yeah, we have a nice time.

14:52.240 --> 14:56.240
So if it's useful, it's great if not.

14:56.240 --> 14:57.240
Fine.

14:57.240 --> 15:00.240
There's a number to do in the code.

15:00.240 --> 15:03.240
When I wrote this, because it wasn't written as open source,

15:03.240 --> 15:06.240
some of the code is a bit crap.

15:06.240 --> 15:12.240
When I open source this, I suddenly realize that I felt the word sentence incorrectly.

15:12.240 --> 15:17.240
You know how bad it is when you're writing a piece of software that does language and grammar correction

15:17.240 --> 15:21.240
and you've misspelled the most used word in your product.

15:22.240 --> 15:24.240
So I had to fix a spelling of sentence.

15:24.240 --> 15:25.240
And a few other things.

15:25.240 --> 15:26.240
There's a few other bits there.

15:26.240 --> 15:29.240
It's only JavaScript because it was written as a service.

15:29.240 --> 15:33.240
But there's no reason why you can't just copy and paste this stuff and just change a few bits

15:33.240 --> 15:34.240
to make it work elsewhere.

15:34.240 --> 15:37.240
And of course, there's Job's job.

15:37.240 --> 15:39.240
Is anyone aware of this?

15:39.240 --> 15:44.240
Oh, this is either going to really entertain you or bore you senseless.

15:44.240 --> 15:47.240
This is from Richard Lederer's word circus.

15:47.240 --> 15:50.240
I don't know if anyone's ever read this, probably not.

15:50.240 --> 15:55.240
But in August, an August Patriot was reading an ad in Reading, Massachusetts.

15:55.240 --> 16:01.240
Long-suffering Job secured a job to polish piles of Polish brass.

16:01.240 --> 16:06.240
You try getting a machine to correctly read that.

16:06.240 --> 16:12.240
I would like to be able to have libraries that could take that and go, oh yeah, I know what to do with that.

16:12.240 --> 16:14.240
And don't say AIs a solution.

16:14.240 --> 16:16.240
AIs never the solution.

16:16.240 --> 16:20.240
I think nice confined pieces of code that just do one job.

16:20.240 --> 16:23.240
The proper Unix way might actually help.

16:23.240 --> 16:26.240
So I would like to be able to get that read perfectly.

16:26.240 --> 16:28.240
And the code almost gets it right.

16:28.240 --> 16:32.240
Without doing any special work, it gets most of that right.

16:32.240 --> 16:36.240
Because it understands the initialism, Polish and Job and Job and Reading,

16:36.240 --> 16:38.240
versus Reading.

16:38.240 --> 16:41.240
That one, that's really good fun.

16:41.240 --> 16:45.240
Because I'm from England, there is a town called Reading, not far from me.

16:45.240 --> 16:48.240
And I love just going there and just saying, well, you know, you people,

16:48.240 --> 16:53.240
there's a very sharp decline in the standard of reading.

16:53.240 --> 16:58.240
Okay, for the three people, it was worth it.

16:58.240 --> 17:03.240
So my conclusion is, groundwork is actually really quite hard.

17:03.240 --> 17:08.240
When you look at what's going on underneath the language, there are problems there.

17:08.240 --> 17:10.240
So it's not surprising.

17:10.240 --> 17:14.240
We just kind of forget about it and we push it and we just, oh, someone will fix it later.

17:14.240 --> 17:18.240
Let's see if we can fix it now. Let's get it right.

17:18.240 --> 17:20.240
It's definitely hard with dynamic content.

17:20.240 --> 17:23.240
Anytime there's dynamic content in there, go over.

17:23.240 --> 17:26.240
You've got to start thinking about this.

17:26.240 --> 17:29.240
And it's not just about the code, it's about the language underneath it.

17:29.240 --> 17:31.240
I try and think voice first.

17:31.240 --> 17:34.240
I like the idea the computer is talking to me.

17:34.240 --> 17:38.240
The voice is what's coming to me, not the text.

17:38.240 --> 17:43.240
So I think, okay, is there a way of understanding what's being said here on screen?

17:44.240 --> 17:46.240
And could we get this to other languages?

17:46.240 --> 17:48.240
You know, I am very fully British.

17:48.240 --> 17:51.240
I speak, which almost know what the language is.

17:51.240 --> 17:55.240
My French is bad, my German is bad, my Japanese is awful.

17:55.240 --> 17:59.240
So I am very much the stereotypical English guy.

17:59.240 --> 18:02.240
So I would love to see this in other languages.

18:02.240 --> 18:03.240
And there's no reason why not.

18:03.240 --> 18:06.240
It's built in such a way that it can be ported.

18:06.240 --> 18:09.240
So with that in mind, I can do any questions that anyone has.

18:09.240 --> 18:10.240
I will update my scorecard.

18:10.240 --> 18:11.240
There we go.

18:11.240 --> 18:12.240
30th talk.

18:12.240 --> 18:15.240
I've given this conference over 26 years.

18:15.240 --> 18:17.240
I'll buy and does it show.

18:17.240 --> 18:19.240
But otherwise, that's all for me.

18:19.240 --> 18:20.240
I can take questions.

18:20.240 --> 18:21.240
Thank you.

18:21.240 --> 18:22.240
Good night.

18:22.240 --> 18:31.240
I have a question, can we?

18:31.240 --> 18:39.240
Or a point that might be either very funny or not.

18:39.240 --> 18:44.240
When you show me the explanation, I think there is something you don't.

18:45.240 --> 18:46.240
Yeah, if I want?

18:46.240 --> 18:47.240
Yeah.

18:47.240 --> 18:54.240
On the end of teaching me, there is FBI.

18:54.240 --> 18:57.240
On the, or yes, there, okay.

18:57.240 --> 19:01.240
Okay, submit a PR.

19:01.240 --> 19:03.240
We'll fix it in the next version.

19:03.240 --> 19:04.240
Okay.

19:04.240 --> 19:05.240
It's supposed to jump in now.

19:05.240 --> 19:07.240
I'm sorry.

19:07.240 --> 19:08.240
Okay.

19:08.240 --> 19:11.240
So real question.

19:11.240 --> 19:12.240
Comment first.

19:12.240 --> 19:15.240
Then the question that that was a context leads to.

19:15.240 --> 19:20.240
I work with non-anglophone people writing.

19:20.240 --> 19:23.240
Anglophone comments in code.

19:23.240 --> 19:31.240
How extensive could this grammar as a service solution be made to correct languages made by non-native speakers?

19:31.240 --> 19:33.240
Can I see there are a series of corrections.

19:33.240 --> 19:37.240
But I don't know how many corrections you could make.

19:37.240 --> 19:38.240
Yeah.

19:38.240 --> 19:41.240
There's no reason that depending on your.

19:41.240 --> 19:44.240
So the question is about.

19:44.240 --> 19:48.240
See what I did there.

19:48.240 --> 19:53.240
So the question is about coders who are non-native speakers and how they could fix it while

19:53.240 --> 19:54.240
they're coding.

19:54.240 --> 19:56.240
And they answer his well, why not?

19:56.240 --> 19:59.240
There's no reason you couldn't have this service running either on your local machine.

19:59.240 --> 20:01.240
It's very, very lightweight.

20:01.240 --> 20:02.240
It's JavaScript.

20:02.240 --> 20:03.240
A couple hundred lines.

20:03.240 --> 20:07.240
You can just have that running and your editor can just say, okay, here's the code.

20:08.240 --> 20:09.240
What do you think of it?

20:09.240 --> 20:14.240
And then it can throw back a fixed grammar version for you while you're still there.

20:14.240 --> 20:16.240
It's something you'd have to set up.

20:16.240 --> 20:18.240
But there's no reason why it couldn't.

20:18.240 --> 20:21.240
You know, it was built to be an API.

20:21.240 --> 20:23.240
So yes, go for it.

20:23.240 --> 20:24.240
You had a question.

20:24.240 --> 20:25.240
I think you as well.

20:25.240 --> 20:26.240
And there's another one on here.

20:26.240 --> 20:27.240
A real one.

20:27.240 --> 20:28.240
Really?

20:28.240 --> 20:29.240
Yeah.

20:29.240 --> 20:30.240
Good.

20:30.240 --> 20:31.240
Well, there's this thing.

20:31.240 --> 20:34.240
We have in a weblight called Intermediate Language.

20:34.240 --> 20:42.240
It's usually used that you have a lot of, well, mostly all of the software is written in English.

20:42.240 --> 20:45.240
No matter that nobody is English native.

20:45.240 --> 20:47.240
And even English native.

20:47.240 --> 20:52.240
Well, even British people are messing the grammar as you know.

20:52.240 --> 20:53.240
Yeah.

20:53.240 --> 21:00.240
So mostly it's used as developer English, meaning that you have, before you let

21:00.240 --> 21:03.240
translate this all machines to do the translation.

21:03.240 --> 21:06.240
You use Intermediate, developer English.

21:06.240 --> 21:12.240
So you as writer of the code can do something that's very understandable.

21:12.240 --> 21:17.240
Then that's translated by reviewers to English.

21:17.240 --> 21:20.240
That's used as a source for all the translations.

21:20.240 --> 21:29.240
And we have, or Weblight has plenty of machine translation and machines integrated to do

21:29.240 --> 21:32.240
machine translation general.

21:32.240 --> 21:35.240
But probably this could be very specific.

21:35.240 --> 21:37.240
And we should talk to each other.

21:37.240 --> 21:44.240
Because do you think that you would like to modify this a little bit to be a provider for

21:44.240 --> 21:51.240
machine translation from English to good English form?

21:51.240 --> 21:52.240
Why not?

21:52.240 --> 21:55.240
So the question is, use this elsewhere.

21:55.240 --> 21:57.240
And the answer is, why not?

21:58.240 --> 22:01.240
I don't know what the solution is here.

22:01.240 --> 22:06.240
As I don't think English is the one and true language.

22:06.240 --> 22:10.240
But unfortunately it has become the effect of language of the planet.

22:10.240 --> 22:17.240
So if we can at least use decent English, wherever it's being used, then yeah.

22:17.240 --> 22:22.240
I'll try and I'll hack change and mess around with this as much as necessary.

22:22.240 --> 22:24.240
So get good stuff out there.

22:24.240 --> 22:26.240
So you know, let's face it.

22:26.240 --> 22:27.240
I'm an employable.

22:27.240 --> 22:29.240
So I've nothing else to do this week.

22:29.240 --> 22:33.240
So let's see, let's see what's wrong and move fix it.

22:33.240 --> 22:35.240
So we have to get in one scene.

22:35.240 --> 22:38.240
There are those are brought in a sentence.

22:38.240 --> 22:42.240
Because you have to see, I have to you have to get in one scene.

22:42.240 --> 22:46.240
But a gentleman of Dutch people translating laterally is,

22:46.240 --> 22:49.240
you have one scene for get in.

22:49.240 --> 22:52.240
So I've gone vastly in Chinese.

22:52.240 --> 22:55.240
It's more, more completely conversely,

22:55.240 --> 22:59.240
inversely, on the wall in the same place.

22:59.240 --> 23:00.240
So it is.

23:00.240 --> 23:03.240
Yeah, Germany's time-manor places in order.

23:03.240 --> 23:05.240
You've got to get that right.

23:05.240 --> 23:08.240
Yeah, I remember that for my coordinates.

23:08.240 --> 23:10.240
You had a question still.

23:10.240 --> 23:11.240
Yeah.

23:11.240 --> 23:14.240
You were talking about screenwriters.

23:14.240 --> 23:15.240
Yeah.

23:15.240 --> 23:20.240
You can't necessarily go back and read something because it's voice.

23:20.240 --> 23:24.240
So there's a, I don't really know the tech dialects or screenwriters,

23:24.240 --> 23:31.240
but it doesn't serve us to break up one of the sentences.

23:31.240 --> 23:35.240
So does the library break up the sentence?

23:35.240 --> 23:38.240
Not really, it takes the whole thing in.

23:38.240 --> 23:39.240
It looks at everything.

23:39.240 --> 23:43.240
Try to apply some context to that sentence and go,

23:43.240 --> 23:46.240
okay, I'm now changing the whole thing.

23:46.240 --> 23:53.240
So it wouldn't currently be a lot of use in a live translation environment,

23:53.240 --> 23:55.240
but it could be used if you said, well,

23:55.240 --> 23:59.240
let's just look at the next comma, pass that to the library,

23:59.240 --> 24:02.240
get that to fix it and then do the next bit.

24:02.240 --> 24:05.240
So it is hackable in that way and it's,

24:05.240 --> 24:07.240
and when you've got that sort of library,

24:07.240 --> 24:08.240
it's up to you what you feed it.

24:08.240 --> 24:12.240
So you could just say, well, I'll give you the 10 words I've got,

24:12.240 --> 24:16.240
and then maybe it will make something good after it.

24:16.240 --> 24:18.240
Yeah, something I actually have, I forgot,

24:18.240 --> 24:21.240
I was giving a talk about Eliza, the AI chatbot Eliza,

24:21.240 --> 24:22.240
just prior to this.

24:22.240 --> 24:24.240
And I forgot to mention that Eliza,

24:24.240 --> 24:26.240
if you have one heard of Eliza,

24:26.240 --> 24:28.240
the AI chatbot from 60 years ago,

24:28.240 --> 24:31.240
yeah, well, that doesn't process the whole sentence.

24:31.240 --> 24:33.240
It stops at the first comma,

24:33.240 --> 24:35.240
all the first word, but.

24:36.240 --> 24:38.240
And it just does the bit before,

24:38.240 --> 24:40.240
and ignores the rest of it.

24:40.240 --> 24:42.240
It's like when you send an email to your boss

24:42.240 --> 24:44.240
and they only ask the first question on your list,

24:44.240 --> 24:46.240
that's what it does.

24:46.240 --> 24:48.240
So you could have dropped that mechanism

24:48.240 --> 24:50.240
and just say, well, I'm just going to look for a comma,

24:50.240 --> 24:52.240
send that off, get that fixed.

24:52.240 --> 24:54.240
That career solution.

24:54.240 --> 24:56.240
I saw another hand wave, yes.

24:56.240 --> 24:58.240
You were talking about, like,

24:58.240 --> 25:00.240
attracting, which, like, written, which is correct,

25:00.240 --> 25:02.240
but I want to understand how you would have

25:02.240 --> 25:04.240
to be Lord words, which English uses,

25:04.240 --> 25:06.240
like, English is not, like,

25:06.240 --> 25:09.240
consolidated if you knew you came and now.

25:09.240 --> 25:11.240
And there are a lot of Lord words, like,

25:11.240 --> 25:14.240
we understand, like, Hasbro,

25:14.240 --> 25:16.240
but who I know that, which are using English

25:16.240 --> 25:18.240
and which are kind of used in legal terms,

25:18.240 --> 25:21.240
but these days, how would you use it?

25:21.240 --> 25:25.240
So the library does have some loan words in it.

25:25.240 --> 25:28.240
So the idea of how do we handle loan words,

25:28.240 --> 25:31.240
they are quite literally hard-coded in there.

25:31.240 --> 25:33.240
And I'm saying, these are the ones you need to pay

25:33.240 --> 25:36.240
special attention to, but it's not complete.

25:36.240 --> 25:39.240
So hopefully over time that will grow,

25:39.240 --> 25:42.240
maybe it's the case of splitting out the library.

25:42.240 --> 25:44.240
So we have one library that says,

25:44.240 --> 25:46.240
okay, I'm going to do all the numbers

25:46.240 --> 25:47.240
to words calculation.

25:47.240 --> 25:49.240
I'm going to do all the pluralization,

25:49.240 --> 25:51.240
this library will do loan words.

25:51.240 --> 25:52.240
Maybe that's the way it goes.

25:52.240 --> 25:54.240
Maybe this project just has to go away,

25:54.240 --> 25:58.240
so that the other libraries take care of the big bulk of loan words.

25:58.240 --> 26:03.240
Because as you say, English is quite literally all loan words.

26:03.240 --> 26:05.240
I don't know, I don't know how many words in English

26:05.240 --> 26:07.240
are actually English words anymore.

26:07.240 --> 26:10.240
You know, not to misquote George W. Bush,

26:10.240 --> 26:12.240
but the fans have no word for entrepreneur.

26:12.240 --> 26:14.240
That kind of thing.

26:14.240 --> 26:17.240
We have literally stolen everything.

26:17.240 --> 26:19.240
That's why the British Museum has got some really good

26:19.240 --> 26:21.240
Elgin marbles in it.

26:22.240 --> 26:25.240
Okay, I'm not being allowed back in the British library.

26:25.240 --> 26:26.240
Am I?

26:26.240 --> 26:28.240
Okay, any other questions?

26:28.240 --> 26:30.240
I know I've got about two minutes left to come

26:30.240 --> 26:32.240
to my timekeeper at the front.

26:32.240 --> 26:33.240
No?

26:33.240 --> 26:35.240
All in which case?

26:35.240 --> 26:36.240
Thank you all again.

26:36.240 --> 26:37.240
Good night.

26:37.240 --> 26:39.240
Thank you.

