General Information

Crate-O Use Cases
RO-Crate Collection Hierarchy
Schemas, Profiles and Modes Style Schemas (SOSSs) and RO-Crate Profiles and Modes

Crate-O is a browser-based editor that allows you to create and update Research Object Crates (RO-Crates), either using the web interface or with metadata from a spreadsheet. It provides researchers with a relatively simple way to describe their data using best practice in formal metadata description.

RO-Crate is a way of packaging research data that stores the data together with its associated metadata and other component files, such as the data license. It is a flexible, developer-friendly approach to linked-data description and packaging.

Currently, Crate-O works only with Google Chrome and Microsoft Edge. We will be releasing versions that work with online resources directly, which will be compatible with other browsers (see the Roadmap).

While the current version of Crate-O is designed for editing self-contained RO-Crates (and works fine with crates containing tens of thousands of entities), our roadmap includes adding the ability to edit fragments of larger linked-data resources, and to integrate with Arkisto repositories, such as the Oni repository, data API and search portal.

Crate-O Use Cases

Crate-O is designed to work with any of the following use cases:

  • Describe data collections and files on a user’s computer, and add contextual information about those files
  • Describe abstract contextual entities, such as in a Cultural Collection or an encyclopaedia
  • Annotate existing resources elsewhere on the web
  • Submit a data collection to the LDaCA Portal
  • Edit a Schema that contains a set of vocabulary terms, such as the terms used by LDaCA.

RO-Crate Collection Hierarchy

The diagram below shows the hierarchical relationship between collections, objects and files in a corpus, together with the metadata categories which track these relationships.

Self-contained corpus crate with all resources
Self-contained corpus crate with all resources
Image Source: LDaCA

The metadata is organised according to entity types.

Class(rdfs: Class) is used to classify resources. An instance of an rdfs: Class is defined using the predicate rdf: type. Classes in Language Data Commons include CollectionEvent, CollectionProtocol, DataDepositLicense, DataLicense and DataReuseLicense.
Property(rdfs: Property) is used to add attributes to classes. Similar to how we define classes, we can define instances of properties to add attributes to statements.
DefinedTermA ‘word, name, acronym, phrase, etc. with a formal definition’, ‘often used in the context of category or subject classification.’ DefinedTerms allow us to a) have accurate definitions of the values we want to give to properties, and b) group such definitions in DefinedTermSets, which can function as controlled vocabularies.

The table below shows an example of the relationship between each of these entities:

Defined Term SetAnnotationTypeTerms
Defined TermsGestural, Phonemic, Phonetic, Phonological, Prosodic, Semantic, Syntactic, Transcription, Translation

For more details on these and other metadata entities, see Metadata for Language Data.

Schemas, Profiles and Modes

This diagram shows the relationship between the three main components used by Crate-O and other tools employed by LDaCA for specifying and validating RO-Crates. This section explains what these components are and how they relate.

The three main components for RO-Crate editing with Crate-O
The three main components for RO-Crate editing with Crate-O
Image Source: LDaCA

  1. A Schema specifies a metadata vocabulary of Classes and Properties, based on the RO-Crate specification’s use of classes.

  2. An RO-Crate Mode is a set of lightweight syntactic rules for combining Style Schema (SOSS) Classes, Properties and DefinedTerms, expressed in a JSON file that can be:

    • loaded into an editor such as Crate-O
    • imported into another program and used for RO-Crate validation
    • used to summarise the rules for an RO-Crate Profile.
  3. An RO-Crate Profile has (at least) a document that explains how metadata entities from the Schema are used for a particular purpose.

These are all inter-related, and can be developed together or separately using tools. Style Schemas (SOSSs) and RO-Crate Profiles and Modes, which provides the basic vocabulary for RO-Crate, has a light-touch approach to describing what it refers to as its schema (with a small-s), which might also be thought of as an ontology. is defined as a set of Classes and Properties, each of which has an online definition. For example, the base class Thing or its subclass Person, which has properties such as birthDate.

Class: Thing → Sub-Class: Person → Property: birthDate specifies which Properties can occur in the domain of which Classes, and the range of Classes that are expected as values for a Property.

While has Class definitions for Class and Property, it does not use these for defining itself; rather, it uses the equivalent Classes from the rdf: and rdfs: namespaces.

Here is the definition for Person:

      "@id": "schema:Person",
      "@type": "rdfs:Class",
      "owl:equivalentClass": {
        "@id": "foaf:Person"
      "rdfs:comment": "A person (alive, dead, undead, or fictional).",
      "rdfs:label": "Person",
      "rdfs:subClassOf": {
        "@id": "schema:Thing"
      "schema:source": {
        "@id": ""

The Class definition does not have any information about the occurrence of properties – that is found in a Property definition:

      "@id": "schema:sibling",
      "@type": "rdf:Property",
      "rdfs:comment": "A sibling of the person.",
      "rdfs:label": "sibling",
      "schema:domainIncludes": {
        "@id": "schema:Person"
      "schema:rangeIncludes": {
        "@id": "schema:Person"

A SOSS is a Flattened JSON-LD graph, just like an RO-Crate. Some members of the RO-Crate community are beginning to define its basic schema and RO-Crate Profiles using the same approach.

To make an RO-Crate Mode File, we transform the flat graph of a schema into something optimised for driving an editor or a validator; it creates a list of Classes, and what properties each may have.

Base Mode File creation, combining the schema and RO-Crate additions using the rocsoss script
Base Mode File creation, combining the schema and RO-Crate additions using the rocsoss script
Image Source: LDaCA