Thursday, 12. May 2005


Before I can adress any counter arguments, I'll have to give some more thought to my fundamentals. Up until now, I have Obstacle # 1 (virtual actors with no talent and no originality), and Obstacle #2 (no language I share with other creators of virtual actors with no talent and no originality - we effectively can't talk about #1).

What we have here is the classic structure of a dramatic problem, or story problem. A problem is suitable as a foundation for a Story (read: "story" as defined for the Robot Soul namespace) if and only if it consists of two component parts: a subjective component, A, (here: the character Scheuring, creator of talentless, unoriginal virtual actors, is shown to be in a miserable situation), and an objective component, B, (here: other characters are shown to be basically in the same situation, but the members of this (open) set of Objective Characters - which includes Scheuring - don't even have a language to talk about their misery).

Next, I raise the level of abstraction one notch, and declare component A, which started out as Scheuring's personal problem, to be the Objective Story Problem, shared by all Objective Characters. Programmatically, Objective Story Problem is a variable, and the value I assign to this variable now is: "AI researches failing to create virtual actors which are percieved as talented and original by their intended audiences."

For every Objective Story Problem, there has to be an Objective Story Solution, which I hereby declare to be another variable, assigning to it the initial value: "AI researchers finding a common language." This proposed Problem/Solution pair lets me declare a rule:

if Creator find(language)
then Creator create(newAndBetterVirtualActor)

This is what is called a Story's Premise: the "ground rule" that is tested by the Story's Argument, for validity and for correctness. The Story encompasses the Argument about whether the Premise is true or not. That's what the Story is about. Later on, I'll have to get much more specific about the about-ness of this about-ness, but first, I'll need to take another look at my characters.

So far, I've created the set of Objective Characters; it consists of all of the characters that are to take part in the story. We call the area of the story that is shared by all those characters the Objective Story Domain, and the "thread" that represents their interactions and conflicts the Objective Story Thoughline.

Now, I will create another set of characters: Subjective Characters. There are exactly two Subjective Characters to each Story, and I select them from the Objective Characters, meaning they'll keep their objective functions in the story, but each of them now has to also fulfil a subjective function, setting them apart from the other Objective Characters. The two subjective characters are the Main Character and the Impact Character. Note that the declaration does not automatically entail that the assignment has to be anything like Main Character = Protagonist and Impact Character = Antagonist; Protagonist and Antagonist are Archetypes for Objective Characters, and while the objective/subjective arrangement resulting in Main Character = Protagonist is fairly often used, Impact Character = Antagonist is in fact quite unpopular, as it is difficult to create an opponent that works the objective and subjective side simultaneously (you get fewer/thinner threads to work with, fewer opportunities for differentiation, forced cooperation and the like, and potentially, conflict in technically unsuitable places).

The purpose of the Subjective Characters is, roughly, to depict conflicting personal stances with reference to the two sides of the Argument about the Objective Story Problem. For that, they'll both get their own Domains, with a Main Character Throughline and an Impact Character Throughline, respectively.

My Main Character is going to be that Scheuring guy, obviously; he's into AI research up to his gills, but he's relatively new to the field, and I have him in mind as some kind of a terminal romantic, who says stuff like: "If only we could find a language, so we could learn from one another - then we could create much better virtual actors <sigh/>!" A bit... soft, you know. But good at heart. All the ladies want to cuddle him, like, protect him and stuff.

The Impact Character is a Real Programmer called Mel, who coded his way out of so many paper bags that his Deli ran out of supplies, and who says "Not!" a lot, and "Troll!", and "Kook!", and "Dullboi!"... get the picture? To give them space and screentime for their quarrels to unfold, the Subjective Characters will get a Subjective Story Domain and Subjective Story Throughline of their own.

OK, let's see - we have Main Character and Impact Character now; Objective Story, Subjective Story, Main Character, and Impact Character Domains; plus Objective Story Problem and Objective Story Solution. We'll still need Problem/Solution pairs for the other three Domains, and Focus/Direction pairs for all four of them, meaning we'll have to discuss the about-ness issue that I hinted at earlier. We'll...

"Now wait a minute... wait!... wait!... that's just sooo kooky, dude! That can never work!"

Huh? What's that? Who's talking?

"It's me, dullboi! Mel! You've just created me, remember?"

Oh, all right. So what is it, Mel?

"It's like, maybe you can impress your quiche-eating theatre friends with all that lofty talk about "Main Character Domain", "Subjective Story Problem", "Focus/Direction pairs". To a Real Programmer, that is just bull from here to Jordan!"

Mel?! But... why would you think so?!

"Aaargh! Dumbnuts! You know nothing is why, okay? YOU... KNOW... NOTHING!!!"

But Mel, that's not true at all! There's a lot that I do know! I...

"Shut up already... damn! You think it's enough for you to do the handwave over your top hat, then pull out some words, like friggin' rabbits? Where's all that effin' vocab coming from all of a sudden? You can't use any variables you didn't declare in the header! You call that programming? Let me tell you, you got nothing on that, dude!"

Now come on, Mel... behave, will you? All those words are properly defined, declared, and explained; just look here. I've simply adopted the language, Elements of Structure and all that, from the Dramatica Theory Book. You should just go read it; it'll make you understand me much better.

"Oh. WOW! You got a THEORY BOOK doing your programming?!? Just tell me, did you find me in there, too? Like, in your theory book?!?"

Yes, Mel, in a way, I did find you in there... erm... structurally...






Have you finished now?






You think this is so funny, don't you?

"WORD!!! First of, you want dudez to learn all that Meyerhold stuff, then it's that Stanislawski stuff, and now it's that Dramatica stuff on top of that - and it's all so that I can 'understand' your wack-ass theory?!? Dude! That is funny!"

I see. So it's alright to claim "artists should learn to program", but "programmers should learn to art" seems wrong to you, obviously. That doesn't make sense to me at all.

"But sure, dude - that makes purrfect sense! Just ask ANYBODY!"

But if, as a programmer, you want to create, say, a virtual car - doesn't that mean that you start by figuring out exactly how a real car works? The detailed physics of the combustion engine, the mechanics of the braking system, the aerodynamic resistance and so forth? To be able to simulate that car on a computer, you need to know all that stuff, right?


Sooo... if you wanted to create a virtual actor - don't you think that it would be apt to study how real actors work, so that you can simulate them on a computer?


Why not?!?

"First of, I know actors. Watch them on TV each night. Plus, you think I got time to eat quiche with theatre dudez? I got programs to write, f00l!"

Listen, I spent the last four years learning about how lambda calculus works, and Cornell algebra, and how programming languages are designed, and more definitions than I could shake a stick at. I started out on that at age forty with a high school level of mathematical understanding. Why would you want to wimp out on having to learn a little Method acting, BioMX, and Grand Argument Story theory?

"Because I just don't believe it's worth it, dude."

I'll keep working on that. I'll explain it all to you - big promise!

"You can't make me believe you!"




No, you're right. I can't make you believe me. You can just go now. Good bye.




I notice that you're still here with me.




Wah-hey! You're still here!




Can't I even make you go away?




"Dude! What are you - some kinda kitchen psychologist?"

I prefer to be thought of as a storyteller, but yeah, same thing, basically.

Tuesday, 10. May 2005

The fifth state

I forgot to tell you about the fifth state, Interrupt. Using Interrupt, the bot can interrupt whatever it's doing, save the current state, do something else first, then go back to the state before the Interrupt and complete the interrupted action as necessary. "As necessary" means that what it ends up doing might not be what it started out doing, because the results of the Inner Behavior that Interrupted the Outer Behavior get evaluated together with the saved state of the Outer Behavior, and thus, can modify it. Behaviors can be nested; any Inner Behavior can be an Outer Behavior having its own Inner Behavior, and Interrupt works the same all the way in, and out again.

Monday, 9. May 2005

What is a spectator?

Following Meyerhold, Antohin offers the definition:

Spectator = Director = Character = Actor
Thirty years later I still ask the same question -- where does theatre begin?

I know the answer.

Not with an actor, but with your gaze at the space which becomes stage, charged with your expectations. Yes, theatre starts with the public.

Public could be one single soul. It's me, director. I prepare the spectacle for them, I know what they want because I am a spectator myself. I know what I want to see.

Directing is easy, to be a spectator is not...
"Theatre starts with the public." Bot Creators often refer to their Spectators as clients. Extended into the botmaster's domain, the above equation reads:

Spectator = Director = Character = Actor = client | bot

Assumption #2, again. Turing's assumption.

The theatre experience starts with the public's gaze. The chatbot experience starts with the client sending the CONNECT string.


A notational convention that I follow:

code = Metaphor

Metaphor = Actor | Creator | Spectator | Director | Story | ...

Sunday, 8. May 2005

Thinking machines go pop

I take the view that computer languages, robot ethics, method acting, and biomechanics are the main ingredients that fused, in the 1950s, to become the cultural meme we call Artificial Intelligence, or AI for short. None of those ingredients was wholly new at that time: biomechanics and the Method - first known as the Stanislavski system - had been around since the early 1920s; Isaac Asimov, in conjunction with science fiction author and editor John W. Campbell, formulated the Laws of Robotics in 1940 ('t was about time, too - Jaques de Vaucanson had had the first mecha working in 1737); Ada Lovelace had anticipated the development of computer software, artificial intelligence and computer music back in 1843. But in the 1950s, thinking machines went pop.

So now you know how to interpret the "culture" in my "cultural meme": my professional background is in what people call pop culture. I had more than 20 years of work experience as a punk band singer, music magazine publisher, editor, scriptwriter, reporter, DJ, director, composer, A/V-producer, and nightlife entrepreneur, before I started programming computers four years ago. I take a broad view of pop culture, however; it includes scientific papers such as "Making Robots Conscious of their Mental States" as artefacts of pop, and casts that paper's author, computer scientist John McCarthy, as an ur-wiz of AI, a pop hero. Mental states for robots - that is so pop, dude!

Saturday, 7. May 2005

What is a character?

Here are some examples of characters that have been spawned by the cultural meme called AI: Isaac Asimov's robots, John McCarthy's thinking machines, HAL, CYC, Data, Eliza.

Here's what Marlon Brando, well known as a Method actor, said about characters:
Nobody "becomes" a character. You can't act unless you are who you are.
Character is as Actor does. Anatoly G. Antohin, theatre director and scholar (profile, resume), outlines the relationship between Characters and Actors in this way:
There are many great characters, thanks to great playwrights. Your business is not [only] to deliver their texts, but to use it as a material too. And you have to know HOW to do it, how to USE it.

So, you have to use both -- the text and yourself!
OK - how can we create virtual Actors who can use a playwright's text and themselves to create Characters? What does the advice to "use both -- the text and yourself" mean when "yourself" is the text itself?

That is the $64000 question.

What's your creation?

I regard a bot that I create primarily as an Actor.

I define Actor using "Meyerhold's formula":

Actor = Creator + Medium

For my current purpose, I define Medium as:

Medium = AIML

However, the language choice is largely arbitrary: AIML can be substituted by any computational language or system that is Turing-complete. It's a generalized process that I'm interested in; a high-level representation of that process could be written as:

Creator creates Actor using Medium

Recent Comments

I feel fine.
I know someone will comment on it soon :-) Theatre...
scheuring - 14. Jun, 10:24
How do you feel when...
How do you feel when you receive no comments? How can...
Magical - 14. Jun, 09:19
Thanks, Brian,
for this interesting invitation. Since, by your own...
scheuring - 15. May, 10:33
AI-Foundation Panel
Dirk, I like the thinking. Because of that expertise,...
Brian Hoecht - 13. May, 22:05
you're welcome.
scheuring - 29. Apr, 16:29
thanks scheuring!
Cool, that seems to cover most of the basics. Definitely...
drgold - 28. Apr, 05:41
Top 400
About five years ago (pre-ProgramD), the "standard"...
scheuring - 22. Apr, 14:55


vi knallgrau GmbH

powered by Antville powered by Helma

Creative Commons License

xml version of this page
xml version of this topic AGB

Subscribe Weblog