<?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>md:term | museum-digital: blog</title>
	<atom:link href="https://blog.museum-digital.org/category/development/development-md-term-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>Sun, 07 Jul 2024 23:50:34 +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>md:term | 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>Reconciliation APIs arrive to museum-digital</title>
		<link>https://blog.museum-digital.org/2024/07/03/reconciliation-apis-arrive-to-museum-digital/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Wed, 03 Jul 2024 01:36:15 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[md:term]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Controlled Vocabularies]]></category>
		<category><![CDATA[Data quality]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Reconciliation API]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4164</guid>

					<description><![CDATA[Imagine you have a spreadsheet with potentially unclean data or data that is not confirmed to be interoperable. A museum may want to migrate their data to a different system or share it with an aggregator or a researcher may want to analyze data from different museums where each has their own thesaurus. To make <a href="https://blog.museum-digital.org/2024/07/03/reconciliation-apis-arrive-to-museum-digital/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>Imagine you have a spreadsheet with potentially unclean data or data that is not confirmed to be interoperable. A museum may want to migrate their data to a different system or share it with an aggregator or a researcher may want to analyze data from different museums where each has their own thesaurus. To make the data legible to an external service or to understand that where one museum says &#8220;shoe&#8221; and another says &#8220;shoes&#8221; the exact same thing is meant, it makes sense to check the terms in question against larger (norm data) databases and add their ID for the entity in question. Thus, &#8220;shoe&#8221; and &#8220;shoes&#8221; become understandable as the same.</p>



<p>This process is called reconciliation. One of the most used tools to actually connect to external services and reconcile data this way is OpenRefine. But to do so, OpenRefine needs to be able to communicate with such services. The open standard by which they communicate is the <a href="https://www.w3.org/community/reports/reconciliation/CG-FINAL-specs-0.2-20230410/">Reconciliation API</a> specification. Depending on how completely the API has been implemented, the consuming software may offer additional features such as offering alternatives, suggesting entries or displaying previews of entries made available through the API.</p>



<p>Since this weekend, museum-digital offers such APIs for different types of data.</p>



<p>In md:term, reconciliation APIs were added for each of the available controlled vocabularies. Besides the controlled vocabularies of museum-digital (tags, actors, places, times) this means that users of OpenRefine can now reconcile their data with select other vocabularies such as the <em>Oberbegriffsdatei</em> or the <em>hessische Systematik</em>. Besides implementing exact and partial matching of requested terms, this implementation features previews.</p>



<p>Two additional points are noteworthy in terms of md:term&#8217;s implementation of the reconciliation API specification.</p>



<p>1) Similar to museum-digital&#8217;s import tool, md:term&#8217;s reconciliation service attempts to clean up entered terms before reconciling. As such times are automatically rewritten (&#8220;1912 bis 1914&#8221; [1912 through 1914] becomes &#8220;1912-1914&#8221;), question marks and other markers of uncertainty are removed, and &#8211; whereever known &#8211; autocorrections stored in the city (Frankfurt a.M. &gt; Frankfurt am Main) are applied to the terms.<br>2) Multilinguality: Whereas the current version of the regular reconciliation API does not consider multilinguality, the above-mentioned auto-corrections and rewriting are language-dependent. And so are previews and names of entities in md:term for museum-digital&#8217;s vocabularies. Hence, an additional parameter for the requested language can be supplied.</p>



<p>Reconciliation APIs for md:term may be found on the download page linked in the sidebar. Going this way, the language parameter is automatically set to the user&#8217;s current language.</p>



<h2 class="wp-block-heading">Reconciliation by Inventory Number</h2>



<p>To identify objects available published through museum-digital, a reconciliation API now exists in the frontend as well. It can be found at <code>/reconcile/invno/</code> on each instance of museum-digital (e.g. <a href="https://hessen.museum-digital.de/reconcile/invno/">here</a> for the Hessian instance.<br>It reconciles entries by their inventory number. An additional number may be added to the URL to search only within a single institution. Where <code>https://hessen.museum-digital.de/reconcile/invno/</code> allows matching objects by inventory numbers across all institutions publishing their objects on the Hessian instance of museum-digital, the <code>https://hessen.museum-digital.de/reconcile/invno/1</code> will thus only search within the collections of the Freies Deutsches Hochstift / Frankfurter Goethe-Museum (the institution of the ID 1).</p>



<h2 class="wp-block-heading">Reconciling GLAM data using the MD:term reconciliation API: an example</h2>



<p><em>As they have much more experience with OpenRefine, I asked the colleagues from digiS whether they could provide a description of how to actually use the reconciliation API from a user perspective. This section is theirs:</em></p>



<p>Using the reconciliation API in OpenRefine is straightforward (cf. the <a href="https://openrefine.org/docs/manual/reconciling">OpenRefine documentation</a> for a general introduction). Let’s walk through a typical workflow using GLAM data and the MD:term API!</p>



<p>Our sample dataset (adapted from <a href="https://berlin.museum-digital.de/collection/806">actual data provided by the Sportmuseum Berlin</a>) features, among others, columns on material/technique, object type and places.</p>



<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 fetchpriority="high" decoding="async" width="1024" height="398" data-id="4166" src="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-01-Overview-1024x398.png" alt="" class="wp-image-4166" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-01-Overview-1024x398.png 1024w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-01-Overview-300x116.png 300w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-01-Overview-1536x596.png 1536w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-01-Overview.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<p>These elements are just strings and consequently not linked to any authority file. Strings are not guaranteed to be unequivocal, nor are they particularly suitable for retrieval, programmatic reuse or multilingual contexts. In order for the data to be as useful as possible, let’s reconcile them with an authority file, in our case the MD:term vocabularies now readily accessible also via a reconciliation API.</p>



<p>If you have never used the MD:term reconciliation service you first have to add it to OpenRefine. Click on the small triangle in the header of the column you want to reconcile. Select <em>Reconcile → Start reconciling. </em></p>



<figure class="wp-block-image size-large"><img decoding="async" width="838" height="1024" src="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-02-Start-reconcile-838x1024.png" alt="" class="wp-image-4167" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-02-Start-reconcile-838x1024.png 838w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-02-Start-reconcile-245x300.png 245w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-02-Start-reconcile.png 903w" sizes="(max-width: 838px) 100vw, 838px" /></figure>



<p>In the following window, add the API endpoint you want to use (cf. <a href="https://term.museum-digital.de/downloads">https://term.museum-digital.de/downloads</a> for a list of MD:term endpoints).</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1004" height="306" src="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-03-add-service.png" alt="" class="wp-image-4168" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-03-add-service.png 1004w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-03-add-service-300x91.png 300w" sizes="(max-width: 1004px) 100vw, 1004px" /></figure>



<p>Now you can select the service for reconciliation:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="928" height="473" src="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-04-Reconcile1.png" alt="" class="wp-image-4169" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-04-Reconcile1.png 928w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-04-Reconcile1-300x153.png 300w" sizes="auto, (max-width: 928px) 100vw, 928px" /></figure>



<p>In the following window, the only really important decision you have to take is whether or not to automatically match “candidates with high confidence”. Auto-matching speeds up the whole process, but you have less control over what happens with your data.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="671" src="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-05-Reconcile2-1024x671.png" alt="" class="wp-image-4170" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-05-Reconcile2-1024x671.png 1024w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-05-Reconcile2-300x197.png 300w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-05-Reconcile2-1536x1006.png 1536w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-05-Reconcile2.png 1804w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Hit “Start reconciling” to trigger the reconciliation process. You can now see that the strings have become links. In fact, they have been linked to possible entries in MD:term. If you choose the auto-match option, the most probable candidates have been selected automatically. If not, you have to select the candidate you want to match manually by clicking the arrow to the left. One arrow matches the value in the selected row only, two arrow match all identical values in the entire columns automatically.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1022" height="626" src="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-06-Enriched.png" alt="" class="wp-image-4171" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-06-Enriched.png 1022w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-06-Enriched-300x184.png 300w" sizes="auto, (max-width: 1022px) 100vw, 1022px" /></figure>



<p>Once you’re done with the reconciliation you can, for example, write the IDs of the reconciled values into a new column. Click once again on the small triangle on the left side of the top row of the column you’re working on. Go to <em>Reconcile </em>and <em>Add entity identifiers column.</em></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="696" height="590" src="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-07-Add-identifier-column.png" alt="" class="wp-image-4172" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-07-Add-identifier-column.png 696w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-07-Add-identifier-column-300x254.png 300w" sizes="auto, (max-width: 696px) 100vw, 696px" /></figure>



<p>Name the column that is to be added and you will have a new column that contains the MD:term IDs.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="406" src="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-08-final-1024x406.png" alt="" class="wp-image-4173" srcset="https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-08-final-1024x406.png 1024w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-08-final-300x119.png 300w, https://blog.museum-digital.org/wp-content/uploads/2024/07/OpenRefine-08-final.png 1362w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>API documentation for frontend and md:term</title>
		<link>https://blog.museum-digital.org/2023/08/16/api-documentation-for-frontend-and-mdterm/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Wed, 16 Aug 2023 21:44:38 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[md:term]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[New Features]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3831</guid>

					<description><![CDATA[md:term was designed to provide an API first and foremost. The frontend supported a full API providing to all access that the HTML version does since about 2016. We never got around to fully and systematically document the APIs however. Starting today, an OpenAPI documentation is available for both md:term and the frontend of museum-digital. <a href="https://blog.museum-digital.org/2023/08/16/api-documentation-for-frontend-and-mdterm/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>md:term was designed to provide an API first and foremost. The frontend supported a full API providing to all access that the HTML version does since about 2016. We never got around to fully and systematically document the APIs however. Starting today, an <a href="https://www.openapis.org/">OpenAPI</a> documentation is available for both <a href="https://en.about.museum-digital.org/software/term/">md:term</a> and the <a href="https://en.about.museum-digital.org/software/frontend/">frontend</a> of museum-digital.</p>



<p>Along with this, we can gladly annouce a new, updated and much more performant search API for md:term (see the API documentation for now).</p>



<p>You can access the documentation here:</p>



<ul class="wp-block-list">
<li><a href="https://term.museum-digital.de/swagger/">md:term</a></li>



<li><a href="https://global.museum-digital.org/swagger/">frontend</a> (via the global portal)</li>
</ul>
]]></content:encoded>
					
		
		
			</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>Multilinguality in md:term</title>
		<link>https://blog.museum-digital.org/2020/02/02/multilinguality-in-mdterm/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Sun, 02 Feb 2020 13:16:55 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[md:term]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Controlled Vocabularies]]></category>
		<category><![CDATA[Multilinguality]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=731</guid>

					<description><![CDATA[Since last weekend, the last publicly accessible page of museum-digital has been made fully multilingual: md:term. md:term is the central public frontend for our controlled vocabularies of actors, places, tags, and time terms. The probably most important part of md:term is its API, which is also &#8211; for example &#8211; used by the &#8220;graph navigation&#8221; <a href="https://blog.museum-digital.org/2020/02/02/multilinguality-in-mdterm/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p>Since last weekend, the last publicly accessible page of museum-digital has been made fully multilingual:  <a href="https://de.about.museum-digital.org/software/term_nodac">md:term</a>. md:term is the central public frontend for our controlled vocabularies of actors, places, tags, and time terms.</p>



<p>The probably most important part of md:term is its API, which is also &#8211; for example &#8211; used by the <a href="https://blog.museum-digital.org/de/2019/05/09/die-graphennavigation-netzwerke-und-verbindungen-in-museum-digital-erkennen/">&#8220;graph navigation&#8221;</a> and is available for external use as well. Since we &#8211; like anywhere else &#8211; do not require authentication for accessing the md:term API, we don&#8217;t have a full list of API consumers which we could contact about API changes. Hence, we hope that this blog post will also alert them to make necessary changes.</p>



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



<p>How then, is md:term made multilingual? And how does it express itself in md:term?</p>



<p>Months ago, we implemented the multilinguality in our controlled vocabularies by adding an additional translation table, which means that there is the base entry, which is entered by the museums. The &#8220;norm data editors&#8221; then enrich the data and also attempt to add translations to a separate table by fetching data from <a href="https://www.wikidata.org/">Wikidata</a>. If translations in the user&#8217;s language are available, they replace the &#8220;base entry&#8221; when outputting the data.</p>



<p>In the API, the base entries are replaced as well. If they are used, it hence makes sense to explicitly state the wanted language of the entry. To fetch German language information on Berlin easily, one should thus query  <code><a href="https://term.museum-digital.de/md-de/place/61/json?lang=de">https://term.museum-digital.de/md-de/place/61/json?lang=de</a></code> instead of <code><a href="https://term.museum-digital.de/md-de/place/61/json">https://term.museum-digital.de/md-de/place/61/json</a></code> (which, before multilinguality, would have been the appropriate URL).</p>



<p>Alternatively, there is a new section in the JSON API: <code>langs</code>. All available translations can be found there listed by language.</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/2020/02/Screenshot-md-term-Multilinguality-2020-02-1.png</url><width>600</width><height>401</height></post-thumbnail>	</item>
	</channel>
</rss>
