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 theopenactiveGitHub 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 theopenactive-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" stageUse the new vocabulary identifier chosen in Step 1 for the value of
VOCAB_IDENTIFIERCopy the value of
VOCAB_WORKFLOW_GH_ACCESS_TOKENfrom the Config Var in theskos-vocabulary-editor-stagingapp.Ensure the
VOCAB_NAME,VOCAB_DESCRIPTION,VOCAB_PROPERTY,VOCAB_DRAFT,VOCAB_EXPORT_RELATED_MATCHES,VOCAB_HELP_URLandVOCAB_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 totrueif 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 identifieractivity-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