[foaf-protocols] pingback ontology

Henry Story henry.story at bblfish.net
Wed Mar 23 18:15:45 CET 2011

I am just working on an implementation in http://clerezza.org/spike of the 
Pingback protocol described on the wiki http://www.w3.org/wiki/Pingback

Here are a few things I noticed with regard to the pingback ontology


(which I am reading in its n3 format)

    curl -L -H "Accept: text/rdf+n3" http://purl.org/net/pingback/

and its related spec that occurred to me while working on this.

pingback:Container a owl:Class;
    rdfs:label "Pingback Container";
    rdfs:subClassOf sioc:Container;
    skos:note "Doing a POST of an pingback:Request on a pingback:Container creates a pingback:Item";
    skos:note """Doing a GET on a pingback:Container with mime type html should return a html form similar to
    <form action="POST" action="">
        source: <input type="text" name="source"/> (pingback:source of the new Pingback Item)<br/>
        target: <input type="text" name="target"/> (pingback:target of the new Pingback Item)<br/>
        comment: <input type="text" name="comment"/>  (sioc:content of the new Pingback Item)
one should add a submit button
    <input type="submit" value="Send"/>
There are two action attributes. It should be
       <form method="POST" action="">

pingback:commentParameter a http:Param;
    rdfs:label "comment";
    http:paramName "comment";
    skos:note "The value of this parameter is an URI.";
    rdfs:isDefinedBy <http://purl.org/net/pingback/>.
The skos note should be
... skos:note "The value of this parameter is some text to be sent along with the ping to explain the 
reason for the ping"
I noticed there is a 2008 skos ontology. 
As well as the 2004 one.

Which one should be used?

Should one perhaps not continue using rdfs:comment, as that is what most ontologies use?
pingback:targetParameter a http:Param;
    rdfs:label "target";
    http:paramName "target";
    skos:note "The value of this parameter is an URI.";
    rdfs:isDefinedBy <http://purl.org/net/pingback/>.
The note is a bit terse here. It should explain a bit more of the purpose of the target. Perhaps

...skos:note "The value of this parameter is the URI of the resource that is linked to from the pingback:source"

I am not sure here of course.

I know that in the case of friending we want the target to be the agent someone added to their foaf file and the source to be that foaf file. But because this is a declarative version of the protocol coming from the blogosphere we want more general examples to be used too.

Or if not should we perhaps add a relation so that one can tell who is going to get pinged?

<http://purl.org/net/pingback/> a owl:Ontology;
    foaf:primaryTopic pingback:Container, pingback:Item.
That won't work because the foaf:primaryTopic relation is functional.
This would result in the inference that pingback:Container owl:sameAs pingback:Item .
pingback:Container a owl:Class;
    rdfs:subClassOf sioc:Container .
pingback:Item a owl:Class;
    rdfs:subClassOf sioc:Item.
Ok, so from that it follows that one can use the relations sioc:container_of and sioc:has_container 
to relate the two, as shown in the examples.
Now as a matter of interest does sioc:Container have a suggested method for adding new elements to a container? Using the Atom Protocol perhaps? Or is this something that is not settled in general, and we have just created a specific subclass of those resources: those that accept posts of a form content?

That's all for the moment...

Social Web Architect

More information about the foaf-protocols mailing list