[foaf-dev] FOAF ping pong, with signed endorsements

Peter Williams pwilliams at rapattoni.com
Mon May 31 12:19:03 CEST 2010

Why atom? Mostly because it makes adoption easy, in the windows world. (.NETv3.5 and .NET v4 in particular with its finished tooling project atompub as the universal engineering tool for layer 7 data access/management, much as .NET1 and .NET v2 projected XML and functional transforms as a universal tool for layer 6 protocols supporting the layer 6/7 boundary between comms stacks and app layers).

Just as xml was touted as the ultimate presentation modeling language that 
could express arbitrary document and message paradigms (once you the web engineer specified your tagging namespace,  thereby formulated your own domain language, and finally specified the functional transforms for producing xhtml), so atom/pub is touted as a general method of _syndicating_ lists of entities and their urirefs. One application is agent-based syndication of blog post and comment entities and their urirefs. 

To get adoption, reuse what works...and tunnel. Folks use of http is not necessarily because it's so wonderful; it is because its firewall port is already open, and thus it's easy to adopt one's new http-tunneled protocol! The same goes for https!

Anyways, if one want a return a recordset in the "web architecture", the atompub wrapper is the reusable 'recordset' collection-entity of the day. If one is writing event-driven applications (vs procedural code), it drives data mapping and data binding between engineering tiers much as higher-end programmers have done in windows world for 20+ years, with the presentation layer auto-binding presentation controls to data entities/values in particular. It's a nice recordset generic, as one's own recordset now inherits all the syndication capabilities showcased in the web2.0 computing paradigm.

If I'd said, return an rdf graph of urirefs (rather than an atompub document), Id have had to either argue with folks endlessly the logical appropriatness of rdfs own support for the notion of seq, else learn the sioc vocab for expressing order. In either case, it would be like forcing myself to use peano arithmetic to add 1234 to 94525 (which any 11 year can do in about 9 easy steps...) or convert the denary to hex so I can use galois field efficiencies when first representing each number as a polynomial...

Perhaps Im being unfair to sioc, being ignorant. Perhaps its perfect for those "recordsets" that are ordered lists of urirefs- capturing the semantics of traversing following and similar relations. Perhaps sioc gives me what I REALLY want - a well-engineering language for traversing people spaces, as they socially network.

We have to be careful with semweb - since it's a new computing and design paradigm. I paid a prolog expert in semweb to play-convert realty's object-centric metadata into semweb ontologies (on the fly). The owl reasoner was working fine until a simple value structure of 200 instances of 1-2000 sized lookup tables in sql (200 enum values, basically) broke the implementation. 3 days later, the von neumann computer was still paging away doing list expansion according to owl rules...

Therefore atompub: the shoehorning of the 1980s sql tabular data stream into/onto the web.

-----Original Message-----
From: hjs at bblfish.net [mailto:hjs at bblfish.net] On Behalf Of Story Henry
Sent: Monday, May 31, 2010 12:57 AM
To: Peter Williams
Cc: foaf-dev at lists.foaf-project.org
Subject: Re: [foaf-dev] FOAF ping pong, with signed endorsements

On 31 May 2010, at 00:31, Peter Williams wrote:

> Let's go more slowly. Let's start with the non-semweb stuff.
> Being my usual ignorant self, your email and associated resources taught me just how current trackbacks work! Until today, I didn't know that target blog entries and their HTTP responses might advertise the location of the post author's ping back server (and its xml-rpc endpoint); and I didn't know that xml-rpc was the method of effecting the communications... 

Yes, xml-rpc was clearly overly complicated for something that can be accomplished with somehting as simple and widespread as HTML form - which is what the semantic pingback:to relation points to. This clearly shows that the xml/rpc movement (and then SOAP) was the attempt by procedural programmers to make the declarative web fit into their way of thinking.

> What I need now is to identify if in reality there are public services which will trace a _sequence_ of trackbacks, once a sequence of pingbacks have done their job. That is, if peter posts to peter's site a blog entry adding some value to one of Henrys own posts on henry's blog site (at which point pingback/trackback records fly), and sam post further value on peters missive (qualifying henry post, if we recall, and at which point pingbacks/trackbacks further fly between sam and peter's agents), I need a pointer to a site that will calculate, given source sam and target Henry: Henry<peter<sam>>>.

I think you should ask the SIOC (Semantically Interlinked Online Communities) group.


That is exactly what their ontology is good for. I should probably send the info about pingback to them too.

> Assuming that some service can calculate the 2 hop path from sam to henry (via peter) using a crawling of public comments bearing the trackbacks all focusing on an original source topic post, I want to be able to refer to that specific "path document" by persistent URI.

They define the class sioc:Post, sioc:Thread, etc...

> Ideally, the document would be an atom-formatted doc, representing a sequence of URI starting with the sam's blogroll URI, ending with Henry's blogroll URI, and bearing each intermediary participating in a commenting and re-commenting chain (i.e. Peter's blogroll URI).

Why Atom formatted? I never understood why some people want to shoehorn everything into atom....

> Then, I (peter) want to sign that atom doc, putting my wot:endorsement on my own site. It would link to the atom doc, rather than embed it in the endorsement. My site may cache the atom doc, too (lest it disappear from the source). It may also cache the foaf cards of all those whose URI/webis are found in signed endorsements of "path docs".
> If I can believe that the guts of the above is a reality on mass scale, then I see the value of translating it all into the semweb way of doing the same thing (tracing multiple-hops of following relations, now, rather than tracing blog commenting trackbacks).

Yes, the pinging is useful to create links that can then update these descriptions. I don't see why it would not work. It is a question of getting adoption as usual, whatever you do, and there it helps to have something that is open to easy extension.


> -----Original Message-----
> From: hjs at bblfish.net [mailto:hjs at bblfish.net] On Behalf Of Story Henry
> Sent: Sunday, May 30, 2010 1:27 PM
> To: Peter Williams
> Cc: foaf-dev at lists.foaf-project.org
> Subject: Re: [foaf-dev] FOAF ping pong, with signed endorsements
> On 29 May 2010, at 21:55, Peter Williams wrote:
>> In many ways, openid is having an existential crisis - with the debate  centered around favorite commenting topic of whether or not the uri to an identity document is or is not a good and usable reference for web scale identity management.  My own contention is that the openid URI has done fine, particularly in the web2.0 world of blogging and blog entry trackbacks. There, the back-reference to some post u.p at an identified blogroll URI u is implicitly associated with the identity u of the tracked entry AND the identity of the person posting the reference v.  The world of salmon-based activity streams takes the notion even further, so there is flowback of references to comments about comments about blog posts, etc.
>> In the web3.0 world and the linked data movement within the semantic web community specifically, it might be proper to model the most general notion underlying the track back (or salmon comment reference) as one of leaving a record of the act of pinging another's foaf card. Leaving a "record" of the act goes  beyond provide a service for the pinging act itself. As a record, the act produces its own reference.
> We just recently added a relation to the pingback ontology that allows you to ping
> someone if they mention you in the foaf. 
>    http://esw.w3.org/Pingback
> It is based on the xmlrpc pingback mechanism. So this should allow us to add people to 
> foaf virally. But what is wrong with using such a mechanism for all kinds of other things, such as comments on people's blogs. After all that is what it is used for. We have just simplified and made xmp-rpc RESTful.
>> One natural way to model the ping record would be to use the wot vocabulary and "endorse" the act of "having used" a "pinging" web service.
> What is the problem you are trying to solve with the ping record here?
> Is there a simple use case? I am just thinking about pinging, having written up the Pingback wicki page....
>> That is, a signed ping result (or more correctly an "endorsed ping result") would represent the act, and provide a persistent reference to the record of that act to which a foaf card can link. Being a signed reference, the authenticity of the reference can be confirmed by the usual processes of traversing the wot to find the verification [crypto] keys for the endorsements. Since the pinging act may be creating a endorsed reference to someone's verification key for endorsements, one obtains a nice inductive structure - not dissimilar to chains of X.509 certs used in the FOAF+SSL world.
> foaf+ssl does not use chains of X.509 certs. The certs are self signed (or it comes to the same thing). Foaf+ssl uses chains of RDF relations :-)
> What is the problem with just linking from one document to the next, as a verification?
>> Better than certs, however, such statements are all native to the semantic web.
>> There would be one more interesting feature when using the wot vocabulary. Its vocab design singles out the User construct and association, specifically allowing lists of wot:users (abstractions of identity) associating with endorsements to be managed separately from the endorsements themselves. There seems no reason why the polymorphic "wot:User" cannot support the subclass of wot:Users identified using webids  -  and thus tie pings between/about webids, the foaf cards referenced by webids, the signed endorsements (about the historical act of pinging foaf cards over FOAF+SSL say) and wot-style verification of endorsements to the trust semantics folks wrote up for FOAF+SSL.
> There is something to this, but I need to understand the use case better....
> Henry
>> _______________________________________________
>> foaf-dev mailing list
>> foaf-dev at lists.foaf-project.org
>> http://lists.foaf-project.org/mailman/listinfo/foaf-dev

More information about the foaf-dev mailing list