Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Humboldt university training #202

Merged
merged 5 commits into from
May 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions humboldt_university/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Humboldt-Universität Training

The training will be provided online using Zoom with practical tasks associated with the training. It is expected that the training will be given to roughly 5 people.

* Introduction to IIIF - 1:10
* Basics of IIIF functionality
* Finding manifests
* Using Mirador & Universal Viewer
* Making changes to Manifests - e.g. rights
* Open Q&A
* Break - 20mins
* Looking into Aggregation - 1:10
* Europeana example
* Manuscriptorium
* ARGO Maps
* IIIF discovery
9 changes: 9 additions & 0 deletions humboldt_university/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Summary

- [Overview](README.md)
- [What is IIIF](part1/whatisiiif.md)
- [Exercise: Finding Census Manifests](census.md)
- [Exercise: Finding IIIF Manifests](part1/guides.md)
- [Deep dive into the Census Manifests](census-manifests.md)
- [A look into Aggregation](aggregation.md)
- [Extra: Create an Exhibit](exhibit/exhibit.md)
36 changes: 36 additions & 0 deletions humboldt_university/aggregation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Aggregation

Aggregation is the action of bringing together a number of digital objects from different locations into one Website. This allows you to gather together related content into a single portal and potentially develop specific tools for that content. There are a number of organizations which have done this and integrated IIIF. The advantage of doing integration with IIIF is that you don't need to copy the Image files but instead can harvest the IIIF Manifests and embed them on your site.

There are three examples of aggregation included in this guide.

## Example 1 - Manuscriptorium
https://new.manuscriptorium.com/hub/catalog/default/dashboard?lang=en

Manuscriptorium seeks to aggregate the old written and documentary heritage (medieval and early modern manuscripts, incunabula, and early printed books until c. 1800) of European civilisation in a united user interface and present it to end users as well as have other sources use it (Manuscriptorium is, for example, a domain aggregator for Europeana). In addition to being an extensive digital library, Manuscriptorium has the ambition to become a virtual research environment for working with historical documents and collections by creating digital tools adapted as modules in a digital network. As a result, user data can be created in the personalised environment of an individual account and published in correlation with the aggregated content (data and metadata). The ultimate goal is the full integration in the digital network environment with the use of data standards, digitised document indexes, and persistent addressing of both complex digital documents (manuscripts, books) and their partial objects (pages) or fragments (page details) where blockchainisation is an inspiration rather than big data.

from https://new.manuscriptorium.com/en/about-us/

## Example 2 - Europeana example
https://www.europeana.eu/en/search?page=1&qf=collection%3Aindustrial&query=provider_aggregation_edm_isShownBy%3A%2Aiiif%2A&view=grid

* A large scale aggregator
* Use a variety of methods to ingest content. Both IIIF Discovery and other technologies

To find all 4 million IIIF items: https://www.europeana.eu/portal/en/search?q=provider_aggregation_edm_isShownBy%3A*iiif*&view=grid

## Example 3 - ARGO Maps
https://www.argomaps.org/

This is a different type of aggregation focused on maps around the American Revolution.

* Currently 16 partners
* Includes cross instution themes and stories
* Allows Georeferencing of Maps
* Allows you to explore through a map

## Methods for aggregation

Single item

IIIF discovery and other aggregation standards
286 changes: 286 additions & 0 deletions humboldt_university/census-manifests.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,286 @@
# Deep dive into Census Manifests

In this section we are going to have a look at one of the easyDB manifests to see whats there and possible improvements. We will be using the following Manifest:

https://database.census.de/api/v1/objects/uuid/4b3714d5-6112-47b3-ba6e-97f816e3fa41/format/iiif/v3/manifest.json

while doing this we will also have a look at the item in Mirador so we can see where the content comes from:

https://projectmirador.org/embed/?iiif-content=https://database.census.de/api/v1/objects/uuid/4b3714d5-6112-47b3-ba6e-97f816e3fa41/format/iiif/v3/manifest.json

The first part we will look at is the top level of the manifest particularly the following sections:

```
{
"@context": "http://iiif.io/api/presentation/3/context.json",
"id": "https://database.census.de/api/v1/objects/uuid/4b3714d5-6112-47b3-ba6e-97f816e3fa41/format/iiif/v3/manifest.json",
"label": { },
"metadata": [ ],
"provider": [ ],
"rendering": [ ],
"requiredStatement": {},
"seeAlso": [ ],
```

## Label

The label is the title of the item and you can see this prominently displayed in Mirador. In the example item it has the label of 'inv. 405 A v' and the language is set to US English:
```
"label": {
"en-US": [
"inv. 405 A v"
]
},
```
## Metadata

The [metadata section](https://iiif.io/api/presentation/3.0/#metadata) is an open list of metadata about the item. This is shown in the side panel of Mirador and should give the user enough context to understand what they are looking at if they open the Manifest in a viewer which isn't on your site.

In the example Manifest there are a number of fields but we are going to focus on the first one 'Label Name'. In the metadata section you have a 'label' and a 'value' so for example 'author' maybe a label and the value could be 'Charles Dickens'. Both the label and the value can be translated into multiple languages. In the example below the label has both a English label and a German Label (but note the actual text 'Label Name' is in English for both cases). The value doesn't have a language associated with it so its label as `none`.

The value contains HTML which is valid but not strictly necessary in this case and does lead to some strange formatting in Mirador.

```
metadata": [
{
"label": {
"de-DE": [
"Label Name"
],
"en-US": [
"Label Name"
]
},
"value": {
"none": [
"<span class=\"value\">\n inv. 405 A v</span>"
]
}
},
```
The value of Creator in particular would be better formatted as separate fields. Currently it has:

```
<span class="record">
<span class="value">
<span class="label">
<i>Creation Date</i>
</span>
<span class="nested">
<span class="record">
<span class="value">
<span class="label">
<i>Date</i>
</span>
<a href="https://database.census.de/api/v1/objects/uuid/e1ef905b-c756-41f2-8b2e-e9207ed469a3/format/html">post 1504-ante 1536</a>
</span>
<span class="value">
<span class="label">
<i>Earliest Date</i>
</span>
1505-01-01 00:00:00
</span>
<span class="value">
<span class="label">
<i>Latest Date</i>
</span>
1536-01-05 00:00:00
</span>
</span>
</span>
</span>
<span class="value">
<span class="label">
<i>Actors Involved in Creation</i>
</span>
<span class="nested">
<span class="record">
<span class="value">
<span class="label">
<i>Actor</i>
</span>
<a href="https://database.census.de/api/v1/objects/uuid/c2112528-5760-4e1b-b2d4-c015ff1d0a2a/format/html">Peruzzi, Baldassare</a>
</span>
<span class="value">
<span class="label">
<i>Actor Role</i>
</span>
<a href="https://database.census.de/api/v1/objects/uuid/dc1f3d3e-755c-4cbd-b8bd-d69facc885c3/format/html">artist/author</a>
</span>
</span>
</span>
</span>
</span>
```

For example:
```
{
"label": {
"en-US": [
"Creation Date"
]
},
"value": {
"none": [
"post 1504-ante 1536"
]
}
},
```

## provider

This is where you can link back to the institution that is publishing the resource. In this case the Census website. Unfortunately this property isn't well supported by Viewers currently (see: https://iiif.io/api/cookbook/recipe/0234-provider/)

```
"provider": [
{
"id": "https://database.census.de",
"label": {
"de-DE": [
""
],
"en-US": [
"Census Database"
]
},
"logo": [
{
"format": "image/jpeg",
"height": 720,
"id": "https://database.census.de/api/v1/eas/download/215665/870edd2273b3393e9aaea88baeb6b077fb3bfa32472a88218fcfb04f870d5984/original.jpg",
"service": {
"id": "https://database.census.de/api/v1/eas/iiif/215665/870edd2273b3393e9aaea88baeb6b077fb3bfa32472a88218fcfb04f870d5984/original.jpg",
"profile": "level1",
"type": "ImageService3"
},
"type": "Image",
"width": 586
}
],
"type": "Agent"
}

],
```

## rendering

Rendering is where you advertise different versions of the resource you are currently looking at. Typically these are things like a PDF version of a resource. In this manifest there is a HTML version of the resource. Note if you are linking back to the conical location of the item you would use a `homepage` property.

```
rendering": [
{
"format": "text/html",
"id": "https://database.census.de/api/v1/objects/uuid/4b3714d5-6112-47b3-ba6e-97f816e3fa41/format/html",
"label": {
"da-DK": [
"HTML representation"
],
"de-DE": [
"HTML Representation"
],
"en-US": [
"HTML representation"
],
"fi-FI": [
"HTML-esitys"
],
"fr-FR": [
"Représentation HTML"
],
"it-IT": [
"Rappresentazione HTML"
],
"ru-RU": [
""
],
"sv-SE": [
"HTML representation"
],
"uz-UZ": [
""
]
},
"type": "Text"
}
],
```

## requiredStatement
In the example this is empty but this is where you would put attribution or mention where the material comes from. You can see a populated version of this rights statement in this [cookbook recipe](https://iiif.io/api/cookbook/recipe/0008-rights/).

```
requiredStatement": {
"label": {
"de-DE": [
""
],
"en-US": [
""
]
},
"value": {
"de-DE": [
""
],
"en-US": [
""
]
}
},
```

## seeAlso

See Also is where you can link out to Machine Readable metadata about the item. This is particularly useful for aggregators like Europeana which requires structured metadata to be able to accept items into their collection.

In the example manifest it links out to some easydb XML metadata.

```
seeAlso": [
{
"id": "https://database.census.de/api/v1/objects/uuid/4b3714d5-6112-47b3-ba6e-97f816e3fa41/format/xml_easydb",
"type": "Dataset",
"format": "text/xml",
"label": {
"da-DK": [
"XML (easydb)"
],
"de-DE": [
"XML (easydb)"
],
"en-US": [
"XML (easydb)"
],
"fi-FI": [
"XML (easydb)"
],
"fr-FR": [
"XML (easydb)"
],
"it-IT": [
"XML (easydb)"
],
"ru-RU": [
""
],
"sv-SE": [
"XML (easydb)"
],
"uz-UZ": [
""
]
}
}
],
```

## Other sections

The other parts of the manifest are the `items` where the different pages of the manuscript live and the `structures` element which is where you setup a table of contents. You can see the following table of contents for a Vatican manifest:

https://projectmirador.org/embed/?iiif-content=https://digi.vatlib.it/iiif/MSS_Pal.lat.957/manifest.json

The table of contents for the easyDb manifest looks a but confused and doesn't work in mirador. It looks like the metadata has been incorrectly copied into the Structures element.
Loading
Loading