Skip to content

Commit

Permalink
Merge pull request #64 from Edirom/gsoc2025
Browse files Browse the repository at this point in the history
add GSOC ideas page
  • Loading branch information
anneferger authored Feb 11, 2025
2 parents eed34c7 + 9cc80c7 commit cceb0b2
Show file tree
Hide file tree
Showing 10 changed files with 378 additions and 17 deletions.
4 changes: 4 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,7 @@ copy_to_dest:
# target: assets/js/
# - source: node_modules/jquery/dist/jquery.min.js
# target: assets/js/

collections:
gsoc:
output: false
3 changes: 3 additions & 0 deletions _data/topnav.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@
- name: Blog
link: /blog.html
glyph: rss
- name: GSoC
link: /gsoc.html
img: https://upload.wikimedia.org/wikipedia/commons/thumb/7/7c/Google_Summer_of_Code_sun_logo_2022.svg/240px-Google_Summer_of_Code_sun_logo_2022.svg.png
74 changes: 74 additions & 0 deletions _gsoc/edirom-3D-integration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
title: Integration of 3D objects and 3D viewer in Edirom Online
mentors:
- name: Daniel Röwenstrunk
github: roewenstrunk
- name: Dennis Friedl
github: DennisFriedl
skills:
- Javascript
- XQuery
- REST APIs
forum: https://matrix.to/#/#gsoc-public:edirom.de
est_project_length: 175 hours
difficulty: medium
keywords:
- REST
- API
- OpenAPI
- Swagger
- Javascript
- ExtJS
- 3D
- Kompakkt
- Open Source
- XQuery
---


[Edirom Online] is a software for the presentation and analysis of critical
musical editions in a digital format, particularly in the fields of musicology
and philology. Edirom Online supports various data formats commonly used in
digital humanities, such as TEI (Text Encoding Initiative) for textual data
and MEI (Music Encoding Initiative) for musical data. This allows for the
integration of different data formats, starting in the early days with texts,
images and music and adding audio and even film within a single edition.
The Edirom idea was born in 2004 at Musikwissenschaftliches Seminar
Detmold/Paderborn and even after several years of Edirom development, the
success of Edirom based on the same core concepts as in the beginning
continues with numerous projects using and developing Edirom tools and creating
digital musical editions with this software.


#### Goal

The goal is to make 3D objects available for editions presented with Edirom Online.
This requires work in the frontend in JavaScript ([ExtJS]) and simple work in the
backend with XQuery. The existing API in [OpenAPI] format is to be extended by
endpoints for metadata of 3D objects and 3D objects themselves. The web component
[Kompakkt Standalone Viewer] is to be used to integrate the 3D viewer into
the front end. The integration is then essentially limited to the introduction
of a new object type. The other object types can serve as a template for all
tasks.

#### Impact

The integration of 3D objects in Edirom Online allows musicologists to use objects
such as instruments and requisites as well as stage sets and architectural models
in editions. This enables connections that can currently only be described verbally.
In addition, Edirom Online can then also be used in other contexts for the presentation
of editions, as relevant media types are supported.

#### Warm-up Tasks

1. **Get familiar with Edirom Online**
* Have a look at [Weber Clarinett Quintett] edition in Edirom Online
2. **Have a look at Kompakkt and 3D objects in humanities**
3. **Get familiar with XQuery and OpenAPI**


[Edirom Online]: https://github.com/Edirom/Edirom-Online
[Kompakkt Standalone Viewer]: https://github.com/Kompakkt/StandaloneViewer
[ExtJS]: https://www.sencha.com/products/extjs/
[OpenAPI]: https://www.openapis.org/
[Weber Clarinett Quintett]: https://klarinettenquintett.weber-gesamtausgabe.de/
48 changes: 48 additions & 0 deletions _gsoc/edirom-frontend-testing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
title: Front-end testing for Edirom-Online
mentors:
- name: Daniel Jettka
github: daniel-jettka
skills:
- Selenium
- JavaScript
- CI/CD
forum: https://matrix.to/#/#gsoc-public:edirom.de
est_project_length: 120 hours
difficulty: easy
keywords:
- Testing
- User interface
- CI/CD pipelines
- JavaScript
- Musicology
- Editions
---

[Edirom-Online] is a software for the presentation and analysis of critical musical editions in a digital format, particularly in the fields of musicology and philology. Edirom-Online supports various data formats commonly used in digital humanities, such as [TEI] (Text Encoding Initiative) for textual data and [MEI] (Music Encoding Initiative) for musical data. This allows for the integration of different data formats, starting in the early days with texts, images and music and adding audio and even film within a single edition. The Edirom idea was born in 2004 at Musikwissenschaftliches Seminar Detmold/Paderborn and even after several years of Edirom development, the success of Edirom based on the same core concepts as in the beginning continues with numerous projects using and developing Edirom tools and creating digital musical editions with this software.

#### Goal

The front-end of the Edirom is written in JavaScript ([ExtJS]) and is currently modularized and modernized by developing and integrating custom web components. To ensure the quality, functionality, performance, and user-friendliness across different browsers we are seeking for support in implementing front-end testing with [Selenium]. The proposed project includes setting up and configuring a robust test automation framework using Selenium WebDriver for cross-browser testing and integrating it into the existing CI/CD pipelines. Compatibility with modern web browsers, including Chrome, Firefox, Safari, and Edge should be ensured, and reusable and maintainable test scripts to cover core user flows and features should be implemented.

#### Impact

The testing framework will ensure that new code changes do not affect existing functionality. Defects will be clearly identified and meaningfully logged by the tests to allow for resolving the reported issues. This will contribute considerably to the usability and quality of the Edirom software.

#### Warm-up Tasks

1. **Read the documentation and familiarize with the code** of Edirom-Online:
- [Edirom-Online Documentation](https://github.com/Edirom/Edirom-Online/tree/develop/docs)

2. **Familiarize yourself with the issues** of Edirom-Online:
- [Edirom-Online Issues](https://github.com/Edirom/Edirom-Online/issues)

3. **Dive into GitHub CI/CD and Selenium:**
- [GitHub CI/CD](https://github.com/resources/articles/devops/ci-cd)
- [Selenium]

[Edirom-Online]: https://github.com/Edirom/Edirom-Online
[TEI]: https://tei-c.org/
[MEI]: https://music-encoding.org/
[ExtJS]: https://www.sencha.com/products/extjs/
[Selenium]: https://www.selenium.dev/
50 changes: 50 additions & 0 deletions _gsoc/edirom-ontology.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: Building a Knowledge Graph for Edirom Data
mentors:
- name: Hizkiel Alemayehu
github: hizclick
skills:
- SPARQL
- Linked Data
- Python
forum: https://matrix.to/#/#gsoc-public:edirom.de
est_project_length: 90 hours
difficulty: medium
keywords:
- Ontologies
- Linked Data
- SPARQL
- Open Source
- Knowledge graphs
---

[Edirom-Online](https://github.com/Edirom/Edirom-Online) is a software for presenting and analyzing critical musical editions in a digital format, particularly in **musicology** and **philology**. It supports various data formats commonly used in digital humanities, such as **TEI** (Text Encoding Initiative) for textual data and **MEI** (Music Encoding Initiative) for musical data, visualized with **Verovio**. This enables integration of different data formats, initially including texts, images, and music, and later expanding to audio and film within a single edition.

#### Goal
The main goal of this project is to **build a knowledge graph** for the data
formats supported by Edirom-Online to improve **interoperability** and
ensure **data consistency**.
It will also serve as a foundation for **future linked data projects**.
This can be achieved by:

- Using **graph query technologies**.
- Constructing an **ontology** based on existing vocabularies, such as **Dublin Core** and **DICT**.
- Establishing a **structured and standardized ontology** to enhance **data consistency** across other projects using Edirom-Online.
- Supporting **internationalization** efforts of Edirom-Online.

#### Impact
This project will be a **milestone** for Edirom-Online as it will introduce its first **consistent data structure** and **shareable resources**. Improving **interoperability** and **accessibility** will also contribute to the **internationalization** of the software.

#### Warm-up Tasks
To get started with this project, complete the following tasks:

1. **Read the documentation** for Edirom-Online:
- [Edirom-Online Documentation](https://github.com/Edirom/Edirom-Online/tree/develop/docs)

2. **Familiarize yourself with issues** in Edirom-Online:
- [Edirom-Online Issues](https://github.com/Edirom/Edirom-Online/issues)

3. **Learn about building ontologies and linked data:**
- [OWL (Web Ontology Language)](https://www.w3.org/OWL/)
- [Introduction to Linked Data](https://www.w3.org/wiki/LinkedData)
- [SPARQL 1.1 Query Language](https://www.w3.org/TR/sparql11-query/)
43 changes: 43 additions & 0 deletions _gsoc/image_retrieval.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
title: Implement Image Retrieval Algorithm for Printed Text and Sheet Music
mentors:
- name: Dennis Friedl
github: DennisFriedl
- name: Peter Stadler
github: peterstadler
skills:
- JavaScript
- Python
forum: https://matrix.to/#/#gsoc-public:edirom.de
est_project_length: 90 hours
difficulty: medium
keywords:
- Python
- JavaScript
- Image Recognition
- Image Retrieval
- Image Fingerprinting
- Digital Humanities
- Open Source
- Sheet Music
---

Scholarly music editions are increasingly being published in a hybrid format. While many musicians prefer printed music in multiple volumes, digital components offer advanced opportunities for scholarly work. A subproject of Edirom is exploring ways to establish a more direct connection between printed and digital materials.

#### Goal
The goal is to enable users to scan the page they are currently viewing in a printed volume using a mobile device and immediately access relevant digital enhancements tied to that specific page. In the future, these enhancements could, for example, allow the user to explore a historical handwritten text in augmented reality while sitting in front of a physical book.
To achieve this, a lightweight, resource-efficient image retrieval algorithm is required—ideally one that can run on a user’s mobile device (using web technologies) or on a remote server. The algorithm should be able to compare a captured image against a database of several thousand pages. While solutions for image retrieval via hashing/fingerprinting already exist, this task poses two primary challenges:
1. Pages containing text or musical notation often have very similar layouts and may differ only in a few measures or notes, making it easy for a typical low-resolution hashing procedure to miss these subtle distinctions.
2. Because users take photos under real-world conditions, the images are likely to be imperfect (e.g., poorly lit or misaligned) and may include more than just the page content.

#### Impact
The project would lay a crucial foundation for integrating the physical and
digital aspects of musicological research. Scholarly edition projects, such
as the [Korngold Werkausgabe](https://korngold-werkausgabe.de/en), could
leverage this connectivity to develop innovative approaches to working with
scholarly editions.

#### Warm-up Tasks
1. **Get familiar with the look of scholarly editions of music**, e.g. in the [Digital Mozart Edition](https://dme.mozarteum.at/DME/nma/nmapub_srch.php?l=2) or digitized books like [this one](https://books.google.de/books?id=bD-4DwAAQBAJ).
2. **Read about modern solutions to image retrieval**, e.g. in articles like [this](https://link.springer.com/article/10.1007/s11042-023-18007-9)
3. **Familiarize with available libraries** like [blockhash-js](https://github.com/commonsmachinery/blockhash-js), [imghash](https://github.com/pwlmaciejewski/imghash) or [imagehash](https://github.com/JohannesBuchner/imagehash).
69 changes: 69 additions & 0 deletions _gsoc/wega-oai.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
title: Develop an OAI-PMH API for the WeGA-WebApp
mentors:
- name: Peter Stadler
github: peterstadler
- name: Dennis Ried
github: riedde
skills:
- XQuery
- XML
- REST APIs
forum: https://matrix.to/#/#gsoc-public:edirom.de
est_project_length: 350 hours
difficulty: medium
keywords:
- REST
- API
- OpenAPI
- Swagger
- Dublin Core
- Linked Data
- Open Source
- XQuery
---

The [WeGA-WebApp] drives the publication of the digital edition of
Carl Maria von Weber's letters, diaries and writings–and much more.
While there are already various interfaces to interact with the WeGA-WebApp an
API for [OAI-PMH] (Open Archives Initiative Protocol for Metadata Harvesting)
is still missing.
Because the OAI-PMH standard is a widely-used protocol that allows
repositories to expose structured metadata for harvesting by external
institutions, it is a cornerstone for integrating digital resources into global
research networks.


#### Goal

The to be developed API should provide endpoints for common OAI-PMH verbs,
such as `Identify`, `ListMetadataFormats`, `ListIdentifiers`, `ListRecords`, and
`GetRecord`, enabling granular access to the metadata from the WeGA-WebApp.
The task should also include testing the implementation for compliance with
the OAI-PMH standard and documenting the API endpoints, including their
functionality and expected parameters, for internal and external users.


#### Impact

The project would significantly enhance the accessibility, interoperability, and
discoverability of all digital editions served by the WeGA-WebApp, enabling
the project to reach larger academic and cultural audiences.

#### Warm-up Tasks

1. **Get acquainted with the OAI-PMH standard** and the required API endpoints
2. **Familiarize with the WeGA-WebApp**
* Have a look at XQuery as a programming language
* You can build on the already established Linked Data and Dublin Core
interfaces of the WeGA-WebApp, and its existing [Swagger OpenAPI].
* The existing Dublin Core metadata interface provides a solid foundation for
defining the metadata exposure required by OAI-PMH, while the Linked Data
interface may inform URI structures.
* The Swagger OpenAPI can guide the integration of OAI-PMH endpoints
within the broader API ecosystem of the WeGA-WebApp.


[WeGA-WebApp]: https://github.com/Edirom/WeGA-WebApp
[OAI-PMH]: https://www.openarchives.org/pmh/
[Swagger OpenAPI]: https://www.weber-gesamtausgabe.de/api/v1/index.html
13 changes: 10 additions & 3 deletions _includes/topnav.html
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
<div class="row">
<div class="col">
<div class="col topnav">
<ul class="nav nav-pills vife_icons">
{% for item in site.data.topnav %}
<li role="presentation" {% if page.url == item.link %}class="active"{% endif %}>
<a class="navbar-brand vife_icon" href="{{ item.link | relative_url }}">
<span class="fa fa-2x fa-{{ item.glyph }}" aria-hidden="true"></span>
<a class="navbar-brand vife_icon"
href="{{ item.link | relative_url }}">
{% if item.glyph %}
<span class="fa fa-2x fa-{{ item.glyph }}"
aria-hidden="true"></span>
{% elsif item.img %}
<img src="{{ item.img | relative_url }}"
alt="{{ item.name }}" width="40px" height="40px"/>
{% endif %}
<span class="vife_iconText">{{ item.name }}</span>
</a>
</li>
Expand Down
46 changes: 32 additions & 14 deletions _sass/main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -61,30 +61,35 @@ body > .container {
color: #ffffff;
}

.nav-pills > li > a {
border-radius: 4px;
&:hover {
background-color: #eee;
.topnav {
.nav-pills > li > a {
border-radius: 4px;
width: 120px;

&:hover {
background-color: #eee;
}
}
}

.nav-pills > li.active > a {
background-image: -moz-linear-gradient(top,#337ab7,#539ad7);
background-image: -webkit-linear-gradient(top,#135a97,#337ab7); /* Chrome 10-25, iOS 5+, Safari 5.1+ */
background-image: linear-gradient(to bottom,#135a97,#337ab7); /* Chrome 26, Firefox 16+, IE 10+, Opera */
color: white;
.nav-pills > li.active > a {
background-image: -moz-linear-gradient(top, #337ab7, #539ad7);
background-image: -webkit-linear-gradient(top, #135a97, #337ab7); /* Chrome 10-25, iOS 5+, Safari 5.1+ */
background-image: linear-gradient(to bottom, #135a97, #337ab7); /* Chrome 26, Firefox 16+, IE 10+, Opera */
color: white;
}
}

.vife_icon {
text-align: center;
font-size: 2em;
height: 90px;
padding: 10px;
font-size: 2em;
height: 90px;
padding: 10px;
}

.vife_iconText {
display: block;
margin: 20px 20px 10px;
margin-top: 2ex;
/* margin: 20px 20px 10px; */
font-size: 16px;
}

Expand Down Expand Up @@ -161,6 +166,19 @@ figure {
}
}

.gsoc {
h2 {
text-align: center;
margin-top: 2ex;
}
.gsoc-idea-head {
p {
margin-bottom: 0;
}
margin-bottom: $spacer;
}
}

.orcid_icon {
background-image: url('/assets/img/ORCID-iD_icon_unauth_BW_vector.svg');
background-size: 16px 16px;
Expand Down
Loading

0 comments on commit cceb0b2

Please sign in to comment.