<?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>Importer | museum-digital: blog</title>
	<atom:link href="https://blog.museum-digital.org/category/development/importer-en-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>Importer | 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 Development, November 2025</title>
		<link>https://blog.museum-digital.org/2025/12/03/state-of-development-november-2025/</link>
					<comments>https://blog.museum-digital.org/2025/12/03/state-of-development-november-2025/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Wed, 03 Dec 2025 01:53:58 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[OAI-PMH]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4575</guid>

					<description><![CDATA[Frontend musdb Importer Core Parser]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><a href="https://en.about.museum-digital.org/software/frontend/">Frontend</a></h2>



<ul class="wp-block-list">
<li>On source / reference pages, linked objects are now sorted by the position within the source work on which they are referenced or which they do themselves reference</li>



<li>The target URL of the regular / unspecified search bar for objects now follows the new, prettier URL schema</li>



<li>Support for an <a href="https://www.openarchives.org/pmh/">OAI-PMH</a> API for object metadata
<ul class="wp-block-list">
<li>Standardized endpoint for aggregators seeking to retrieve data in batch</li>



<li>Metadata formats thus far supported:
<ul class="wp-block-list">
<li>LIDO</li>



<li>OAI-DC (mandatory)</li>
</ul>
</li>



<li>See also: <a href="https://blog.museum-digital.org/2025/11/24/making-interoperability-easy/">Blog</a></li>
</ul>
</li>



<li>PDFs are only generated for users with a browser set to a non-default language if load on the server is low
<ul class="wp-block-list">
<li>The resource use caused by AI bots scraping museum-digital has been growing and growing. Generally, we see bots included in our mission to enable access to cultural heritage. On the other hand, nobody is served if the service is bogged down by bots. One functionality that is commonly used among bots and resource intensive is the generation of PDFs for object pages. The same information can be loaded from the object page itself and printed to a PDF using the browser&#8217;s print option. There are thus rather few downsides to limiting access to PDF generation to timmes, when server load is low. So that&#8217;s what we did.</li>
</ul>
</li>



<li>Collection-specific ISIL identifiers are now also used in the LIDO API</li>



<li>Alternative numbers of an object can now be displayed on object pages
<ul class="wp-block-list">
<li>This includes tooltips for types of alternative numbers, that can be set by the museum on the institution-wide settings pages of musdb</li>
</ul>
</li>
</ul>



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



<ul class="wp-block-list">
<li>Search for objects
<ul class="wp-block-list">
<li>Type-ahead search for languages (of the object&#8217;s content)</li>



<li>Search by object&#8217;s revision status (open, read-ony, archived, etc.)</li>
</ul>
</li>



<li>Batch editing of objects&#8217; revision status</li>



<li>Parameters of the full text search index were updated to improve the search of word compounds in German</li>
</ul>



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



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



<ul class="wp-block-list">
<li>The dry-run mode now does not abort an import anymore, if an unmapped value is encountered. Unmapped entries are collected and displayed together afterwards.
<ul class="wp-block-list">
<li>This means, that unmapped entries can now much more easily be copied to and mapped in <a href="https://concordance.museum-digital.org/">concordance.museum-digital.org</a></li>
</ul>
</li>



<li>Support for the import of alternative numbers (of objects)</li>



<li>Support for the import of space hierarchies</li>
</ul>



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



<ul class="wp-block-list">
<li><code>AdlibXml</code>
<ul class="wp-block-list">
<li>Support for importing objects&#8217; alternative numbers</li>
</ul>
</li>



<li><code>CsvXml</code>
<ul class="wp-block-list">
<li>Support for importing objects&#8217; alternative numbers</li>
</ul>
</li>



<li><code>CsvLocations</code>
<ul class="wp-block-list">
<li>New parser for csv-based imports of space hierarchies</li>
</ul>
</li>



<li><code>ImageByInvno</code>
<ul class="wp-block-list">
<li>New setting: append_chars (Adds suffixes, that exist in the inventory number, but not in file names)</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/12/03/state-of-development-november-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2025/12/winter.webp</url><width>600</width><height>467</height></post-thumbnail>	</item>
		<item>
		<title>State of Dev, September 2025</title>
		<link>https://blog.museum-digital.org/2025/11/25/state-of-dev-september-2025/</link>
					<comments>https://blog.museum-digital.org/2025/11/25/state-of-dev-september-2025/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Tue, 25 Nov 2025 16:54:06 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Controlled Vocabularies]]></category>
		<category><![CDATA[New Features]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4554</guid>

					<description><![CDATA[Recent (technical) development around museum-digital in September 2025.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Development</h2>



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



<ul class="wp-block-list">
<li>Objects that are linked to a source as referencing the source or being referenced in it are now listed on the source&#8217;s page
<ul class="wp-block-list">
<li>Example: <a href="https://hessen.museum-digital.de/source/1950">&#8220;Novalis Schriften. Die Werke Friedrich von Hardenbergs. Historisch-kritische Ausgabe. Erster Band: Das dichterische Werk. 3. Auflage&#8221;</a></li>
</ul>
</li>



<li>The object page now displays the new transcription fields for notes, status, and type of the transcription</li>



<li>New types of classifications for the link between an object and a tag
<ul class="wp-block-list">
<li>Taxon</li>



<li>Topic</li>



<li>Mentioned subject (similar to the existing &#8220;display subject&#8221;)</li>
</ul>
</li>



<li>Dependencies
<ul class="wp-block-list">
<li>Updated OpenLayers to Version 10.6</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_referenced-sources_en.png-1024x576.webp" alt="Screenshot: Objects referenced in source on source pages" class="wp-image-4548" srcset="https://blog.museum-digital.org/wp-content/uploads/2025/11/20251125_referenced-sources_en.png-1024x576.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2025/11/20251125_referenced-sources_en.png-300x169.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2025/11/20251125_referenced-sources_en.png-1536x864.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2025/11/20251125_referenced-sources_en.png.webp 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Source pages in the public frontend / portals of museum-digital now display all objects linked to the source as either referencing the source or being referenced by their source.</figcaption></figure>



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



<ul class="wp-block-list">
<li>Renaming vocabulary entries to blacklisted terms is now impossible
<ul class="wp-block-list">
<li>Someone managed to create an actor &#8220;unknown&#8221; by adding a different actor and renaming the new actor entry to &#8220;unknown&#8221; afterwards.</li>
</ul>
</li>



<li>Added a sidebar to object group overview pages for additional filtering options</li>



<li>New types of classifications for the link between an object and a tag
<ul class="wp-block-list">
<li>Taxon</li>



<li>Topic</li>



<li>Mentioned subject (similar to the existing &#8220;display subject&#8221;)</li>
</ul>
</li>



<li>New APIs for listing all vocabulary entries linked to the objects of a museum</li>



<li>Dependencies
<ul class="wp-block-list">
<li>Updated OpenLayers to Version 10.6</li>
</ul>
</li>
</ul>



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



<ul class="wp-block-list">
<li>Core
<ul class="wp-block-list">
<li>Deaccessions are now covered by the import tool</li>



<li>Recipients of deaccessions are linked to the address book / contact list</li>
</ul>
</li>



<li>Parser
<ul class="wp-block-list">
<li>CSVXML: The CSVXML parser now covers deaccessions as well</li>



<li>ImageByInvno: Added an option to ignore any characters before a given starting combination of characters (if there is a consistent start of the inventory number).</li>
</ul>
</li>
</ul>



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



<ul class="wp-block-list">
<li>New fields
<ul class="wp-block-list">
<li>tag_related_identifier_type</li>



<li>tag_related_identifier</li>
</ul>
</li>
</ul>



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



<ul class="wp-block-list">
<li><a href="https://www.jrenslin.de/talks/von-museum-digital-zum-eigenen-online-katalog-ag-digitalisierung-mv-rlp/">Presentation</a> &#8220;Von museum-digital zum eigenen Online-Katalog&#8221; for the Working Group Digitization of the State Museum Association of Rhineland-Palatine
<ul class="wp-block-list">
<li><a href="https://files.museum-digital.org/de/Praesentationen/2025-09-10_Von-museum-digital-zum-eigenen-Online-Katalog_JRE.pdf">Slides: PDF</a></li>



<li><a href="https://files.museum-digital.org/de/Praesentationen/2025-09-10_Von-museum-digital-zum-eigenen-Online-Katalog_JRE.odp">Slides: ODP</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-september-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-09.png-scaled.webp</url><width>600</width><height>467</height></post-thumbnail>	</item>
		<item>
		<title>State of Dev, June &#038; July 2025</title>
		<link>https://blog.museum-digital.org/2025/08/23/state-of-dev-june-july-2025/</link>
					<comments>https://blog.museum-digital.org/2025/08/23/state-of-dev-june-july-2025/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Sat, 23 Aug 2025 21:12:41 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Minor Improvements]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4519</guid>

					<description><![CDATA[June and especially July were at first glance once again rather slow months in terms of development at museum-digital. Generally, the pace and type of development seems to have changed this year. Rather than doing many small improvements all over the place, there is less but larger and more labor intensive changes and new features. <a href="https://blog.museum-digital.org/2025/08/23/state-of-dev-june-july-2025/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>June and especially July were at first glance once again rather slow months in terms of development at museum-digital.</p>



<p>Generally, the pace and type of development seems to have changed this year. Rather than doing many small improvements all over the place, there is less but larger and more labor intensive changes and new features. See for example the <a href="https://blog.museum-digital.org/2025/01/13/version-control-batch-transfer-between-data-fields-of-object-records/">versioning</a> in musdb (January), the tool for <a href="https://blog.museum-digital.org/de/2025/03/08/das-importieren-automatisieren/">automating imports</a> based on what others call a &#8220;hot folder&#8221; and the sort option to <a href="https://blog.museum-digital.org/2025/03/06/sort-by-beauty/">sort objects by their images&#8217; aesthetics score</a> (both presented here in March), and the new tool for suggesting formulations for object descriptions using large language models (June).</p>



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



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



<ul class="wp-block-list">
<li>Translation of the software to <a href="https://blog.museum-digital.org/2025/07/13/hindi/">Hindi</a> and <a href="https://blog.museum-digital.org/2025/07/02/browse-museum-digital-in-telugu/">Telugu</a></li>



<li>Grouping of tags by their relation to a given object<br><em>If an object is linked to more than 10 tags, the tag list of object pages quickly starts looking unorganized and messy. In such cases, the tags will now be displayed grouped by their relationship to the object (thus far: general tag, material, technique, object type, display subject)</em></li>
</ul>



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



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



<ul class="wp-block-list">
<li>Export option for the specific LIDO as expected by the <a href="http://Koloniale Kontexte-Portal der Deutschen Digitalen Bibliothek">German Digital Library&#8217;s &#8220;colonial contexts&#8221; portal</a></li>
</ul>



<h4 class="wp-block-heading">Improvements &amp; Changes</h4>



<ul class="wp-block-list">
<li>The minimum length of fulltext search terms for object search parameters is now visibly enforced in the extended search user interface<br><em>To not overly burden the fulltext search server, any term in a full text search in musdb needs to be a minimum of two characters long. Thus far, shorter full text search parameters were simply ignored. This certainly was confusing at times. Since June, attempting to perform search queries with shorter search parameters is made impossible by a check in the extended search overlay.</em></li>



<li>Reception history of objects: Statements of the relevant position within a source can now be 40 characters long</li>



<li>Transcriptions
<ul class="wp-block-list">
<li>May now be up to 4000000 long</li>



<li>New fields: Notes on the transcription, status, aims</li>
</ul>
</li>
</ul>



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



<ul class="wp-block-list">
<li>Fixed a bug in the batch editing of specific visibility flags for data fields on the addendum tab</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Performance improvements
<ul class="wp-block-list">
<li>Object search now runs without a connection to the full text search server if no full text search parameter is set</li>



<li>If multiple search parameters for an earliest / latest time have been set, they are parsed and combined before being forwarded to the database</li>
</ul>
</li>



<li>Improvements in the deletion of temporarily created PDF files (PDF export)</li>



<li>Navigation has been translated to <a href="https://blog.museum-digital.org/de/2025/06/23/tamil/">Tamil</a></li>
</ul>



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



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



<ul class="wp-block-list">
<li>Recipient of deaccessed objects can now be linked from within the address book</li>



<li><a href="https://blog.museum-digital.org/de/2025/06/19/ki-objektbeschreibungen/">New tool for AI-aided formulation o object descriptions (based on existing other metadata)</a></li>
</ul>



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



<ul class="wp-block-list">
<li>Object search now runs without a connection to the full text search server if no full text search parameter is set</li>
</ul>



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



<ul class="wp-block-list">
<li>The CSVXML parser has been extended to cover new event types and markings</li>



<li>Object groups automatically generated to group all objects of an import can now receive a description as set within the import configuration</li>
</ul>



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



<p>The list of selectable languages for the navigation of nodac has now been restricted to those in which there is actually a complete translation</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.museum-digital.org/2025/08/23/state-of-dev-june-july-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2025/08/md-blog-palms.webp</url><width>600</width><height>411</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, March &#038; April 2025</title>
		<link>https://blog.museum-digital.org/2025/06/08/state-of-dev-march-april-2025/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Sun, 08 Jun 2025 17:04:00 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Institution-specific settings]]></category>
		<category><![CDATA[LIDO]]></category>
		<category><![CDATA[Multilinguality]]></category>
		<category><![CDATA[New Features]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4515</guid>

					<description><![CDATA[Frontend musdb Importer]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><a href="https://en.about.museum-digital.org/software/frontend/">Frontend</a></h2>



<ul class="wp-block-list">
<li>A <a href="https://blog.museum-digital.org/2025/03/25/kannada/">Kannada</a> translation of the software is now available</li>



<li>Museums can now select to display their own citation notes in the menu for such on object pages<br>This is especially relevant in case the object <em>itself is to be cited (rather than its record online). </em></li>



<li>&#8220;Or&#8221; search queries can be combined within one search parameter for select attribute search types, e.g. places and tags. The Syntax is as follows: <code>place:61~1</code>
<ul class="wp-block-list">
<li>For now, this can only be used using the internal query language. As such, there is no corresponding option in the UI for search settings. On the other hand, the search option is thus available using the API.</li>



<li>This option is not available when searching for times or full events</li>
</ul>
</li>
</ul>



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



<ul class="wp-block-list">
<li>Institution-wide settings 
<ul class="wp-block-list">
<li>Free text fields that double with similar controlled fields may now be hidden 
<ul class="wp-block-list">
<li>The acquisition of an object may e.g. be directly recorded on the context of a given object or as a separate acquisition process. Recording it as an acquisition process is slightly more labor-intensive, but allows a more fine-grained and accurate documentation. With the new setting, the data fields for recording acquisitions directly in the object context can be hidden from all users of a museum to ensure a uniform use of the preferred functionality.</li>



<li>Institution-specific notes on how to cite objects may now be recorded for display on published object pages.</li>
</ul>
</li>
</ul>
</li>



<li><a href="https://blog.museum-digital.org/2025/03/29/bringing-back-character-driven-search-for-inventory-numbers-in-musdb/">Search queries for inventory numbers are now character-level searches again (rather than following a fulltext search logic)</a></li>



<li>Some event types are incomplete, i.e. they cannot contain a place, or an actor, or a time. This incompleteness was handled differently between musdb, the import tool, and the CSVXML import preparation tool. Now, it is determined by a centralized list and thus similar across all of museum-digital.  </li>



<li>Refactoring of the administrative command line interface <br><em>This mainly concerns auto-correction tools, but also results in that exports for the quick export option are now automatically generated daily.</em><br></li>



<li>Separated measurements are now positioned at the very top of the &#8220;addendum&#8221; tab of object editing pages.</li>



<li>It is now possible to record web links for object groups</li>
</ul>



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



<ul class="wp-block-list">
<li>The import tool can now be used as a harvester
<ul class="wp-block-list">
<li>First use case is a harvester for LIDO records delivered via an OAI-PMH interface.</li>
</ul>
</li>



<li>Externally stored images in formats other than JPG can now be imported </li>



<li>Significantly extended the LIDO parser to (among others) support the import of multilingual object data</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/06/blog-march-2025.webp</url><width>600</width><height>343</height></post-thumbnail>	</item>
		<item>
		<title>State of Dev, February 2025</title>
		<link>https://blog.museum-digital.org/2025/03/25/state-of-dev-february-2025/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Tue, 25 Mar 2025 16:07:17 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Bugfix]]></category>
		<category><![CDATA[Imports]]></category>
		<category><![CDATA[New Features]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4362</guid>

					<description><![CDATA[In terms of development happening around museum-digital, February 2025 was a rather calm month. While more happened in the "machine room", immediately visible changes are mostly restricted to bugfixes. And a whole new tool.]]></description>
										<content:encoded><![CDATA[
<p>In terms of development happening around museum-digital, February 2025 was a rather calm month. While more happened in the &#8220;machine room&#8221;, immediately visible changes are mostly restricted to bugfixes. And a whole new tool.</p>



<p>Here, as so often, in a list format:</p>



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



<ul class="wp-block-list">
<li><strong>Bugfix</strong>: The detailed description was not reflected in the object API even if set to be so via musdb</li>



<li><strong>Translation</strong>: The frontend is now available in <a href="https://blog.museum-digital.org/2025/03/25/kannada/">Kannada</a></li>
</ul>



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



<ul class="wp-block-list">
<li><strong>Bugfix:</strong> Fixed error in setting up new two factor authentication via TOTP (app-based 2fa)</li>



<li><strong>Bugfix:</strong> Symbols for image rotation switched (counter-clockwise symbol rotated clockwise and vice-versa)</li>



<li><strong>Feature</strong>: If the generation of a PDF catalogue is triggered via the sidebar of series editing pages, the objects will follow their order within the object group</li>
</ul>



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



<ul class="wp-block-list">
<li>If no explicit name/title for a resource (audio, video, PDF, 3D, externally hosted image) was supplied, there was no fallback. Now, the importer follows the same logic as musdb and will fall back to using the linked object&#8217;s object name as a resource title if none is supplied.</li>



<li>The <a href="https://csvxml.imports.museum-digital.org/">CSVXML</a> parser can now handle multiple objects per XML file.</li>
</ul>



<h2 class="wp-block-heading">Auto uploader</h2>



<p>The auto uploader is an entirely new tool. When first started, users will be asked to enter the necessary data for running imports. And they are asked for the path to a folder which will subsequently be monitored for automatic uploads.</p>



<p>Whenever the tool then detects suitable contents for an import in the folder, the data will be uploaded and automatically imported. Intermediate steps like the generation of a settings file for the import are covered by the tool.</p>



<p>The tool can thus be useful for museums that regularly import data formed in a consistent format &#8211; say, museums using museum-digital for publishing while mainting a separate collection management system. It should be uninteresting to those who spend much effort on preparing imports (e.g. via <a href="https://csvxml.imports.museum-digital.org/">CSVXML</a>) or who want to migrate to musdb altogether, as it only becomes useful in the case of regular use.</p>



<p>The code is available <a href="https://gitea.armuli.eu/museum-digital/museum-digital-webdav-uploader">here</a>, licensed under GPL v3.<br>See also the <a href="https://blog.museum-digital.org/de/2025/03/08/das-importieren-automatisieren/">more detailed German-language blog post about the auto uploader</a>.</p>



<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/03/flower-in-water-AI-gen.webp</url><width>600</width><height>375</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>A Concordance Checker for Preparing Imports to museum-digital</title>
		<link>https://blog.museum-digital.org/2025/01/23/a-concordance-checker-for-preparing-imports-to-museum-digital/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Thu, 23 Jan 2025 15:00:40 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Imports]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[New tools]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4274</guid>

					<description><![CDATA[When one runs an import to museum-digital &#8211; specifically one focused on internal collection management data &#8211; there is a chance to encounter errors of unmatched entries. The import tool identified that one tried to import a yet unknown value to what is a controlled field in musdb. Common issues appear especially with actor roles <a href="https://blog.museum-digital.org/2025/01/23/a-concordance-checker-for-preparing-imports-to-museum-digital/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>When one runs an import to museum-digital &#8211; specifically one focused on internal collection management data &#8211; there is a chance to encounter errors of unmatched entries. The import tool identified that one tried to import a yet unknown value to what is a controlled field in musdb. Common issues appear especially with actor roles and entry types.</p>



<p>Say, a museum&#8217;s previous database used actor roles over an event structure to express who created an object. As such, the museum entered that the object has a linked actor X that is linked to the object as a &#8220;main creator&#8221; and a linked time Y marked as the &#8220;creation time&#8221;. During the import, these roles (&#8220;main creator&#8221; and &#8220;creation time&#8221;) are then translated to museuem-digital&#8217;s event types to form an event: The object was created by actor X at the time Y. This works, because the terms &#8220;main creator&#8221; and &#8220;creation time&#8221; have been matched to the creation event type.</p>



<p>If a term is not yet matched to a corresponding value of a controlled list in museum-digital, the importer will simply abort the import. On the one hand this is a way to uselessly require resources for an import that cannot be completed anyway. On the other, it is tedious. One recognizes yet unmatched entries only one by one.</p>



<h2 class="wp-block-heading">A Small New Tool</h2>



<p>A small new tool, available at <a href="https://concordance.museum-digital.org/">concordance.museum-digital.org</a>, makes the process a bit less tedious. Users can upload all the import data from a given field (e.g. the actor roles) &#8211; one a line &#8211; and check whether they are already matched using the concordance lists or not.</p>



<p>For entries that are not yet matched, the tool will offer selection boxes to perform the matching using the graphical user interface. Once all entries have been matched, one can then generate the relevant lines of code to enter the missing entries to the concordance list upon the click of a button.</p>



<p>While simply checking and extending the relevant <a href="https://gitea.armuli.eu/museum-digital/MDImporterConcordanceLists">open source lists</a> should be trivial even to most non-technical users, this way is certainly more convenient. Importantly, it also removes the need to run the import multiple times until one does not encounter errors caused by unmatched entries anymore. And, well, it certainly is also more convenient to match to regular human language values than to the internal IDs of the target values.</p>



<p>The concordance checker&#8217;s MIT-licensed code can be found <a href="https://gitea.armuli.eu/museum-digital/concordance-checker">here</a>.</p>



<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/01/20250123_Concordance_checker_en.avif</url><width>600</width><height>385</height></post-thumbnail>	</item>
		<item>
		<title>State of Development, November 2024: &#8220;Real&#8221; separated Measurements and a Better Recognition of Tags, Places, etc.</title>
		<link>https://blog.museum-digital.org/2025/01/13/state-of-development-november-2024-real-separated-measurements-and-a-better-recognition-of-tags-places-etc/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Mon, 13 Jan 2025 13:41:45 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Change log]]></category>
		<category><![CDATA[New Features]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4255</guid>

					<description><![CDATA[A short overview in list form of the recent technical updates around museum-digital, as of November 2024.]]></description>
										<content:encoded><![CDATA[
<p>musdb</p>



<ul class="wp-block-list">
<li>Basic re-implementation of separated measurements for objects (tab: &#8220;addendum&#8221;)</li>



<li>The type of measurement (width, length, etc.) is now managed using a controlled list, which can easily be extended. This also allows for measurement types of different levels of specificity (&#8220;width&#8221; vs. &#8220;width of socle&#8221;)</li>



<li>The new implementation allows users to identify whether a measurement is exact and add notes for each measurement</li>



<li>Measured values now need to be entered as a floating point number &#8211; consistent search for objects smaller or larger than a given size is thus made possible (previously only available for entries where the system could deduce a numeric value from whatever had been entered)</li>



<li>Unique naming components of entered tags are automatically parsed into a relation type. German: &#8220;Apfel (Motiv)&#8221; is automatically split into the tag &#8220;Apple&#8221; and the relation type &#8220;display subject&#8221;.</li>



<li>Users entering a tag with such a naming component that is known to belong to another vocabulary will have their input auto-corrected to reflect both. Entering the tag &#8220;Berlin (Motiv)&#8221; will be auto-corrected to a link to a &#8220;displayed place&#8221; &#8220;Berlin&#8221;.</li>



<li>The list of spaces that can be linked to an object as its current location is now sorted alphabetically</li>
</ul>



<p>Frontend</p>



<ul class="wp-block-list">
<li>Re-implemented separated Measurements</li>
</ul>



<p>Import</p>



<ul class="wp-block-list">
<li>The import tool now also uses the new implementation of separated measurements</li>



<li>Unique naming components of entered tags are automatically parsed into a relation type. German: &#8220;Apfel (Motiv)&#8221; is automatically split into the tag &#8220;Apple&#8221; and the relation type &#8220;display subject&#8221;.</li>



<li>Users entering a tag with such a naming component that is known to belong to another vocabulary will have their input auto-corrected to reflect both. Entering the tag &#8220;Berlin (Motiv)&#8221; will be auto-corrected to a link to a &#8220;displayed place&#8221; &#8220;Berlin&#8221;.</li>



<li>Links between two objects are now imported using the dedicated data type for this purpose. They had previously been imported as regular web links.</li>
</ul>



<p>nodac</p>



<ul class="wp-block-list">
<li>When merging two entries, links between the entries and collections, exhibitions, etc. are now reflected and rewritten</li>



<li>previously, links to such data types prevented the completion of the merge</li>



<li>If an entry&#8217;s name is marked to always belong to e.g. a tag, the buttons for transferring the entry to the actor, place, or time vocabularies are now hidden.</li>



<li>If an entry is moved between vocabularies, links between the entry and objects as &#8220;display subject&#8221; / &#8220;displayed place&#8221; / &#8220;displayed actor&#8221; are reflected and translated into new links using the appropriate link type.</li>



<li>A new context menu on overview pages allows for a quick access to functionalities like the splitting of entries</li>
</ul>
]]></content:encoded>
					
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2025/01/a-1.avif</url><width>600</width><height>338</height></post-thumbnail>	</item>
		<item>
		<title>State of Development, October 2024: Searching Objects Currently On Exhibition, Linking Location and Acquisition of Literature</title>
		<link>https://blog.museum-digital.org/2024/11/06/state-of-development-october-2024-searching-objects-currently-on-exhibition-linking-location-and-acquisition-of-literature/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Wed, 06 Nov 2024 12:58:01 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Change log]]></category>
		<category><![CDATA[Object images]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4194</guid>

					<description><![CDATA[After the blog has been very quiet this year with regard to the technical development of museum-digital, we are now trying to publish the summaries of new developments &#8211; enriched with screenshots &#8211; that are prepared for the monthly “regional administrators” rounds in Germany anyway. These are in the form of listings, and this is <a href="https://blog.museum-digital.org/2024/11/06/state-of-development-october-2024-searching-objects-currently-on-exhibition-linking-location-and-acquisition-of-literature/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>After the blog has been very quiet this year with regard to the technical development of museum-digital, we are now trying to publish the summaries of new developments &#8211; enriched with screenshots &#8211; that are prepared for the monthly “regional administrators” rounds in Germany anyway. </p>



<p>These are in the form of listings, and this is how it should be here too.</p>



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



<h3 class="wp-block-heading">Features &amp; Improvements</h3>



<ul class="wp-block-list">
<li>Some improvements in background scripts, especially better handling of timeouts when calculating “Similar objects” in very large instances</li>



<li>Contributors, linked locations and times for an object group are now listed alphabetically by name</li>



<li>Table headers for event components (who, when, where) are now only displayed in the A4 PDF if there is also content for the row</li>



<li>New search option for object searches: “Is currently on display”</li>



<li>Links to the Themator now use the new URL scheme of the Themator<br>(<a href="https://themator.museum-digital.de/t/690">https://themator.museum-digital.de/t/690</a> instead of <a href="https://themator.museum-digital.de/ausgabe/showthema.php?m_tid=690&amp;tid=690">https://themator.museum-digital.de/ausgabe/showthema.php?m_tid=690&amp;tid=690</a>)</li>
</ul>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="826" height="459" data-id="4185" src="https://blog.museum-digital.org/wp-content/uploads/2024/11/frontend_Suche_verfeinern.png.avif" alt="Screenshot aus dem Frontend von museum-digital." class="wp-image-4185" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/11/frontend_Suche_verfeinern.png.avif 826w, https://blog.museum-digital.org/wp-content/uploads/2024/11/frontend_Suche_verfeinern.png-300x167.avif 300w" sizes="auto, (max-width: 826px) 100vw, 826px" /><figcaption class="wp-element-caption">The new filter option “Currently on display” in the overlay for the advanced search for objects in the frontend of museum -digital.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="548" height="583" data-id="4184" src="https://blog.museum-digital.org/wp-content/uploads/2024/11/frontend_MItwirkende_sortiert.png.avif" alt="Screenshot aus dem Frontend von museum-digital." class="wp-image-4184" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/11/frontend_MItwirkende_sortiert.png.avif 548w, https://blog.museum-digital.org/wp-content/uploads/2024/11/frontend_MItwirkende_sortiert.png-282x300.avif 282w" sizes="auto, (max-width: 548px) 100vw, 548px" /><figcaption class="wp-element-caption">The contributors to an object group are now sorted alphabetically by sorted by name .</figcaption></figure>
</figure>



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



<ul class="wp-block-list">
<li>Error when searching for controlled list terms that contained multiple spaces via the “Refine search” overlay (search for license “Public Domain Mark”)</li>



<li>Exactness setting in the “refine search” overlay was not transferred to the actual search query</li>



<li>Simple embedding of an object (analogous to YouTube videos, for example; accessible via the “Cite” menu of an object page) had various errors / now works again</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">Features &amp; Improvements</h3>



<ul class="wp-block-list">
<li>In the API documentation of musdb there is now a note that the frontend also has an API
<ul class="wp-block-list">
<li>Frontend API
<ul class="wp-block-list">
<li>You do not need to authenticate yourself to use the frontend API</li>



<li>The frontend API tends to be faster and easier to use</li>



<li>Is read-only</li>
</ul>
</li>



<li>musdb API
<ul class="wp-block-list">
<li>Can do more: Can also see non-public stocks and fields / data types</li>



<li>Is much more granular (more queries for the same data, but you likely get exactly the data you are looking for instead of e.g. all data known about a given object)</li>



<li>Can be used for writing data</li>
</ul>
</li>
</ul>
</li>



<li>Suggestion lists when searching for vocabulary terms in the side column of the object search page have been revised
<ul class="wp-block-list">
<li>Tooltips appear when hovering over</li>



<li>Implementation in Vanilla JS, removing jQuery</li>



<li>(this means significantly better performance of the search results list in list format, because jQuery no longer needs to be loaded)</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li></li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="416" height="1024" src="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Tooltip_in_Auswahlliste.png-416x1024.avif" alt="Screenshot aus musdb." class="wp-image-4188" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Tooltip_in_Auswahlliste.png-416x1024.avif 416w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Tooltip_in_Auswahlliste.png-122x300.avif 122w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Tooltip_in_Auswahlliste.png.avif 714w" sizes="auto, (max-width: 416px) 100vw, 416px" /><figcaption class="wp-element-caption">The suggestion lists for places, times, persons and keywords in the quick search function of the object search mask have been re-implemented. The main visible benefit is that explanations now appear directly when hovering over the terms in the list.</figcaption></figure>



<ul class="wp-block-list">
<li>User page / Login
<ul class="wp-block-list">
<li>Log of logins now also with IP and user agents</li>



<li>Login via login persisted in the browser (“Remember me”) is logged and displayed</li>



<li>All browsers permanently logged in via cookie are forced to log in again after a password change</li>



<li>New option to invalidate all remembered logins on other devices (browser must be logged in again)</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="694" src="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Login_log.png-1024x694.avif" alt="Screenshot aus musdb." class="wp-image-4186" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Login_log.png-1024x694.avif 1024w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Login_log.png-300x203.avif 300w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Login_log.png-1536x1041.avif 1536w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Login_log.png.avif 1762w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The “Login log” in the account settings can be used to track when and in what context one&#8217;s own user account was accessed in musdb. This allows for the identification of account takeovers by third parties. Newly logged and/or displayed are: IP address used to log in, the user agent (identification of the browser) and whether the browser was automatically logged in via a permanent login cookie (“Remember me”).</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="942" height="678" src="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_User_Erinnerte_Logins_loeschen.png.avif" alt="Screenshot aus musdb." class="wp-image-4189" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_User_Erinnerte_Logins_loeschen.png.avif 942w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_User_Erinnerte_Logins_loeschen.png-300x216.avif 300w" sizes="auto, (max-width: 942px) 100vw, 942px" /><figcaption class="wp-element-caption">A new button in the toolbar of the account settings in musdb allows you to log out all permanently logged in browsers / devices from your own account.</figcaption></figure>



<ul class="wp-block-list">
<li>Object
<ul class="wp-block-list">
<li>More restrictions for the publication of object data records.</li>



<li>An object can no longer be published if:
<ul class="wp-block-list">
<li>&#8230; the object name is the same as the object description</li>



<li>&#8230; the description contains the character string “lorem ipsum”</li>
</ul>
</li>



<li>When object entries are unpublished / hidden, the images linked to the image are renamed (thus invalidating links to the images). When publishing the object again, this is reversed so that existing links work again.</li>



<li>Spaces in selection lists are now listed alphabetically as the actual location when linking</li>
</ul>
</li>



<li>Literature
<ul class="wp-block-list">
<li>Acquisitions can now be linked to literature
<ul class="wp-block-list">
<li>Previous owners etc. can thus be linked to a literature entry</li>
</ul>
</li>



<li>Spaces (actual location) can be linked to literature</li>
</ul>
</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="504" src="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Reiter_Verwaltung.png-1024x504.avif" alt="Screenshot aus musdb." class="wp-image-4187" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Reiter_Verwaltung.png-1024x504.avif 1024w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Reiter_Verwaltung.png-300x148.avif 300w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Reiter_Verwaltung.png-1536x756.avif 1536w, https://blog.museum-digital.org/wp-content/uploads/2024/11/musdb_Reiter_Verwaltung.png.avif 1800w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Via the new tab “Administration” tab on tab on the literature editing page, the location and access context of the literature entry can be linked. This can be useful if the literature module is also used to manage the museum library. is also used to manage the museum library .</figcaption></figure>



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



<ul class="wp-block-list">
<li>Overlay for setting searches for objects: Multi-word search terms were converted into multiple searches instead of being searched as a string of words (“red helmet” &gt; “red” AND “helmet” instead of “red helmet”)</li>



<li>Error when searching for controlled list terms that contained multiple spaces via the “Refine search” overlay (search for license “Public Domain Mark”)</li>
</ul>



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



<ul class="wp-block-list">
<li>Link between literature and spaces (actual location) as well as acquisitions is implemented in the &#8220;core&#8221; of the import tool</li>



<li>ImageByInvno parser (assignment of images to objects via inventory numbers contained in the file name) can now be used to import PDF files</li>
</ul>



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



<ul class="wp-block-list">
<li>Added a small script to enhance PDF metadata based on an XML sidecar file. See e.g.: <a href="https://files.museum-digital.org/de/Praesentationen/2024-10-18_md-deutschland-eV-stellt-sich-vor_Usertreffen_MA.xml">https://files.museum-digital.org/de/Praesentationen/2024-10-18_md-deutschland-eV-stellt-sich-vor_Usertreffen_MA.xml</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Main post image generated using illustriousXL_smoothftSPO</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<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/2024/11/banner.png.avif</url><width>600</width><height>336</height></post-thumbnail>	</item>
		<item>
		<title>museum-digital:qa as a Conversion Tool</title>
		<link>https://blog.museum-digital.org/2024/01/07/museum-digitalqa-as-a-conversion-tool/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Sun, 07 Jan 2024 01:04:40 +0000</pubDate>
				<category><![CDATA[Importer]]></category>
		<category><![CDATA[museum-digital:qa]]></category>
		<category><![CDATA[EODEM]]></category>
		<category><![CDATA[LIDO]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3998</guid>

					<description><![CDATA[Some months back I presented museum-digital:qa here and elsewhere as a tool building on a subset of the functionality of museum-digital&#8217;s import tool to evaluate data uploaded by anyone and make the quality checks musdb offers available to the uploader as well, regardless of their collection management system. Its real potential however can only be <a href="https://blog.museum-digital.org/2024/01/07/museum-digitalqa-as-a-conversion-tool/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>Some months back I presented <a href="https://quality.museum-digital.org/">museum-digital:qa</a> <a href="https://blog.museum-digital.org/2023/10/12/quality-assessments-like-in-musdb-now-for-everybody/">here</a> and elsewhere as a tool building on a subset of the functionality of museum-digital&#8217;s import tool to evaluate data uploaded by anyone and make the quality checks musdb offers available to the uploader as well, regardless of their collection management system. Its real potential however can only be seen when taking the first part of that statement by itself: museum-digital:qa can evaluate data from any format that may also be used for importing to museum-digital to do <em>something</em> with the data. Quality checks are in that sense only one possible use of museum-digital:qa.</p>



<p>Coming from that basic idea, there is now a second use case for museum-digital:qa: It is now capable of being used as a conversion tool. As usual, most formats supported for imports to museum-digital can be used to upload data &#8211; e.g. a <a href="https://csvxml.imports.museum-digital.org/">simple CSV structure</a> we regularly use for importing data previously held in table calculation programs &#8211; that is then converted to those XML formats to which users can export their object data in musdb (again recycling code from there).</p>



<p>At the moment conversions to LIDO (both versions 1.0 and 1.1) and EODEM are supported. Especially the latter may prove interesting: EODEM is a very recent extension of LIDO aimed at enabling a much simplified data exchange between different institutions in the context of loans. The lending museum exports the relevant objects&#8217; data from their collection management system in EODEM; the borrowing institution then imports it and immediately has all the relevant information in their respective collection management system without having to manually re-type the data as has been usual for the last years. EODEMs utility in practice however depends on how widely it will be supported by the different collection management systems.</p>



<p>By offering a conversion option from different formats to EODEM, museum-digital:qa may thus help to make the benefits of EODEM available also to those museums whose collection management software does not yet support exports to the standard.</p>



<p><em>Image: <a href="https://www.flickr.com/photos/cabhc/41005338060/">Bell Telelphone crew with a dog</a></em>, ca. 1892</p>



<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/2024/01/HC04382_BellTelelphoneCrew_1895__41005338060_651e3fb74b_k.webp</url><width>600</width><height>482</height></post-thumbnail>	</item>
		<item>
		<title>Automatically enforcing consistent naming of places</title>
		<link>https://blog.museum-digital.org/2023/11/27/automatically-enforcing-consistent-naming-of-places/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Mon, 27 Nov 2023 14:10:12 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Autocorrection]]></category>
		<category><![CDATA[Controlled Vocabularies]]></category>
		<category><![CDATA[New Features]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3978</guid>

					<description><![CDATA[Last week I wrote about how new actors find their way into museum-digital&#8217;s controlled vocabulary for actors during imports. One of the first steps detailed in the post is the automatic cleanup of the actor&#8217;s name and the application of some rules to ensure a consistent naming of actors. For time names a much more <a href="https://blog.museum-digital.org/2023/11/27/automatically-enforcing-consistent-naming-of-places/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>Last week I wrote about how new actors find <a href="https://blog.museum-digital.org/2023/11/22/importing-actors/">their way into museum-digital&#8217;s controlled vocabulary for actors during imports</a>. One of the first steps detailed in the post is the automatic cleanup of the actor&#8217;s name and the application of some rules to ensure a consistent naming of actors.</p>



<p>For time names a much more extensive cleaning is done, both in the case of imports and when working directly in musdb. Time names in the sense of the controlled vocabulary of museum-digital describe clearly defined times. This may be timespans, years, or full dates. But the number of possible input values is thus already significantly limited. In fact, it is small enough, and timespans, years, etc. are uniform enough to allow the automatic parsing of time names. Where that is possible, they are automatically rewritten to their default form in the controlled vocabulary and automatically translated to some 30 languages.</p>



<p>In the case of place names a similar cleaning and consolidating of place names was limited to the simple stripping of leading and trailing spaces and commas and the removal of indicators for uncertainty (e.g. trailing question marks). Since the weekend, place names are more extensively rewritten to ease the work of the vocabulary editors and ensure a more immediately consistent data entry both in musdb and when importing.</p>



<h2 class="wp-block-heading">General rewriting</h2>



<h3 class="wp-block-heading">1. Simple spelling issues</h3>



<p>The very first step in rewriting entered place names remains the removal of superfluous characters. As such, duplicate white spaces, trailing commas, etc. are removed.</p>



<p><strong>Example</strong>: <code>, Berlin ,</code> &gt; <code>Berlin</code></p>



<h3 class="wp-block-heading">2. Removal of indicators for uncertainty</h3>



<p>Next, known indicators for uncertainty are used to update the dedicated flag describing the certainty of the link to the place and then stripped. As they indicate the relation between object and place, they are not actually part of the place name and can thus be removed safely.</p>



<p><strong>Example 1</strong>: <code>Berlin ?</code> &gt; <code>Berlin</code><br><strong>Example 2</strong>: <code>Maybe Budapest</code> &gt; <code>Budapest</code></p>



<h3 class="wp-block-heading">3. Removal of duplicates in enumerations</h3>



<p>Commas are used in input place names in two ways. On the one hand, they may be used to further specify a place name (<code>Beijing, PRC</code>), on the other, they are often used in import data to designate multiple space names at a time (<code>Beijing, Tokyo, Nairobi</code>; this contradicts the logic of a database altogether and needs to be cleaned up manually be the vocabulary editors).</p>



<p>In both cases, duplicate names in the enumeration are superfluous and can be removed.</p>



<p><strong>Example 1</strong>: <code>Berlin, Germany, Germany</code> &gt; <code>Berlin, Germany</code></p>



<h3 class="wp-block-heading">4. Language-dependent rewriting</h3>



<p>The next steps in rewriting entries depend on the language of the entry. In musdb, the language the user set to use musdb is used to guess the language they are entering data in. In the case of imports, the default language of the given instance of museum-digital that a museum imports to is used.</p>



<h4 class="wp-block-heading">4.1. Extension of common abbreviations</h4>



<p>Where there are abbreviations, there are also unabbreviated names. And surely, both will be used. Will inevitably leads to duplicate entries. In the case of some common abbreviations, they are thus automatically rewritten to a canonical form.</p>



<p><strong>Example (German)</strong>: <code>Adalberthstr. 12 (Berlin)</code> &gt; <code>Adalbertstraße 12 (Berlin)</code><br><strong>Example (Hungarian)</strong>: <code>Vaci u. 12 (Budapest)</code> &gt; <code>Vaci utca 12 (Budapest)</code></p>



<h4 class="wp-block-heading">4.2. Reordering names in commas based on indicators for more specific place names</h4>



<p>As stated above (3.), commas may either indicate a specification of a single place, or they may indicate that the entry actually refers to more than one place. Some components of a name can be used to almost certainly determine that the former is the case &#8211; and which place of the given list is the specific one and which one is a superordinate named mainly for clarification. Common such names are &#8220;street&#8221;, &#8220;plaza&#8221;, &#8220;pier&#8221;.</p>



<p>If there is exactly one comma and such a name component is encountered, the entered place name can be rewritten to contain the less specific name only in brackets.</p>



<p><strong>Example (German)</strong>: <code>Berlin, Adalberthstraße 12</code> &gt; <code>Adalbertstraße 12 (Berlin)</code><br><strong>Example (Hungarian)</strong>: <code>Vaci utca 12, Budapest</code> &gt; <code>Vaci utca 12 (Budapest)</code></p>



<p>If both names contain such an indicator, no rewriting is applied. <code>Vaci utca 12, Vaci utca 13</code>&#8216; is thus not rewritten.</p>



<h4 class="wp-block-heading">4.3. Budapest special: Extending the names of districts</h4>



<p>Street names in Budapest are usually referred to including the naming of the district. These districts are referred to in a number of ways. If they are referred to using roman numerals, this is automatically extended to the canonical form.<br>This rewrite is only applied if the language is set to Hungarian.</p>



<p><strong>Example</strong>: <code>Petőfi Sándor utca 3. Budapest, IV.</code> &gt; <code>Petőfi Sándor utca 3. (Budapest, 4. kerület)</code></p>



<h4 class="wp-block-heading">4.4. Reordering names in commas based on country names</h4>



<p>Similar to the rewrites described in 4.2., country names can be used to indicate a hierarchical relationship between two places in a comma-separated list. If one given name is a country name and the other is not, it is likely that the non-country name is part of the given country. The comma can be replaced with brackets while the name can be reordered into the preferred <code>specific (unspecific)</code> form.<br>This check is also applied to names separated by hyphens.</p>



<p><strong>Example (German)</strong>: <code>Budapest, Ungarn</code> &gt; <code>Budapest (Ungarn)</code><br><strong>Example (Hungarian)</strong>: <code>Berlin-Németország</code> &gt; <code>Berlin (Németország)</code></p>



<p>There are however some common cases in which this logic does not apply &#8211; significantly cardinal directions. If one such term is found to be the non-country part, the rewrite is not applied. As such <code>West-Deutschland</code> remains <code>West-Deutschland</code> without being rewritten.</p>



<p>The list of names of countries and historical countries used stems from Wikidata (thanks!).</p>



<h2 class="wp-block-heading">Where do these rewrites apply?</h2>



<p>The rewrites listed above are now implemented in musdb, the import tool, and nodac.</p>



<p>They have also been used to consolidate existing place names, allowing us to identify some 500 duplicate place entries over the weekend (that amounts to almost 0.7 percent of the whole vocabulary). Clearly, identifying similar cases of regularly appearing, varied ways to express the same thing, and determining a canonical way of naming places in such cases holds a lot of potential for reducing the editors workload and improving data quality for everybody.</p>



<p></p>
]]></content:encoded>
					
		
		
			</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>
		<item>
		<title>Improved Workflow for Working with Loan Objects using EODEM</title>
		<link>https://blog.museum-digital.org/2023/06/04/improved-workflow-for-working-with-loan-objects-using-eodem/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Sun, 04 Jun 2023 16:22:59 +0000</pubDate>
				<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[EODEM]]></category>
		<category><![CDATA[Export Tools]]></category>
		<category><![CDATA[Loan management]]></category>
		<category><![CDATA[New Features]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3749</guid>

					<description><![CDATA[For some months, musdb has supported the upcoming EODEM standard for exchanging object information in the context of loans. The developments were covered extensively in a previous blog post. To summarize, the EODEM standard holds significant potential for saving registrars or colleagues taking over similar tasks in a museum a lot of time by providing <a href="https://blog.museum-digital.org/2023/06/04/improved-workflow-for-working-with-loan-objects-using-eodem/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>For some months, musdb has supported the upcoming EODEM standard for exchanging object information in the context of loans. The developments were covered extensively in a <a href="https://blog.museum-digital.org/2023/02/15/eodem-efficiently-exchange-object-information-during-loans/">previous blog post</a>. To summarize, the EODEM standard holds significant potential for saving registrars or colleagues taking over similar tasks in a museum a lot of time by providing for a seamless interoperability of object information between different collection management systems.</p>



<p>The success and wide-spread adoption of EODEM however obviously still depends on a number of factors. On the one hand, developers and software vendors need to implement EODEM import and export functionality in their collection management systems. On the other hand, this implementation needs to be accessible and simple to use.</p>



<p>musdb, again, has had the first condition covered for some months now. Accessibility &#8211; especially for smaller museums with less tech-savvy staff &#8211; was lacking however. Over the last months, it has improved a lot. It is thus now possible to both export and import EODEM data without having to use specialized software beyond one&#8217;s file manager and browser.</p>



<h2 class="wp-block-heading">Exporting EODEM data</h2>



<p>The exporting of EODEM data for loans has been <a href="https://blog.museum-digital.org/2023/02/15/eodem-efficiently-exchange-object-information-during-loans/">described before</a> and remains as simple as ever. Simply link the objects with the outgoing loan and use the respective export option on the loan editing page of the outgoing loan.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="514" src="https://blog.museum-digital.org/wp-content/uploads/2023/02/musdb-loans-export-eodem.png-1024x514.webp" alt="Screenshot of the loan editing page. An EODEM export is directly available through the sidebar." class="wp-image-3584" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/02/musdb-loans-export-eodem.png-1024x514.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/02/musdb-loans-export-eodem.png-300x151.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/02/musdb-loans-export-eodem.png-1536x771.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/02/musdb-loans-export-eodem.png-2048x1028.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The most simple way to export a loan&#8217;s object information in EODEM is by navigating to the loan&#8217;s page and clicking the EODEM export button in the sidebar.</figcaption></figure>



<h2 class="wp-block-heading">The Problem of Flexible Imports</h2>



<p>museum-digital&#8217;s import tool offers a rather wide range of selectable &#8220;parsers&#8221; (essentially the format of data to import) and settings for many of these. It may be used for importing five objects at a time without any linked image files &#8211; or 50000 with remote image files to fetch. While the former import will be finished in seconds, the latter may take hours depending on the speed of the remote image server.</p>



<p>To prevent timeouts and allow users to control the importer to its full flexibility, and to allow for an easy automation, the upload workflow works via a WebDAV mount. Here, the import is configured using a plain text configuration file and the import data can be uploaded into respective folders for metadata and media files. Finally, a script checks every four hours, if there are import data in the respective directory for a museum and imports them in the background. This process works wonderfully for large imports and migrations. It is however anything but accessible for small scale imports.</p>



<p>Since EODEM imports follow a pre-defined standard and have a rather narrow use case, we chose to add a direct upload form for EODEM import data on the loan editing page in musdb. The sidebar of that page now features a new box &#8220;Import EODEM data&#8221;. By clicking on it, an overlay opens, prompting the user to upload their EODEM XML files. The XML files are then uploaded into the usual import directory for the museum and the configuration is automatically written with the common settings for EODEM imports.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="1003" src="https://blog.museum-digital.org/wp-content/uploads/2023/06/20230602_Screenshot-EODEM-Import-Upload.png-1024x1003.webp" alt="" class="wp-image-3751" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/06/20230602_Screenshot-EODEM-Import-Upload.png-1024x1003.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/06/20230602_Screenshot-EODEM-Import-Upload.png-300x294.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/06/20230602_Screenshot-EODEM-Import-Upload.png-1536x1504.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/06/20230602_Screenshot-EODEM-Import-Upload.png.webp 1800w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The sidebar of loan editing pages in musdb now features a new upload box, allowing users to upload EODEM data directly from the web interface.</figcaption></figure>



<p>The upload box in the sidebar is now updated and presents a message detailing the remaining workflow: Wait for some time until the import data has been processed. After the import has been finished, the user receives a mail to the mail address entered for their musdb account.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="956" src="https://blog.museum-digital.org/wp-content/uploads/2023/06/20230602_Screenshot-EODEM-Import-Uploaded.png-1024x956.webp" alt="" class="wp-image-3752" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/06/20230602_Screenshot-EODEM-Import-Uploaded.png-1024x956.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/06/20230602_Screenshot-EODEM-Import-Uploaded.png-300x280.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/06/20230602_Screenshot-EODEM-Import-Uploaded.png-1536x1434.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/06/20230602_Screenshot-EODEM-Import-Uploaded.png.webp 1800w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Once an EODEM file (or files) has been uploaded for importing, a message appears in the upload box, notifying the user to wait until the import has been processed. Once that is done, the user will receive a mail to the mail address they entered for their musdb account.</figcaption></figure>



<p>Looking at the imported object data, one may see a small new feature. The importer automatically determines whether it should update or add new objects by way of the inventory number. If two museums then use the same inventory number schema, this may lead to the loan object information overwriting the data of another object in the museum. To prevent such cases &#8211; rare as they may be &#8211; the ID of the loan is automatically prepended to the loan object&#8217;s inventory number.</p>



<p>EODEM imports can thus now be done directly from the web interface and with minimal worry about data loss. The only caveat may be, that EODEM imports done this way don&#8217;t support the import of object images, as this would have required an additional setting to determine if the images were sent together with the import metadata, are located on a web-accessible server, or if they are simply missing.</p>



<h2 class="wp-block-heading">A Glimpse into the Future</h2>



<p>musdb now covers both conditions &#8211; EODEM imports and exports are not only implemented and usable anymore, but they are hopefully very easy to use now as well. The EODEM working group remains close to a release of the final standard, and other implementations are announced for the upcoming versions of some other collection management systems.</p>



<p>It is likely that testing the EODEM import with real-world data from other systems will require some further adjustments despite all standardization. We&#8217;re looking forward to such cases and more users for the EODEM standard both in terms of vendors supporting it and actual museums profiting from it.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Categorizing an object&#8217;s tags</title>
		<link>https://blog.museum-digital.org/2023/05/11/categorizing-an-objects-tags/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Thu, 11 May 2023 14:45:14 +0000</pubDate>
				<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Controlled Vocabularies]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object editing (musdb)]]></category>
		<category><![CDATA[Object selection (musdb)]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3733</guid>

					<description><![CDATA[… or &#8220;musdb finally supports materials, techniques, etc. from controlled vocabularies&#8221;. At museum-digital, there are four main centrally controlled vocabularies &#8211; actors, places, times, and tags. In more traditional collection management software however, the main field to control is usually the object type (is the object a helmet or a painting?). Simple tagging of the <a href="https://blog.museum-digital.org/2023/05/11/categorizing-an-objects-tags/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>… or &#8220;musdb finally supports materials, techniques, etc. from controlled vocabularies&#8221;.</p>



<p>At museum-digital, there are four main centrally controlled vocabularies &#8211; actors, places, times, and tags. In more traditional collection management software however, the main field to control is usually the object type (is the object a helmet or a painting?). Simple tagging of the objects can serve as a rather good replacement for a controlled set of object types if one simply repeats the object type as a tag.</p>



<p>As long as one only uses simple tagging, it can however do so only to some extend. If the object is a painting that displays a hammer, the object would feature the tags &#8220;painting&#8221; and &#8220;hammer&#8221;. If the object is a hammer with an engraving of a painting, it would feature the very same tags. Take the first example: If one wanted to be able to express that &#8220;painting&#8221; is the object type and &#8220;hammer&#8221; is something displayed on the object, one would either need to skip using tags again and use the dedicated fields again &#8211; or one needs to be able to categorize tags.</p>



<p>We doubled down on tagging by implementing a categorization mechanism for object tags while streamlining the tagging process in musdb and making it faster and easier to use overall.</p>



<h2 class="wp-block-heading">The new tagging overlay</h2>



<p>When clicking the usual link for linking (new) tags with an object in musdb, one will now be presented with an overlay that replaces the previous page of the same functionality. The layout is rather similar to the previous page &#8211; new tags and simple links to actors, places, and times are usually be entered using input fields on the left of the overlay. By typing in the relevant input field, a drop-down list appears, from which entries to be linked can be selected. A new tag, actor, place or time entry can be entered by pressing the &#8220;enter&#8221; key after typing the name. A sidebar on the right of the overlay allows the simple repetition of the last 10 tags, actors, places, or times the user linked to objects.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="426" src="https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-old-page-1024x426.webp" alt="" class="wp-image-3737" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-old-page-1024x426.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-old-page-300x125.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-old-page-1536x638.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-old-page.webp 1800w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The old object tagging interface in musdb</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="656" src="https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-new-overlay-1024x656.webp" alt="" class="wp-image-3736" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-new-overlay-1024x656.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-new-overlay-300x192.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-new-overlay-1536x984.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-new-overlay.webp 1800w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The new object tagging overlay.</figcaption></figure>



<p>The differences between the old page and the new overlay play out on two levels. First, there is the simple fact of the new implementation moving a lot of the logic to the client side, i.e. your browser. If one only selects entries from the drop-down menus, this means that all communication with the server runs in the background. Page reloads are thus only necessary when one enters a new, thus far unknown, tags etc. As the overlay does not close after linking a tag, multiple pre-existing tags can be linked quickly one after the other. In effect, this amounts to a much smoother experience in tagging objects than before.</p>



<p>On the other hand, the overlay unites the existing tagging-related functionalities in one. To do so, the currently linked tags, actors, places, and times are displayed in the overlay as small tiles and can be deleted from there using the trash can icon. Tiles for tags feature an additional select field for categorizing the relationship between object and tag. By default, the relationship is set to the generic &#8220;tag&#8221;. Alternative categorization options are currently:</p>



<ul class="wp-block-list">
<li>Object type</li>



<li>Material</li>



<li>Technique</li>



<li>Display subject</li>
</ul>



<p>By categorizing the tags in the appropriate way, one keeps all the advantages the controlled vocabulary for tags brings &#8211; multilinguality, links to norm data repositories, and findability using hierarchichal searches, while now being specific about the relationship.</p>



<p>Additionally, another icon (the arrow downwards in a hexagon) offers narrowing down the tag to a more specific version. If an object has for example been tagged as a &#8220;portrait&#8221;, pressing on the icon will open a sidebar suggesting to replace that tag with &#8220;self-portrait&#8221;.</p>



<h2 class="wp-block-heading">Effects on search</h2>



<p>Of course, categorizing the links helps little without the relevant search options. Hence, we added five new search fields in the extended search menu: Tags (object type), tags (material), etc.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="653" src="https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-search-1024x653.webp" alt="" class="wp-image-3738" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-search-1024x653.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-search-300x191.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-search-1536x979.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/05/20230511_Screenshot-tag-categories-search.webp 1800w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Screenshot: Searching by tag categorization.</figcaption></figure>



<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/2023/05/20230511_Screenshot-tag-categories-tag-categorization-tab.webp</url><width>600</width><height>394</height></post-thumbnail>	</item>
		<item>
		<title>Summary of the monthly user meetup (March 2023)</title>
		<link>https://blog.museum-digital.org/2023/04/05/summary-of-the-monthly-user-meetup-march-2023/</link>
					<comments>https://blog.museum-digital.org/2023/04/05/summary-of-the-monthly-user-meetup-march-2023/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Tue, 04 Apr 2023 23:58:21 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Project page www.museum-digital.org]]></category>
		<category><![CDATA[Themator]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object images]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3718</guid>

					<description><![CDATA[Yesterday, we held our regular user meetup as scheduled. As promised, below you can find an overview of the new features and updates below some more general points. General YouTube channel There now is a museum-digital YouTube channel. For now, one can find some German-language screencasts on different features in musdb and nodac there. New <a href="https://blog.museum-digital.org/2023/04/05/summary-of-the-monthly-user-meetup-march-2023/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>Yesterday, we held our regular user meetup as scheduled. As promised, below you can find an overview of the new features and updates below some more general points.</p>



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



<h3 class="wp-block-heading">YouTube channel</h3>



<p>There now is a <a href="http://youtube.com/@museum-digital/">museum-digital YouTube channel</a>. For now, one can find some German-language screencasts on different features in musdb and nodac there.</p>



<h3 class="wp-block-heading">New sections on project page (www.museum-digital.org)</h3>



<p>As already described in the previous post, the project page <a href="https://www.museum-digital.org/">www.museum-digital.org</a> now features a <a href="https://blog.museum-digital.org/2023/03/14/a-calendar-is-a-commitment/">calendar</a>. Since then, we have also added a <a href="https://en.about.museum-digital.org/about/people/">small page listing</a> people working on museum-digital &#8211; e.g. some of the coordinators and developers &#8211; as well as power users. The list will obviously always be more than incomplete, but if you want to be listed, just send a mail.</p>



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



<h3 class="wp-block-heading" id="musdb">musdb</h3>



<h4 class="wp-block-heading" id="allow-batch-editing-of-photographers-on-image-list">Allow batch editing of photographers on image list</h4>



<p>Running batch updates on the ownership, license status and photographer of a set of objects can be done either via the institution-wide settings page or via a selection on the image list page. The batch updating functionality of the institution-wide settings page works by replacing the given entries in one of the fields for all objects of the museum &#8211; it is thus not suitable if one is to only update the photographer field for a list of objects from a single collection (rather than the whole museum).</p>



<p>Batch updating images&#8217; legal information from the image list (click on an image in the list and drag it to activate selection mode, then update by selection) was only possible in the case of image licenses and rights holders. With a small update, it is now possible to also batch-update the images&#8217; photographers field that way.</p>



<h4 class="wp-block-heading" id="the-api-can-now-update-object-event">The API can now update object event</h4>



<p>Thus far, the API could only be used for adding wholly new object events (who did what, when, and where, with the object) or deleting them. With the updates of this month, now possible to directly update events.</p>



<p>This is already actively used in customizing musdb using a <a href="https://en.wikipedia.org/wiki/Tampermonkey">Tampermonkey</a> script by some of the norm data editors. They can thus add a custom button to transfer incomplete actor or place information to the object&#8217;s description. This button, on the other hand, would not be useful for regular users at all.</p>



<h4 class="wp-block-heading" id="ui-improvements-for-the-object-search-interface">UI improvements for the object search interface and new sort option</h4>



<p>After a very fruitful discussion and feedback from Hungarian colleagues, we got around to some user interface improvements in the object overview and search interface. A lengthy discussion can be found in a dedicated <a href="https://blog.museum-digital.org/de/2023/03/21/detailverbesserungen-bei-der-objektsuche-in-musdb/">blog post in German</a>. To sum up: there are now headlines for each subsection of the sidebar and tooltips explain the different buttons and search and sort options upon hovering one&#8217;s mouse over them. Additionally, a new sort option was added to sort objects by the number characters within the inventory numbers of the searched objects.</p>



<h4 class="wp-block-heading" id="two-bugfixes-navigating-to-the-previous-or-next-object-in-a-selection">Two bugfixes: Navigating to the previous or next object in a selection</h4>



<p>It is a very simple but similarly useful feature: One runs an object search and thus creates a result list of objects. After viewing or editing one of the objects, one can then proceed to the next one in the results list by clicking at the arrows at the top of the sidebar.</p>



<p>Unfortunately, musdb had two bugs preventing this navigation for some of the available sort options. On the one hand, newer sort options required manually adding the search fields to a list specific to the previous/next navigation thus far &#8211; and had not been covered yet. Navigating to the next object after sorting by e.g. the length of the searched objects was thus impossible so far. The specific list of sort fields has now been removed in the previous/next navigation. Instead, the main list of sort options from the main object search class is directly used &#8211; in effect preventing such issues of &#8220;forgotten&#8221; values from ever appearing again.</p>



<p>A second issue concerned string-based sort options. For an improved performance, the previous / next navigation works by querying the underlying search index for the next object where e.g. the object ID is lower than the current one (`WHERE id &gt; 20000`). The same search logic is straight-out not possible with string-based sort options, as search queries for values greater than or smaller than a given one cannot be executed with string-based fields.</p>



<p>Fortunately, the issue came up just after we had implemented an option to search and <a href="https://blog.museum-digital.org/de/2023/03/21/detailverbesserungen-bei-der-objektsuche-in-musdb/">sort objects by the numeric components of their inventory numbers</a>. Thus, the previous / next navigation can fall back to that sort option if a user wants to navigate to the next object after sorting by inventory number. As stated back when we introduced the new search and sort option: It should work for most museums. Unfortunately, there is no such option to mitigate the issues of string-based sorting when sorting objects by their names. The best we could do in this case is displaying a clear error message, stating that the previous / next navigation is <em>not</em> available when sorting by the object&#8217;s names.</p>



<h4 class="wp-block-heading" id="home-location-can-now-be-selected-as-a-required-field-when-adding-new-objects">&#8220;Home location&#8221; can now be selected as a required field when adding new objects</h4>



<p>On the institution-wide settings page, museum directors (or those holding the same user role within musdb) can determine which fields are required when adding new objects. The list of selectable fields automatically covers all free text fields linked to the object. Repeat fields and references to other sections of musdb need to be manually implemented however. As the home or permanent location of an object is a most logical and common field to be required for all object, it was only consequential to prioritize making it available as a required field. We have done so now.</p>



<h4 class="wp-block-heading" id="major-performance-improvements-in-list-results-page">Major performance improvements in &#8220;list results&#8221; page</h4>



<p>The &#8220;list results&#8221; page provides for a table view of object search results, allows the export of search results to Excel, and is &#8211; under the hood &#8211; also used for generating custom reports. We managed to achieve a considerable improvement in the page&#8217;s performance by bulk loading data and simplifying the code of the HTML page. Both adjustments should not really be noticable when one tries to list or export only some objects. Exporting some thousand objects should work considerably faster now however.</p>



<h3 class="wp-block-heading" id="frontend">frontend</h3>



<h4 class="wp-block-heading" id="pdf-metadata-for-main-object-pdf-export">PDF metadata for main object PDF export</h4>



<p>XMP metadata are now written into exported PDF files. Thus, users can more easily identify authorship, titles etc., especially when using specialized software like e-book readers.</p>



<h4 class="wp-block-heading" id="linking-from-collection-descriptions">Linking from collection descriptions</h4>



<p>Collection descriptions are now being parsed for the existence of URLs. If one, starting with https:// (http:// is ignored) exists, the URL is automatically transformed into a clickable link.</p>



<h3 class="wp-block-heading" id="nodac">nodac</h3>



<p>We added some translation variables on the start page.</p>



<h3 class="wp-block-heading" id="themator">themator</h3>



<p>The &#8220;themator&#8221; has received a small user interface improvement for mobile devices. The topic-specific navigation or table of contents is now moved below rather than above the main content of a page in the regular &#8220;topic&#8221; viewing mode on mobile devices.</p>



<h3 class="wp-block-heading" id="importer">Importer</h3>



<h4 class="wp-block-heading" id="importing-gifs">Importing GIFs</h4>



<p>To simplify the handling of images, museum-digital internally only uses JPG image files (webp versions are generated for a faster loading, but are optional). While they lack some support for features like transparency, JPGs provide for a much better compression with images of three-dimensional things and subjects not featuring solid colors. Newer formats like AVIF and Webp unfortunately still lack the support among locally installed image viewers for us to fully switch over to them.</p>



<p>The importer handles input PNGs by converting them to JPG files. Starting this month, the same can be done with input GIF files.</p>



<h4 class="wp-block-heading" id="improved-handling-of-blacklisted-actors-places-and-times">Improved handling of blacklisted actors, places and times</h4>



<p>One of the key issues with imports is what happens after imports. Specifically, museum-digital uses controlled vocabularies for actors, places, times and tags that can be linked to an object directly or via events. When people enter new such entries using musdb, there are a number of safeguards and nudges to ensure productive inputs. Adding a new actor, for example, requires one to enter at least 10 characters of a description for the actor. Input fields for the date of birth and death are also provided. If possible, one can enter a Wikipedia or Wikidata URL (or ID) and directly fetch the relevant information from there.</p>



<p>During imports, there is no space for asking questions to the importing institution. Incomplete or false actor, place, time and tag names (for example, if two actors are linked as one; &#8220;John Doe and Jane Doe&#8221; is not one single actor!) are given, these are necessarily imported into our controlled vocabularies by default. Depending on the import, this puts a significant burden on our volunteer group of vocabulary editors.</p>



<p>To eventually get to a solution, we have added options for automatically rewriting terms (e.g. &#8220;Berlin, Germany&#8221; will be autocorrected to &#8220;Berlin&#8221;) and blacklisting them completely (&#8220;Good morning &#8230;&#8221; is no actor&#8221;). Thus far, blacklisted terms were simply ignored by the importer.</p>



<p>&#8220;Unknown painter&#8221; is not an actor, but the information that it is a painter may still be useful. To allow us to blacklist more and keep the controlled vocabularies &#8220;clean&#8221; without losing such data, the importer now imports blacklisted terms in event components (&#8220;who painted it?&#8221;) into the event annotation. If the only known information on the whole event is blacklisted, the event cannot be created &#8211; an event always requires at least one linked actor, place or time. The event annotation of &#8220;empty events&#8221; is hence moved to the object description automatically.</p>



<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/2023/04/05/summary-of-the-monthly-user-meetup-march-2023/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-thumbnail><url>https://blog.museum-digital.org/wp-content/uploads/2023/04/md-YT-Banner.jpg.webp</url><width>600</width><height>338</height></post-thumbnail>	</item>
		<item>
		<title>New Features at museum-digital (November 2022)</title>
		<link>https://blog.museum-digital.org/2023/01/02/new-features-at-museum-digital-november-2022/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Mon, 02 Jan 2023 16:59:27 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[md:term]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Batch editing]]></category>
		<category><![CDATA[Collection management]]></category>
		<category><![CDATA[EODEM]]></category>
		<category><![CDATA[Imports]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object editing (musdb)]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<category><![CDATA[Object selection (musdb)]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3413</guid>

					<description><![CDATA[After trying a monthly change log once some month ago, we have unfortunately been rather lenient with notifying everyone of new features and updates in the last months. To approach betterment, here there is a list of the updates of November 2022 the form of screenshots. As a very large update is upcoming in the <a href="https://blog.museum-digital.org/2023/01/02/new-features-at-museum-digital-november-2022/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>After trying a monthly change log once some month ago, we have unfortunately been rather lenient with notifying everyone of new features and updates in the last months. To approach betterment, here there is a list of the updates of November 2022 the form of screenshots. As a very large update is upcoming in the next days, a separate post on the updates of December 2022 will follow tonight.</p>



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



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="674" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_Screenshot_musdb_object_Periods-1024x674.webp" alt="" class="wp-image-3412" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_Screenshot_musdb_object_Periods-1024x674.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_Screenshot_musdb_object_Periods-300x198.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_Screenshot_musdb_object_Periods-1536x1011.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_Screenshot_musdb_object_Periods-2048x1348.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">New section for time limits on administration tab of object pages.
Special mention should go to the fields &#8220;Freeze period&#8221; and &#8220;Publish object at&#8221;. Filling out these fields enables some automation:
A &#8220;frozen&#8221; object cannot be published before the entered date has been reached. This may e.g. be useful with archival material that cannot be published before a given date.
The &#8220;Publish object at&#8221; field offers a counterpart to this. If a date has been entered into this field and the date is reached, the object will be published automatically by the system.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="674" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_Screenshot_musdb_object_closer_location-1024x674.webp" alt="" class="wp-image-3411" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_Screenshot_musdb_object_closer_location-1024x674.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_Screenshot_musdb_object_closer_location-300x198.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_Screenshot_musdb_object_closer_location-1536x1011.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_Screenshot_musdb_object_closer_location-2048x1348.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">A non-public closer location for an object (which may e.g. be necessary with archeological findings, whose finding spots have no name and are not to be published to not give information to grave robbers) can now be set using a map on the addendum tab.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="674" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_object_remarks-1024x674.webp" alt="" class="wp-image-3409" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_object_remarks-1024x674.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_object_remarks-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_object_remarks-1536x1010.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_object_remarks-2048x1347.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">A number of new fields for noting conditions on how the object should best be displayed in exhibitions, among others, have been added on the &#8220;remarks&#8221; tab of object pages in musdb.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="673" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_object_conservations-1024x673.webp" alt="" class="wp-image-3408" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_object_conservations-1024x673.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_object_conservations-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_object_conservations-1536x1009.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_object_conservations-2048x1346.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">On the &#8220;restoration&#8221; tab of object pages, generic fields can be entered with the name of the described feature and the value. Because of the flexible subject of these fields however, they make searching in the fields much harder.
Hence, new fields that are applicable to almost all museum objects have been added as easily searchable, &#8220;static&#8221; properties of an object: Minimum and maximum viable temperature, minimum and maximum viable humidity, and the maximum lux an object may be exposed to.</figcaption></figure>



<h3 class="wp-block-heading">Other page</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="673" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_open_in_new_tab-1024x673.webp" alt="" class="wp-image-3410" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_open_in_new_tab-1024x673.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_open_in_new_tab-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_open_in_new_tab-1536x1009.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_open_in_new_tab-2048x1345.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">It is quite common for users of musdb to only use the same some event types all the time, while not needing many of the other available event types. People working at archeological museums will likely need the &#8220;found&#8221; event type all the time, while barely ever using the event type &#8220;copied by hand&#8221;. To directly access those often used types, one can now click the &#8220;star&#8221; symbols at the end of a line for an event type when accessing the page for selecting the event type of a new event. Favorited event types will then be listed in a bottom sheet on the page.</figcaption></figure>



<h3 class="wp-block-heading">Batch updating object information</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="674" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_visibility-1024x674.webp" alt="" class="wp-image-3404" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_visibility-1024x674.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_visibility-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_visibility-1536x1010.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_visibility-2048x1347.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The batch update menu for objects&#8217; visibility can now also be used to set the visibility of publishable fields that are publishable on a field level.</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_assignment-1024x674.webp" alt="" class="wp-image-3402" width="840" height="552" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_assignment-1024x674.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_assignment-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_assignment-1536x1010.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_assignment-2048x1347.webp 2048w" sizes="auto, (max-width: 840px) 100vw, 840px" /><figcaption class="wp-element-caption">The &#8220;batch assignment&#8221; menu can now be used to assign spaces, owners, linked loans, and full events (e.g. the creation of objects by a given artist at a given time) to all objects of a search results list.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="674" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_open_in_new_tab-1024x674.webp" alt="" class="wp-image-3403" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_open_in_new_tab-1024x674.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_open_in_new_tab-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_open_in_new_tab-1536x1011.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_batch_open_in_new_tab-2048x1348.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">A &#8220;smaller&#8221; way of batch updating objects can be used in the object overview by selecting an object by clicking and dragging an object. Now, objects can be selected and updated in bulk.
The menu for doing these updates (visible here at the top of the screenshot) now comes with an additional option: &#8220;Open in new tab&#8221;. By clicking on this menu option, all selected objects are opened in new tabs. As browsers often prevent the opening of multiple tabs in bulk, one may have to allow the opening of pop-ups for musdb in the browser to use this functionality.</figcaption></figure>



<h3 class="wp-block-heading">Instituion-wide settings and adding new objects</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="674" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_institution_settings_bulk_downloads-1024x674.webp" alt="" class="wp-image-3406" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_institution_settings_bulk_downloads-1024x674.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_institution_settings_bulk_downloads-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_institution_settings_bulk_downloads-1536x1011.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_institution_settings_bulk_downloads-2048x1348.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The download button for images in the frontend has been repurposed to enable bulk downloading of all images of an object. While the images are downloaded, the users see an overlay where the museum may display a message (e.g. on how to use the images, or for asking the users to notify the museum about the images being reused in print). The message can be set in the institution-wide settings (available for users of the role &#8220;museum director&#8221; by hovering over the academy symbol in the navigation in musdb and then selecting the menu option &#8220;settings&#8221;).</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="674" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_institution_settings_1-1024x674.webp" alt="" class="wp-image-3405" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_institution_settings_1-1024x674.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_institution_settings_1-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_institution_settings_1-1536x1010.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_institution_settings_1-2048x1347.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The instituion-wide settings page now also comes with two other new features. On the one hand, users can now be required to select a tag for the object type when adding new objects. On the other, the inventory number suggestion when adding new objects has been improved. It is now possible to generate inventory numbers with variable length numerical components (e.g. ABC-9; followed by ABC-10).</figcaption></figure>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="673" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_notification_settings-1024x673.webp" alt="" class="wp-image-3407" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_notification_settings-1024x673.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_notification_settings-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_notification_settings-1536x1009.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_musdb_notification_settings-2048x1345.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The notification framework in musdb has been fully rewritten. Along with that comes the option to specifically subscribe to email notifications only for some types of notifications.
To do so, one can navigate to one&#8217;s personal settings. A new tab &#8220;notifications&#8221; on this page allows setting the primary route of notification and a fallback.
If the primary route is set to &#8220;email&#8221; for upcoming ends to loans, the user will immediately receive a mail once the system recognizes an upcoming end to a loan. If the primary route here is set to &#8220;Internal&#8221; and &#8220;Email&#8221; is set to be the fallback route, the user will only see a notification on the upcoming loan in the notification overlay within musdb for a week. If the notification has not been marked as read after a week, a mail will be sent.</figcaption></figure>



<h3 class="wp-block-heading">In other news</h3>



<ul class="wp-block-list">
<li>The calendar feature (accessible under the puzzle symbol in the main navigation) can now display tasks or make them subscribable via WebCal (thus implementing a &#8220;reminder&#8221; as had often been requested)</li>



<li>PDF of all linked information is now in A4 and uses a two-column layout</li>



<li>Ukrainian translation</li>



<li>&#8220;Simple A5 PDF&#8221; now covers inventorization fields on rear side</li>
</ul>



<h3 class="wp-block-heading" id="mdterm">md:term</h3>



<ul class="wp-block-list">
<li>If two actors have been joined and one has an old links to the page of the actor now deleted, one is now referred onwards to the new, single actor entry. The same works with transferrals between vocabularies (an actor that was transformed into a tag, etc.).</li>



<li>Ukrainian Translation</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="673" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_mdterm_ukrainian-1024x673.webp" alt="" class="wp-image-3401" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_mdterm_ukrainian-1024x673.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_mdterm_ukrainian-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_mdterm_ukrainian-1536x1010.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_mdterm_ukrainian-2048x1346.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">md:term is now available in Ukrainian!</figcaption></figure>



<h3 class="wp-block-heading" id="frontend">Frontend</h3>



<ul class="wp-block-list">
<li>Ukrainian Translation</li>



<li>JSON-based settings for specific institution pages have been removed</li>



<li>Bulk download of object images
<ul class="wp-block-list">
<li>An overlay with a message from the museum can be displayed during batch downloads (see above)</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading" id="csvxml">CSVXML</h3>



<ul class="wp-block-list">
<li>Almost completely rewritten</li>



<li>The served page now is completely static and all checks and conversions run directly in the browser. This way, no uploads actually happen and the application is completely uncritical to the server&#8217;s security. On the other hand, this allows for installing CSVXML as a <em>progressive web app</em> and using it offline.</li>



<li>We also added some explanatory texts did small updates to the design of the page. A footer now links to the source code and offers to refresh all cached contents of the page (this may be useful when visiting the page after a long time, as the whole application is cached in the browser for offline use).</li>



<li>A new check also checks for the file encoding. A warning is provided if the data does not appear to be UTF-8-encoded.</li>



<li>CSVXML is now released open source under the AGPL.</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="631" src="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_csvxml-1024x631.webp" alt="" class="wp-image-3400" srcset="https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_csvxml-1024x631.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_csvxml-300x185.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_csvxml-1536x947.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2023/01/20230102_csvxml.webp 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">CSVXML has been (almost) completely rewritten).</figcaption></figure>



<h3 class="wp-block-heading" id="importer">Importer</h3>



<p>While the individual parsers for the different export formats are updated very often, the core scripts of the importer are very stable. November 2022 however came with a large update to these core sections, as more categories of data that had not before been covered by the importer (many of them new) can now be imported:</p>



<ul class="wp-block-list">
<li>Contact information (e.g. for object owners; loan partner institution)</li>



<li>Object&#8217;s movement log</li>



<li>Minimum and maximum temperature, humidity, and lux of an object</li>



<li>Loans</li>



<li>Events / Appointments</li>
</ul>



<p>In terms of the parsers, we extended the LIDO parser to cover the new fields suggested by the upcoming <a href="https://cidoc.mini.icom.museum/working-groups/documentation-standards/eodem-home/">EODEM</a> standard for exchanging loan object information.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Monthly museum-digital user meetup (September 2022) / New Features</title>
		<link>https://blog.museum-digital.org/2022/09/23/monthly-museum-digital-user-meetup-september-2022-new-features/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Fri, 23 Sep 2022 13:01:07 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Monthly meetup]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3377</guid>

					<description><![CDATA[On September 6th 2022, we continued our monthly user meetups. As should best become the norm, we discussed recent new features of the preceeding month and plan a next meetup on the first Tuesday of October (October 4th, 2022, 5 p.m. at https://meet.jit.si/museum-digital-meetup-202210). A summary of the new features and updates can be found in <a href="https://blog.museum-digital.org/2022/09/23/monthly-museum-digital-user-meetup-september-2022-new-features/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>On September 6th 2022, we continued our monthly user meetups. As should best become the norm, we discussed recent new features of the preceeding month and plan a next meetup on the first Tuesday of October (October 4th, 2022, 5 p.m. at <a href="https://meet.jit.si/museum-digital-meetup-202210">https://meet.jit.si/museum-digital-meetup-202210</a>).</p>



<p>A summary of the new features and updates can be found in the following.</p>



<h2 class="wp-block-heading">Recent Updates and New Features</h2>



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



<h4 class="wp-block-heading">Support for Imperial Measurement Units for Separated Measurements</h4>



<p>Thus far, musdb only supported metric units for length, width, diameter, etc. It is now also possible to enter measurements in inches and feet. For searching objects smaller or larger than a given number, the number is still expected to be provided in millimeters.</p>



<h4 class="wp-block-heading">Reworked Institution-Wide Settings Page</h4>



<p>Certainly the main focus of our work on improving musdb has been a rather extensive overhaul of the institution-wide settings page. This page is available for users of the user role &#8220;museum director&#8221; and can be reached through the academy-icon in the navigation.</p>



<p>With the batch of updates, the page gets a new design with an always visible table of contents and rather extensive descriptions of each of the available settings. We removed some outdated and confusing options while adding new ones for the newly added <a href="https://blog.museum-digital.org/2022/08/25/strict-modes/">strict modes</a> and inventory number suggestions.</p>



<h4 class="wp-block-heading">Suggestions for Inventory Numbers for New Objects</h4>



<p>On the institution-wide settings page, it is now possible to set a scheme for how the museum forms its inventory numbers. Variable parts are expressed using placeholders:</p>



<ul class="wp-block-list">
<li><code>{no} </code>for a number counting up. For a counter padded to a given number of digits, a number may be added after the place holder (e.g. <code>{no}6</code> for a 6 digit counter in the inventory number.</li>



<li><code>{c_sig} </code>for a signature of the collection</li>



<li><kbd><code>{year}</code></kbd> for the ongoing calendar year).</li>
</ul>



<p>If a regular inventory number in the house is, say, &#8220;2022-000025&#8221;, the scheme would thus be <code>{year}-{no}6</code>.</p>



<p>If an inventory number scheme has been set, an additional suggestion button will appear in front of the entry field for inventory numbers on the page for adding new objects.</p>



<h4 class="wp-block-heading">Searching for Objects by Their Entry Dates</h4>



<p>Similar to how secondary search indexes for measurements greater or smaller than a given value have existed for some time, entry dates, estimation dates, etc. are now made properly searchable through the object search in musdb. For this, dates need to be set in a coherent, maschine-readable form that is greatly aided by the new strict modes.</p>



<h4 class="wp-block-heading">Strict Modes</h4>



<p>See the <a href="https://blog.museum-digital.org/2022/08/25/strict-modes/">dedicated blog post</a> on this topic.</p>



<h4 class="wp-block-heading">Deletion Buttons in the Toolbar of Entry Pages</h4>



<p>If one wanted to delete an object group, one thus far needed to find the object group in the object group overview and delete it from there. There was no option to delete it right from the page of the object group itself.</p>



<p>For a more straight-forward control, we now added deletion buttons on the editing pages of object groups, exhibitions, etc. These deletion buttons can be found in the toolbar on the right of the screen.</p>



<h4 class="wp-block-heading">PNG Supported When Uploading Object Images</h4>



<p>Since object images are almost always photos or scans that feature a multitude of colors and few solid blocks of color, JPG is a much better format than PNG for storing (compressed) object images. musdb hence only accepted JPG images for uploads thus far. Since some museums however have internal rules for keeping their object images&#8217; working copies in PNG, we now allow PNG uploads and then convert the PNG images to JPG during the upload process.</p>



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



<h4 class="wp-block-heading">License Descriptions Consistently Displayed on Object Pages</h4>



<p>Until last month, a description of the metadata license of an object page (to be found at the bottom of the page) was only available for the license CC BY-NC-SA. We now removed the exception and made descriptions and links to the license text available for all available licenses.</p>



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



<ul class="wp-block-list">
<li>Improved documentation</li>



<li>Further modularize parsers</li>



<li>Added new parsers for EasyDB (work in progress)</li>



<li>Allow importing images by their URLs to locally hosted ones</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>
					
		
		
			</item>
		<item>
		<title>Monthly museum-digital user meetup (August 2022) / New features</title>
		<link>https://blog.museum-digital.org/2022/08/16/monthly-museum-digital-user-meetup-august-2022-new-features/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Tue, 16 Aug 2022 12:45:11 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Project page www.museum-digital.org]]></category>
		<category><![CDATA["Objects on map"]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Map views]]></category>
		<category><![CDATA[Monthly meetup]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<category><![CDATA[Object selection (musdb)]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3351</guid>

					<description><![CDATA[On Tuesday last week we had our first international user meetup. As proposed, we mainly discussed recent updates and new features before opening up the general discussion. In the process, we also wrote a list of the new features introduced with short notes on each. You can find it below. The next monthly meetup is <a href="https://blog.museum-digital.org/2022/08/16/monthly-museum-digital-user-meetup-august-2022-new-features/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>On Tuesday last week we had our first international user meetup. As proposed, we mainly discussed recent updates and new features before opening up the general discussion. In the process, we also wrote a list of the new features introduced with short notes on each. You can find it below.</p>



<p>The next monthly meetup is scheduled for Tuesday, September 6th 2022, 5 p.m. (this post will be updated with a link to the meeting about a week before the meeting, as we are currently trying to organize a meeting room at Zoom or a similar service).</p>



<p><strong>Update</strong>: The meeting will take place at https://meet.jit.si/museum-digital-meetup-202209</p>



<span id="more-3351"></span>



<h2 class="wp-block-heading">Recent Updates and New Features</h2>



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



<h4 class="wp-block-heading">XML Export</h4>



<p>Creating new export formats for XML exports (beyond the main export formats md:xml and LIDO 1.0) is now possible using XSL files stored in a new git sub-repository. This git sub-repository is open source. As registration on our main Gitea instance is however restricted, please send a mail before contributing.</p>



<p>In line with this, we have also improved the representation of uncertainty in our default LIDO 1.0 exports. As version 1.1 of the LIDO standard has been recently released, we have also begun working on a LIDO 1.1 export.</p>



<p>Note: The pre-generated exports available through the &#8220;quick export&#8221; option are and will still only generated for LIDO 1.0 and md:xml.</p>



<h4 class="wp-block-heading">Required coordinates when adding new museums</h4>



<p>This update is only relevant to regional administrators. Coordinates of the institution are now required for adding new institutions.</p>



<h4 class="wp-block-heading">QR Codes</h4>



<p>QR codes can now also be exported in <a href="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics">SVG</a> and <a href="https://en.wikipedia.org/wiki/Encapsulated_PostScript">EPS</a>, the two primary vector graphics format for use on the web and professional print layouting.</p>



<p>Another important improvement on QR codes is a new page that simply lists all QR codes leading to the object editing pages of a given search result in musdb. This page offers the option to manually set the size of the QR codes, so that suitable QR codes for internal collection and location management can be printed in bulk in a less paper-consuming way.</p>



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



<p>A calendar view for all the events in the museum (events, start and end of an exhibition, start and end of loans) is now available. It can be reached by hovering the mouse over the puzzle symbol in the navigation. On the calendar page, single calendars can be selected or deselected and one subscribed to using one&#8217;s external calendar programm (e.g. Outlook, Thunderbird, or a mobile phone&#8217;s calendar).</p>



<p>The calendar, and especially the possibility to subscribe to the calendars, is also a first step towards enabling users to set reminders on object pages as this makes much more sense if the reminders can be integrated with one&#8217;s regular calendar application.</p>



<p>The calendar view is built using <a href="https://ui.toast.com/tui-calendar">TUI calendar</a>.</p>



<h4 class="wp-block-heading">Institution-wide Settings and Adding Objects</h4>



<p>The page for institution-wide settings has been re-designed to make it easier navigatable. The table of contents is now always visible, and the section &#8220;links to the institution elsewhere on the web&#8221; has been moved to the institution page.</p>



<p>There however are also some new options on the page. On the one hand, users can now enable or disable the image categorization when uploading images directly when adding new objects (the image recognition is render blocking and often hurts performance more than it actually benefits the inventorization). On the other, it is now possible to add additional fields to be directly accessible upon adding new objects and to make these required. It thus, for example, becomes possible to require a location to be provided before it can be recorded in the system altogether.</p>



<h4 class="wp-block-heading">Watch list</h4>



<p>The watch list feature has been completely re-implemented. The watch list is now generated completely in the browser using easily cache-able data retrieved from APIs. This, first of all, makes the watch list much faster to load and much less of a burden on the server side.</p>



<p>But the new watch list also comes with some new features:</p>



<ul class="wp-block-list">
<li>Users can now have multiple watch lists on the server</li>



<li>Users can share their currently active watch list with other users of the same museum</li>



<li>It is now possible to search objects by a watch list (or transfer the watch list into a search result). Thus, all batch editing and export functions available for object search results are now also available for watch lists. Obviously, this also allows for the watch list&#8217;s objects to be filtered by their place, collection, etc.</li>



<li>Objects can now be added to the watch list in bulk.</li>
</ul>



<h4 class="wp-block-heading">Object search</h4>



<p>The map view of object search results now updates the URL with positions and zoom factor when one browses the map. One can thus share a link to the exact same position one is currently viewing to one&#8217;s colleagues.</p>



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



<p>The API can now be used to delete objects.</p>



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



<p>Error messages are now visible for four seconds as opposed to the regular 2.4 seconds other feedback messages on inputs are visible.</p>



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



<p>Similar to the referencable maps of object search results in musdb, &#8220;objects on a map&#8221; maps in the frontend <a href="https://blog.museum-digital.org/2022/07/22/referencable-maps-in-the-frontend-and-in-musdb/">are now also referencable</a>. We have also added a legend of event types on the same map.</p>



<h3 class="wp-block-heading"><a href="http://museum-digital.org">museum-digital.org</a></h3>



<p><a href="http://museum-digital.org">museum-digital.org</a>, the general website introducing museum-digital, has been reworked on a new technical basis. It is now statically generated once a day, reducing server costs and increasing performance. There are also many new texts, some new features (such as FAQs) and banner pictures that make the page more attractive.</p>



<p>The contents of the page are licensed under CC BY 4.0 International and can be edited on GitHub (See the repositories for the <a href="https://github.com/museum-digital/museum-digital.org-en">English version</a> of the site and the <a href="https://github.com/museum-digital/museum-digital.org-de">German version</a>).</p>



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



<p>The parser for importing images by their file names now offers a setting option to mark a certain part of a file name as an indicator to import the given image file as a hidden / non-public image.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Image: <a href="https://www.jpl.nasa.gov/galleries/visions-of-the-future">Courtesy NASA/JPL-Caltech</a>.</p>



<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/2022/08/55-cancri-e_cut.jpg</url><width>539</width><height>600</height></post-thumbnail>	</item>
	</channel>
</rss>
