Guide: Creating a new OpenActive Vocabulary
An OpenActive Vocabulary consists of a specific instance of the skos-vocabulary-editor Heroku App, paired with a specific GitHub repository based on the skos-vocabulary-template.
Note that much of the configuration is driven by convention, so the identifier must be used consistently throughout.
- Choose an identifier for this new vocabulary (e.g. - "activity-list").- Note that the vocabulary name should follow the same "-list" naming convention - e.g. "facility-type-list", "facility-attribute-list", "place-type-list", etc. 
- (Some existing vocabularies do not follow this convention) 
 
- Use the - skos-vocabulary-templateas a template to create a new repository with a name that exactly matches the identifier.- Update the - README.mdby removing the top section, and adapting the content for the new vocabulary.
 
- Enable GitHub Pages in this new repository - Ensure the "Build and deployment" "Source" is "GitHub Actions", in the GitHub Pages section 
- Do not set a Custom domain (it will default to "https://openactive.io/<repository-name>", where the repository name is also the identifier as per the previous step) 
 
- Edit the - PUBLIC_REPO_ACCESS_TOKENsecret within "Secrets and variables -> Actions" in the Settings of the- openactiveGitHub Organisation to include this new repository 
- Add a branch protection rule to the - mainbranch of the repository, which includes the following rule: 
- Ensure that "Auto-merge" is enabled on the repository 
- Ensure that "Automatically delete head branches" is enabled on the repository 
- Edit the - VOCAB_WORKFLOW_GH_ACCESS_TOKENGitHub Fine-grained Personal Access Token of the- openactive-botGitHub account to include this new repository 
- Deploy a new instance of the - skos-vocabulary-editor(iQvoc)- Name the Heroku app "oa-voc-<identifier>", e.g. "oa-voc-activity-list" 
- Ensure the region chosen is "Europe" 
- Add the app to the " - skos-vocabulary-editors" Heroku pipeline, in the "Production" stage
- Use the new vocabulary identifier chosen in Step 1 for the value of - VOCAB_IDENTIFIER
- Copy the value of - VOCAB_WORKFLOW_GH_ACCESS_TOKENfrom the Config Var in the- skos-vocabulary-editor-stagingapp.
- Ensure the - VOCAB_NAME,- VOCAB_DESCRIPTION,- VOCAB_PROPERTY,- VOCAB_DRAFT,- VOCAB_EXPORT_RELATED_MATCHES,- VOCAB_HELP_URLand- VOCAB_SUGGESTIONS_LINKvalues are updated to be specific to this new vocabulary.- VOCAB_NAMEis the name of the vocabulary, and should be of the form "X List".
- VOCAB_PROPERTYis the name of the property in the OpenActive Namespace or Beta Namespace that references this SKOS vocabulary, e.g. "- activity" or "- beta:placeType".
- VOCAB_DRAFTshould be set to- trueif the property is in the Beta Namespace,
- VOCAB_EXPORT_RELATED_MATCHESis a list other OpenActive vocabularies that this vocabulary references, with the name of the JSON-LD property to use when exporting such references. Leave this blank if this vocabulary does not reference other vocabularies.- For example: - facility-types:facilityType;activity-list:activity
 
 
 
- Add a Heroku custom domain for this new instance with an OpenActive subdomain that exactly matches the identifier (i.e. - <- identifier- >.openactive.ioe.g.- activity-list.openactive.iofor the identifier- activity-list)
- If this vocabulary references other vocabularies: - Log into iQvoc 
- Click on "Configuration" in the top right menu 
- Under Federation, - Sources (iQvoc)should be a comma-separated list of base URLs of the iQvoc instances of the other OpenActive vocabularies that this vocabulary references
 
- Update the JSON-LD Reverse Proxy to ensure that the JSON-LD references to the vocabulary resolve - Merge the PR to the - masterbranch, and the GitHub Action will automatically deploy to Cloudflare.
 
Last updated