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<[email protected]>  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.



Reply via email to