{"id":19640707,"url":"https://github.com/daniel-km/ead2dcterms","last_synced_at":"2026-03-02T09:02:23.433Z","repository":{"id":148008100,"uuid":"41474263","full_name":"Daniel-KM/Ead2DCterms","owner":"Daniel-KM","description":"A standalone tool that converts XML metadata of a finding aid in Encoded Archival Description (EAD 2002) to a list of records in Dublin Core terms.","archived":false,"fork":false,"pushed_at":"2020-02-13T15:46:35.000Z","size":375,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-26T22:45:24.032Z","etag":null,"topics":["ead","finding-aids","oai-pmh-repository","omeka-s","omeka-s-module"],"latest_commit_sha":null,"homepage":"","language":"XSLT","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Daniel-KM.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-08-27T08:14:59.000Z","updated_at":"2022-05-09T17:06:03.000Z","dependencies_parsed_at":"2023-05-28T05:30:33.959Z","dependency_job_id":null,"html_url":"https://github.com/Daniel-KM/Ead2DCterms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Daniel-KM/Ead2DCterms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daniel-KM%2FEad2DCterms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daniel-KM%2FEad2DCterms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daniel-KM%2FEad2DCterms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daniel-KM%2FEad2DCterms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Daniel-KM","download_url":"https://codeload.github.com/Daniel-KM/Ead2DCterms/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daniel-KM%2FEad2DCterms/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29996272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ead","finding-aids","oai-pmh-repository","omeka-s","omeka-s-module"],"created_at":"2024-11-11T14:06:30.576Z","updated_at":"2026-03-02T09:02:23.415Z","avatar_url":"https://github.com/Daniel-KM.png","language":"XSLT","funding_links":[],"categories":[],"sub_categories":[],"readme":"EAD to Dublin Core Metadata Terms\n=================================\n\n[ead2dcterms] is a standalone tool to convert XML metadata of a finding aid in\n[EAD] to a list of records in [Dublin Core] terms.\n\n[EAD] is an xml format designed to describe collections of archives in a\nstructural way: the collection, the boxes, the folders, the pieces, the papers,\nthe pages, etc., so the user can find easily what he/she wants. It can be filled\nonly by a specialist with a special application. The format contains not only\nmetadata, but semantic and textual content, so it can be printed or displayed in\na browser directly with a simple stylesheet.\n\n[Dublin Core] and its revision \"DCMI Metadata Terms\" is a format designed to\ndescribe any document, any object, and anything else. This is a simple and flat\nformat, so anybody can use and read it. It manages metadata firstly, not textual\ncontent.\n\nIf an [official mapping] was established for EAD 1.0 and Dublin Core, none has\nbeen approved for EAD 2002 and Dublin Core Metadata Terms. So, this app is not\nonly a tool to convert metadata, but a mapping table too.\n\nThis tool is integrated in [Omeka Classic] and [Omeka S], an open source\nplatform for publishing collections online, via the plugins [Ead] and\n[Archive Folder] and the [module EAD].\n\n\nXslt mapper\n-----------\n\nThe conversion uses a simple [XSLT] stylesheet either in version 1 or version 2\n(recommended, because it's simpler and about ten to twenty faster). XSLT is the\nfunctional language designed to process XML files, and is managed by the [W3C].\n\nThe mapper is built around a dynamic xpath evaluator, so the conversion process\nis  completely separated from the mapping itself. By this way, the mapping is a\nsimple xml file that anybody can modify quickly and easily, without change in\nthe engine.\n\nThe engine has been checked against the two official examples of the EAD model\nand some other ones, but because interpretations of the format may differ\nbetween people, in particular between archivists and librarians, it should be\nadapted if the configuration is not enough.\n\nImportant: The xslt 1 version works only with some extensions, not with a parser\nthat follows strictly the standard. The extension should add the possibility to\ninterpret a tree fragment as a node set.\n\n\nMapping table\n-------------\n\nThe mapping is done between the EAD 2002 and the full list of Dublin Core\n(formerly \"qualified\", \"extended\" or \"refined\"). It can be downgraded to the 15\nbasic terms with the provided stylesheet. For EAD metadata formatted with a\nprevious standard, an upgrade to EAD 2002 should be done before with the\nofficial stylesheets.\n\nGlobally, an EAD finding aid is converted into multiple Dublin Core records:\n- one, two (default) or three records for main informations of the finding aid\n  (header, front matter and archival description);\n- possible records for the main description of Subordinate Components), mainly\n  to simplify grouping;\n- records for each component (level) and item;\n- related records for each digital archival object (dao, daoloc, pointers...).\n\nRecords are linked to other ones with the terms that define a relation.\n\nGenerally, textual contents are mapped with the term \"description\" and other\ndata are mapped with the matching Dublin Core term.\n\nThe output format is a simple and flat xml file that can be used by any other\nprocess.\n\nThe mapping takes some ideas from other open source converters built by:\n\n- Scholars' Lab at the University of Virginia Library, for the [Ead Importer],\n  designed to import finding aids in [Omeka], an open source digital library;\n- [Anaphore], for another tool used by the open source digital library [Pleade].\n\nThese tools work fine. The main issues of them are that they are designed for\nthe integration with another tool, the lack of documentation about the mapping,\nthe partial coverage and the non-reversibility of the elements, and the mixture\nof the code and the mapping, making them heavy to maintain and hard to adapt to\nmultiple interpretations of the EAD format.\n\n\nConfiguration\n-------------\n\nBecause the two formats are very different (document vs data oriented), because\nthere is no more official mapping between them, and because there are lot of\ninterpretation of the EAD format, two xml files are used to parameter the\nconversion and to adapt it to needs.\n\nThe main one is [ead2dcterms_mappings.xml]. It describes each couple of\nmetadata, for example that the EAD element \"unittitle\" is mapped to the\nDublin Core  term \"title\". Multiple mappings are prepared for some elements,\nmostly identifiers and relations, because there are a lot of possibilities.\n\nThe second one, [ead2dcterms_config.xml], describes how the mappings are mixed\ntogether to build each record.\n\nThis couple of xml files allows to manage any interpretation or use of EAD by a\nsimple change. Anyway, any conversion should be checked.\n\nSee them for further details and current limits. They can be displayed as xml\nwith any text editor, or as a table via a browser (simply download the tool and\nopen the same files with your prefered browser).\n\nAny xslt parser can be used. If you haven't one, you can use the open source\n[jEdit] with the plugins \"Xslt\", \"Saxon\", \"Xml\" and \"XQuery\". It is available on\nany operating system (Linux, Mac or Windows). When installed, select \"Plugins\" \u003e\n\"plugins options\" \u003e \"Xslt\" and set \"Saxon 9\" as xslt processor and xpath engine.\nTo process an xml file, select \"Plugins\" \u003e \"Xslt\" \u003e \"Activate 3-Way Mode\", then\nselect the xml file as source, the file \"ead2dcterms.xsl\" as stylesheet, and a\nnew untitled buffer as result. Finally, click the button \"Transform Xml\".\n\n\nNotes\n-----\n\n* Use of official examples\n\nOfficial examples of EAD 2002 are provided for tests, but they may not be xml\ncompliant with current parsers. So they are provided without the doctype and the\nentities and with the namespace too.\n\n* Integration in Omeka\n\nIn [Omeka], the items are the base records and an item can contain multiple\nfiles. In EAD, the file is a true object and the base record, and can contain\nmultiple items. The plugin [Ead4Omeka] takes care of this point.\n\n* XSLT 1 version\n\nThe xslt 1 version works only with some extensions, not with a parser that\nfollows strictly the standard. The parser should be able to interpret a tree\nfragment as a node set.\n\n\nWarning\n-------\n\nUse it at your own risk.\n\nIt’s always recommended to backup your files and your databases and to check\nyour archives regularly so you can roll back if needed.\n\n\nTroubleshooting\n---------------\n\nSee online issues on the [page of issues] on GitHub.\n\n\nLicense\n-------\n\nThis module is published under the [CeCILL v2.1] licence, compatible with\n[GNU/GPL] and approved by [FSF] and [OSI].\n\nThis software is governed by the CeCILL license under French law and abiding by\nthe rules of distribution of free software. You can use, modify and/ or\nredistribute the software under the terms of the CeCILL license as circulated by\nCEA, CNRS and INRIA at the following URL \"http://www.cecill.info\".\n\nAs a counterpart to the access to the source code and rights to copy, modify and\nredistribute granted by the license, users are provided only with a limited\nwarranty and the software’s author, the holder of the economic rights, and the\nsuccessive licensors have only limited liability.\n\nIn this respect, the user’s attention is drawn to the risks associated with\nloading, using, modifying and/or developing or reproducing the software by the\nuser in light of its specific status of free software, that may mean that it is\ncomplicated to manipulate, and that also therefore means that it is reserved for\ndevelopers and experienced professionals having in-depth computer knowledge.\nUsers are therefore encouraged to load and test the software’s suitability as\nregards their requirements in conditions enabling the security of their systems\nand/or data to be ensured and, more generally, to use and operate it in the same\nconditions as regards security.\n\nThe fact that you are presently reading this means that you have had knowledge\nof the CeCILL license and that you accept its terms.\n\n\nCopyright\n---------\n\n* Copyright Daniel Berthereau, 2015-2020 (see [Daniel-KM] on GitHub)\n\n\n[Ead2DCterms]: https://github.com/Daniel-KM/Ead2DCterms\n[EAD]: https://loc.gov/ead\n[Dublin Core]: http://dublincore.org\n[Omeka Classic]: https://omeka.org/classic\n[Omeka S]: https://omeka.org/s\n[Ead]: https://github.com/Daniel-KM/Omeka-plugin-Ead\n[Archive Folder]: https://github.com/Daniel-KM/Omeka-plugin-ArchiveFolder\n[module EAD]: https://github.com/Daniel-KM/Omeka-S-module-Ead\n[XSLT]: https://www.w3.org/standards/xml/transformation\n[W3C]: https://www.w3.org/\n[official mapping]: http://www.loc.gov/ead/ag/agappb.html#sec3\n[Anaphore]: https://github.com/Anaphore/joai_xsl\n[Pleade]: http://www.pleade.com\n[Ead Importer]: https://github.com/scholarslab/EadImporter\n[ead2dcterms_config.xml]: https://github.com/Daniel-KM/Ead2DCterms_config.xml\n[ead2dcterms_mappings.xml]: https://github.com/Daniel-KM/Ead2DCterms_mappings.xml\n[jEdit]: http://www.jedit.org\n[page of issues]: https://github.com/Daniel-KM/Ead2DCterms/issues\n[CeCILL v2.1]: https://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html\n[GNU/GPL]: https://www.gnu.org/licenses/gpl-3.0.html\n[FSF]: https://www.fsf.org\n[OSI]: http://opensource.org\n[Daniel-KM]: https://github.com/Daniel-KM \"Daniel Berthereau\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniel-km%2Fead2dcterms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaniel-km%2Fead2dcterms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniel-km%2Fead2dcterms/lists"}