- From: Story Henry <henry.story@bblfish.net>
- Date: Fri, 17 Apr 2009 17:26:02 +0200
- To: Story Henry <henry.story@bblfish.net>
- Cc: foaf-protocols@lists.foaf-project.org, public-cwm-talk@w3.org
I have found a way to do this in N3 --------- @prefix log: <http://www.w3.org/2000/10/swap/log#>. @prefix cert: <http://www.w3.org/ns/auth/cert#>. @prefix foaf: <http://xmlns.com/foaf/0.1/>. @prefix owl: <http://www.w3.org/2002/07/owl#>. @prefix romeo: <https://romeo.net/#>. @prefix : <#> . #(D1) :hasPrivateKeyFor a owl:InverseFunctionalProperty; rdfs:domain foaf:Agent; rdfs:range cert:PublicKey . #(P9) :client :claims { <> dc:created romeo:i; foaf:primaryTopic romeo:i. romeo:i :hasPrivateKeyFor :pubKey . } . #(P10) :client :hasPrivateKeyFor :pubKey . #(P11) # note: cannot use named graphs due to bug # http://lists.w3.org/Archives/Public/public-cwm-talk/2009AprJun/0000.html { ( [ is :claims of :client ] [ is log:semantics of <http://www.w3.org/2000/10/swap/test/owl/new_owl_rules.n3 > ] {:client :hasPrivateKeyFor :pubKey. :hasPrivateKeyFor a owl:InverseFunctionalProperty. } ) log:conjunction [ log:conclusion ?F ] . } => { :client :mustAgree ?F } . ----------- The above seems to result in the :client agreeing that :client owl:sameAs romeo:i you can check it by running cwm test.n3 --think On 18 Mar 2009, at 15:42, Story Henry wrote: > In a paper we are submitting for SPOT2009 [1] there are a couple of > formulae I fear may not quite express what I wanted to express. These > are (P11) and (P13) > > #(P11) > (_:clientGrph {_:client hasPrivateKeyFor pubKey}) log:conjunction [ > => { romeo:i = :client } ] . > > #(P13) > (P13) ( _:romeoGrph { _:client hasPrivateKeyFor pubKey } ) > log:conjunction [ > => { romeo:i = _:client } ] > > What I want to do is say that if you look at the graph that is the > union of what romeo believes, and a subset of what the server > believes, then that merged graph implies { romeo:i = _:client } . > But I do not want to assert the result in the triple store either. It > should remain within { }. > > I am afraid what I have said might imply that the server himself then > should believe romeo:i = _:clinent . > > Perhaps it would have been better to state > > (P13') ( _:romeoGrph { _:client hasPrivateKeyFor pubKey } ) > log:conjunction _:union . > _:union log:includes { romeo:i = _:client } ] . > > But I am not sure if log:includes is a relation from the consequences > of the _:union graph . > > Perhaps I need > > (P13") ( _:romeoGrph { _:client hasPrivateKeyFor pubKey } ) > log:conjunction _:union . > _:union log:conclusion [ log:includes { romeo:i = > _:client } ] ]. > > And perhaps I need to add to the union the definition of > hasPrivateKeyFor as an inverse functional property > > (D1) :hasPrivateKeyFor a owl:InverseFunctionalProperty; > rdfs:domain foaf:Agent; > rdfs:range cert:PublicKey . > > Any guidance would be appreciated. > > Henry > > [1] see the thread discussing it starting at http://twurl.nl/ljlgzh > > _______________________________________________ > foaf-protocols mailing list > foaf-protocols@lists.foaf-project.org > http://lists.foaf-project.org/mailman/listinfo/foaf-protocols
Received on Friday, 17 April 2009 15:26:49 UTC