{"id":423,"date":"2004-07-30T12:59:00","date_gmt":"2004-07-30T16:59:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/?p=412"},"modified":"2004-07-30T12:59:00","modified_gmt":"2004-07-30T16:59:00","slug":"the-worst-part-of-rdfxml","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2004\/07\/the-worst-part-of-rdfxml\/","title":{"rendered":"The worst part of RDF\/XML"},"content":{"rendered":"<p><a href=\"http:\/\/norman.walsh.name\/2004\/07\/30\/rdfxml\">Norm continues<\/a>\nthe slagging of the XML serialization of RDF,\n<a href=\"http:\/\/www.w3.org\/TR\/rdf-syntax-grammar\/\">RDF\/XML<\/a>.<\/p>\n\n<p>So, since somebody&#8217;s gotta do it, I&#8217;ll put my neck on the line by saying\nthat I really don&#8217;t have any big problems with RDF\/XML.<\/p>\n\n<p>For me, RDF\/XML works because it makes the simple things simple.  Consider\nthe following document;<\/p>\n\n<pre>\n&lt;Person xmlns=\"http:\/\/example.org\/foofoo\/\"&gt;\n  &lt;name&gt;Mark Smith&lt;\/name&gt;\n  &lt;age&gt;55&lt;\/age&gt;\n&lt;\/Person&gt;\n<\/pre>\n\n<p>IMO, if the serialization can&#8217;t support extracting the\n<a href=\"http:\/\/www.markbaker.ca\/2002\/09\/Blog\/2003\/10\/09#2003-10-rdf-and-xml\">same triples<\/a>\nas a human would intuitively expect to be there, then it&#8217;s broken, or at least\nnot suitable for hand-authoring (which I&#8217;ve had no problems doing).<\/p>\n\n<p>Yes, that&#8217;s simple, but I&#8217;d say it&#8217;s about 70% of what I do with RDF, and I&#8217;d\nexpect that for many people, it&#8217;s probably at least 50% of what they do with it.\n\n<p>And yes, <a href=\"http:\/\/www.w3.org\/2001\/10\/stripes\/\">striping<\/a> is a\nnuisance some times.  And lists and collections are annoying.  And don&#8217;t get\nme started on reification.  But the simple stuff <em>is<\/em> simple.<\/p>\n\n<p>Actually, I should come clean and say that despite my claims above\nabout not having any problems with RDF\/XML, I have had some.  But you know\nwhat?  The problems I&#8217;ve had are always with XML.  XML is just a really sucky\nsyntax for lots of network-centric things I do, thanks to its seemed-like-a-good-idea-at-the-time\ndeterministic failure model.  This is what <em>requires<\/em> you (unless you want to\ninstitute transaction semantics between your app and parser, uh huh) not to do any\napplication processing until you&#8217;ve received the final &#8220;\/&gt;&#8221;; because you never\nknow, it might not arrive, and it&#8217;s only then that you realize &#8220;Oopsie!&#8221;, that\n<a href=\"http:\/\/www.w3.org\/TR\/REC-xml\/#sec-well-formed\">wasn&#8217;t XML<\/a>\nafter all.  Streaming?  By definition, impossible.  Latency-sensitive apps?\nForget about it!<\/p>\n\n<p>I&#8217;m overstating the case, of course.  I use XML, a lot.  It&#8217;s the default\nsyntax that my last project used on the wide open Internet due to its\npervasive recognition and support.  We also used it as the default output\nformat for our embedded systems, since producing it is cheap.  But for\nembedded consumption, and between instances of our own software, we use\n<a href=\"http:\/\/www.ilrt.bris.ac.uk\/discovery\/2004\/01\/turtle\/\">Turtle<\/em>.<\/p>","protected":false},"excerpt":{"rendered":"Norm continues the slagging of the XML serialization of RDF, RDF\/XML. So, since somebody&#8217;s gotta do it, I&#8217;ll put my neck on the line by saying that I really don&#8217;t have any big problems with RDF\/XML. For me, RDF\/XML works because it makes the simple things simple. Consider the following document; &lt;Person xmlns=&#8221;http:\/\/example.org\/foofoo\/&#8221;&gt; &lt;name&gt;Mark Smith&lt;\/name&gt; [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[40],"class_list":["post-423","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-xml"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/423","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=423"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/423\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=423"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}