variable scope: the "metawriter" example

Hi all,

I am still struggling with variable scopes, and I came up with the 
following example:

(link to N3 editor: http://ppr.cs.dal.ca:3002/n3/editor/s/f20yee8Y )

   @forAll :X, :Y, :Z.

   { :X :wrote { :Y :wrote :Z } } => { :X a :MetaWriter1 }.
   { :X :wrote { :Y :wrote [] } } => { :X a :MetaWriter2 }.

   :alice :wrote { :bob :wrote :abook }.
   :charlie :wrote { :bob :wrote [] }.

NB: the @forAll is only required by CWM. In Eye, :X, :Y and :Z can 
simply be replaced with ?x, ?y and ?z for the same result.

The two rules are slightly different. Should they fire in the same 
situation?

EYE fires both rules for both :alice and :charlie.

CWM on the other hand, fires only the 1st rule for :alice, and fires 
both for :charlie.


What is your take on this? I personally have not made up my mind on this...

   pa

Received on Thursday, 14 October 2021 12:24:58 UTC