- From: Story Henry <henry.story@bblfish.net>
- Date: Mon, 26 Apr 2010 20:38:24 +0100
- To: public-cwm-talk@w3.org
I wrote out the following rule ---------✁---------✂-----------------✃----------------------- $ cat test.n3 @prefix log: <http://www.w3.org/2000/10/swap/log#> . @prefix : <#> . @forAll :G, :s, :r, :o . { :G a log:Truth; log:includes {:s :r :o. } } => { :s :r :o. } . { :joe :loves :jane . :jane :loves :jack. } a log:Truth . ---------✁---------✂-----------------✃----------------------- ( Thanks to DanC for pointing out the importance of @forAll here ) This works ---------✁---------✂-----------------✃----------------------- $ cwm test.n3 --think #Processed by Id: cwm.py,v 1.197 2007/12/13 15:38:39 syosi Exp #[snip] @prefix : <#> . @prefix log: <http://www.w3.org/2000/10/swap/log#> . @forAll :G, :o, :r, :s . :jane :loves :jack . :joe :loves :jane . { :jane :loves :jack . :joe :loves :jane . } a log:Truth . { :G a log:Truth; log:includes {:s :r :o . } . } log:implies {:s :r :o . } . ---------✁---------✂-----------------✃----------------------- Ie we get :jane :loves :jack as a fact. This is close to Tarski's definition of truth, so I think we could add this to the log: rules no? As a side note, I found that the same command with '--mode=rse' does not work. It gives the error. Not sure if --mode=rse is still needed ---------✁---------✂-----------------✃----------------------- $ cwm --mode=rse test.n3 --think #Processed by Id: cwm.py,v 1.197 2007/12/13 15:38:39 syosi Exp # using base file:///Users/hjs/Programming/FoafSSL/foafssl-java/papers/spot2009/n3/test.n3 Traceback (most recent call last): File "/Users/hjs/Programming/w3.org/2000/10/swap/cwm.py", line 750, in <module> doCommand() File "/Users/hjs/Programming/w3.org/2000/10/swap/cwm.py", line 617, in doCommand think(workingContext, mode=option_flags["think"]) File "/Users/hjs/Programming/w3.org/2000/10/swap/query.py", line 89, in think return InferenceTask(knowledgeBase, ruleFormula, mode=mode, why=why, repeat=1).run() File "/Users/hjs/Programming/w3.org/2000/10/swap/query.py", line 184, in run return self.runBrilliant() File "/Users/hjs/Programming/w3.org/2000/10/swap/query.py", line 208, in runBrilliant total = scheduler.run(int.__add__) File "/Users/hjs/Programming/w3.org/2000/10/swap/query.py", line 1964, in run retVal = self.next() File "/Users/hjs/Programming/w3.org/2000/10/swap/query.py", line 1958, in next return retVal.thunk() File "/Users/hjs/Programming/w3.org/2000/10/swap/query.py", line 160, in addRule return Rule(task, subj, obj, statement, variables).once() File "/Users/hjs/Programming/w3.org/2000/10/swap/query.py", line 474, in once total = query.resolve() File "/Users/hjs/Programming/w3.org/2000/10/swap/query.py", line 804, in resolve k = self.matchFormula(self.statements, self.variables, self._existentialVariables) File "/Users/hjs/Programming/w3.org/2000/10/swap/query.py", line 975, in matchFormula nbs = item.doIncludes(queue, existentials, variables, bindings) File "/Users/hjs/Programming/w3.org/2000/10/swap/query.py", line 1505, in doIncludes unmatched=more_unmatched, mode=item.query.mode): File "/Users/hjs/Programming/w3.org/2000/10/swap/query.py", line 1417, in setup schema = pred.dereference(mode, self.query.workingContext) AttributeError: 'AnonymousUniversal' object has no attribute 'dereference' ---------✁---------✂-----------------✃----------------------- But the following works, but I am not sure if it is going to do the right thing. ---------✁---------✂-----------------✃----------------------- hjs@bblfish-2:2$ cwm test.n3 --think --mode=rse #Processed by Id: cwm.py,v 1.197 2007/12/13 15:38:39 syosi Exp # using base file:///Users/hjs/Programming/FoafSSL/foafssl-java/papers/spot2009/n3/test.n3 # Notation3 generation by # notation3.py,v 1.200 2007/12/11 21:18:08 syosi Exp # Base was: file:///Users/hjs/Programming/FoafSSL/foafssl-java/papers/spot2009/n3/test.n3 @prefix : <#> . @prefix log: <http://www.w3.org/2000/10/swap/log#> . @forAll :G, :o, :r, :s . :jane :loves :jack . :joe :loves :jane . { :jane :loves :jack . :joe :loves :jane . } a log:Truth . { :G a log:Truth; log:includes {:s :r :o . } . } log:implies {:s :r :o . } . ---------✁---------✂-----------------✃----------------------- Henry
Received on Monday, 26 April 2010 19:39:06 UTC