log:Truth rule

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

log:Truth rule

Henry Story-4
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




Reply | Threaded
Open this post in threaded view
|

Re: log:Truth rule

jos.deroo
Henry, good to see your running rule!
I tried to independently test it and indeed got what you wrote:

eye --nope henry.n3 --pass
starting 4 [msec cputime] 0 [msec walltime]
GET henry.n3
networking 0 [msec cputime] 4 [msec walltime]
#Processed by $Id: euler.yap 3401 2010-04-26 14:27:18Z josd $

@prefix log: <http://www.w3.org/2000/10/swap/log#>.
@prefix : <#>.
@prefix var: <http://localhost/var#>.
@prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>.
@prefix r: <http://www.w3.org/2000/10/swap/reason#>.
@prefix n3: <http://www.w3.org/2004/06/rei#>.

{:joe :loves :jane. :jane :loves :jack} a log:Truth.
:joe :loves :jane.
:jane :loves :jack.


Have to think about how close this is with Tarksi's truth..
All I know at this moment is:

  whenever, in a sentence, we wish to say something
  about a certain thing, we have to use, in this
  sentence, not the thing itself but its name or
  designation -- Alfred Tarski

So I believe that all those "certain things" are
rdfs resources, wether they be literal values
or URI referenced things, the names are just
different designations.


Tarski's famous T-schema
  T: "P" is true iff P
where
  "P" is a statement in the object language
  P is a statement in the meta-language
which lets us finitely define truth in an uninterpreted
object language given an already understood meta-language.
-- http://computationaltruth.net/blog/logic_and_language/


Anyhow, thanks a lot and keep up the good work!

Jos


Kind regards,

Jos De Roo | Agfa HealthCare
Senior Researcher | HE/Advanced Clinical Applications Research
T  +32 3444 7618
http://www.agfa.com/w3c/jdroo/

Quadrat NV, Kortrijksesteenweg 157, 9830 Sint-Martens-Latem, Belgium
http://www.agfa.com/healthcare



Story Henry <[hidden email]>
Sent by: [hidden email]

04/26/2010 09:38 PM

To
[hidden email]
cc
Subject
log:Truth rule






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






Reply | Threaded
Open this post in threaded view
|

Re: log:Truth rule

Henry Story-4

On 26 Apr 2010, at 23:52, [hidden email] wrote:

> Henry, good to see your running rule!
> I tried to independently test it and indeed got what you wrote:
>
> eye --nope henry.n3 --pass
> starting 4 [msec cputime] 0 [msec walltime]
> GET henry.n3
> networking 0 [msec cputime] 4 [msec walltime]
> #Processed by $Id: euler.yap 3401 2010-04-26 14:27:18Z josd $
>
> @prefix log: <http://www.w3.org/2000/10/swap/log#>.
> @prefix : <#>.
> @prefix var: <http://localhost/var#>.
> @prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>.
> @prefix r: <http://www.w3.org/2000/10/swap/reason#>.
> @prefix n3: <http://www.w3.org/2004/06/rei#>.
>
> {:joe :loves :jane. :jane :loves :jack} a log:Truth.
> :joe :loves :jane.
> :jane :loves :jack.
>
>
> Have to think about how close this is with Tarksi's truth..
> All I know at this moment is:
>
>  whenever, in a sentence, we wish to say something
>  about a certain thing, we have to use, in this
>  sentence, not the thing itself but its name or
>  designation -- Alfred Tarski

I found the following interesting quite in the article "Truth and Meaning" by
Gabriel Segal that appeared in the "Oxford Handbook of the Philosophy of Language"
http://ukcatalogue.oup.com/product/9780199259410.do

(calling this 1000 page volume a handbook is a very British understatement)
 
"Tarski's semantics came in the form of truth definitions (or "T-theories"). A
truth definition for a particular language, L, is the definition of a predicate,
say "is T", that is true of all and only the true sentences of L."

This sentence comes with the interesting footnote

"Contemporary theorists are using "is T" to instantiate the predicate and I will continue
the tradition, though Tarski used either "is true" or "is a member of the class Tr".

clearly Tarski meant the class log:Truth :-)

> So I believe that all those "certain things" are
> rdfs resources, wether they be literal values
> or URI referenced things, the names are just
> different designations.
>
>
> Tarski's famous T-schema
>
>  T: "P" is true iff P
>
> where
>
>  "P" is a statement in the object language
>
>  P is a statement in the meta-language
>
> which lets us finitely define truth in an uninterpreted
> object language given an already understood meta-language.
>
> -- http://computationaltruth.net/blog/logic_and_language/
>

The logic that ties this together with N3 is I believe Guha's
"Contexts: a Formalisation and Some Applications"
http://www-formal.stanford.edu/guha/

where he shows quite clearly how we can interpret statements in a context. That is what
the N3 lifting rules are ( http://blogs.sun.com/bblfish/date/20060404 ). Usually we apply a
simple truth theory in RDF land, ie, we interpret what was is said in a context
to be in the same language (RDF) as what is outside the context. But sometimes we may need to
do weird translations, say if we know that someone uses the RDF word for food:Cheese whenever they
mean clothing:Shoe. In which case we may need to define a specific log:TruthForJoe .


> Anyhow, thanks a lot and keep up the good work!

Thanks, I'll be trying the same rules I am putting together on euler soon.... keep tuned.

Henry

>
> Jos
>
>
> Kind regards,
>
> Jos De Roo | Agfa HealthCare
> Senior Researcher | HE/Advanced Clinical Applications Research
> T  +32 3444 7618
> http://www.agfa.com/w3c/jdroo/
>
> Quadrat NV, Kortrijksesteenweg 157, 9830 Sint-Martens-Latem, Belgium
> http://www.agfa.com/healthcare
>
>
>
>
> Story Henry <[hidden email]>
> Sent by: [hidden email]
> 04/26/2010 09:38 PM
>
> To
> [hidden email]
> cc
>
> Subject
> log:Truth rule
>
>
>
>
>
>
>
> 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
>
>
>
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: log:Truth rule

Henry Story-4

On 27 Apr 2010, at 08:55, Story Henry wrote:

>
> On 26 Apr 2010, at 23:52, [hidden email] wrote:
>
>> Henry, good to see your running rule!
>> I tried to independently test it and indeed got what you wrote:
>>
>> eye --nope henry.n3 --pass
>> starting 4 [msec cputime] 0 [msec walltime]
>> GET henry.n3
>> networking 0 [msec cputime] 4 [msec walltime]
>> #Processed by $Id: euler.yap 3401 2010-04-26 14:27:18Z josd $
>>
>> @prefix log: <http://www.w3.org/2000/10/swap/log#>.
>> @prefix : <#>.
>> @prefix var: <http://localhost/var#>.
>> @prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>.
>> @prefix r: <http://www.w3.org/2000/10/swap/reason#>.
>> @prefix n3: <http://www.w3.org/2004/06/rei#>.
>>
>> {:joe :loves :jane. :jane :loves :jack} a log:Truth.
>> :joe :loves :jane.
>> :jane :loves :jack.
>>
>>
>> Have to think about how close this is with Tarksi's truth..
>> All I know at this moment is:
>>
>> whenever, in a sentence, we wish to say something
>> about a certain thing, we have to use, in this
>> sentence, not the thing itself but its name or
>> designation -- Alfred Tarski
>
> I found the following interesting quite in the article "Truth and Meaning" by
> Gabriel Segal that appeared in the "Oxford Handbook of the Philosophy of Language"
> http://ukcatalogue.oup.com/product/9780199259410.do
>
> (calling this 1000 page volume a handbook is a very British understatement)
>
> "Tarski's semantics came in the form of truth definitions (or "T-theories"). A
> truth definition for a particular language, L, is the definition of a predicate,
> say "is T", that is true of all and only the true sentences of L."
>
> This sentence comes with the interesting footnote
>
> "Contemporary theorists are using "is T" to instantiate the predicate and I will continue
> the tradition, though Tarski used either "is true" or "is a member of the class Tr".
>
> clearly Tarski meant the class log:Truth :-)
>
>> So I believe that all those "certain things" are
>> rdfs resources, wether they be literal values
>> or URI referenced things, the names are just
>> different designations.
>>
>>
>> Tarski's famous T-schema
>>
>> T: "P" is true iff P
>>
>> where
>>
>> "P" is a statement in the object language
>>
>> P is a statement in the meta-language

Ok, I think I see where you may be getting at.

That is we think of what is inside the { } brackets as the meaning of the sentence,
(the set of possible worlds in which the sentences inside the brackets are true), then
"is True" is perhaps the wrong predicate, as far as it does not seem to be getting us from
meta language to object language but from meaning to object language. Ie, instead of
having a relation that goes from sentences to meaning, we have something that goes from
meaning to fact. (what is in my graph is a fact for the person believing the graph).

In that case log:Truth is more like a modal concept, and really means "is Actual".
So from the perspective of any graph, what is stated therein is something that is
thought to be True in the actual world, and so which could have direct behavioural
implications. Being Actual is an indexical into possible worlds, just like 'here'
is an indexical in space, and 'now' in time, and 'I' for the subject.

So perhaps { jack loves jane } a log:Actual is what we want (interesting how the word
Act appears in Actual)




>>
>> which lets us finitely define truth in an uninterpreted
>> object language given an already understood meta-language.
>>
>> -- http://computationaltruth.net/blog/logic_and_language/
>>
>
> The logic that ties this together with N3 is I believe Guha's
> "Contexts: a Formalisation and Some Applications"
> http://www-formal.stanford.edu/guha/
>
> where he shows quite clearly how we can interpret statements in a context. That is what
> the N3 lifting rules are ( http://blogs.sun.com/bblfish/date/20060404 ). Usually we apply a
> simple truth theory in RDF land, ie, we interpret what was is said in a context
> to be in the same language (RDF) as what is outside the context. But sometimes we may need to
> do weird translations, say if we know that someone uses the RDF word for food:Cheese whenever they
> mean clothing:Shoe. In which case we may need to define a specific log:TruthForJoe .
>
>
>> Anyhow, thanks a lot and keep up the good work!
>
> Thanks, I'll be trying the same rules I am putting together on euler soon.... keep tuned.
>
> Henry
>
>>
>> Jos
>>
>>
>> Kind regards,
>>
>> Jos De Roo | Agfa HealthCare
>> Senior Researcher | HE/Advanced Clinical Applications Research
>> T  +32 3444 7618
>> http://www.agfa.com/w3c/jdroo/
>>
>> Quadrat NV, Kortrijksesteenweg 157, 9830 Sint-Martens-Latem, Belgium
>> http://www.agfa.com/healthcare
>>
>>
>>
>>
>> Story Henry <[hidden email]>
>> Sent by: [hidden email]
>> 04/26/2010 09:38 PM
>>
>> To
>> [hidden email]
>> cc
>>
>> Subject
>> log:Truth rule
>>
>>
>>
>>
>>
>>
>>
>> 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
>>
>>
>>
>>
>>
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: log:Truth rule

Henry Story-4

On 27 Apr 2010, at 09:26, Story Henry wrote:

>>> Tarski's famous T-schema
>>>
>>> T: "P" is true iff P
>>>
>>> where
>>>
>>> "P" is a statement in the object language
>>>
>>> P is a statement in the meta-language
>
> Ok, I think I see where you may be getting at.
>
> That is we think of what is inside the { } brackets as the meaning of the sentence,
> (the set of possible worlds in which the sentences inside the brackets are true), then
> "is True" is perhaps the wrong predicate, as far as it does not seem to be getting us from
> meta language to object language but from meaning to object language. Ie, instead of
> having a relation that goes from sentences to meaning, we have something that goes from
> meaning to fact. (what is in my graph is a fact for the person believing the graph).
>
> In that case log:Truth is more like a modal concept, and really means "is Actual".
> So from the perspective of any graph, what is stated therein is something that is
> thought to be True in the actual world, and so which could have direct behavioural
> implications. Being Actual is an indexical into possible worlds, just like 'here'
> is an indexical in space, and 'now' in time, and 'I' for the subject.
>
> So perhaps { jack loves jane } a log:Actual is what we want (interesting how the word
> Act appears in Actual)

In fact come to think of it log:semantics is in fact Tarski's function T (or at least sufficiently
similar, that people like Donald Davidson then built a theory of meaning on it), as it relates strings to meanings. And log:Truth should be as stated above log:Actual .

Anyway, it does not matter as we know what our actual URLs do - but wait, that is language as use!

;-)

Henry