Skip to content

How to create a new Bioschemas Type with the Data Discovery Engine (DDE) Schema Playground

In this how-to, we will guide you through the necessary steps in order to create a new Bioschemas type

You have come to a community consensus on creating a new type. Congratulations! Now you have to add the new type on the Bioschemas website. Note, if you are comfortable with JSON schema and JSON-LD, you are welcome to copy, paste, and edit the JSON-LD files in the Bioschemas Specifications repository

Step 1 - Log in

  • Open the DDE schema registry and Login to the DDE update tool via your GitHub account
  • The DDE requires read access to find your repositories (so you can save to them) and write access in order for you to be able to export your updated profile (specification in JSON-LD format) to GitHub
  • You should be at the registry page
DDE Login Screen

Step 2 - Creating the type

2.1 Find the parent type/class of the new type in the Registry

  • DDE classes are commonly known as ‘types’ in and ‘specifications’ in Bioschemas
  • If the parent type/class is from, search for it in the search bar in the ‘Search By Class Name’ tab
  • If the parent type/class is from bioschemas:
    • On the Registry page, select “Browse By Namespace”
    • Select ‘bioschemastypes’ or ‘bioschemastypesdraft’ depending on whether the parent class is a released or draft type.
Browse types in the DDE by namespace
  • Search for the name of the parent class (ie- the parent type) using the search box
  • Click ‘extend’ (icon on the right at the end of the row corresponding to the parent class)
Selecting a bioschemas type to extend

2.2 Follow the prompts to create your new type

  • Create a temporary namespace that will help us identify your working space
  • Fill in the form to create the new type including the name of the type and a description. The description should include:
    • The description of the type as determined by the community
    • The version of the type
    • The name of the person who prepared the type

    You will not be able to change this information on the next steps so make sure it is correct before moving on.

Complete the web form for the type

2.3 Create any new properties needed for your type

  • All properties from all parent classes (note: classes are commonly known as ‘types’ in and Bioschemas) are automatically inherited. Each parent class is displayed in a blue box.
  • To create an entirely new property
    • Any properties that are not available in a parent class will need to be created.
    • Click on the (+) icon
    • Enter the name and description of your property into the form (see screenshot of property creation form)
    • The Domain will automatically be populated from the class
  • Specifying the expected (range) input type
    • Enter/search for the expected type of your property into the (range) input type(s) of the form. (see screenshot of setting an expected range type or input)
    • Clicking on a class will usually be sufficient to add it as an expected type; HOWEVER, for schema:URL or schema:Text, you will need to click on the Add button.
    • To specify a bioschemas type as the expected (range) input type
      • Enter it manually into the expected (range) input type box as “namespace:class”
        • Eg- bioschemastypes:BioSample
        • Eg2- bioschemastypesdrafts:Phenotype
  • Saving, restoring and submitting work on a property
    • Save your work locally regularly (it will be saved to your browser’s data so clearing your browser’s data may cause your files to be lost)
      • Click on “save/load progress” on the top dark gray bar
      • Use the “Select Action” drop down menu to ‘save’ your work
Save your progress
Save your progress

2.4 Download / Save your JSON-LD schema

  • Downloading your DDE-generated schema
    • Click the download button
Download schema
  • Name your DDE-generated file, and click download
  • Your JSON-LD file should follow the appropriate naming convention
      (Type Name)_v(version)-(DRAFT|RELEASE).(json|jsonld)
    • example 1 - LabProtocol_v0.3-DRAFT.json
    • example 2 - Gene_v0.3-RELEASE.json (note, you cannot create a new type RELEASE without approval from the Steering Council)
  • Interpreting the validation warnings
    • The DDE will automatically check your schema for JSON validation rules and give warnings if they are missing
    • Revisit the DDE validation editor and add JSON Schema validation rules to the properties that lack them

Step 3 - Save your JSON-LD to the Bioschemas Specification Repository and create a pull request

Keywords: schemaorg, markup, structured data, bioschemas



  • People interested in creating a new Bioschemas type


License: CC-BY 4.0

Version: 0.2

Last Modified: 25 October 2022