ome / ome/ome-model

Specification: changes to include OWL ontologies

Open
#89 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
XSLT
Stars
17
Forks
29
PR merge metrics
No merged PRs in 30d

Description

Introduction

Following the presentation of the Riken Metadatabase at the 2018 OME Users meeting, @norikoba has been driving the translation of the OME xsd schema into OWL ontology. The current version is available as an incubator project at https://gitlab.com/openmicroscopy/incubator/ome-owl/. As discussed recently during the OME team visit in Kobe, this work is now reaching production level.

The ome-model repository was created and consumed starting from Bio-Formats 5.2.0 and OME-Files 0.3.0. It is composed of two components:

  • the specification component contains the XSD schemas, the XSLT transforms and the OME-XML samples for all releases of the OME data model as well as some utility Java classes for creating objects
  • the ome-xml component contains Java and C++ code-generated classes for working with the model

This issue discusses how to integrate of the OWL ontologies as part of the specification component. None of the changes below are formally breaking the specification itself or any of the API although the new file layout would require a few changes discussed in each section.

Specifications

Each release of the data model is versioned using a calendar format of type YYYY-MM and the corresponding XSD schemas are stored under a YYYY-MM folder under specification/src/main/resources/released-schema/.

It was agreed that the OWL ontology should use the same versioning strategy YYYY-MM for consistency. We could simply introduce another top-level folder under specification/src/main/resources/. While doing so, it might be worth cleaning up the released- suffix.

Proposal
  • rename the XSD schemas folder as specification/src/main/resources/schemas/YYYY-MM/
  • update all code in specification, OME-XML Java and C++ classes as well as downstream components classes to consume the new schemas location
  • create specification/src/main/resources/ontologies/2016-06/ and move the 2016-06 ontology alongside the XSD schema

Transforms

XSLT transforms are currently located under specification/src/main/resources/transforms/. The way ttl files will be transformed between different versions of the ontology is still not clear to me. Discussions seemed to indicate a process consuming the new ontology as well as the inference engine. No action needed at the moment although transform files could be added to this folder if necessary.

Samples

For each release of the XSD schema, representative samples are created (or upgraded) under the form of OME-XML files under a specification/samples/YYYY-MM folder. @norikoba starting working on a
corresponding set of Turtle (ttl) samples for the OWL ontology.

Having a representation of each sample both in xml and ttl is valuable. Next action here is probably to look into some tooling to batch convert all XML samples into TTL. In terms of organization, having both samples under the same umbrella would be the most sensible. Primary question is whether both types of samples should be under the same folder or under separate subfolder like the specifications.

Additinoally, migrating the samples under specification/src/main/resources/ would increase consistency and simplofy the bundling of these samples if we wished so.

Proposal
  • migrate the OME-XML samples under specification/src/main/resources/samples
  • generate a set of TTL samples (maybe.ome.ttl) and add them to the same directory
  • depending on the outcome, split samples per type

Publication

Most of the OME data model resources are available online. The XSD schemas are served under https://www.openmicroscopy.org/Schemas/ e.g. https://www.openmicroscopy.org/Schemas/OME/2016-06/ome.xsd for the latest OME Data model schema. For OWL ontologies, discussion tended to go towards https://www.openmicroscopy.org/Ontologies.

In terms of process, the HTML pages above are created by the publish script at the moment which aggregates all the xsd resources and create a set of navigation HTML pages. These pages are then served statically and proxied from the main https://www.openmicroscopy.org/ website (https://github.com/openmicroscopy/prod-playbooks/blob/master/www/www-deploy.yml#L30). This primarily comes from the migration of the www.openmicroscopy.org website in Summer'18 rather than architectural design.

As we will want to create new online resources, we might want to review the publication process. One option here will be to move these pages to Jekyll. Advantages of this approach is that it unifies the process with the other front-facing resources and facilitates the integration with the OME website. In terms of deployment and review, this means we should also be able to use the GitHub pages service to deploy and review staging specification pages.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading specification/src/main/resources/released-schema/ and the specification/publish script, then trace the Java and C++ consumers named in the issue. Compare the proposed schema, ontology, and sample layouts with the current repository structure. The issue does not define a single acceptance test; completion would require an agreed integration and publication plan.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, java, xml
Domain
data, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.