[erlang-questions] digraph questions

Lloyd R. Prentice lloyd@REDACTED
Tue Apr 9 17:19:19 CEST 2019


Much appreciate the many inspiring responses.

Bob, I must have experienced a touch of brain lapse. Turns out I did execute vertex/2. Just failed to notice that it returned the label. Apologies to all.

Hugo, et. al., I’m very interested in your experience graphing narrative structures. I can understand how attempts to graph the narrative flow of a serious work of fiction after the fact can result in dense graphs with many ontological issues.

I’m playing around with a kind writer’s sketch pad— a tool with which a writer can quickly visualize and construct a scene involving several characters and interactively play around with different sequences of motivation, action, and consequence.

In my experience as a novelist, I often don’t know what’s going to happen to my characters when I throw them together in a setting to construct a scene. I can write it out as a creative act of discovery, but then the temptation is to get stuck on that one of many possible solutions. So I’ve been thinking about a mind-map kind of application with quick turn-around to imagine and visualize different possible scenarios.

The graph structure definitely has limitations. Joe hits Bob is easy to graph. But why, what alternatives did Bob consider before responding, how is the dispute resolved, etc., is more challenging.

I welcome any and all ideas.

Thanks again to all.

Best,

Lloyd

Sent from my iPad

> On Apr 9, 2019, at 7:01 AM, Hugo Mills <hugo@REDACTED> wrote:
> 
>> On Tue, Apr 09, 2019 at 09:24:50AM +0000, Mike French wrote:
>> Yes, try Inception, or Memento, which has ~linear narrative of a
>> non-linear character :)
> 
>   It's almost more interesting (and more relatable) to find cases
> which aren't science fiction, which is why I picked Pulp Fiction and
> CSI for examples of time travel and alternate universes respectively.
> 
>   There's also fun to be had over characters that appear in different
> guises: Holmes as played by Rathbone, Brett or Downey, say, or Death
> as portrayed in Discworld, Sandman, The Seventh Seal, or Bill and
> Ted...
> 
>> The problem with RDF is that everything is a subset of RDF. Just as
>> I gave up formal methods when an expert told me that "floating
>> point... that's still a research topic" (RAL 1990), so I gave up RDF
>> when the philosophers started arguing about a Standard Upper
>> Ontology (SUO), for things like space and time, which looked like it
>> could last for decades. There should be a harder prequel CS deadlock
>> problem called The Arguing Philosophers, about where to have dinner
>> in the first place).
> 
>   Practical RDF, lesson 1: You can pretty much ignore anything that
> calls itself an upper ontology, because it's mostly going to be
> "here's all these obvious things, and we'll leave all the hard details
> for you to sort out".
> 
>   There is, for example, a perfectly good time ontology (OWL Time,
> from the W3C) which covers both topological and measured times, the
> latter being open to multiple calendar representations (although they
> concentrate on the proleptic Gregorian calendar in the spec).
> 
>   For spatial, there's a whole load of Geo-* stuff that works in two
> dimensions, and mostly falls back on WKT. I've certainly seen a good
> topological spatial representation, but that was nearly two decades
> ago, and I think it's probably been lost since.
> 
>   The practical approach to RDF: pick what's already out there, and
> what's practical to use now. Fill in the bits that aren't available
> off the shelf yourself. Prov-O for processes, OWL Time for time, WKT
> for spatial, QUDT for units, Data Cube for tablular structure, ...
> 
>> For a practical interactive system that uses graph-based spatio-temporal data, see Palantir. In addition to tagged text and table listings, it has 3 connected views of the same data: graph, map and timeline.
>> 
>> 
>> StoryFlow cites XKCD as a reference:
>> 
>> 
>> https://xkcd.com/657/
>> 
>> ________________________________
>> From: erlang-questions-bounces@REDACTED <erlang-questions-bounces@REDACTED> on behalf of Hugo Mills <hugo@REDACTED>
>> Sent: Tuesday, April 9, 2019 11:43 AM
>> To: lloyd@REDACTED
>> Cc: erlang-questions@REDACTED
>> Subject: Re: [erlang-questions] digraph questions
>> 
>>> On Mon, Apr 08, 2019 at 07:28:49PM -0400, lloyd@REDACTED wrote:
>>> 
>>> The Erlang digraph library looks like it may provide an interesting way to diagram scenes in a novel.
>>> 
>>> 1> Scene10 = digraph:new().
>>> 
>>> Imagine:
>>> 
>>> Setting:"park"
>>> Character1:"Franco"
>>> Character2:"Sophia"
>>> 
>>> 2> digraph:add_vertex(Scene10, "Park", "Night").
>>> 3> digraph:add_vertex(Scene10, "Franco", "Old and fat").
>>> 4> digraph:add_vertex(Scene10, "Sophia", "Young and beautiful").
>>> 5> digraph:add_edge(Scene10, "Franco", "Sophia", "loves").
>> 
>>   Congratulations, you just invented a subset of RDF. :)
>> 
>>   Also, I fear that contextus.net has now vanished, but there were a
>> bunch of people at Southampton University about 10 years ago
>> (including me) who were working on narrative descriptions in RDF.
>> 
>>   It gets more complicated when you have to deal with temporal
>> descriptions (X loved Y until X discovered that Y was having an affair
>> with Z), and different narrative timelines (the audience's experience
>> of the timeline of Pulp Fiction is very different to that of the
>> characters; CSI usually shows multiple inconsistent views of the crime
>> over the course of an episode). You can also start modelling different
>> characters' beliefs (see, for example, the end of Romeo and Juliet,
>> where the plot hinges critically on what people think they know).
>> 
>>   I'm not sure if I've got any of the ontologies any more, but I can
>> ask around the group and see if it's on someone's hard disk still...
>> 
>>   Hugo.
>> 
>>> OK to here EXCEPT command 5 returns:
>>> 
>>> ['$e'|0]
>>> 
>>> 6> digraph:add_edge(Scene10, "Sophia", "Franco", "hates").
>>> 
>>> OK to here EXCEPT command 5 returns:
>>> 
>>> ['$e'|0]
>>> 
>>> 6> digraph:add_edge(Scene10, "Sophia", "Franco", "hates").
>>> ['$e'|1]
>>> 
>>> Wah!
>>> 
>>> Question 1: How do I see labels?
>>> 
>>> Question 2: Be cool to add a sequence of actions. I can probably figure this out, but is there an elegant solution?
>>> 
>>> Question 3: I'd love to visualize the graph. I see it can be done in Elixir. But I don't know Elixir. Has anyone programmed a way to visualize digraphs in Erlang?
>>> 
>>> Comment: Digraph is crying out for a comprehensive tutorial. I'd love to do it, but just don't know enough yet.
>> 
> 
> -- 
> Hugo Mills             | Great oxymorons of the world, no. 3:
> hugo@REDACTED carfax.org.uk | Military Intelligence
> http://carfax.org.uk/  |
> PGP: E2AB1DE4          |




More information about the erlang-questions mailing list