<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)">
<style>
<!--
/* Font Definitions */
@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:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-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.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.5pt;
        font-family:Consolas;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:Consolas;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 92.4pt 1.0in 92.4pt;}
div.Section1
        {page:Section1;}
-->
</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=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText> I
would be fun to look at how much<o:p></o:p></p>
<p class=MsoPlainText>> of that could be replaced by SPARQL queries. Could
the relying party<o:p></o:p></p>
<p class=MsoPlainText>> not get most of what is needed by sending queries
such as this to the<o:p></o:p></p>
<p class=MsoPlainText>> asserting party?<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> PREFIX foaf: <http://xmlns.com/foaf/0.1/><o:p></o:p></p>
<p class=MsoPlainText>> PREFIX wot: <http://xmlns.com/wot/0.1/><o:p></o:p></p>
<p class=MsoPlainText>> SELECT *<o:p></o:p></p>
<p class=MsoPlainText>> WHERE {<o:p></o:p></p>
<p class=MsoPlainText>> <http://bblfish.net/people/henry/card#me><o:p></o:p></p>
<p class=MsoPlainText>> foaf:mbox
?mbox;<o:p></o:p></p>
<p class=MsoPlainText>> foaf:openid
?openid .<o:p></o:p></p>
<p class=MsoPlainText>> OPTIONAL {<o:p></o:p></p>
<p class=MsoPlainText>> [] a wot:PubKey;<o:p></o:p></p>
<p class=MsoPlainText>> wot:identity
<http://bblfish.net/people/henry/card#me>;<o:p></o:p></p>
<p class=MsoPlainText>> wot:pubkeyAddress
?pubKey .<o:p></o:p></p>
<p class=MsoPlainText>> }<o:p></o:p></p>
<p class=MsoPlainText>> }<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText><span style='color:black'>I now have a SPARQL http
endpoint, performing the above. (I will extend it tomorrow to rely on an SAML assertion
for WebSSO to authorize execution.) This looks straightforward. My cute RDF application
server allows me to bind a INSERT to an HTTP request. So, a webserver running a
script uses querystring parsing to reflect on a RDF model that results in a set
of triples that I then insert bind to an HTTP (using INSERT). I get to SELECT
on the http response.<o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'>I like all this semweb stuff -
it was not hard once I got to think right to build a 4 layer network of proxies,
the last one of which used an XML datastore. Its cute. If Peter can do it,
anyone can.<o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'>[Peter Williams] <o:p></o:p></span></p>
<p class=MsoPlainText>> Now if the asserting believes what is in my foaf
file, he will return<o:p></o:p></p>
<p class=MsoPlainText>> those as results. Replying to a question is to
give a trust level to<o:p></o:p></p>
<p class=MsoPlainText>> it.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> SPARQL allows one to name graphs and query for their
properties. Here<o:p></o:p></p>
<p class=MsoPlainText>> I am asking it to return trust level information for
those statements.<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> PREFIX foaf: <http://xmlns.com/foaf/0.1/><o:p></o:p></p>
<p class=MsoPlainText>> PREFIX wot: <http://xmlns.com/wot/0.1/><o:p></o:p></p>
<p class=MsoPlainText>> SELECT *<o:p></o:p></p>
<p class=MsoPlainText>> WHERE {<o:p></o:p></p>
<p class=MsoPlainText>> ?g trust:level ?t .<o:p></o:p></p>
<p class=MsoPlainText>> GRAPH ?g {<o:p></o:p></p>
<p class=MsoPlainText>> <http://bblfish.net/people/henry/card#me><o:p></o:p></p>
<p class=MsoPlainText>> foaf:mbox
?mbox;<o:p></o:p></p>
<p class=MsoPlainText>> foaf:openid
?openid .<o:p></o:p></p>
<p class=MsoPlainText>> OPTIONAL {<o:p></o:p></p>
<p class=MsoPlainText>> [] a
wot:PubKey;<o:p></o:p></p>
<p class=MsoPlainText>> wot:identity
<http://bblfish.net/people/henry/card#me>;<o:p></o:p></p>
<p class=MsoPlainText>> wot:pubkeyAddress
?pubKey .<o:p></o:p></p>
<p class=MsoPlainText>> }<o:p></o:p></p>
<p class=MsoPlainText>> }<o:p></o:p></p>
<p class=MsoPlainText>> }<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> This is just to show what one can do, though it is
probably not quite<o:p></o:p></p>
<p class=MsoPlainText>> the right way to do this.<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText><span style='color:black'>So the above I don’t understand.<o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'>Let's assume the SPARQL Server has
a FOAF file, documenting various features about this "foaf:Agent".<o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'>I think the above is saying the
following:-<o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'>Whatever set of triples become
?g, that particular set will be "determined" to have a trustlevel.<o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'>(a) is the idea that the RDF
model over which the query is performed is a merge of two default graphs: (i) g1
your FOAF file and (ii) g2 from the Agent foaf file? <o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'>(b) Would the file of (ii) look
like <o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'>[ trust:levelhigh<o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in'><span style='color:black'>[ a
<http://xmlns.com/wot/0.1/PubKey>;<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in'><span style='color:black'> <http://xmlns.com/wot/0.1/identity>
<http://bblfish.net/people/henry/card#me>;<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in'><span style='color:black'> <http://xmlns.com/wot/0.1/pubkeyAddress>
<http://bblfish.net/people/henry/henry.pubkey.asc> ] ,<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in'><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in'><span style='color:black'>[ a
<http://xmlns.com/wot/0.1/Pubkey>;<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in'><span style='color:black'> <http://xmlns.com/wot/0.1/identity>
<http://www.w3.org/People/Berners-Lee/card#i>;<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in'><span style='color:black'> <http://xmlns.com/wot/0.1/pubkeyAddress>
<http://bblfish.net/people/henry/timbl.pubkey.asc> ].<o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'>]<o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'>[ trust:levellow<o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in'><span style='color:black'>[ a
<http://xmlns.com/wot/0.1/PubKey>;<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in'><span style='color:black'> <http://xmlns.com/wot/0.1/identity>
<http://danbri.org/foaf.rdf#danbri>;<o:p></o:p></span></p>
<p class=MsoPlainText style='margin-left:.5in'><span style='color:black'> <http://xmlns.com/wot/0.1/pubkeyAddress>
<http://danbri.org/danbri-pubkey.txt> ].<o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'>]<o:p></o:p></span></p>
<p class=MsoPlainText><span style='color:black'><o:p> </o:p></span></p>
<p class=MsoPlainText><span style='color:black'>(c) would some inference rule then
be responsible for inferring “</span>?g trust:level ?t” <span
style='color:black'><o:p></o:p></span></p>
</div>
</body>
</html>