Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as...

85
Generative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza 1 Presented at Interactive Narrative Technologies June 18, 2014

Transcript of Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as...

Page 1: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Generative Story Worldsas

Linear Logic ProgramsChris Martens, João Ferreira,

Anne-Gwenn Bosser, and Marc Cavazza

1

Presented at Interactive Narrative TechnologiesJune 18, 2014

Page 2: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Generative Story Worldsas

Linear Logic ProgramsChris Martens, João Ferreira,

Anne-Gwenn Bosser, and Marc Cavazza

2

Presented at Interactive Narrative TechnologiesJune 18, 2014

Page 3: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

3

new programming languages for digital narratives

Praxis & Prompter:

Page 4: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

4

OLD programming languages for digital narratives(?)

LOGIC

Page 5: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

5

old programming languages for digital narratives

LINEAR LOGIC

Page 6: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

6

used linear logic as a programming language (Celf)for specifying narrative worlds;

used proof search to generate structured stories.

What we did:

Page 7: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

THREE ACTS

7

I. Setup: agent simulation, linear logic, andlogic programming

II. Payoff: Stories as Proofs

III. Promise and Limitations

Page 8: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

8

Page 9: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

9

greetinsult

complimentgossip

flirt...

social verbs: social state:

knowledgesentiment

emotional statepersonality

belief

Page 10: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

10

verbs: rulescausal relationships: resource dependencies

Page 11: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

RULES

11

Narrative Actions~

Logical implication

Page 12: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

12

the problem with standard logical implication:

buy_soda :has(Alice, $1) ^ wants(Alice, soda) ⇒

has(Alice, soda)

Page 13: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

LINEAR LOGIC

13

A -o B

Page 14: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

14

buy_soda :has(Alice, $1) * wants(Alice, soda) -o

has(Alice, soda)

Page 15: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

15

A * BA -o B

!A

Page 16: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

16

A * BA -o {B}

!A

Page 17: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Logic Programming

17

proof search as program execution

Page 18: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

18

initial state

Σ Δ0

Celf

query(optional)

A

Δ0, …, ΔΔ ⊢ A?

narrative actions

Page 19: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Logic Programming

19

A -o {B}

Δ, A → Δ, B

Δ = arbitrary context of resources A1, …, An

Page 20: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

20

Example in our paper:Shakespearean tragedy world

Page 21: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

21

Shakespearean tragedy world

state components:character location, possession,

sentiment toward other characters,goals

Page 22: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

22

Shakespearean tragedy worldat <character> <location>has <character> <object>

anger <character> <character>philia <character> <character>

depressed <character>

Page 23: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

23

Shakespearean tragedy world

!dead <character>!killed <character> <character>

Page 24: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

24

do/insult :

at C L * at C’ L * anger C C’

-o {at C L * at C’ L * anger C C’ anger C’ C * depressed C’}.

Page 25: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

25

do/compliment :

at C L * at C’ L * philia C C’

-o {at C L * at C’ L * philia C C’ * philia C’ C}.

Page 26: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

26

do/murder : anger C C’ * anger C C’ * anger C C’ * anger C C’ * at C L * at C’ L * has C weapon-o {at C L * !dead C’ * !murdered C C’ * has C weapon}.

Page 27: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

27

do/mourn : at C L * philia C C’ * dead C’-o {philia C C’ * at C L * depressed C * depressed C}.

Page 28: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

28

do/becomeSuicidal :

at C L * depressed C * depressed C * depressed C * depressed C

-o {at C L * suicidal C * wants C weapon}.

Page 29: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

29

do/loot

: at C L * dead C' * has C' O * wants C O

-o {at C L * has C O}.

Page 30: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

30

do/comfort : at C L * at C' L *suicidal C' * philia C C' * philia C' C -o {at C L * at C' L * philia C C' * philia C' C * philia C' C}.

Page 31: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

31

initial state

Page 32: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

32

story_start :init -o

{ at romeo town * at montague mon_house * at capulet cap_house * at mercutio town * at nurse cap_house * at juliet town * at tybalt town * at apothecary town *

has tybalt weapon * has romeo weapon * has apothecary weapon *

...

Page 33: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

33

... * anger montague capulet * anger capulet montague * anger tybalt romeo * anger capulet romeo * anger montague tybalt *

philia mercutio romeo * philia romeo mercutio * philia montague romeo * philia capulet juliet * philia juliet nurse * philia nurse juliet *

neutral nurse romeo * neutral mercutio juliet * neutral juliet mercutio * neutral apothecary nurse * neutral nurse apothecary}.

Page 34: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

34

final state

Page 35: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

35

ending_happy : nonfinal *

actor C * actor C’ *at C L * at C’ L * married C C’ -o {final}.

ending_vengeance : nonfinal *

actor C1 * actor C2 * actor C3 *killed C1 C2 * philia C3 C2 * killed C3 C1

-o {final}.

Page 36: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

36

proofs as stories

Page 37: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

37

query:init -o {final}

Page 38: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Nondeterminism

38

A -o {B}

Δ, B

A -o {C}

Δ, C

Δ, A

Page 39: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Nondeterminism

39

A -o {B} C -o {D}

Page 40: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Nondeterminism

40

A -o {B}

Δ, B, C

C -o {D}

Δ, A, D

Δ, A, C

Page 41: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Nondeterminism

41

A -o {B}

Δ, B, C

C -o {D}

Δ, A, D

Δ, A, C

Δ, B, D

Page 42: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

42

proof ofinit -o {final}:

function (x:init) =let [xs] = r [ys] in …

Page 43: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

43

...let {[X73, [X74, [X75, [X76, X77]]]]}

= do/insult/private [a-tybalt, [a-romeo, [X68, [X66, X72]]]] in

let {[X85, [X86, X87]]}

= do/becomeSuicidal [a-romeo, [X79, [X41, [X59, [X52, X77]]]]] in

let {[X88, [X89, [X90, [X91, X92]]]]}

= do/comfort [a-mercutio, [a-romeo, [X78, [X85, [X86, [X81, X83]]]]]] in

let {[X101, [!X102, [!X103, X104]]]}

= do/murder [a-romeo, [a-tybalt, [X58, [X40, [X76, [X51, [X94, [X96, X27]]]]]]]] in

let {[X105, [X106, [X107, X108]]]}

= do/compliment/private [a-nurse, [a-juliet, [X46, [X47, X30]]]] in

let {[X109, [X110, [X111, X112]]]}

= do/compliment/private [a-juliet, [a-nurse, [X106, [X105, X108]]]] in

let {[X113, X114]}= do/loot [a-romeo, [a-tybalt, [X101, [X102, [X26, X87]]]]] in

...

Page 44: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Concurrent Equality

44

r1: A -o B r2: C -o D

“apply r1; apply r2” ~= “apply r2; apply r1”

if A and C are disjoint

Page 45: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

45

graphical representation of traces

Page 46: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

46

init

do/insult/privatedo/formOpinion/dislike

do/compliment/witnessed

do/travelTo

do/compliment/private

do/murder

do/marry

ending_1

do/steal

do/thinkVengefully

do/mourn

do/becomeSuicidal

cleanup/1

do/eroticize

do/suicide

do/flirt/discrete

Page 47: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

47

init

do/insult/privatedo/formOpinion/dislike

do/compliment/witnessed

do/travelTo

do/compliment/private

do/murder

do/marry

ending_1

do/steal

do/thinkVengefully

do/mourn

do/becomeSuicidal

cleanup/1

do/eroticize

do/suicide

do/flirt/discrete

Page 48: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

48

queries on sets of traces

Page 49: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

49

> exists ending_1

> exists do/thinkVengefully && ̃link do/thinkVengefully do/murder

Page 50: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

generative exploration

informative structure

character perspective-agnosticism

50

what does this accomplish?

Page 51: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

51

how do simulation designs fail their authors?

Page 52: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

52

orphan verbsvs causally connected chains

Page 53: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

ACT III

Potential & Limitations

53

Page 54: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

54

combining reactive/exploratory+ goal-driven behavior:

A -o G vs A -o {B}(backward & forward chaining)

Additional potential of LL

Page 55: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

55

higher-order rules: (A -o B) -o C

Additional potential of LL

Page 56: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

56

higher-order rules: (A -o B) -o C

“serendipity:”Forall L. at romeo L * at juliet L -o {eros romeo juliet * at romeo L * at juliet L})

Additional potential of LL

Page 57: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

57

Additional potential of LL

dynamic object generation: Exists x:A. ...

makeRoom : has(C, magic door) * at C R -o {Exists r:room. !adjacent R r}

Page 58: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

58

limitations

Page 59: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

59

limitations(of the tool)

(of the underlying formalism)

Page 60: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

60

limitations of the tool:interactivity

history trackingdebugging facilitiesdrama management

Page 61: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

61

limitations of the formalism:ability to broadcast actions

nondeterminism and control over probabilities

Page 62: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

62

what I plan to address:interactivity

debugging facilitiesability to “broadcast” actions

Page 63: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

63

PHASES

Page 64: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Phases (Example)

64

deduplication

phase act {…

} quiesced act -o {phase dedup}.

phase dedup { wants C O * wants C O -o {wants C O}. } quiesced dedup -o {phase act}.

Page 65: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Phases

phase p1 = {...}phase p2 = {...}

quiesced p1 -o {some_token * phase p2}.

quiesced p2 -o {phase p1}.

Blocks connected by specification of quiescence behavior

65

Page 66: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Phases (Example)interactivity

phase world = { rule1 : do Action * … -o {…}. rule2 : do Action * … -o {…}.}

phase player = {get_input : player_turn -o {read #STDIN}.

}

66

Page 67: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

67

also possible to implement: broadcast

Page 68: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

68

also ongoing:phase invariants

for each phase, constraints on the context…- as an invariant of the phase

- at quiescence

programmer-specified, machine-checked!

Page 69: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

FINALE

69

Page 70: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

70

the point of formalismis to be able to run

readable specifications

Page 71: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

71

the point of formalismis to be able to reason about

readable specifications

Page 72: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

72

Page 73: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

73

Page 74: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

74

linear logic can be used as a programming language for specifying narrative worlds;

to generate narratives& analyze their structure;

potentially the basis for a richer PL.

Takeaway

Page 75: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

FINALE

75

Celf: https://github.com/clf/celf

Example from the paper:http://tinyurl.com/int2014-clf

Me: Chris Martens@chrisamaphone

[email protected] to graduate Summer 2015

Page 76: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

MINUS WORLD(bonus slides)

76

Page 77: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Cut

77

Δ1 ⊢ A Δ 2, A ⊢ CΔ 1, Δ 2 ⊢ C

Page 78: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Frame Property

78

If Δ1 ⊢ Athen

Δ1, Δ2 ⊢ A * ⨂Δ2

Page 79: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Frame Property (alt)

79

If Δ1 → Δ2

then Δ1, Δ’ → Δ2, Δ’

Page 80: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Relationship between step and deductions

80

Δ1 → Δ2

iff for all CΔ2 ⊢ C implies Δ1 ⊢ C

Page 81: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

81

LOGICSare formalisms with

composable consequences

Page 82: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

82

LOGICSare formalisms with

composable consequences

Δ ⊢ A Δ’, A ⊢ CΔ’, Δ ⊢ C

Page 83: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Phases (Example)Broadcast

phase act { do C A * in_room C R -o {broadcast C A R}. }quiesced act -o {phase broadcast}.

phase broadcast { broadcast C A R * in_room C' R -o

{notice C' C A * broadcast C A R}. }quiesced broadcast -o {phase notice}.

83

Page 84: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Phases (Example)Broadcast

84

phase notice { broadcast C A R * notice C' C A -o {react C' C A * in_room C' R * broadcast C A R}. }

quiesced notice * broadcast _ _ _ -o {phase react}.

phase react { react C C' (murder ...) * philia C C' -o {...}}

quiesced react -o {phase act}.

Page 85: Generative Story Worlds as Linear Logic Programscmartens/int-talk.pdfGenerative Story Worlds as Linear Logic Programs Chris Martens, João Ferreira, Anne-Gwenn Bosser, and Marc Cavazza

Phasesdelimited subsignatures connected by specifications of quiescence behavior.

85

quiesced P * State -o {phase P’ * State’}.

arbitrarily many phaseslooping + branching