{"id":480,"date":"2004-10-05T00:23:00","date_gmt":"2004-10-05T04:23:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/2004\/10\/05\/rdftype-duck\/"},"modified":"2004-10-05T00:23:00","modified_gmt":"2004-10-05T04:23:00","slug":"rdftype-duck","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2004\/10\/rdftype-duck\/","title":{"rendered":"rdf:type :Duck"},"content":{"rendered":"<p>Probably the most interesting thing that I learned about\n<a href=\"http:\/\/www.w3.org\/RDF\/\">RDF<\/a>\non my last project was that resource typing (via the use of\n<a href=\"http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type\">rdf:type<\/a>)\nwas over-rated.  As a long time distributed objects weenie, I naturally\nhad this vision of resources (objects, if you will) with uniform\ninterfaces (what else?), but also with types orthogonal to those\ninterfaces (duh, since the interfaces are fixed) .  You can&#8217;t\nhave an object without a type can you?<\/p>\n\n<p>Then reality hit.  Despite the fact that I had actually speced out a\ntype ontology for the project, and educated everybody about it,\n<em>almost none of our RDF processing software actually checked the rdf:type\ntriple<\/em>!  Apparently, if it\n<a href=\"http:\/\/www.propylon.com\/news\/ctoarticles\/040224_duckmodeling.html\">walked like a duck, and quacked like a duck<\/a>,\nthen by golly, for all intents and purposes it <em>was<\/em> a duck!  That\nwas very liberating.  I knew the moment I realized this, what had happened;\nI simply had overlooked what was important to the recipient of the documents, the data.<\/p>\n\n<p>rdf:Description; not just a place holder for the lazy.<\/p>\n<p>rdf:type; in many cases, <a href=\"http:\/\/c2.com\/cgi\/wiki?YouArentGonnaNeedIt\">YAGNI<\/a><\/p>","protected":false},"excerpt":{"rendered":"Probably the most interesting thing that I learned about RDF on my last project was that resource typing (via the use of rdf:type) was over-rated. As a long time distributed objects weenie, I naturally had this vision of resources (objects, if you will) with uniform interfaces (what else?), but also with types orthogonal to those [&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-480","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/480","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=480"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/480\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=480"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}