{"id":286,"date":"2004-02-18T18:23:00","date_gmt":"2004-02-18T22:23:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/?p=270"},"modified":"2004-02-18T18:23:00","modified_gmt":"2004-02-18T22:23:00","slug":"towards-an-rdf-protocol","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2004\/02\/towards-an-rdf-protocol\/","title":{"rendered":"Towards an RDF Protocol"},"content":{"rendered":"<p>I&#8217;ve been doing some work with extensible protocol envelopes recently,\nwith a very strong emphasis on size, processing efficiency, extensibility,\nand evolvability.  On a lark, since I&#8217;ve been\n<a href=\"http:\/\/conveyor.com\/RESTwiki\/moin.cgi\/HttpAndTheSemanticWeb\">thinking<\/a>\nabout it for a few years, I thought I&#8217;d try to toss in the use of RDF, just to\nsee how far I could go with it.  As it turns out, pretty far.<\/p>\n\n<p>I&#8217;d like to be able to talk more about this now, but can&#8217;t; it&#8217;ll have to\nwait, because I&#8217;m being paid to do it by somebody with competitors 8-).  But I\ncan certainly pass along one rather enlightening observation that I made &#8230;<\/p>\n\n<p>Protocols typically work with a predicate(aka header)\/value tuple.\nIf you&#8217;ve ever worked with triples though, you quickly realize the problem with\na double; it&#8217;s not everything you need to know. In this case, you don&#8217;t know the\nsubject; <em>what<\/em>\nhas a media type, <em>what<\/em> is of length 342 bytes, <em>what<\/em> is identified\nby this URI?  Most protocols, therefore, define their subjects not in the message,\nbut in the specification.  For example,\n<a href=\"http:\/\/www.ics.uci.edu\/~fielding\/pubs\/dissertation\/rest_arch_style.htm#tab_5_1\">here are some<\/a>\npossible subjects of an HTTP message.\nThis is fine when you&#8217;re predefining headers in a spec; there&#8217;s still a\nself-descriptive path from bits-on-the-wire to what-is-the-subject-of-this-header.\nBut for extension headers, it doesn&#8217;t cut it; you&#8217;ve got a predicate (the header\nname) and an object (the header value), but no subject.<\/p>\n\n<p>It would help to have RDF available to us when defining protocol extensions.<\/p>","protected":false},"excerpt":{"rendered":"I&#8217;ve been doing some work with extensible protocol envelopes recently, with a very strong emphasis on size, processing efficiency, extensibility, and evolvability. On a lark, since I&#8217;ve been thinking about it for a few years, I thought I&#8217;d try to toss in the use of RDF, just to see how far I could go with [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-286","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/comments?post=286"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/286\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=286"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}