W3C home > Mailing lists > Public > public-lod@w3.org > November 2010

Re: Possible Idea For a Sem Web Based Game?

From: Barry Norton <barry.norton@aifb.uni-karlsruhe.de>
Date: Sun, 21 Nov 2010 15:39:43 +0100
Message-ID: <4CE92F2F.2080307@aifb.uni-karlsruhe.de>
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:40:14 UTC

This archive was generated by hypermail 2.3.1 : Sunday, 31 March 2013 14:24:30 UTC