VirtPubSubHub Using PubSubHubbub with Linked Data Using PubSubHubbub with Linked Data Introduction Here we demonstrate how to use Virtuoso's implementation of the draft PubSubHubBub Protocol to handle Linked Data. We extend the idea of tracking a feed, to track Linked Data resource URIs. To reveal the hub to subscribers, we suggest that Linked Data resources return the following HTTP header -- Link: <http://cname/psh/subscribe.vsp>; rel="hub" -- or include the following in an HTML <head> (or similar) element -- <link rel="hub" uri="http://cname/psh/subscribe.vsp"> Endpoints Installing the pubsubhub_dav.vad PubSubHubBub package on Virtuoso defines the following endpoints: <tgroup><thead /><tbody> <row><entry> http://cname/psh/subscribe.vsp </entry><entry> subscription endpoint </entry></row> <row><entry> http://cname/psh/publish.vsp </entry><entry> publishing endpoint </entry></row> <row><entry> http://cname/psh/ </entry><entry> index to UI of the simple test clients </entry></row> <row><entry> http://cname/psh/callback.vsp </entry><entry> default built-in client callback endpoint </entry></row> </tbody></tgroup></table> <bridgehead class="http://www.w3.org/1999/xhtml:h2"> Using the built-in demo client</bridgehead> <orderedlist spacing="compact"><listitem>As a very first step, we use a simple client to subscribe to a SIOC document containing data for an ODS-Weblog. In our tests, we subscribe to the Linked Data document <<ulink url="http://ec2-174-129-156-25.compute-1.amazonaws.com/dataspace/demo/weblog/demo%27s%20Weblog/sioc.rdf">http://ec2-174-129-156-25.compute-1.amazonaws.com/dataspace/demo/weblog/demo%27s%20Weblog/sioc.rdf</ulink>>. <figure><graphic fileref="VirtPubSubHub/step1.png" /></figure> </listitem> <listitem>The Weblog post looks like this: <figure><graphic fileref="VirtPubSubHub/step2.png" /></figure> </listitem> <listitem>During the subscription process, the client gets the initial state of the SIOC feed. We can execute the following query to see all post titles: <figure><graphic fileref="VirtPubSubHub/step3.png" /></figure> </listitem> <listitem>The title of the existing Weblog post may be found in the result of that query: <figure><graphic fileref="VirtPubSubHub/step4.png" /></figure> </listitem> <listitem>Next, we add a new blog post to force a change to the SIOC data: <figure><graphic fileref="VirtPubSubHub/step5.png" /></figure> </listitem> <listitem>Using a simple publishing UI, we notify the Hub the data has changed: <figure><graphic fileref="VirtPubSubHub/step6.png" /></figure> </listitem> <listitem>The Hub takes the delta and notifies the subscribers: <figure><graphic fileref="VirtPubSubHub/step7.png" /></figure> </listitem> <listitem>We re-execute the same SPARQL query as in the earlier step, and now we can see the data includes the title of the new blog post: <figure><graphic fileref="VirtPubSubHub/step8.png" /></figure></listitem> </orderedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2">Related</bridgehead> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="VirtODSPubSubHub">Setting up PubSubHub in ODS</ulink> </listitem> <listitem><ulink url="VirtFeedPubSubHub">Feed subscription via PubSubHub protocol Example</ulink> </listitem> <listitem><ulink url="VirtPubSubHubACL">Setting Up PubSubHub to use WebID Protocol or IP based control lists</ulink> </listitem> <listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLEndpointProtection">Safeguarding your Virtuoso-hosted SPARQL Endpoint</ulink> </listitem> <listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtTipsAndTricksGuideSPARQLEndpointProtection">SPARQL Endpoint Protection Methods Collection</ulink> </listitem> <listitem><ulink url="http://docs.openlinksw.com/virtuoso/">Virtuoso documentation</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpoint">SPARQL Service Endpoint</ulink> </listitem> <listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri">Service Endpoint Security</ulink> </listitem> <listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html#sparqwebservicetbl">Managing a SPARQL Web Service Endpoint</ulink> </listitem> <listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html">SPARQL</ulink> </listitem> </itemizedlist></listitem> <listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtTipsAndTricksGuide">Virtuoso Tips and Tricks Collection</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLDET">SPARQL Endpoint DET Configuration Guide</ulink> </listitem> <listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLSecurityWebID">WebID Protocol & SPARQL Endpoint ACLs Tutorial</ulink> </listitem> <listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtOAuthSPARQL">SPARQL OAuth Tutorial</ulink> </listitem> <listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtTipsAndTricksGuideSPARQLEndpoints">Securing SPARQL endpoints</ulink> </listitem> </itemizedlist></listitem> <listitem><ulink url="OdsSPARQLAuth">SPARUL over SPARQL using the http://cname:port/sparql-auth endpoint</ulink> </listitem> <listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtAuthServerUI">Virtuoso Authentication Server UI</ulink> </listitem> <listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLSSL">Manage a SPARQL-WebID based Endpoint</ulink> </listitem> <listitem><ulink url="VirtODSSecurityWebID">WebID Protocol Support in OpenLink Data Spaces</ulink>. </listitem> <listitem>Manage ODS Datadspaces Objects <ulink url="WebID">WebID</ulink> Access Control Lists (ACLs): <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSBriefcaseWebID">ODS Briefcase WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSBriefcaseWebIDPerson">Person Entity WebID based ACL Guide</ulink> </listitem> <listitem><ulink url="ODSBriefcaseWebIDGroup">Group Entity WebID based ACL Guide</ulink> </listitem> <listitem><ulink url="ODSBriefcaseWebIDPublic">Public WebID based ACL Guide</ulink> </listitem> </itemizedlist></listitem> <listitem><ulink url="ODSFeedManagerWebIDACL">ODS Feed Manager WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSFeedManagerWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem> <listitem><ulink url="ODSFeedManagerWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem> <listitem><ulink url="ODSFeedManagerWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem> </itemizedlist></listitem> <listitem><ulink url="ODSCalendarWebIDACL">ODS Calendar WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSCalendarWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem> <listitem><ulink url="ODSCalendarWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem> <listitem><ulink url="ODSCalendarWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem> </itemizedlist></listitem> <listitem><ulink url="ODSBookmarksWebIDACL">ODS Bookmark Manager WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSBookmarksWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem> <listitem><ulink url="ODSBookmarksWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem> <listitem><ulink url="ODSBookmarksWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem> </itemizedlist></listitem> <listitem><ulink url="ODSAddressBookWebIDACL">ODS Addressbook WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSAddressBookWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem> <listitem><ulink url="ODSAddressBookWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem> <listitem><ulink url="ODSAddressBookWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem> </itemizedlist></listitem> </itemizedlist></listitem> <listitem><ulink url="ODSPkiSetup">Guide for Set up a X.509 certificate issuer and HTTPS listener and generate ODS user certificates</ulink> </listitem> <listitem><ulink url="ODSSetupSSL">Configure Virtuoso+ODS instance as an X.509 Certificate Authority and HTTPS listener</ulink> </listitem> <listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSetupSSL">Configure Virtuoso instance as an X.509 Certificate Authority and HTTPS listener</ulink> </listitem> <listitem><ulink url="OdsKeyImport">CA Keys Import using Conductor</ulink> </listitem> <listitem><ulink url="ODSGenerateX509Certificate">Generate an X.509 Certificate hosted WebID Guide</ulink> </listitem> <listitem><ulink url="ODSGenerateWebIDX509CertOSKeystore">Generate an X.509 Certificate (with a WebID watermark) to be managed by host operating system keystore</ulink> </listitem> <listitem><ulink url="ODSGenerateWebIDX509CertBrsKeystore">Generate an X.509 Certificate (with a WebID watermark) to be managed by a browser-based keystore</ulink> </listitem> <listitem><ulink url="ODSWebIDIdP">Using Virtuoso's WebID Verification Proxy Service with a WebID-bearing X.509 certificate</ulink> </listitem> <listitem><ulink url="ODSWebIDIdpProxy">Using Virtuoso's WebID Identity Provider (IdP) Proxy Service with an X.509 certificate</ulink> </listitem> <listitem><ulink url="ODSBriefcaseWebIDShareFile">ODS Briefcase WebID Protocol Share File Guide</ulink> </listitem> <listitem><ulink url="http://esw.w3.org/topic/foaf+ssl">WebID Protocol Specification</ulink> </listitem> <listitem><ulink url="https://foaf.me/simpleLogin.php">Test WebID Protocol Certificate page</ulink> </listitem> <listitem><ulink url="http://test.foafssl.org/cert/">WebID Protocol Certificate Generation page</ulink></listitem> </itemizedlist></section></docbook>