<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>nodac | museum-digital: blog</title>
	<atom:link href="https://blog.museum-digital.org/category/development/nodac-en/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.museum-digital.org</link>
	<description>A blog on museum-digital and the broader digitization of museum work.</description>
	<lastBuildDate>Mon, 12 Jan 2026 17:16:14 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://blog.museum-digital.org/wp-content/uploads/2020/01/cropped-mdlogo-code-512px-32x32.png</url>
	<title>nodac | museum-digital: blog</title>
	<link>https://blog.museum-digital.org</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="search" type="application/opensearchdescription+xml" title="Search museum-digital: blog" href="https://blog.museum-digital.org/wp-json/opensearch/1.1/document" />	<item>
		<title>State of Development, December 2025</title>
		<link>https://blog.museum-digital.org/2026/01/12/state-of-development-december-2025/</link>
					<comments>https://blog.museum-digital.org/2026/01/12/state-of-development-december-2025/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Mon, 12 Jan 2026 17:15:11 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[nodac]]></category>
		<category><![CDATA[IIIF]]></category>
		<category><![CDATA[Imports]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object editing (musdb)]]></category>
		<category><![CDATA[Object images]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<category><![CDATA[Single image view]]></category>
		<category><![CDATA[System administration]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4616</guid>

					<description><![CDATA[December 2025 was an interesting month for museum-digital. An update to the PHP version used as well as a flood of requests by what is most likely AI scrapers forced us to make changes for improved stability, reducing and reformulating features rather than adding new ones and working on matters of systems administration over purely <a href="https://blog.museum-digital.org/2026/01/12/state-of-development-december-2025/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>December 2025 was an interesting month for museum-digital. An update to the PHP version used as well as a flood of requests by what is most likely AI scrapers forced us to make changes for improved stability, reducing and reformulating features rather than adding new ones and working on matters of systems administration over purely matters of code quite often. Add to that the long-promised update of the terms of use for German museums to more structured and lawyer-approved ones, and you get yet more small changes that do not directly concern the work of museums with museum-digital but rather improve the necessary context.</p>



<h2 class="wp-block-heading">musdb</h2>



<h3 class="wp-block-heading">Object overview</h3>



<p>In the default tile view of the object overview page, hovering over an object image thus far revealed the object&#8217;s name. As object names are often too long to display fully and inventory numbers are the primary means of identifying an object in most museums, this preview text has now been extended to include the inventory numer.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="570" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-1024x570.webp" alt="Screenshot in the object overview." class="wp-image-4613" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-1024x570.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-300x167.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-1536x855.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-2048x1140.webp 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Hovering over an object image in the tile view now also displays the inventory number.</figcaption></figure>



<h3 class="wp-block-heading">User management</h3>



<h4 class="wp-block-heading">New Options for Managing User Accounts: Disabling Accounts &amp; Setting Account Expiry Dates</h4>



<p>Two new options on user editing pages allow disabling logins on an account and setting an expiry date for the account. Both can be useful for administration: If a new worker joins the museum for a project with a clear-cut limitation on funding and time, one can now set the account expiry at the beginning of the project to the end of it. The accounts will then automatically be deleted when the project ends. Similarly, colleagues that leave service temporarily but for a prolonged time (e.g. for a sabbatical) and will not need to use their accounts for that time can have their accounts disabled.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="398" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-1024x398.webp" alt="Screenshot of the user editing page in musdb." class="wp-image-4611" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-1024x398.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-300x116.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-1536x596.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-2048x795.webp 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Two new options allow disabling user accounts and setting expiry dates for user accounts.</figcaption></figure>



<h4 class="wp-block-heading">List of Terms of Use</h4>



<p>A new tab on a user&#8217;s (own) account settings page provides the option to list all usage agreements / terms of use a user has agreed to in the context of their use of museum-digital / musdb and when they agreed to them.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="576" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list-1024x576.webp" alt="Screenshot of the user editing page." class="wp-image-4612" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list-1024x576.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list-300x169.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list-1536x864.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list.webp 1949w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">A new tab on the user page lists all user agreements for musdb that the user has agreed to and when they did so.
<br></figcaption></figure>



<h3 class="wp-block-heading">Imports</h3>



<h4 class="wp-block-heading">Limiting Report Mail Size</h4>



<p>When a user runs imports themselves using the <a href="https://de.handbook.museum-digital.info/import/importe-selbst-durchfuehren.html">WebDAV upload</a>, the end of the import process &#8211; no matter if it is successful or fails &#8211; is marked by the sending of a report via mail. This report usually contains a list of noteworthy operations that happened during the import, e.g. which objects of which inventory number were imported to which object in musdb, identified by its ID. As imports grow, this list of operation grows. To not encounter issues sending the report, it is henceforth limited to a maximum of 2 MB or 10000 lines.</p>



<h4 class="wp-block-heading">Dry-run Mode</h4>



<p>Sometimes it is useful to try running an import to see if it will actually work but not actually process any data. This option has been available in the importer command line interface for a while, among others powering <a href="https://quality.museum-digital.org/">museum-digital:qa</a>. It is now available in the import configuration for self-run imports as well using the setting <code>dry-run</code>. Enabling the setting accordingly stops the importer from actually writing the data into the database and changes the behavior if values that need to be mapped to values in controlled lists at museum-digital are encountered. Usually an import stops the moment such data is to be imported and not yet mapped. During a dry run, the error is collected and the import proceeds. All unmapped entries are listed together at the end of the import, allowing for a simpler mapping (possibly aided by <a href="https://concordance.museum-digital.org/">concordance.museum-digital.org</a>).</p>



<h3 class="wp-block-heading">Dashboard</h3>



<p>The first page of the dashboard, which for almost all users also means the start page of musdb right after the login process, was significantly reworked during the last month. The almost entirely unused notetaking features and discourse integration were removed in favor of a feed of recent blog posts. See also the section <a href="https://blog.museum-digital.org/2025/12/29/trimming/">&#8220;Communications&#8221;</a> in the respective blog post.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb-1024x576.webp" alt="Screenshot of the dashboard in musdb, as of 2025-12-29." class="wp-image-4594" srcset="https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb-1024x576.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb-300x169.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb-1536x864.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb.webp 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The dashboard in musdb now features a feed of recent news relevant to the development of museum-digital and whatever is going on regionally. The posts are sorted chronologically.</figcaption></figure>



<h3 class="wp-block-heading">Annotations for the Vocabulary Editing Team</h3>



<p>Each event, displayed as a tile on object editing pages, featured speech bubble icons behind each time / actor / place to provide additional comments and hints for the central vocabulary editing team. This positioning of the annotation feature led to confusion over the years, with some users using the feature to comment on the relationship between the entity and the object (for which the event notes should be used). We hence repositioned the links and moved them to the respective entity&#8217;s page (e.g. a place page for giving hints and comments on a place entry). The hinting / commenting feature for times has been altogether removed, as providing comments to clarify the meaning of e.g. a year never made much sense.</p>



<h3 class="wp-block-heading">Smaller Updates and Bugfixes</h3>



<ul class="wp-block-list">
<li>Fixed a bug in the HTML generated for listing other objects linked to an object. Links to the other object were broken and are not anymore.</li>



<li>Image editing pages now embed the image directly instead of using the IIIF API. This reduces resource usage and increases stability at no cost.</li>



<li>Removed option to manually trigger the rewriting of EXIF and IPTC metadata of object images. Rewriting takes place in the background whenever an image or a linked object is updated, making user-triggered updates obsolete.</li>



<li>Re-introduce option to repeat linking to the last used linked object</li>



<li>Updated <a href="https://swagger.io/">Swagger UI</a> to version 5.30.3</li>
</ul>



<h2 class="wp-block-heading">Frontend</h2>



<p>As stated above and lengthily described in the previous blog posts (<a href="https://blog.museum-digital.org/2025/12/09/updates-ai-scrapers-and-resilience/">here</a>, <a href="https://blog.museum-digital.org/2025/12/22/cleaning-out-our-closet/">here</a>, and <a href="https://blog.museum-digital.org/2025/12/29/trimming/">here</a>) we struggled with stability over the last month. This means that most changes in the frontend are aimed at improving stability.</p>



<h3 class="wp-block-heading">Reworked Default Image Page</h3>



<p>Thoroughly described in <a href="https://blog.museum-digital.org/2025/12/09/updates-ai-scrapers-and-resilience/">Updates, AI scrapers, and Resilience</a>, we replaced the default view for single object image pages. While the default view was previously built around the IIIF viewer Mirador, the new default view uses OpenLayers and the unmediated image file for capabilities such as zooming. The new view also brings with it some new features, such as an option to reference specific sections of an image.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="672" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-1024x672.webp" alt="" class="wp-image-4615" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-1024x672.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-1536x1007.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-2048x1343.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The reworked default image page.</figcaption></figure>



<h3 class="wp-block-heading">Serving Resource-Intensive Pages / Functionalities Only When Resources Are Available</h3>



<p>PDF generation, the IIIF Image API, and the suggestions for alternative search queries on failed search pages are now limited to reduce their impact on the overall system stability. This follows two strategies:</p>



<ul class="wp-block-list">
<li>Suggestions on failed search pages and PDF generation will only appear if the overall load on the system is low. The threshold for when or when they are not provided is influenced by the user&#8217;s browser language: If a user uses a browser set to the primary language of a given instance of museum-digital (e.g. German in Hesse, Hungarian in Budapest), the threshold is much higher, meaning users will be able to access the pages at a medium server load. In the case of PDFs, high server load will forward users to the print dialogue for object pages instead of receiving a PDF generated on the server side.</li>



<li>PDF generation and the IIIF Image API are served with a different PHP configuration and set of processes than the rest of the frontend. This configuration significantly reduces available resources for these two functionalities.</li>



<li>The option to generate PDFs featuring all images of an object with between 10 and 40 images has been entirely removed. Given its constraints, the feature was hard to explain and rarely accessible anyway. The primary &#8220;users&#8221; were noticeably AI scrapers.</li>
</ul>



<h3 class="wp-block-heading">Image Search</h3>



<p>The image search feature was refactored and reduced to further separate it from the primary object search. The number of available search options has been reduced to be more easily explainable and reduce possibilities for very resource-intensive queries.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="602" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-1024x602.webp" alt="" class="wp-image-4614" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-1024x602.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-300x176.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-1536x903.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-2048x1204.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The reworked image search settings overlay.</figcaption></figure>



<h3 class="wp-block-heading">Batch Export of Object Metadata / OAI</h3>



<p>Updated the LIDO API to almost entirely match the LIDO as generated during exports from musdb</p>



<h3 class="wp-block-heading">Smaller Updates and Bugfixes</h3>



<ul class="wp-block-list">
<li>Improved performance of object search by tags and places by filtering searched entities to those who are actually linked in the given instance of museum-digital.</li>



<li>Object groups with only one object are henceforth not displayed and linked on object pages anymore</li>



<li>Fixed link in footer: Clicking on &#8220;museum-digital&#8221; should lead to the home / start page of the given instance of musdb.</li>



<li>Updated <a href="https://swagger.io/">Swagger UI</a> to version 5.30.3</li>
</ul>



<h2 class="wp-block-heading">nodac</h2>



<ul class="wp-block-list">
<li>User-provided comments / hints have been removed for times (see above)</li>



<li>Tooltips for linked objects now display which institution an object belongs to
<ul class="wp-block-list">
<li>This is particularly important for vocabulary editors who do not have access to the museums&#8217; data. This way they get a limited preview with the required information for unpublished objects despite their otherwise lacking permissions.</li>
</ul>
</li>
</ul>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img loading="lazy" decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.museum-digital.org/2026/01/12/state-of-development-december-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_News-Img-1.webp</url><width>600</width><height>467</height></post-thumbnail>	</item>
		<item>
		<title>State of Dev, August 2025</title>
		<link>https://blog.museum-digital.org/2025/11/25/state-of-dev-august-2025/</link>
					<comments>https://blog.museum-digital.org/2025/11/25/state-of-dev-august-2025/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Tue, 25 Nov 2025 16:53:37 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[nodac]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Poster]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4545</guid>

					<description><![CDATA[A summary of the recent updates and (technical) development around museum-digital in August 2025.]]></description>
										<content:encoded><![CDATA[
<p>The last months have been busy, off and on museum-digital. This is the first of three posts today on recent technical developments around museum-digital to continue the regular state of dev posts.</p>



<h2 class="wp-block-heading">Development</h2>



<h3 class="wp-block-heading"><a href="https://en.about.museum-digital.org/software/musdb/">musdb</a></h3>



<ul class="wp-block-list">
<li>Added a tool for the AI-aided detection of displayed subjects in images for tagging
<ul class="wp-block-list">
<li>Has to be explicitly turned on on a per-collection basis, as it makes sense only for certain types of objects (like paintings, drawings, photographs)</li>



<li>Usable within the tagging overlay on object editing pages</li>



<li>See also: <a href="https://blog.museum-digital.org/de/2025/08/27/automatische-erkennung-von-abgebildeten-elementen/">blog post about the feature (German)</a></li>
</ul>
</li>



<li>The maximum length of contents in the data field &#8220;edition&#8221; of literature entries has been extended to 50 characters</li>



<li>Uploaded PDFs may now be up to 40 MB large</li>



<li>New command line option to reset all permissions of a user account to the default provided by their user role</li>



<li>New event type: &#8220;Changed&#8221;</li>
</ul>



<h3 class="wp-block-heading"><a href="https://en.about.museum-digital.org/software/nodac/">nodac</a></h3>



<ul class="wp-block-list">
<li>Added AI-generated suggestions for tag definitions and translations of tag names in a sidebar
<ul class="wp-block-list">
<li>This is also re-used to identify duplicate tags</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.museum-digital.org/wp-content/uploads/2025/11/20251125_screenshot-nodac-ai-sidebar.png-1024x576.webp" alt="Screenshot of a tag editing page in nodac, showing the new (August 2025) sidebar with AI-generated aids." class="wp-image-4547" srcset="https://blog.museum-digital.org/wp-content/uploads/2025/11/20251125_screenshot-nodac-ai-sidebar.png-1024x576.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2025/11/20251125_screenshot-nodac-ai-sidebar.png-300x169.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2025/11/20251125_screenshot-nodac-ai-sidebar.png-1536x864.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2025/11/20251125_screenshot-nodac-ai-sidebar.png.webp 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The right sidebar of tag editing pages in nodac now features AI-generated tag descriptions as well as possible translations for the title. These are also used to identify possible duplicates of a tag entry (top right, underlined in purple).</figcaption></figure>



<h2 class="wp-block-heading">Dissemination</h2>



<ul class="wp-block-list">
<li>Poster presented at <a href="https://www.nfdi.de/cordi-2025/">CoRDI 2025</a> (<a href="https://web.archive.org/web/20250612013921/https://www.nfdi.de/cordi-2025/">Archived</a>) on August 27, 2025, in Aachen: <a href="https://www.jrenslin.de/talks/case-for-underhanded-methods-to-improve-research-data-cordi/">&#8220;To Educate or to Enforce &#8211; The Case for Underhanded Methods to Improve Research Data&#8221;</a>
<ul class="wp-block-list">
<li><a href="https://files.museum-digital.org/en/Posters/2025-08-26_To-Educate-or-to-Enforce_CoRDI2025-Aachen_JRE.pdf">PDF</a></li>



<li><a href="https://www.jrenslin.de/abstracts/cordi-2025-caseforunderhandedmethodsimproveresearchdata/">Abstract</a> / <a href="https://zenodo.org/records/16736291">Zenodo</a></li>
</ul>
</li>
</ul>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img loading="lazy" decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.museum-digital.org/2025/11/25/state-of-dev-august-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2025/11/AI-gen-blog-202511-state-of-2025-08.png-scaled.webp</url><width>600</width><height>467</height></post-thumbnail>	</item>
		<item>
		<title>State of Dev, May 2025</title>
		<link>https://blog.museum-digital.org/2025/07/07/state-of-dev-may-2025/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Mon, 07 Jul 2025 15:00:26 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[nodac]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4430</guid>

					<description><![CDATA[An overview about recent developments around museum-digital in May 2025.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><a href="https://de.about.museum-digital.org/software/frontend/">Frontend</a></h2>



<h3 class="wp-block-heading">New Features</h3>



<ul class="wp-block-list">
<li>Tabs are available in the configuration when the site is installed as a Progressive Web App (<a href="https://de.wikipedia.org/wiki/Progressive_Webanwendung">PWA</a>) (<a href="https://developer.chrome.com/docs/capabilities/tabbed-application-mode">See also</a>)</li>
</ul>



<h3 class="wp-block-heading">Improvements</h3>



<ul class="wp-block-list">
<li>Duplicate search query parameters for objects associated with times before / after are removed.<br><em>Example: If one searches for &#8220;Objects after 1900, whose first recorded associated time is also after 2000&#8221;, this is a duplicate query. 2000 is always after 1900, so one of the two parameters can be removed.</em><br><em>Searches by time begin / end are also the foundation for the timeline. As the timeline is both beloved by web crawlers and resource-intensive to generate, this change significantly reduced server load.</em></li>



<li>Any links on timeline pages that do not reference single object pages are marked as <code>rel=nofollow</code><br><em>Which is to say that bots are told to ignore them.</em></li>
</ul>



<h2 class="wp-block-heading"><a href="https://de.about.museum-digital.org/software/musdb/">musdb</a></h2>



<h3 class="wp-block-heading">New Features</h3>



<ul class="wp-block-list">
<li>Tabs are available in the configuration when musdb is installed as a Progressive Web App (<a href="https://de.wikipedia.org/wiki/Progressive_Webanwendung">PWA</a>) (<a href="https://developer.chrome.com/docs/capabilities/tabbed-application-mode">See also</a>)</li>



<li>New search option for objects: &#8220;Can be published&#8221;<br><em>Aggregate search for objects that have not yet been published and which comply with the minimum requirements for publication.</em></li>



<li>Separated measurements can now be batch-edited<br><em>Available via &#8220;assign results&#8221;</em></li>



<li>Institution-wide setting to enforce the use of the user-defined object editing interface for all users of the institution</li>



<li>Exhibitions can now be searched via the API (<em><a href="https://de.handbook.museum-digital.info/musdb/API/index.html#/exhibition/exhibitionList">/exhibition/list</a></em>)</li>



<li>A user&#8217;s <a href="https://en.wikipedia.org/wiki/User_agent">user-agent</a> is checked whenever a page is requested. If it changed, the user will be logged out automatically.<br><em>Protection against <a href="https://owasp.org/www-community/attacks/Session_hijacking_attack">session hijacking</a>.</em></li>
</ul>



<h3 class="wp-block-heading">Improvements</h3>



<ul class="wp-block-list">
<li>Panorama images for tours through exhibitions / institutions are calculated down to 2400 px height rather than 1400 px height</li>



<li>The APIs for searching for entries in controlled vocabularies are now available via the main API<br><em>See e.g. </em><code><a href="https://de.handbook.museum-digital.info/musdb/API/index.html#/actor/actorSearchLinkedToObjects">/actor/search_linked_to_objects/{term}</a></code><em> , </em><code><a href="https://de.handbook.museum-digital.info/musdb/API/index.html#/actor/actorSearch">/actor/search/{term}</a></code><em> etc.</em></li>
</ul>



<h3 class="wp-block-heading">Bugfixes</h3>



<ul class="wp-block-list">
<li>Fix: &#8220;Visiting scientists&#8221; couldn&#8217;t open the &#8220;location&#8221; tab (this erroneously required museum-wide editing permissions)</li>



<li>Fix: User-defined defaults for descriptions of new objects were ignored when new objects were to be added</li>



<li>Fix: Thumbnails were displayed as duplicate images linked to exhibitions (tag &#8220;images&#8221;)</li>



<li>Fix: Prefixing via the batch editing was broken</li>
</ul>



<h2 class="wp-block-heading"><a href="https://blog.museum-digital.org/de/category/technik-design/importer-de/">Importer</a></h2>



<h3 class="wp-block-heading">New Features</h3>



<ul class="wp-block-list">
<li>New parser for CSV exports / imports from <a href="https://www.robotron-daphne.de/">Robotron Daphne</a></li>
</ul>



<h3 class="wp-block-heading">Improvements</h3>



<ul class="wp-block-list">
<li>CSVXML Parser
<ul class="wp-block-list">
<li>New literature-related fields (ISSN, editor, etc.) are now covered</li>



<li>References to wikidata are now respected as tags are imported</li>
</ul>
</li>



<li>The maximum length of any single given tag/keyword is centrally set to 95 characters</li>
</ul>



<h4 class="wp-block-heading">Bugfixes</h4>



<ul class="wp-block-list">
<li>Some more recently added fields from the &#8220;admininstration&#8221; tag of musdb&#8217;s object pages had been read by the importer but their transfer into the database had not been implemented thus far.</li>
</ul>



<h2 class="wp-block-heading"><a href="https://de.about.museum-digital.org/software/nodac/">nodac</a></h2>



<h4 class="wp-block-heading">New Features</h4>



<ul class="wp-block-list">
<li>Tabs are available in the configuration when nodac is installed as a Progressive Web App (<a href="https://de.wikipedia.org/wiki/Progressive_Webanwendung">PWA</a>) (<a href="https://developer.chrome.com/docs/capabilities/tabbed-application-mode">See also</a>)</li>
</ul>



<h2 class="wp-block-heading"><a href="https://csvxml.imports.museum-digital.org/">CSVXML</a></h2>



<h3 class="wp-block-heading">Improvements</h3>



<ul class="wp-block-list">
<li>Added new literature fields: type, editor, edition / issue, ISSN</li>
</ul>
]]></content:encoded>
					
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2025/06/blog-may-2025-sunflowers-scaled.webp</url><width>600</width><height>343</height></post-thumbnail>	</item>
		<item>
		<title>State of Dev, December 2024 &#038; January 2025</title>
		<link>https://blog.museum-digital.org/2025/02/14/state-of-dev-december-2024-january-2025/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Thu, 13 Feb 2025 23:48:42 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[nodac]]></category>
		<category><![CDATA[Batch editing]]></category>
		<category><![CDATA[Change log]]></category>
		<category><![CDATA[Controlled Vocabularies]]></category>
		<category><![CDATA[Imports]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[TEI]]></category>
		<category><![CDATA[Version control]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4306</guid>

					<description><![CDATA[Once again a simple change log of the recent updates to museum-digital's different tools.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">December 2024</h2>



<h3 class="wp-block-heading"><a href="https://de.about.museum-digital.org/software/frontend/">Frontend</a></h3>



<ul class="wp-block-list">
<li>Dates in <a href="https://de.wikipedia.org/wiki/Text_Encoding_Initiative">TEI</a> transcriptions are parsed, irrespective of whether <code>when=""</code> oder <code>when=''</code> was used</li>



<li>Notes for markings are now publicly displayed<br><em>This was missing thus far and is now implemented similar to how event notes are displayed. If a note exists, a small &#8220;[?]&#8221; appears behind the marking title line. Upon hovering over it, a tooltip appears with the relevant information.</em></li>
</ul>



<h3 class="wp-block-heading"><a href="https://de.about.museum-digital.org/software/musdb/">musdb</a></h3>



<ul class="wp-block-list">
<li>Names and descriptions of exhibitions and object groups can now be translated</li>



<li><a href="https://blog.museum-digital.org/2025/01/13/version-control-batch-transfer-between-data-fields-of-object-records/">Version control</a></li>



<li>Log of “current locations&#8221; of an object can be exported as a CSV file</li>



<li>Uploaded object images can now be hidden or published in one batch operation</li>



<li><a href="https://de.handbook.museum-digital.info/musdb/API/index.html">API</a> extended
<ul class="wp-block-list">
<li>(New functions)</li>



<li>Transfer object dimensions</li>



<li>List images and resources for an object</li>



<li>Image metadata</li>



<li>Publish / hide object images</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading">January 2025</h2>



<h3 class="wp-block-heading"><a href="https://de.about.museum-digital.org/software/frontend/">Frontend</a></h3>



<ul class="wp-block-list">
<li><em>Objects can now be sorted by the aesthetics of the thumbnail</em> (A dedicated blog post on this will follow soon)</li>
</ul>



<h2 class="wp-block-heading"><a href="https://de.about.museum-digital.org/software/musdb/">musdb</a></h2>



<ul class="wp-block-list">
<li><a href="https://blog.museum-digital.org/de/2025/01/13/versionierung-transfer-zwischen-datenfeldern/">Batch transfer between between free text fields of object data</a></li>



<li>Alignment of the maximum field length for notes on opening hours is now consistent between UI and database</li>



<li>Bug fixed with switching between institutions during consistency checks fixed (relevant only to users with administrative access to multiple museums)</li>



<li>Literature can now be searched by editors</li>
</ul>



<h3 class="wp-block-heading"><a href="https://blog.museum-digital.org/de/category/technik-design/importer-de/">Importer</a></h3>



<ul class="wp-block-list">
<li>Core
<ul class="wp-block-list">
<li>Automatic transformation of life dates for actors
<ul class="wp-block-list">
<li>Year of death “01.01.2012” now becomes “2012”, instead of 01.01 as before</li>
</ul>
</li>



<li>&#8220;?&#8221; and &#8220;(?)&#8221; are removed from the beginning and end of imported keywords</li>



<li>Various types of brackets in keyword names are converted to regular brackets</li>
</ul>
</li>



<li>Parser
<ul class="wp-block-list">
<li>Stricter internal implementation of settings, all imports can now implement the <code>start_at</code> setting
<ul class="wp-block-list">
<li>This is particularly useful for the repeated execution of imports that abort due to new, previously uncovered elements and other debugging.</li>
</ul>
</li>



<li>New parsers:
<ul class="wp-block-list">
<li><a href="https://de.wikipedia.org/wiki/Metadata_Object_Description_Schema">MODS</a> (mainly used in library contexts)</li>



<li>Parser for Exports from Faust for the <a href="https://st.museum-digital.de/institution/87">Händel-Haus</a></li>



<li>Parser for XML dumps from MuseumPlus Classic (MsSQL > XML export per table > Import)</li>



<li>Bugfixes
<ul class="wp-block-list">
<li>Field “Verwender” in Primus parser was mapped to production events</li>



<li>Material / technology are now imported correctly in the parser for BeeCollect exports for the Industrial Museums of Saxony</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>



<li>„Frontend“
<ul class="wp-block-list">
<li>CLI now also has options for switching off the import of individual areas</li>



<li>Help text for command line tool</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading"><a href="https://de.about.museum-digital.org/software/nodac/">nodac</a></h3>



<ul class="wp-block-list">
<li>Splitting of keywords now also recognizes keywords that should be split into places, times, etc.
<ul class="wp-block-list">
<li>Bsp.: „Helm; Berlin“ > Schlagwort „Helm“ + Ort „Berlin“</li>



<li>Example: “helmet; Berlin” > keyword “helmet” + place “Berlin”</li>
</ul>
</li>



<li>When searching for keywords with ambiguous names, both keywords and generally ambiguous terms are now taken into account</li>



<li>Times can now be merged with others directly from the time edit page</li>
</ul>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img loading="lazy" decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>
]]></content:encoded>
					
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2025/02/typing-2025-01.avif</url><width>600</width><height>336</height></post-thumbnail>	</item>
		<item>
		<title>Importing actors</title>
		<link>https://blog.museum-digital.org/2023/11/22/importing-actors/</link>
					<comments>https://blog.museum-digital.org/2023/11/22/importing-actors/#comments</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Wed, 22 Nov 2023 16:43:03 +0000</pubDate>
				<category><![CDATA[Importer]]></category>
		<category><![CDATA[nodac]]></category>
		<category><![CDATA[Autocorrection]]></category>
		<category><![CDATA[Controlled Vocabularies]]></category>
		<category><![CDATA[Imports]]></category>
		<category><![CDATA[Write-ups]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3922</guid>

					<description><![CDATA[A critical part of museum-digital is the usage of shared controlled vocabularies for actors, places, times, and tags. All museums using museum-digital use these same vocabularies for recording the creation of objects, their use, destruction, etc. Similarly, they are used for a rougher tagging of the objects. Only contacts who are recorded purely for internal <a href="https://blog.museum-digital.org/2023/11/22/importing-actors/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>A critical part of museum-digital is the usage of shared controlled vocabularies for actors, places, times, and tags. All museums using museum-digital use these same vocabularies for recording the creation of objects, their use, destruction, etc. Similarly, they are used for a rougher tagging of the objects. Only contacts who are recorded purely for internal purposes &#8211; like the current owners of objects &#8211; are kept in a separate, museum-specific address book.</p>



<p>On the one hand, using shared controlled vocabularies allows for a centralized editing team. Work that&#8217;s been done for one museum is available for all. This allows for a generally higher data quality, improved search options, etc. The only downside to centralized vocabularies is rules: Without everybody following a basic set of rules for the different vocabularies the vocabularies would surely be overcome by chaos quickly.</p>



<p>The two most basic rules are that 1) all entries need to be clearly identifiable and 2) actor names &#8211; from actual people to companies and governments to peoples &#8211; belong to the controlled vocabularies for actors; place names &#8211; cities, countries, streets &#8211; belong to the vocabulary for places, and so on. In effect, this means that an actor entry &#8220;Gaius Iulius Caesar&#8221; (better yet, &#8220;Gaius Iulius Caesar (-100&#8211;44)&#8221;) is a good one. It is clearly identifiable. An actor name &#8220;Bosch&#8221; should not end up in the controlled vocabularies &#8211; there are many people and companies sharing that name. If one means to actually record the German tool maker, one can specify as much using brackets and / or using the full name, e.g. &#8220;Robert Bosch GmbH&#8221; or &#8220;Bosch (tool making company)&#8221;.</p>



<p>musdb comes with selection lists enabling a simple reuse of existing vocabulary entries. Where a term or a name has not yet been recorded in museum-digital&#8217;s controlled vocabularies, the option to import vocabulary data from Wikipedia / Wikidata and the Gemeinsame Normdatei, and alternatively the need to add a description of at least ten characters enforce some level of identifiable and minimally researched entries.</p>



<p>And then there are imports. During imports, there is no way to force importing users to add additional data. To the contrary, especially during data migrations museums import data from different departments and different decades, leaving one with different spellings for the same person and a very varied quality of the recording overall. Importing thus often means bringing unclean, non-uniform data into the vocabularies. Often enough manual cleanup and enrichment are required to make the data usable &#8211; and to stop the &#8220;unclean&#8221; data from disturbing other users, e.g. by appearing in selection lists and then being falsely linked to another museums entries (a classic example are place entries like &#8220;Frankfurt&#8221;. Both Frankfurt an der Oder and Frankfurt am Main are significant places &#8211; how significant they are depends on where a museum may be located. Leaving the unidentifiable place (name) in the database will easily lead to other museums linking the same entry while actually referring to the <em>other</em> Frankfurt).</p>



<p>Automation can however significantly reduce the work of the colleagues manually editing the vocabularies while also allowing their efforts to have longer-lasting internal benefits to the system. The import tool thus features a number of checks to identify the entries actually referred to. Those checks relevant to the import of references to actors will be introduced over the rest of this blog post.</p>



<h2 class="wp-block-heading">Rough outline</h2>



<p>Actors from (or for) the controlled vocabularies usually enter museum-digital by being linked to objects via events. The same usually happens in the case of imports: The import data states that an object was, e.g., created by a given person. This translates to a new event (what happened to the object? And who did it when and where?) being created. The actor of this event is then set based on the provided name, optionally taking into accounts life dates and links to norm data repositories, in so far as they are made available in the import data.</p>



<h3 class="wp-block-heading">Preparation</h3>



<h4 class="wp-block-heading">Cleaning the name</h4>



<p>To identify the actor name, it is first cleaned and made slightly more uniform on a simple level of spelling.</p>



<ul class="wp-block-list">
<li>Leading and trailing spaces, semi colons, tab stops and newlines are removed</li>



<li>Duplicate white spaces are removed</li>



<li>Brackets of the different types (&#8220;()&#8221;, &#8220;{}&#8221;, &#8220;[]&#8221;) are replaced with simple brackets (&#8220;()&#8221;)</li>



<li>Unwanted components / specifiers of a name are removed (e.g. &#8220;mythological creature&#8221; or empty brackets)</li>



<li>Language-specific name components are replaced with their preferred variants in the vocabularies (German: &#8220;d.Ä.&#8221; is extended to &#8220;(der Ältere)&#8221; [the Elder])</li>



<li>Indicators for uncertainty are stripped from the name, e.g. trailing question marks. They are separately used to identify the certainty of an actor link in a dedicated fields that describes exactly that.</li>
</ul>



<p>Thus, a name stated in the import data as &#8220;; Hans Holbein d.Ä.?&#8221; will be imported as &#8220;Hans Holbein (der Ältere)&#8221;.</p>



<h4 class="wp-block-heading">Parsing life dates from the input name</h4>



<p>If no life dates have been provided explicitly in the import data, they may still be included as part of the actor name. Some museums whose database does not feature dedicated fields for an actor&#8217;s date of birth and death will append the years in brackets. Hence, a check is done to see if there are any brackets at the end of the name &#8211; and if so, whether the bracket contains a parsable time span. In this case, the time span identified will be used for the actor&#8217;s life dates and the brackets&#8217; content will removed from the name (it is not actually a part of the actor&#8217;s name after all).</p>



<p>&#8220;Hans Holbein (der Ältere) (1465-1524)&#8221; with no explicitly provided years of birth and death will thus be transformed to &#8220;Hans Holbein (der Ältere)&#8221;, born 1465 and dead since 1524.</p>



<h3 class="wp-block-heading">Identifying the actor</h3>



<p>After preparing the inputted actor data, it is checked against the database in various ways. The listed checks below take place in a chronological order. If one returns a positive result and works to identify the actor, no following checks are run.</p>



<h4 class="wp-block-heading">Checking based on norm data links</h4>



<p>If links to external norm data repositories (the Library of Congress authority files, the National Diet Library, the French National Library, etc.) are provided in the import data, the actor vocabulary at museum-digital is checked whether it contains an entry featuring the same external ID. If that is the case, this actor is doubtlessly identified.</p>



<h4 class="wp-block-heading">Checking global rewrites</h4>



<p>For many names, there are different spellings. Similarly, many people use different names over the course of their lives. But the person referred to stays the same.</p>



<p>As not all names are significant enough to be listed as synonyms in their own right, museum-digital features a global (though language-specific) list of &#8220;permanent rewrites&#8221;. If a museum exported a reference to a &#8220;Julius Caesar&#8221;, this will be automatically rewritten to &#8220;Gaius Iulius Caesar&#8221;, thus identifying the person of the same name.</p>



<p>This central list is built and extended as the vocabulary editors do their work. Whenever two actor entries are merged in <a href="https://en.about.museum-digital.org/software/nodac/">nodac</a>, editors have the option to mark the name of the actor being merged into the other as to be permanently rewritten.</p>



<h4 class="wp-block-heading">Checking institution-level rewrites</h4>



<p>Whenever a new actor entry is added through musdb or by the way of imports, this is marked down in the database. <em>Which museum</em> used <em>what term</em>, resulting in <em>which entry</em>. <em>Which entry</em> may in the future be updated to refer to another. This is most simply explained using an example from the realm of places &#8211; the above-used example of &#8220;Frankfurt&#8221;:</p>



<p>If a museum newly brings &#8220;Frankfurt&#8221; to the controlled vocabulary for places, an additional entry is made in the database to note that the museum was the first to add an entry named &#8220;Frankfurt&#8221;, and that that finally resulted in the creation of a new place with the ID #99999. The object data itself makes it clear that the museum actually referred to &#8220;Frankfurt am Main&#8221; (ID: #217). If the vocabulary editors thus merge &#8220;Frankfurt&#8221; (#99999) with &#8220;Frankfurt am Main&#8221; (#217), this obviously cannot be a permanent rewrite. But the museum-specific log can be updated: The museum entered &#8220;Frankfurt&#8221;, and it referred to the entry #217 (Frankfurt am Main). If the museum thus enters &#8220;Frankfurt&#8221; without any further specification in the future, the importer and musdb can automatically identify Frankfurt am Main as the place actually referred to. The same logic applies to the import of actor data.</p>



<p>This check is obviously based on the assumption of some level of uniformity between different workers at the same museum. If a museum in Frankfurt an der Oder has almost all of their employees referring to Frankfurt an der Oder as the <em>canonical</em> &#8220;Frankfurt&#8221;, except for one, this will obviously backfire. But it is to be hoped that this case is rare enough &#8211; and that such a very different colleague would recognize their own non-conformity and choose to use the full names for both places to be able to clearly document (and communicate overall) with their colleagues.</p>



<h4 class="wp-block-heading">Checking by name and life dates</h4>



<p>If all the above checks did not work, the actor&#8217;s name and life dates are checked against the controlled vocabulary for actors itself. Does anybody with the same name, who was born and died at the provided years, exist in the actor vocabulary (either going by the language-specific translation of the name or by the &#8220;base entry&#8221; of an any language).</p>



<p>If that is not the case, the actor likely does not exist in the database yet.</p>



<h3 class="wp-block-heading">Identification failed. Should a new entry be created?</h3>



<p>If the actor does not exist in the database yet, they need to be added. Maybe.</p>



<p>Some names are known to be in clear conflict with the rules of the vocabulary for actors.</p>



<h4 class="wp-block-heading">Checking the blacklist</h4>



<p>museum-digital keeps a centralized blacklist for actor names that are known to be in clear conflict to the rules of the actor vocabulary. This list mainly contains either deliberately unspecific actor names (&#8220;unknown&#8221;; &#8220;unidentified&#8221;) or very unspecific ones (&#8220;John&#8221; [a random given name without a family name], &#8220;painter&#8221; [the name of a profession, not even of the actor themselves]).</p>



<p>If the entered actor name is contained in this blacklist, the attempt to link any actor to the event is aborted. The free-text note about the event is instead extended to mark that an actor of the blacklisted name was noted to be related to the event.</p>



<h4 class="wp-block-heading">Checking if the actor is actually a place, time, or tag</h4>



<p>A classic problem is vocabulary entries being entered in an unsuitable vocabulary &#8211; often for simple reasons likely colleagues slipping to a wrong column when working with a table calculation program. And thus one is asked to import an actor &#8220;14th century&#8221;.</p>



<p>The &#8220;14th century&#8221; is obviously a time, not an actor. For this, too, there is a centralized list that can be extended using nodac. Whenever the vocabulary editors move an entry from one vocabulary to another, they have the option to mark the entry&#8217;s name as always being of the target type.</p>



<p>Say the 14th century was previously entered as a tag. A vocabulary editor moved the entry to the vocabulary for times and marked the string &#8220;14th century&#8221; as one always referring to a time. If one then attempts to link a new actor &#8220;14th century&#8221;, the import tool can automatically recognize that this name actually refers to a time and link a time instead of an actor to the event. The attempt to add an actor is thus redirected to a different category.</p>



<h3 class="wp-block-heading">All else failed: The actor is being added</h3>



<p>If all the above checks did neither result in identifying a pre-existing record, nor in identifying the input name as invalid in one way or another, the actor is added to the controlled vocabularies and linked to the event. The entry now needs to be cleaned and enriched manually by the vocabulary editors.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.museum-digital.org/2023/11/22/importing-actors/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
