{"id":2025,"date":"2006-04-25T13:40:00","date_gmt":"2006-04-25T13:40:00","guid":{"rendered":"http:\/\/www.leobard.net\/blog\/?p=2025"},"modified":"2017-11-04T15:48:13","modified_gmt":"2017-11-04T15:48:13","slug":"simple-xslt-friendly-rdfxml","status":"publish","type":"post","link":"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/","title":{"rendered":"Simple, XSLT friendly RDF\/XML"},"content":{"rendered":"<p>We need a simple RDF\/XML serialization for XSLT transformations. I wrote my ideas about this here:<\/p>\n<p><a href=\"http:\/\/esw.w3.org\/topic\/SimpleRdfXml\">esw.w3.org\/topic\/SimpleRdfXml<\/a><\/p>\n<h1 id=\"head-9c199940b0742b8a3d37219d03ff4a578ef455f8\">SimpleRdfXml<\/h1>\n<p><span class=\"anchor\" id=\"line-2\"><\/span><span class=\"anchor\" id=\"line-3\"><\/span><\/p>\n<p class=\"line886\">Using the general RDF\/XML spec, the RDF serialization can look quite different depending on rdf-writer implementation. These diversity in writing RDF makes writing XSLT transformation a black art. What happens is that the data shows up in so many different ways, that many people write big hacks to get it work. <span class=\"anchor\" id=\"line-4\"><\/span><\/p>\n<p><span class=\"anchor\" id=\"line-5\"><\/span><\/p>\n<p class=\"line879\">Solution: a simple RDF\/XML syntax that is RDF\/XML compatible but has some restrictions to it. It is kind-of deterministic and can be better parsed in XSLT. I [LeoS] call it <strong>SimpleRdfXml<\/strong>. <span class=\"anchor\" id=\"line-6\"><\/span><\/p>\n<p><span class=\"anchor\" id=\"line-7\"><\/span><\/p>\n<h2 id=\"head-516714b2b63f6e9742efd1fc48a9746d1e765045\">See Also<\/h2>\n<p><span class=\"anchor\" id=\"line-8\"><\/span><\/p>\n<ul>\n<li>\n<p class=\"line903\"><a class=\"http\" href=\"http:\/\/www.wasab.dk\/morten\/blog\/archives\/2004\/05\/30\/transforming-rdfxml-with-xslt\">MortenF&#8217;s blog entry about XSLT and RDF<\/a> many examples there (thx to beobal from #swig) <span class=\"anchor\" id=\"line-9\"><\/span><\/p>\n<\/li>\n<li>\n<p class=\"line903\"><a class=\"http\" href=\"http:\/\/www.kanzaki.com\/works\/2004\/imgdsc\/annot-gallery-e.rdf\">Kanzaki&#8217;s XSLT RSS<\/a> finest white magic! <span class=\"anchor\" id=\"line-10\"><\/span><\/p>\n<p><span class=\"anchor\" id=\"line-11\"><\/span><\/li>\n<\/ul>\n<h2 id=\"head-ce9054f4d63ed63aa8aa493d375c7def1c12a32a\">Example<\/h2>\n<p><span class=\"anchor\" id=\"line-12\"><\/span><span class=\"anchor\" id=\"line-13\"><\/span><\/p>\n<p class=\"line886\">This is a fragment of FOAF, using the simpleRDF\/XML <span class=\"anchor\" id=\"line-14\"><\/span><span class=\"anchor\" id=\"line-15\"><\/span><\/p>\n<pre> foaf-example:\n<span class=\"anchor\" id=\"line-16\"><\/span> &lt;rdf:RDF\n<span class=\"anchor\" id=\"line-17\"><\/span>    xmlns:foaf=\"http:\/\/xmlns.com\/foaf\/0.1\/\"\n\n<span class=\"anchor\" id=\"line-18\"><\/span>    xmlns:rdf=\"http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#\"\n<span class=\"anchor\" id=\"line-19\"><\/span>    xmlns:rdfs=\"http:\/\/www.w3.org\/2000\/01\/rdf-schema#\"\n<span class=\"anchor\" id=\"line-20\"><\/span>    xmlns:owl=\"http:\/\/www.w3.org\/2002\/07\/owl#\"\n<span class=\"anchor\" id=\"line-21\"><\/span>    xmlns:vs=\"http:\/\/www.w3.org\/2003\/06\/sw-vocab-status\/ns#\"\n<span class=\"anchor\" id=\"line-22\"><\/span>    xmlns:wot=\"http:\/\/xmlns.com\/wot\/0.1\/\"\n<span class=\"anchor\" id=\"line-23\"><\/span>    xmlns:dc=\"http:\/\/purl.org\/dc\/elements\/1.1\/\" &gt;\n<span class=\"anchor\" id=\"line-24\"><\/span>  &lt;rdf:Description rdf:about=\"http:\/\/xmlns.com\/foaf\/0.1\/firstName\"&gt;\n<span class=\"anchor\" id=\"line-25\"><\/span>    &lt;rdf:type rdf:resource=\"http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#Property\"\/&gt;\n\n<span class=\"anchor\" id=\"line-26\"><\/span>    &lt;vs:term_status&gt;testing&lt;\/vs:term_status&gt;\n<span class=\"anchor\" id=\"line-27\"><\/span>    &lt;rdfs:label&gt;firstName&lt;\/rdfs:label&gt;\n<span class=\"anchor\" id=\"line-28\"><\/span>    &lt;rdfs:comment&gt;The first name of a person.&lt;\/rdfs:comment&gt;\n<span class=\"anchor\" id=\"line-29\"><\/span>    &lt;rdf:type rdf:resource=\"http:\/\/www.w3.org\/2002\/07\/owl#DatatypeProperty\"\/&gt;\n\n<span class=\"anchor\" id=\"line-30\"><\/span>    &lt;rdfs:domain rdf:resource=\"http:\/\/xmlns.com\/foaf\/0.1\/Person\"\/&gt;\n<span class=\"anchor\" id=\"line-31\"><\/span>    &lt;rdfs:range rdf:resource=\"http:\/\/www.w3.org\/2000\/01\/rdf-schema#Literal\"\/&gt;\n<span class=\"anchor\" id=\"line-32\"><\/span>    &lt;rdfs:isDefinedBy rdf:resource=\"http:\/\/xmlns.com\/foaf\/0.1\/\"\/&gt;\n<span class=\"anchor\" id=\"line-33\"><\/span>  &lt;\/rdf:Description&gt;\n<span class=\"anchor\" id=\"line-34\"><\/span>&lt;\/rdf:RDF&gt;\n<span class=\"anchor\" id=\"line-35\"><\/span><\/pre>\n<p><span class=\"anchor\" id=\"line-36\"><\/span><span class=\"anchor\" id=\"line-37\"><\/span><\/p>\n<h2 id=\"head-f145642bcc5ea8d786c2d434ba8c875629ae0dd6\">Design Rules of SimpleRdfXml<\/h2>\n<p><span class=\"anchor\" id=\"line-38\"><\/span><\/p>\n<ol type=\"1\">\n<li>\n<p class=\"line886\">be compatible with RDF\/XML <span class=\"anchor\" id=\"line-39\"><\/span><\/p>\n<\/li>\n<li>\n<p class=\"line886\">but only a subset <span class=\"anchor\" id=\"line-40\"><\/span><\/p>\n<\/li>\n<li>\n<p class=\"line886\">restrict stuff to simplicity <span class=\"anchor\" id=\"line-41\"><\/span><\/p>\n<p><span class=\"anchor\" id=\"line-42\"><\/span><\/li>\n<\/ol>\n<h2 id=\"head-12e7b46c547ac2120a1613f8866a8249d75a9d80\">Rules<\/h2>\n<p><span class=\"anchor\" id=\"line-43\"><\/span><\/p>\n<ol type=\"1\">\n<li>\n<p class=\"line886\">no nested stuff <span class=\"anchor\" id=\"line-44\"><\/span><\/p>\n<\/li>\n<li>\n<p class=\"line879\">all literals as <tt>&lt;foaf:name&gt;Hello!&lt;\/foaf:name&gt;<\/tt> and not attributes like <tt>&lt;blub\u00a0foaf:name=\"Hello!\"&gt;<\/tt> <span class=\"anchor\" id=\"line-45\"><\/span><\/p>\n<\/li>\n<li>\n<p class=\"line886\">no blank nodes (replace them wirth random uris while serializing) <span class=\"anchor\" id=\"line-46\"><\/span><\/p>\n<\/li>\n<li>\n<p class=\"line886\">serious: no blank nodes. They force you to check all the time for different ways to lookup resources.  <span class=\"anchor\" id=\"line-47\"><\/span><\/p>\n<\/li>\n<li>\n<p class=\"line886\">only full uris, no relative ones <span class=\"anchor\" id=\"line-48\"><\/span><\/p>\n<\/li>\n<li>\n<p class=\"line886\">type always as triple, not in xml  <span class=\"anchor\" id=\"line-49\"><\/span><\/p>\n<p><span class=\"anchor\" id=\"line-50\"><\/span><\/li>\n<\/ol>\n<h2 id=\"head-6fcc31c1ca3db7e36a00ffb04cfb7cc90fc8aa00\">Implementations<\/h2>\n<p><span class=\"anchor\" id=\"line-51\"><\/span><\/p>\n<p class=\"line886\">Using Jena, the easiest way to get it is: <span class=\"anchor\" id=\"line-52\"><\/span><span class=\"anchor\" id=\"line-53\"><\/span><\/p>\n<pre>simple rdf:\n<span class=\"anchor\" id=\"line-54\"><\/span>Model m = ...;\n<span class=\"anchor\" id=\"line-55\"><\/span>m.write(System.out, \"RDF\/XML\");\n<span class=\"anchor\" id=\"line-56\"><\/span>\n<span class=\"anchor\" id=\"line-57\"><\/span>bad rdf:\n<span class=\"anchor\" id=\"line-58\"><\/span>m.write(System.out, \"RDF\/XML-ABBREV\");\n<span class=\"anchor\" id=\"line-59\"><\/span><\/pre>\n<p><span class=\"anchor\" id=\"line-60\"><\/span><span class=\"anchor\" id=\"line-61\"><\/span><\/p>\n<p class=\"line886\">more detail <span class=\"anchor\" id=\"line-62\"><\/span><\/p>\n<h3 id=\"head-2e4cff0f4219baa747fae6365644272d104aa0f3\">No nested stuff<\/h3>\n<p><span class=\"anchor\" id=\"line-63\"><\/span><\/p>\n<h3 id=\"head-607340719adaf245a32e60a61949455050b7129c\">All literals as elements, not attributes<\/h3>\n<p><span class=\"anchor\" id=\"line-64\"><\/span><\/p>\n<p class=\"line886\">Querying from XSLT is easy with both, but having to check both all the time sucks. <span class=\"anchor\" id=\"line-65\"><\/span>Most hackers go with the element solution, as it can contain datatypes and languages and can have better strings with CDATA elements. <span class=\"anchor\" id=\"line-66\"><\/span><\/p>\n<h3 id=\"head-8547c35ec54b8bb150a775c39e824bacdc05e71f\">No blank nodes<\/h3>\n<p><span class=\"anchor\" id=\"line-67\"><\/span><\/p>\n<p class=\"line886\">Thats hard to achieve. The idea behind is to easily query other nodes and follow links, when blank nodes are in game, this is harder. <span class=\"anchor\" id=\"line-68\"><\/span><\/p>\n<h3 id=\"head-7c075b15925af03bca8bee64324711d3d9943c79\">Full URIS<\/h3>\n<p><span class=\"anchor\" id=\"line-69\"><\/span><\/p>\n<p class=\"line886\">In foaf-vocab, there is a uri called &#8220;..\/sig&#8221; which is the show-stopper. don&#8217;t do it <span class=\"anchor\" id=\"line-70\"><\/span><\/p>\n<h3 id=\"head-aa5d7accad0621ac93446f8218d6bc209012994d\">Type always as triple<\/h3>\n<p><span class=\"anchor\" id=\"line-71\"><\/span><\/p>\n<p class=\"line886\">Wrong: <span class=\"anchor\" id=\"line-72\"><\/span><tt>&lt;foaf:Person\u00a0rdf:about=\"urn:example\"&gt;<\/tt> <span class=\"anchor\" id=\"line-73\"><\/span>Right: <span class=\"anchor\" id=\"line-74\"><\/span><\/p>\n<pre>&lt;rdf:Description rdf:about=\"urn:example\"&gt; \n\n<span class=\"anchor\" id=\"line-75\"><\/span>  &lt;rdf:type rdf:resource=\"http:\/\/xmlns.com\/foaf\/0.1\/Person\"\/&gt;\n<span class=\"anchor\" id=\"line-76\"><\/span><\/pre>\n<p><span class=\"anchor\" id=\"line-77\"><\/span><span class=\"anchor\" id=\"line-78\"><\/span><\/p>\n<p class=\"line886\">When things have two types, this comes in handy. Again, a step for making it simpler. <span class=\"anchor\" id=\"line-79\"><\/span><\/p>\n<p><span class=\"anchor\" id=\"line-80\"><\/span><\/p>\n<h2 id=\"head-6dc8e20135f08088efa7f7a6a0cb8141307bcfa0\">Contra-Example<\/h2>\n<p><span class=\"anchor\" id=\"line-81\"><\/span><\/p>\n<p class=\"line886\">This RDF is BAD RDF and is not simple, it breaks the rules: <span class=\"anchor\" id=\"line-82\"><\/span>nono: <span class=\"anchor\" id=\"line-83\"><\/span><span class=\"anchor\" id=\"line-84\"><\/span><\/p>\n<pre>&lt;foaf:Person rdfs:label=\"blub\"&gt;\n<span class=\"anchor\" id=\"line-85\"><\/span>  &lt;rdfs:commment&gt;asdafsd&lt;\/rrr&gt;\n<span class=\"anchor\" id=\"line-86\"><\/span>  &lt;rdf:hasblub &gt;\n\n<span class=\"anchor\" id=\"line-87\"><\/span>     &lt;rdf:descrip....\n<span class=\"anchor\" id=\"line-88\"><\/span><\/pre>\n<p class=\"line886\"> <span class=\"anchor\" id=\"line-89\"><\/span><\/p>\n<p><span class=\"anchor\" id=\"bottom\"><\/span><\/p>\n<p class=\"info\" id=\"pageinfo\">SimpleRdfXml  (zuletzt ge\u00e4ndert am 2006-04-24 18:16:00 durch <span title=\"LeoS @ pc-214.dfki.uni-kl.de[131.246.241.74]\"><a title=\"LeoS @ pc-214.dfki.uni-kl.de[131.246.241.74]\">LeoS<\/a><\/span>)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We need a simple RDF\/XML serialization for XSLT transformations. I wrote my ideas about this here: esw.w3.org\/topic\/SimpleRdfXml SimpleRdfXml Using the general RDF\/XML spec, the RDF serialization can look quite different depending on rdf-writer implementation. These diversity in writing RDF makes writing XSLT transformation a black art. What happens is that the data shows up in &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Simple, XSLT friendly RDF\/XML&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bluesky_dont_syndicate":"","_bluesky_syndication_accounts":"","_bluesky_syndication_text":"","activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[5],"tags":[],"class_list":["post-2025","post","type-post","status-publish","format-standard","hentry","category-semweb"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Simple, XSLT friendly RDF\/XML - Leobard&#039;s blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Simple, XSLT friendly RDF\/XML - Leobard&#039;s blog\" \/>\n<meta property=\"og:description\" content=\"We need a simple RDF\/XML serialization for XSLT transformations. I wrote my ideas about this here: esw.w3.org\/topic\/SimpleRdfXml SimpleRdfXml Using the general RDF\/XML spec, the RDF serialization can look quite different depending on rdf-writer implementation. These diversity in writing RDF makes writing XSLT transformation a black art. What happens is that the data shows up in &hellip; Continue reading &quot;Simple, XSLT friendly RDF\/XML&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/\" \/>\n<meta property=\"og:site_name\" content=\"Leobard&#039;s blog\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/leobard\" \/>\n<meta property=\"article:published_time\" content=\"2006-04-25T13:40:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-11-04T15:48:13+00:00\" \/>\n<meta name=\"author\" content=\"leobard\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"leobard\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/04\\\/25\\\/simple-xslt-friendly-rdfxml\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/04\\\/25\\\/simple-xslt-friendly-rdfxml\\\/\"},\"author\":{\"name\":\"leobard\",\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/#\\\/schema\\\/person\\\/23f718c5d3bd8d343befaa1b11bdc609\"},\"headline\":\"Simple, XSLT friendly RDF\\\/XML\",\"datePublished\":\"2006-04-25T13:40:00+00:00\",\"dateModified\":\"2017-11-04T15:48:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/04\\\/25\\\/simple-xslt-friendly-rdfxml\\\/\"},\"wordCount\":392,\"commentCount\":0,\"articleSection\":[\"SemWeb\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/04\\\/25\\\/simple-xslt-friendly-rdfxml\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/04\\\/25\\\/simple-xslt-friendly-rdfxml\\\/\",\"url\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/04\\\/25\\\/simple-xslt-friendly-rdfxml\\\/\",\"name\":\"Simple, XSLT friendly RDF\\\/XML - Leobard&#039;s blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/#website\"},\"datePublished\":\"2006-04-25T13:40:00+00:00\",\"dateModified\":\"2017-11-04T15:48:13+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/#\\\/schema\\\/person\\\/23f718c5d3bd8d343befaa1b11bdc609\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/04\\\/25\\\/simple-xslt-friendly-rdfxml\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/04\\\/25\\\/simple-xslt-friendly-rdfxml\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/04\\\/25\\\/simple-xslt-friendly-rdfxml\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Simple, XSLT friendly RDF\\\/XML\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/\",\"name\":\"Leobard&#039;s blog\",\"description\":\"personal weblog of Leo Sauermann\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/#\\\/schema\\\/person\\\/23f718c5d3bd8d343befaa1b11bdc609\",\"name\":\"leobard\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4f15ee76fffcb732371d121c4713809a3f075186c6223630d4fe6c82ae88166d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4f15ee76fffcb732371d121c4713809a3f075186c6223630d4fe6c82ae88166d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4f15ee76fffcb732371d121c4713809a3f075186c6223630d4fe6c82ae88166d?s=96&d=mm&r=g\",\"caption\":\"leobard\"},\"description\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/about-leo-sauermann\\\/\",\"sameAs\":[\"https:\\\/\\\/www.leobard.net\\\/\",\"https:\\\/\\\/www.facebook.com\\\/leobard\",\"https:\\\/\\\/www.instagram.com\\\/leobarder\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/leosauermann\\\/\"],\"url\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/author\\\/leobard\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Simple, XSLT friendly RDF\/XML - Leobard&#039;s blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/","og_locale":"en_US","og_type":"article","og_title":"Simple, XSLT friendly RDF\/XML - Leobard&#039;s blog","og_description":"We need a simple RDF\/XML serialization for XSLT transformations. I wrote my ideas about this here: esw.w3.org\/topic\/SimpleRdfXml SimpleRdfXml Using the general RDF\/XML spec, the RDF serialization can look quite different depending on rdf-writer implementation. These diversity in writing RDF makes writing XSLT transformation a black art. What happens is that the data shows up in &hellip; Continue reading \"Simple, XSLT friendly RDF\/XML\"","og_url":"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/","og_site_name":"Leobard&#039;s blog","article_author":"https:\/\/www.facebook.com\/leobard","article_published_time":"2006-04-25T13:40:00+00:00","article_modified_time":"2017-11-04T15:48:13+00:00","author":"leobard","twitter_card":"summary_large_image","twitter_misc":{"Written by":"leobard","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/#article","isPartOf":{"@id":"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/"},"author":{"name":"leobard","@id":"https:\/\/www.leobard.net\/blog\/#\/schema\/person\/23f718c5d3bd8d343befaa1b11bdc609"},"headline":"Simple, XSLT friendly RDF\/XML","datePublished":"2006-04-25T13:40:00+00:00","dateModified":"2017-11-04T15:48:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/"},"wordCount":392,"commentCount":0,"articleSection":["SemWeb"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/","url":"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/","name":"Simple, XSLT friendly RDF\/XML - Leobard&#039;s blog","isPartOf":{"@id":"https:\/\/www.leobard.net\/blog\/#website"},"datePublished":"2006-04-25T13:40:00+00:00","dateModified":"2017-11-04T15:48:13+00:00","author":{"@id":"https:\/\/www.leobard.net\/blog\/#\/schema\/person\/23f718c5d3bd8d343befaa1b11bdc609"},"breadcrumb":{"@id":"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.leobard.net\/blog\/2006\/04\/25\/simple-xslt-friendly-rdfxml\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.leobard.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Simple, XSLT friendly RDF\/XML"}]},{"@type":"WebSite","@id":"https:\/\/www.leobard.net\/blog\/#website","url":"https:\/\/www.leobard.net\/blog\/","name":"Leobard&#039;s blog","description":"personal weblog of Leo Sauermann","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.leobard.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.leobard.net\/blog\/#\/schema\/person\/23f718c5d3bd8d343befaa1b11bdc609","name":"leobard","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4f15ee76fffcb732371d121c4713809a3f075186c6223630d4fe6c82ae88166d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4f15ee76fffcb732371d121c4713809a3f075186c6223630d4fe6c82ae88166d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4f15ee76fffcb732371d121c4713809a3f075186c6223630d4fe6c82ae88166d?s=96&d=mm&r=g","caption":"leobard"},"description":"https:\/\/www.leobard.net\/blog\/about-leo-sauermann\/","sameAs":["https:\/\/www.leobard.net\/","https:\/\/www.facebook.com\/leobard","https:\/\/www.instagram.com\/leobarder\/","https:\/\/www.linkedin.com\/in\/leosauermann\/"],"url":"https:\/\/www.leobard.net\/blog\/author\/leobard\/"}]}},"_links":{"self":[{"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/posts\/2025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/comments?post=2025"}],"version-history":[{"count":1,"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/posts\/2025\/revisions"}],"predecessor-version":[{"id":2811,"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/posts\/2025\/revisions\/2811"}],"wp:attachment":[{"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/media?parent=2025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/categories?post=2025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/tags?post=2025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}