{"id":1886,"date":"2024-11-11T19:28:08","date_gmt":"2024-11-11T19:28:08","guid":{"rendered":"https:\/\/exponentialdecay.co.uk\/blog\/?p=1886"},"modified":"2025-01-17T14:18:37","modified_gmt":"2025-01-17T14:18:37","slug":"simpledroid-completing-the-circle","status":"publish","type":"post","link":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/","title":{"rendered":"simpledroid: completing the loop"},"content":{"rendered":"<p>It&#8217;s nearing the end of 2024 and that must mean a PRONOM <a href=\"https:\/\/www.dpconline.org\/news\/wdpd2024-pronom-hackathon\" target=\"_blank\" rel=\"noopener\">hackathon<\/a> as part of the World Digital Preservation Day (#WDPD2024).<\/p>\n<p>My contribution is a follow-up on my work earlier in the year to produce a valid DROID signature file from Wikidata in <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/making-droid-work-with-wikidata\/\" target=\"_blank\" rel=\"noopener\">wddroidy<\/a>.<\/p>\n<p><!--more--><\/p>\n<p><a href=\"https:\/\/github.com\/ffdev-info\/simpledroid\" target=\"_blank\" rel=\"noopener\">simpledroid<\/a> is a Python package that is available on GitHub and creates a simple DROID signature file from PRONOM itself, creating a scripted pathway to create a signature file using official PRONOM data that doesn&#8217;t require the current PRONOM database and its legacy stored procedures.<\/p>\n<p>A <a href=\"https:\/\/github.com\/ffdev-info\/simpledroid\/blob\/5679056ee6266eaa188e6f9806c3477a6b2761a1\/reference\/DROID_SignatureFile_Simple_2024-11-11T12-29-22Z.xml\" target=\"_blank\" rel=\"noopener\">reference signature file<\/a> is also available on GitHub; this can be used immediately with DROID. You may be able to see from the reference signature file that we do away with a lot of the excess data in the current DROID signature file which was previously an optimization for its Boyer Moore Horspool search algorithm, as described by <a href=\"https:\/\/groups.google.com\/g\/droid-list\/c\/EtKJ48ZYHEM\/m\/MmVg9J0lAAAJ\" target=\"_blank\" rel=\"noopener\">Matthew Palmer<\/a>. This is no longer needed.<\/p>\n<p>The primary reason for simpledroid was to complete the loop on my previous efforts and to prove that it was possible to create a simplified signature file and for it to work with DROID. The result is about 80-90% there, with only a few <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/the-problem-with-comprehensive-test-suites\/\" target=\"_blank\" rel=\"noopener\">skeleton files<\/a> that remain unidentified &#8211; it should only require a small amount of forensic research to determine the reason.<\/p>\n<p><a href=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/2024-11-10-droid-looiking-good.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1883 size-full\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/2024-11-10-droid-looiking-good.png\" alt=\"Screenshot of DROID identifying results using the simplified DROID file\" width=\"1408\" height=\"868\" srcset=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/2024-11-10-droid-looiking-good.png 1408w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/2024-11-10-droid-looiking-good-500x308.png 500w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/2024-11-10-droid-looiking-good-1024x631.png 1024w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/2024-11-10-droid-looiking-good-768x473.png 768w\" sizes=\"auto, (max-width: 1408px) 100vw, 1408px\" \/><\/a><\/p>\n<p>The output provides a way for simplifying the signature file generation process, offering new opportunities to create alternative versions, or filtering what&#8217;s already there, e.g. filtering out any signatures that aren&#8217;t explicitly for image identification, e.g. in a digitization workflow.<\/p>\n<p>It may provide another way into PRONOM data for those who might look at DROID first as well as opening up different ways to modify and test signatures.<\/p>\n<p>It is possible to see in the <a href=\"https:\/\/github.com\/ffdev-info\/simpledroid\/blob\/5ad408f6d2838165acb73d55d8a93cb8375c6e6e\/reference\/DROID_SignatureFile_Simple_2024-11-11T12-29-22Z.xml\" target=\"_blank\" rel=\"noopener\">reference output<\/a>, that the signatures are much easier to understand via this simplified DROID file.<\/p>\n<p><a href=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/droid-xml.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1889\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/droid-xml.png\" alt=\"A screenshot of the simplified DROID XML. The signatures are encoded in plain-text from PRONOM itself with no additional optimizations or modiification.\" width=\"1223\" height=\"368\" srcset=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/droid-xml.png 1223w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/droid-xml-500x150.png 500w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/droid-xml-1024x308.png 1024w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/droid-xml-768x231.png 768w\" sizes=\"auto, (max-width: 1223px) 100vw, 1223px\" \/><\/a><\/p>\n<p>simpledroid outputs a file with a smaller footprint than the current file:<\/p>\n<p><code>1.2M DROID_SignatureFile_Simple_2024-11-11T12-29-22Z.xml<\/code><br \/>\n<code>3.4M DROID_SignatureFile_V118.xml<\/code><\/p>\n<p>It also contains all of the file classification data e.g. <code>FormatType=\"Video\"<\/code> from PRONOM that will be added into DROID in a future release (and is already available in Siegfried).<\/p>\n<p>Unlike the wddroidy work, priorities have also been added to the signature file so the mechanics of the signature file are pretty close to the official version (DROID uses the signature sequence and offsets to identify a file, but it then uses a priority to determine what results to display to the user where there may otherwise be positive matches for formats that provide the foundation for another, e.g. how XML forms the basis of SVG or XHTML).<\/p>\n<p>It might be possible to remove some data around minimum and maximum offsets in the new file after discovering that simplified droid syntax requires curly bracket syntax at the beginning and end of sequences to mimic the same behavior, e.g.<\/p>\n<p>With a <code>BOFoffset<\/code>, <code>min_offset = 2<\/code>, and signature = <code>BADF00D1<\/code>, the signature needs to become <code>{2}BADF00D1<\/code> to work.<\/p>\n<p>The code is pretty straightforward and uses a few tricks to output XML sensibly without having to build the document&#8217;s tree (DOM) in a more verbose way. There are probably a few other shortcuts I&#8217;d fix with time if the code was ever useful, including improving variable naming and adding tests.<\/p>\n<p>I&#8217;m not sure this code will ever be used by anyone, but for a quick hack and a quick proof of concept, it felt good to put it out there. Maybe someone will look at this or the wddroidy work and see there may be a way to federate different sources of signature information together into something DROID can use. Or it might be a useful demonstration to the DROID team that allows them to simplify PRONOM&#8217;s database and output mechanisms in a way that remains compatible with existing tools.<\/p>\n<h2>Previous research week work<\/h2>\n<p>My previous work for PRONOM research week includes a <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/pronom-release-statistics\/\" target=\"_blank\" rel=\"noopener\">dashboard and API<\/a> for getting more information out of PRONOM, including listings of those records still requiring descriptions or signatures. You may find that work interesting and it is available at <a href=\"https:\/\/pronom.ffdev.info\" target=\"_blank\" rel=\"noopener\">https:\/\/pronom.ffdev.info<\/a> and <a href=\"https:\/\/api.pronom.ffdev.info\" target=\"_blank\" rel=\"noopener\">https:\/\/api.pronom.ffdev.info<\/a>.<\/p>\n<p>And if you want to get in on the signature development work, signature development utility 2.0 (<a href=\"https:\/\/ffdev.info\" target=\"_blank\" rel=\"noopener\">https:\/\/ffdev.info<\/a>) was also a previous effort of mine for <a href=\"https:\/\/openpreservation.org\/blogs\/pronom-research-week-signature-development-utility-2-0-ffdev-info\/\" target=\"_blank\" rel=\"noopener\">research week 2020<\/a> and will hopefully also benefit from outputting DROID&#8217;s simplified syntax.<\/p>\n<h2>A week of file formats<\/h2>\n<p>Of course with World Digital Preservation Day, file formats were pretty popular.<\/p>\n<p>Andrew Jackson attempted to <a href=\"https:\/\/www.dpconline.org\/blog\/wdpd\/meeting-the-file-format-challenge\" target=\"_blank\" rel=\"noopener\">calculate how many distinct formats<\/a> might be out there using methods used to calculate ecological diversity.<\/p>\n<p>Amanda Tome <a href=\"https:\/\/www.dpconline.org\/blog\/wdpd\/blog-amanda-tome-wdpd2024\" target=\"_blank\" rel=\"noopener\">described the scope of their work<\/a> and shared a number of useful resources including useful links to the PRONOM starter pack and to the PRONOM drop-in sessions.<\/p>\n<p>You might also find out a bit more <em>about yourself<\/em> by playing this <a href=\"https:\/\/openpreservation.org\/blogs\/wdpd2024-gamification-of-digital-preservation\/?q=1\" target=\"_blank\" rel=\"noopener\">File Format Dating Game<\/a> from Lotte Wijsman and colleagues: <em>Susanne van den Eijkel, Anton van Es, Elaine Murray, Francesca Mackenzie, Ellie O\u2019Leary, and Sharon McMeekin.<\/em> (I ended up on a date with <a href=\"http:\/\/justsolve.archiveteam.org\/wiki\/FASTA_and_FASTQ\" target=\"_blank\" rel=\"noopener\">FASTA<\/a> (<a href=\"https:\/\/www.loc.gov\/preservation\/digital\/formats\/fdd\/fdd000622.shtml\" target=\"_blank\" rel=\"noopener\">FDD000622<\/a>) in my first play-through!)<\/p>\n<p>Not specifically for WDPD, but in the same week I also enjoyed this presentation from Ange Albertini looking at different ways of identifying file formats. One big take away for me was thinking about how to get more forensic information out of a file format identification. DROID doesn&#8217;t tell us a lot, but <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/hacking-the-droid-signature-file-for-characterization\/\" target=\"_blank\" rel=\"noopener\">is there a world in which one day it could<\/a>?<\/p>\n<p><iframe loading=\"lazy\" title=\"Overview of file type identifiers\" id=\"talk_frame_1266421\" class=\"speakerdeck-iframe\" src=\"\/\/speakerdeck.com\/player\/41a7619ecfd24cf4b1cc5952f746f10d\" width=\"1200\" height=\"675\" style=\"aspect-ratio:1200\/675; border:0; padding:0; margin:0; background:transparent;\" frameborder=\"0\" allowtransparency=\"true\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>Let me know if you find any of this work useful at all; and good luck on your file format endeavors this week.<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1886\" class=\"pvc_stats total_only  \" data-element-id=\"1886\" style=\"\"><i class=\"pvc-stats-icon small\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s nearing the end of 2024 and that must mean a PRONOM <a href=\"https:\/\/www.dpconline.org\/news\/wdpd2024-pronom-hackathon\" target=\"_blank\" rel=\"noopener\">hackathon<\/a> as part of the World Digital Preservation Day (#WDPD2024).<\/p>\n<p>My contribution is a follow-up on my work earlier in the year to produce a valid DROID signature file from Wikidata in <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/making-droid-work-with-wikidata\/\" target=\"_blank\" rel=\"noopener\">wddroidy<\/a>.<\/p>\n<div class=\"link-more\"><a href=\"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &ldquo;simpledroid: completing the loop&rdquo;<\/span>&hellip;<\/a><\/div>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1886\" class=\"pvc_stats total_only  \" data-element-id=\"1886\" style=\"\"><i class=\"pvc-stats-icon small\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":1885,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[3,20],"tags":[147,71,15,17,16,72,185,14,238,240],"class_list":["post-1886","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digital-preservation","category-just-code","tag-digipres","tag-digital-preservation","tag-droid","tag-file-formats","tag-pronom","tag-python","tag-siegfried","tag-skeleton-test-corpus","tag-wdpd","tag-wdpd2024","entry"],"a3_pvc":{"activated":true,"total_views":179,"today_views":0},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>simpledroid: completing the loop - ross spencer :: exponentialdecay.digipres :: 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:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"simpledroid: completing the loop - ross spencer :: exponentialdecay.digipres :: blog\" \/>\n<meta property=\"og:description\" content=\"It&#8217;s nearing the end of 2024 and that must mean a PRONOM hackathon as part of the World Digital Preservation&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/\" \/>\n<meta property=\"og:site_name\" content=\"ross spencer :: exponentialdecay.digipres :: blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-11T19:28:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-17T14:18:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/toronto-lovebot-matthew-del-degan-2017-06-18.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"2141\" \/>\n\t<meta property=\"og:image:height\" content=\"2140\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ross Spencer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@beet_keeper\" \/>\n<meta name=\"twitter:site\" content=\"@beet_keeper\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ross Spencer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/\"},\"author\":{\"name\":\"Ross Spencer\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"headline\":\"simpledroid: completing the loop\",\"datePublished\":\"2024-11-11T19:28:08+00:00\",\"dateModified\":\"2025-01-17T14:18:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/\"},\"wordCount\":939,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"image\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/toronto-lovebot-matthew-del-degan-2017-06-18.jpeg\",\"keywords\":[\"digipres\",\"Digital Preservation\",\"DROID\",\"File Formats\",\"PRONOM\",\"Python\",\"siegfried\",\"Skeleton Test Corpus\",\"WDPD\",\"WDPD2024\"],\"articleSection\":[\"Digital Preservation\",\"Just Code\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/\",\"name\":\"simpledroid: completing the loop - ross spencer :: exponentialdecay.digipres :: blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/toronto-lovebot-matthew-del-degan-2017-06-18.jpeg\",\"datePublished\":\"2024-11-11T19:28:08+00:00\",\"dateModified\":\"2025-01-17T14:18:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/#primaryimage\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/toronto-lovebot-matthew-del-degan-2017-06-18.jpeg\",\"contentUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/toronto-lovebot-matthew-del-degan-2017-06-18.jpeg\",\"width\":2141,\"height\":2140,\"caption\":\"Lovebot by Matthew Del Degan. Taken in Toronto in 2017.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/simpledroid-completing-the-circle\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"simpledroid: completing the loop\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/\",\"name\":\"ross spencer :: exponentialdecay.digipres :: blog\",\"description\":\"Digital preservation analyst, researcher, and software developer\",\"publisher\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\",\"name\":\"Ross Spencer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"contentUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"width\":2560,\"height\":2560,\"caption\":\"Ross Spencer\"},\"logo\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\"},\"description\":\"Digital preservation domain expert and full-stack software developer.\",\"sameAs\":[\"http:\\\/\\\/www.exponentialdecay.co.uk\\\/blog\",\"https:\\\/\\\/www.instagram.com\\\/b33tk33p3r\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ross-spencer-b6b9b758\\\/\",\"https:\\\/\\\/x.com\\\/beet_keeper\"],\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/author\\\/exponentialdecay\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"simpledroid: completing the loop - ross spencer :: exponentialdecay.digipres :: 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:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/","og_locale":"en_US","og_type":"article","og_title":"simpledroid: completing the loop - ross spencer :: exponentialdecay.digipres :: blog","og_description":"It&#8217;s nearing the end of 2024 and that must mean a PRONOM hackathon as part of the World Digital Preservation&hellip;","og_url":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/","og_site_name":"ross spencer :: exponentialdecay.digipres :: blog","article_published_time":"2024-11-11T19:28:08+00:00","article_modified_time":"2025-01-17T14:18:37+00:00","og_image":[{"width":2141,"height":2140,"url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/toronto-lovebot-matthew-del-degan-2017-06-18.jpeg","type":"image\/jpeg"}],"author":"Ross Spencer","twitter_card":"summary_large_image","twitter_creator":"@beet_keeper","twitter_site":"@beet_keeper","twitter_misc":{"Written by":"Ross Spencer","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/#article","isPartOf":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/"},"author":{"name":"Ross Spencer","@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"headline":"simpledroid: completing the loop","datePublished":"2024-11-11T19:28:08+00:00","dateModified":"2025-01-17T14:18:37+00:00","mainEntityOfPage":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/"},"wordCount":939,"commentCount":1,"publisher":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"image":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/#primaryimage"},"thumbnailUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/toronto-lovebot-matthew-del-degan-2017-06-18.jpeg","keywords":["digipres","Digital Preservation","DROID","File Formats","PRONOM","Python","siegfried","Skeleton Test Corpus","WDPD","WDPD2024"],"articleSection":["Digital Preservation","Just Code"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/","url":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/","name":"simpledroid: completing the loop - ross spencer :: exponentialdecay.digipres :: blog","isPartOf":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/#primaryimage"},"image":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/#primaryimage"},"thumbnailUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/toronto-lovebot-matthew-del-degan-2017-06-18.jpeg","datePublished":"2024-11-11T19:28:08+00:00","dateModified":"2025-01-17T14:18:37+00:00","breadcrumb":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/#primaryimage","url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/toronto-lovebot-matthew-del-degan-2017-06-18.jpeg","contentUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/11\/toronto-lovebot-matthew-del-degan-2017-06-18.jpeg","width":2141,"height":2140,"caption":"Lovebot by Matthew Del Degan. Taken in Toronto in 2017."},{"@type":"BreadcrumbList","@id":"https:\/\/exponentialdecay.co.uk\/blog\/simpledroid-completing-the-circle\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/exponentialdecay.co.uk\/blog\/"},{"@type":"ListItem","position":2,"name":"simpledroid: completing the loop"}]},{"@type":"WebSite","@id":"https:\/\/exponentialdecay.co.uk\/blog\/#website","url":"https:\/\/exponentialdecay.co.uk\/blog\/","name":"ross spencer :: exponentialdecay.digipres :: blog","description":"Digital preservation analyst, researcher, and software developer","publisher":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/exponentialdecay.co.uk\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716","name":"Ross Spencer","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","contentUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","width":2560,"height":2560,"caption":"Ross Spencer"},"logo":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png"},"description":"Digital preservation domain expert and full-stack software developer.","sameAs":["http:\/\/www.exponentialdecay.co.uk\/blog","https:\/\/www.instagram.com\/b33tk33p3r\/","https:\/\/www.linkedin.com\/in\/ross-spencer-b6b9b758\/","https:\/\/x.com\/beet_keeper"],"url":"https:\/\/exponentialdecay.co.uk\/blog\/author\/exponentialdecay\/"}]}},"views":1236,"_links":{"self":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=1886"}],"version-history":[{"count":12,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1886\/revisions"}],"predecessor-version":[{"id":2137,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1886\/revisions\/2137"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/media\/1885"}],"wp:attachment":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=1886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=1886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=1886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}