- From: Barry Norton <barry.norton@aifb.uni-karlsruhe.de>
- Date: Sun, 21 Nov 2010 15:39:43 +0100
- To: Toby Inkster <tai@g5n.co.uk>
- CC: Melvin Carvalho <melvincarvalho@gmail.com>, Semantic Web <semantic-web@w3.org>, Linked Data community <public-lod@w3.org>
Forgive my dropping into the conversation to be critical, but in <#node1> <#hide-under-rug> <#node2> . #hide-under-rug does not seem like a predicate defining the relationship between two nodes. It's clear to see how this came about, as north_of and south_of could be predicates (and easily confused with north, as modelled). I'd suggest to model: :node1 :permitsAction :action. :action :leadsTo :node2. where either: :action rdf:type :NorthMove (and :NorthMove rdfs:subClassOf :Move) or some other predicate holds between :action and :north (which could then be an individual - where the classification fits is a matter of taste). One immediate advantage is the ability to allow other predicates to apply to moves - while hiding under the rug might be generally allowable, such games often require potions/weapons/etc. for certain moves to be permitted. Such a :requires predicate could also be applied either to the 'instance' (if modelled as such) or the 'class'. For example: :node1 :permitsAction :castSpellOnWarlock1. :castSpellOnWarlock1 :leadsTo :node2; rdf:type :CastSpell ; :requires :potion1 . (In fairness maybe :CastSpell should be :SpellCasting, but I don't want to be too pedantic) Versus: :node1 :permitsAction :castSpellOnWarlock1. :castSpellOnWarlock1 :leadsTo :node2; rdf:type :CastSpell . :CastSpell :requires :potion1 . (In which case wherever you're allowed to cast a spell it requires this potion) Barry On 21/11/2010 00:43, Toby Inkster wrote: > On Sat, 20 Nov 2010 19:13:31 +0000 > Toby Inkster<tai@g5n.co.uk> wrote: > >> I'd be happy to mock-up an interface - perhaps tonight! > Here are a few test nodes: > > http://buzzword.org.uk/2010/game/test-nodes/london > http://buzzword.org.uk/2010/game/test-nodes/birmingham > http://buzzword.org.uk/2010/game/test-nodes/brighton > http://buzzword.org.uk/2010/game/test-nodes/hove > > The vocab they use is: > > http://purl.org/NET/game# > > I've put together a little web-based client you can use to "play" the > game here: > > http://buzzword.org.uk/2010/game/client/?Node=http%3A%2F%2Fbuzzword.org.uk%2F2010%2Fgame%2Ftest-nodes%2Flondon > > Source code is here: > > http://buzzword.org.uk/2010/game/client/source-code > > As you should be able to see from the source, while the four test nodes > only link to each other, they could theoretically link to nodes > elsewhere on the Web, and the client would follow the links happily. > > Melvster wrote: > >> However most book based text games will have a description added to >> each link, rather than simply directions to travel. > The way I've written this client, the nodes themselves can extend the > pre-defined link directions: > > <#node1> <#hide-under-rug> <#node2> . > > <#hide-under-rug> > rdfs:label "hide under the rug" ; > rdfs:subPropertyOf game:exit . > > The client will notice you've defined a custom direction, and offer it > as an option. > > One possible addition, that would go way beyond what the CYOA books > could offer would be for the client to have a stateful store. So when > you entered a room, there could be a list of room contents which you > could collect into your store. The objects that you've collected could > then influence the progress of the game. Probably need to think a bit > more about how this should work. >
Received on Sunday, 21 November 2010 14:42:00 UTC