- 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