Blog

 4 minute read.

The Second Wave

thammond

thammond – 2007 September 11

In Metadata

You might have been wondering why I’ve been banging on about XMP here. Why the emphasis on one vendor technology on a blog focussed on an industry linking solution? Well, this post is an attempt to answer that.

Four years ago we at Nature Publishing Group, along with a select few early adopters, started up our RSS news feeds. We chose to use RSS 1.0 as the platform of choice which allowed us to embed a rich metadata term set using multiple schemas - especially Dublin Core and PRISM. We evangelized this much at the time and published documents on XML.com (Jul. ’03) and in D-Lib Magazine (Dec. ’04) as well as speaking about this at various meetings and blogging about it. Since that time many more publishers have come on board and now provide RSS routinely, many of them choosing to enrich their feeds with metadata.

Well, RSS can be seen in hindsight as being the First Wave of projecting a web presence beyond the content platform using standard markup formats. With this embedded metadata a publisher can expand their web footprint and allow users to link back to their content server.

Now, XMP with its potential for embedding metadata in rich media can be seen as a Second Wave. Media assets distributed over the network can now carry along their own metadata and identity which can be leveraged by third-party applications to provide interesting new functionalities and link-back capability. Again a projection of web presence.

(Continues.)

XMP has much in common with RSS 1.0. They are both profiles of RDF/XML. They are both flawed in certain respects because of self-imposed limitations. But they both build on a robust and open data model for the web (RDF) and are reasonably open, at least they are extensible. One (RSS 1.0) was defined in an open process by committee, the other is an open (i.e published) specification provided by a vendor.

From our point of view both specifications are sufficiently advanced to be immediately useful. I’m not sure how one could interact with the further development of either specification. RSS 1.0 is essentially frozen with Atom being posed as a successor technology, although Atom does not conform to the RDF model. (The upshot is that an RSS 1.0 feed can be consumed completely by an RDF-aware application, while an Atom feed would need to be pre-processed before any RDF “goodness” could be gleaned from it.) By contrast, XMP is a vendor-defined technology and alive, if not perhaps kicking. I am unaware of any process to formally contribute to the XMP development apart from shouting from the terraces. None the less, both technologies are usable as is.

It is curious that no consistent packaging (and delivery) of metadata has yet been achieved with HTML, the original web interface. The HTML </tt> and <tt><meta></tt> elements are employed by publishers with various degrees of consistency. There are also RDF islands that can be embedded within HTML comments (as used e.g. by <a href="http://creativecommons.org/">CC licenses</a>). And then there are <a href="http://ocoins.info/">COinS</a> objects. But it’s all a bit of a mish-mash to date. Certainly, I don’t recall seeing any guidelines from Crossref as to how machine readable metadata (even markup for the DOI itself) may be embedded within HTML pages, rather than on HTML pages for human readers.</p> <p>This lack of uniform metadata deployment for HTML pages could be something to do with context. With RSS and XMP we are dealing with remote objects, whereas with HTML we are generally accessing this directly on the content server and so have a semantic context. It could be though that metadata delivery from HTML pages will finally be more uniformly available with the further development of standards such as <a href="http://microformats.org/">microformats</a> and especially <a href="http://www.w3.org/2006/07/SWD/RDFa/syntax/">RDFa</a>, <a href="http://www.w3.org/2004/01/rdxh/spec">GRDDL</a>, etc. It is also interesting to note that an XMP packet could just as easily be embedded within the HTML page, and if this technology were to be adopted more widely for embedding in other media assets then why not consider the same technology for ordinary web pages?</p> <p>I can’t help feeling though that XMP has a lot of promise and is very timely. There are only three real obstacles: creating XMP packets, writing them and reading them. To my mind, once one has a good grasp of XMP then creating the packets can be done with common tools. The same, more or less, for reading the packets. I have shown earlier that this is readily achievable. The only major block is writing the packets into media files although there is support for create/write (if patchy) by open source libraries, as well as there being support (perhaps limited) from products for create/write. But, anyway, it’s certainly do-able.</p> </div> <div> <h3>See also:</h3> <ul> <li><a href="/blog/good-better-best.-never-let-it-rest./">Good, better, best. Never let it rest.</a></li> <li><a href="/blog/metadata-manager-members-represent/">Metadata Manager: Members, represent!</a></li> <li><a href="/blog/100000000-records---thank-you/">100,000,000 records - thank you!</a></li> <li><a href="/blog/where-does-publisher-metadata-go-and-how-is-it-used/">Where does publisher metadata go and how is it used?</a></li> <li><a href="/blog/leaving-the-house---where-preprints-go/">Leaving the house - where preprints go</a></li> </ul> </div> <div id="disqus_thread"></div> <script type="application/javascript"> var disqus_config = function () { }; (function() { if (["localhost", "127.0.0.1"].indexOf(window.location.hostname) != -1) { document.getElementById('disqus_thread').innerHTML = 'Disqus comments not available by default when the website is previewed locally.'; return; } var d = document, s = d.createElement('script'); s.async = true; s.src = '//' + "crossreforg" + '.disqus.com/embed.js'; s.setAttribute('data-timestamp', +new Date()); (d.head || d.body).appendChild(s); })(); </script> <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> <a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a> </div> <div class="col-md-2"> <a href="/blog/index.xml"><i class="fa fa-rss" aria-hidden="true"></i> RSS Feed</a> <section> <div class="blog-box"> <h2>Recent Posts</h2> <div class="item"> <p class="headline"><a href="/blog/matchmaker-matchmaker-make-me-a-match/">Matchmaker, matchmaker, make me a match</a></p> <p class="date">2018 November 12</p> </div> <div class="item"> <p class="headline"><a href="/blog/what-does-the-sample-say/">What does the sample say?</a></p> <p class="date">2018 November 09</p> </div> <div class="item"> <p class="headline"><a href="/blog/why-data-citation-matters-to-publishers-and-data-repositories/">Why Data Citation matters to publishers and data repositories</a></p> <p class="date">2018 November 08</p> </div> <div class="item"> <p class="headline"><a href="/blog/ten-more-days-til-toronto/">Ten more days 'til Toronto</a></p> <p class="date">2018 November 02</p> </div> </section> <section> <div class="blog-box"> <h2>Categories</h2> <ul class="blog-categories"> <li><a href="/categories/identifiers">Identifiers</a> (76)</li> <li><a href="/categories/metadata">Metadata</a> (71)</li> <li><a href="/categories/community">Community</a> (47)</li> <li><a href="/categories/linking">Linking</a> (34)</li> <li><a href="/categories/collaboration">Collaboration</a> (29)</li> <li><a href="/categories/orcid">ORCID</a> (28)</li> <li><a href="/categories/member-briefing">Member Briefing</a> (26)</li> <li><a href="/categories/event-data">Event Data</a> (25)</li> <li><a href="/categories/news-release">News Release</a> (25)</li> <li><a href="/categories/citation">Citation</a> (24)</li> <li><a href="/categories/crossref-live">Crossref LIVE</a> (23)</li> <li><a href="/categories/apis">APIs</a> (22)</li> <li><a href="/categories/interoperability">Interoperability</a> (22)</li> <li><a href="/categories/crossref-labs">Crossref Labs</a> (21)</li> <li><a href="/categories/dois">DOIs</a> (20)</li> <li><a href="/categories/data">Data</a> (20)</li> <li><a href="/categories/datacite">DataCite</a> (20)</li> <li><a href="/categories/search">Search</a> (20)</li> <li><a href="/categories/meetings">Meetings</a> (16)</li> <li><a href="/categories/persistence">Persistence</a> (16)</li> <li><a href="/categories/standards">Standards</a> (16)</li> <li><a href="/categories/linked-data">Linked Data</a> (14)</li> <li><a href="/categories/wikipedia">Wikipedia</a> (14)</li> <li><a href="/categories/xmp">XMP</a> (14)</li> <li><a href="/categories/publishing">Publishing</a> (13)</li> <li><a href="/categories/api-case-study">API Case Study</a> (12)</li> <li><a href="/categories/content-registration">Content Registration</a> (12)</li> <li><a href="/categories/annual-meeting">Annual Meeting</a> (11)</li> <li><a href="/categories/handle">Handle</a> (11)</li> <li><a href="/categories/member-experience">Member Experience</a> (11)</li> <li><a href="/categories/outreach">Outreach</a> (11)</li> <li><a href="/categories/preprints">Preprints</a> (11)</li> <li><a href="/categories/citation-formats">Citation Formats</a> (10)</li> <li><a href="/categories/discussion">Discussion</a> (10)</li> <li><a href="/categories/funders">Funders</a> (10)</li> <li><a href="/categories/rss">RSS</a> (10)</li> </ul> </div> <div class="blog-box"> <h2>Archives</h2> <ul class="blog-categories"> <li><a href="/archives/2018">2018</a> (49)</li> <li><a href="/archives/2017">2017</a> (45)</li> <li><a href="/archives/2016">2016</a> (50)</li> <li><a href="/archives/2015">2015</a> (23)</li> <li><a href="/archives/2014">2014</a> (4)</li> <li><a href="/archives/2013">2013</a> (2)</li> <li><a href="/archives/2012">2012</a> (5)</li> <li><a href="/archives/2011">2011</a> (6)</li> <li><a href="/archives/2010">2010</a> (9)</li> <li><a href="/archives/2009">2009</a> (34)</li> <li><a href="/archives/2008">2008</a> (56)</li> <li><a href="/archives/2007">2007</a> (91)</li> <li><a href="/archives/2006">2006</a> (21)</li> </ul> </div> </section> </div> </div> <div class="row"> <div class="sharethis-inline-share-buttons"></div></ul> </div> <div class="row"> <div class="row infoline"> <div class="col-md-12"> <p> Last Updated: 2007 September 11 by thammond </p> </div> </div> </div> </div> <footer class='top-footer'> <div class="container"> <div class="row"> <div class="home-slot col-md-3 col-md-offset-1"> <span class="strap">You are Crossref</span> </div> <div class="home-slot home-slot-col2 col-md-3"> <a href='https://www.crossref.org/membership/'><button>Join the community</button></a> </div> <div class="home-slot col-md-3 strap"> <a href='https://www.crossref.org/subscribe-newsletter/'><button>Get email updates</button></a> </div> </div> </div> </footer> <footer class='bottom-footer'> <div class="container"> <div class="row"> <div class="home-slot col-md-3 col-md-offset-1"> <a href="/news/" title="News">News</a><br /> <a href="/blog/" title="Blog">Blog</a><br /> <a href="/labs/" title="Labs">Labs</a><br /> <a href="/contact/" title="Contact">Contact</a><br /> </div> <div class="home-slot home-slot-col2 col-md-3"> <a href="/membership/" title="Become a member">Apply</a><br /> <a href="/faqs/" title="FAQs">FAQs</a><br /> <a href="/dashboard/" title="Dashboard">Dashboard</a><br /> <a href="/member-obligations/" title="Member obligations">Member obligations</a><br /> </div> <div class="home-slot col-md-3"> <a href="/truths/" title="Our truths">Truths</a><br /> <a href="/annual-report/" title="Annual report">Annual report</a><br /> <a href="/committees/" title="Committees">Committees</a><br /> <a href="/board-and-governance/" title="Governance">Governance</a><br /> </div> </div> </footer> <footer class="very-bottom-footer"> <div class="container"> <div class="row"> <div class="col-md-11"> <img class="footer-svg cc" src="/images/footer/cc.svg" /></i><img class="footer-svg by" src="/images/footer/by.svg" /> The content of this site is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/" title="Creative Commons">Creative Commons Attribution 4.0 International License</a> </div> <div class="col-md-1"> <a href='https://www.crossref.org/privacy/'>Privacy</a> </div> </div> </div> </footer> <script src="https://www.crossref.org/js/jquery.min.js"></script> <script src="https://www.crossref.org/js/jquery.ui-min.js"></script> <script src="https://www.crossref.org/js/js.cookie.js"></script> <script src="https://www.crossref.org/js/jquery.cookiebar.js"></script> <script src="https://www.crossref.org/js/jquery.fancybox.js"></script> <script src="https://www.crossref.org/js/jquery.validate.js"></script> <script type="text/javascript" language="javascript" src="//cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script> <script type="text/javascript" language="javascript" src="//cdn.datatables.net/buttons/1.5.1/js/dataTables.buttons.min.js"></script> <script type="text/javascript" language="javascript" src="//cdn.datatables.net/buttons/1.5.1/js/buttons.html5.min.js"></script> <script src="https://www.crossref.org/js/jquery.fancybox.js"></script> <script src="https://www.crossref.org/js/bootstrap.min.js"></script> <script src="https://www.crossref.org/js/jquery.sticky-kit.min.js"></script> <script src="https://www.crossref.org/js/crossref.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/4.1.0/masonry.pkgd.js"></script> <script>(function(w,a,b,d,s){w[a]=w[a]||{};w[a][b]=w[a][b]||{q:[],track:function(r,e,t){this.q.push({r:r,e:e,t:t||+new Date});}};var e=d.createElement(s);var f=d.getElementsByTagName(s)[0];e.async=1;e.src='//outreach.crossref.org/cdnr/93/acton/bn/tracker/16781';f.parentNode.insertBefore(e,f);})(window,'ActOn','Beacon',document,'script');ActOn.Beacon.track();</script> <script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> </script> <script> $(document).ready(function () { $(".short-summary").text(function(index, currentText) { return currentText .split(' ', 35 ) .join(' ') + "\u2026"; }); }); </script> <script> function fakeClick(){ $('a[href="#tabs-metadatasearch"]').trigger('click'); } var $searchstring = ''; jQuery(document).ready(function ($) { var MQL = 1170; var client = algoliasearch('QSQNJS2NQU', 'c89cdaacb1f5ab75df92bb4d16b44790'); var index = client.initIndex('live'); var doiPattern = /10\.[0-9]{4}/; function checkPattern(input) { if (doiPattern.test(input)) { return true; } else { return false; } } var hcwhtopInput = document.getElementById("howcanwehelptop"); autocomplete('#howcanwehelptop', { hint: false, openOnFocus:true }, [{ source: autocomplete.sources.hits(index, {hitsPerPage: 5}), displayKey: 'title', templates: { suggestion: function(suggestion) { sectionValue = suggestion._highlightResult.section.value.replace(/\-/g, " ") titleValue = suggestion._highlightResult.title.value result ="<a href='" + suggestion.url + "'>" + "<div class='autosuggest-section'>" + sectionValue + "</div><div class='autosuggest-title'>" + titleValue + "</div></a>"; return result; }, empty: function() { return '<div class="aa-empty">We don\'t have anything on that topic. Please try editing your search or typing something new.</div>'; }, footer: function () { return "<div class='aa-footer'><span class='middle'>|</span><span class='left'><a href='/site-search/?q=" + hcwhtopInput.value + "'>More results</a></span><span class='right'><a href='https://search.crossref.org/?q=" + hcwhtopInput.value + "'>Search metadata</a></span></div>"; } } } ]).on('autocomplete:selected', function(event, suggestion, dataset) { location.href = suggestion.url; }); var hcwhInput = document.getElementById("howcanwehelp"); autocomplete('#howcanwehelp', { hint: false, openOnFocus:true }, [{ source: autocomplete.sources.hits(index, {hitsPerPage: 5}), displayKey: 'title', templates: { suggestion: function(suggestion) { sectionValue = suggestion._highlightResult.section.value.replace(/\-/g, " ") titleValue = suggestion._highlightResult.title.value result ="<a href='" + suggestion.url + "'>" + "<div class='autosuggest-section'>" + sectionValue + "</div><div class='autosuggest-title'>" + titleValue + "</div></a>"; return result; }, empty: function () { return '<div class="aa-empty">We don\'t have anything on that topic. Please try editing your search or typing something new.</div>'; }, footer: function () { $searchstring = hcwhInput.value; return "<div class='aa-footer'><span class='middle'>|</span><span class='left'><a href='/site-search/?q=" + hcwhInput.value + "'>More results</a></span><span class='right'><a onclick='fakeClick();' class='metadatalink' href='#'>Search metadata</a></span></div>"; } } } ]).on('autocomplete:selected', function(event, suggestion, dataset) { location.href = suggestion.url; }); }); </script> <script type="text/javascript"> var _paq = _paq || []; _paq.push(["setDocumentTitle", document.domain + "/" + document.title]); _paq.push(["setCookieDomain", "*.www.crossref.org"]); _paq.push(["setDomains", ["*.www.crossref.org"]]); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//crossref.piwikpro.com/"; _paq.push(['setTrackerUrl', u+'piwik.php']); _paq.push(['setSiteId', 1]); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); })(); </script> <noscript><p><img src="//crossref.piwikpro.com/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript> </body> </html>