<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<title>Re: [OpenID] cryptographics web of trust</title>
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin-top:12.0pt;
        margin-right:48.0pt;
        margin-bottom:12.0pt;
        margin-left:24.0pt;
        font-size:10.5pt;
        font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:1833835854;
        mso-list-type:hybrid;
        mso-list-template-ids:1945504950 -196546376 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Calibri","sans-serif";
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>What a fun road this has been to travel! <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>If I hadn&#8217;t mouthed off about #fragments, I would never
have got to see so much fun stuff! <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I can see an interaction of (a) RDF/FOAF&#8217;s rigorous handling
of URI-based identity (b) openid&#8217;s classical use case of
webSSO/registrationwizard, and (c) https/certs profiled for URIs. That
intersection is full of possibilities for a secure SemWeb.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Don&#8217;t spent more than 2 minutes! What follows is only
partially organized.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>-------------------<o:p></o:p></span></p>

<p><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Most
if not all of my own questions in </span><a
href="http://yorkporc.spaces.live.com/blog/cns!5061D4609325B60!228.entry">http://yorkporc.spaces.live.com/blog/cns!5061D4609325B60!228.entry</a>&nbsp;
<span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>seem
to be answered by thinking just a little more along the lines of <a
href="http://www.w3.org/TR/rdf-sparql-query/#restrictInQuery">http://www.w3.org/TR/rdf-sparql-query/#restrictInQuery</a>
(once you substitute foaf:openid for foaf:mbox)<o:p></o:p></span></p>

<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>We know that such a query can be stored in an Agent&#8217;s PPD
in some term, encoded in an http URL&#8217;s querystring <o:p></o:p></span></p>

<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>We know that the PPD can be extended by anyone, declaring a custom
class containing several &#8220;terms&#8221; of type &#8220;virtual function&#8221;<o:p></o:p></span></p>

<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>An OpenID namespace extension (e.g. sreg) can have as its
defining URI a live URL pointer to the RDF class definition, allowing an openid
protocol engine to reflect and generically enforce the associated schema(s) of message
extensions<o:p></o:p></span></p>

<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>The virtual function names can serve as the wire-form names used
for openid named extension fields (ns.sreg.firstname)<o:p></o:p></span></p>

<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>If the PPD class has such a vfn name that actually has a
function value, at run time the protocol engine can be calling it enforce one
or other runtime access control model &#8230; at a per-attribute granularity <o:p></o:p></span></p>

<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>The access control function can be leveraging XACML&#8217;s &nbsp;PAPs,
PEPs, PDPs, etc<o:p></o:p></span></p>

<p><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>But
I also see how the same query addresses your wot ideas (where you endorse a
friends key by storing a copy on your server &#8211; for others to recover and now
rely on henry&#8217;s confidence level &#8230;in that key&#8217;s authenticity)<o:p></o:p></span></p>

<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>That query shows how, when recovering nicknames, one get to
distinguish the source of a nickname, and control whether one uses the master
or slave copy. One can treat wot:pubkeyAddress similarly.<o:p></o:p></span></p>

<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Reversing the logic, presumably a publicly usable encoded-SPARQL
query stored in Henrys card can be executed by anyone against the card (where
the card is also its own SPARQL Agent endpoint) &#8230;and it will recover
Henry&#8217;s endorsed copy of his friend&#8217;s pubkeys<o:p></o:p></span></p>

<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>If the entire interaction is over SSL, with Henry&#8217;s Apache
server as the https responder, the SPARQL resultset in rdf+xml will be an
assertion that is authenticated by the bearer channel (SSL record layer
assurances)<o:p></o:p></span></p>

<p><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I
just wish one could make SPARQL recursive!<o:p></o:p></span></p>

<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>It would be fun if, as in my hackedup version of the <a
href="http://www.w3.org/TR/rdf-sparql-query/#restrictInQuery">query</a>, one could
somehow within the query language substitute ?ppd into the named graph set,
recursing/iterating to perform tree/web walking until one hits some nominated
target openid/PPDURI: e.g. &nbsp;</span><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>http://example.org/foaf/bobFoaf</span><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p>

<div style='mso-element:para-border-div;border:solid #8888AA 1.0pt;padding:
0in 0in 0in 0in;background:#F7F8FF;margin-left:.25in;margin-right:48.0pt'>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>SELECT ?openid ?pkaorig ?pkacopy ?ppd<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>FROM NAMED
&lt;http://example.org/foaf/aliceFoaf&gt;<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>FROM NAMED
&lt;http://example.org/foaf/bobFoaf&gt;<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&#8220;&nbsp; FROM NAMED ?ppd &nbsp;&nbsp;&#8220;<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>WHERE<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>{<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;GRAPH data:aliceFoaf<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;{<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;?alice foaf:made
#me ;<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foaf:knows
?whom .<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;?whom&nbsp;
foaf:openid ?openid ;<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wot:pubKeyAddress
?pkacopy ;<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rdfs:seeAlso
?ppd .<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;?ppd&nbsp; a
foaf:PersonalProfileDocument .<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;} .<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;GRAPH ?ppd<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;{<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?w
foaf:openid ?openid;<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wot:pubKeyAddress
?pkaorig<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;}<o:p></o:p></span></p>

<p class=MsoListParagraph style='mso-margin-top-alt:12.0pt;margin-right:0in;
margin-bottom:12.0pt;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1;
background:#F7F8FF;border:none;padding:0in'><![if !supportLists]><span lang=EN
style='font-size:10.5pt;font-family:"Calibri","sans-serif";color:black'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN style='font-size:10.5pt;
font-family:"Courier New";color:black'>}<o:p></o:p></span></p>

</div>

<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><a
href="http://www.intellidimension.com/default.rsp?topic=/pages/rdfgateway/dev-guide/package/db.rsp">http://www.intellidimension.com/default.rsp?topic=/pages/rdfgateway/dev-guide/package/db.rsp</a>
shows how to make some templated queries that are kind of what I&#8217;m after &nbsp;-
using that vendors proprietary (but excellent) approach.<o:p></o:p></span></p>

<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>If we are setting standards, presumably we would need to be
making SPARQL templates &#8211; that to do the same kind of thing. <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>If we want to be really RDFish, an OpenID extension (that is
defined in an OWL class) can have a named attribute that is populated by the consumer.
The consumer can put the encoded SPARQL query into the checkid request, in the
form of SPARQL&#8217;s HTTP-binding URL.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>From the class, the receiving engine can know this is a query
rather than a normal URI ref &#8211; and request have some SPARQL server that
it chooses to perform the given query when satisfying the AX request.<o:p></o:p></span></p>

<p class=MsoListParagraph><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><span
style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>E.g. openid.ns.peterextension.queryme = #?query=&lt;URLencoded
SPARQL query&gt;&amp;named-graph=&lt;targetURI&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>The nice thing about all of this, is it all applies to SAML2
just as it applies to OpenID. If, per offline conversations, one just makes the
SAML entityID into a live HTTP URL rather than a URN, and the SSL certs use the
URI nameform option I had ISO add to X.509, there can be significant interplay
between the SAML and OpenID worlds. They will both be pure URI/IRI identity
schemes, over https &#8211; where the https certs bound to the entityIDs are also
named using the same URI name form and URI value.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>It will be cute to have an IDP issue a signed SAML assertion,
bearing an encoded SPQRQL query that instructs the relying party how to actually
validate the assertion signature&#8211;providing the custom query that will
allow that RP to efficiently compute the list of wot:sigEvents that &nbsp;chain
the RP pubkey back to the IDP signing key&nbsp; - allowing the RP to rely on
the assertion&#8217;s signature!<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

<div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Peter Williams <br>
<b>Sent:</b> Sunday, September 23, 2007 10:49 AM<br>
<b>To:</b> Story Henry<br>
<b>Cc:</b> OpenID General<br>
<b>Subject:</b> RE: [OpenID] cryptographics web of trust<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p>Microsoft tools may be consumer friendly, but they sure make it really hard
work to have folks render on their end what it is that I actually edit in a
simple document editor! Their handling of URLs on cut&amp;paste into a web
email client just seems bizarre!<o:p></o:p></p>

<p>I posted my last email to <a
href="http://yorkporc.spaces.live.com/blog/cns!5061D4609325B60!228.entry">http://yorkporc.spaces.live.com/blog/cns!5061D4609325B60!228.entry</a>.&nbsp;
<o:p></o:p></p>

<p>It seems to render fine there, at least when using IE7. <o:p></o:p></p>

<p>It may be easier to read there.<o:p></o:p></p>

<p>&nbsp;<o:p></o:p></p>

</div>

</div>

</body>

</html>