From 40688796eeb566c14d07914e287cfa6658c746e2 Mon Sep 17 00:00:00 2001 From: matentzn Date: Mon, 26 Feb 2024 13:34:22 +0000 Subject: [PATCH] Deployed c36dff3 with MkDocs version: 1.4.2 --- .nojekyll | 0 404.html | 372 + AddTermToImport/index.html | 391 + CreateNewTerm/index.html | 391 + CreatingRepo/index.html | 391 + DailyWorkflow/index.html | 391 + DealWithLargeOntologies/index.html | 391 + DeletingAssertedSubClasses/index.html | 391 + FrequentlyUsedODKCommands/index.html | 604 ++ InitialSetup/index.html | 391 + License/index.html | 391 + MergeTerms/index.html | 391 + NewSlim/index.html | 391 + NewSlimTerm/index.html | 391 + ODKDevelopmentSnapshot/index.html | 488 ++ ObsoleteTerm/index.html | 391 + ReleaseArtefacts/index.html | 391 + Synonyms/index.html | 391 + TaxonRestriction/index.html | 391 + TermComments/index.html | 391 + UsingRobotPlugins/index.html | 482 ++ assets/images/favicon.png | Bin 0 -> 1870 bytes assets/javascripts/bundle.51d95adb.min.js | 29 + assets/javascripts/bundle.51d95adb.min.js.map | 8 + assets/javascripts/lunr/min/lunr.ar.min.js | 1 + assets/javascripts/lunr/min/lunr.da.min.js | 18 + assets/javascripts/lunr/min/lunr.de.min.js | 18 + assets/javascripts/lunr/min/lunr.du.min.js | 18 + assets/javascripts/lunr/min/lunr.es.min.js | 18 + assets/javascripts/lunr/min/lunr.fi.min.js | 18 + assets/javascripts/lunr/min/lunr.fr.min.js | 18 + assets/javascripts/lunr/min/lunr.hi.min.js | 1 + assets/javascripts/lunr/min/lunr.hu.min.js | 18 + assets/javascripts/lunr/min/lunr.it.min.js | 18 + assets/javascripts/lunr/min/lunr.ja.min.js | 1 + assets/javascripts/lunr/min/lunr.jp.min.js | 1 + assets/javascripts/lunr/min/lunr.ko.min.js | 1 + assets/javascripts/lunr/min/lunr.multi.min.js | 1 + assets/javascripts/lunr/min/lunr.nl.min.js | 18 + assets/javascripts/lunr/min/lunr.no.min.js | 18 + assets/javascripts/lunr/min/lunr.pt.min.js | 18 + assets/javascripts/lunr/min/lunr.ro.min.js | 18 + assets/javascripts/lunr/min/lunr.ru.min.js | 18 + .../lunr/min/lunr.stemmer.support.min.js | 1 + assets/javascripts/lunr/min/lunr.sv.min.js | 18 + assets/javascripts/lunr/min/lunr.ta.min.js | 1 + assets/javascripts/lunr/min/lunr.th.min.js | 1 + assets/javascripts/lunr/min/lunr.tr.min.js | 18 + assets/javascripts/lunr/min/lunr.vi.min.js | 1 + assets/javascripts/lunr/min/lunr.zh.min.js | 1 + assets/javascripts/lunr/tinyseg.js | 206 + assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.e5c33ebb.min.js | 42 + .../workers/search.e5c33ebb.min.js.map | 8 + assets/stylesheets/main.558e4712.min.css | 1 + assets/stylesheets/main.558e4712.min.css.map | 1 + assets/stylesheets/palette.2505c338.min.css | 1 + .../stylesheets/palette.2505c338.min.css.map | 1 + exts/markdowntransform.py | 9 + img/AddingClasses.png | Bin 0 -> 170560 bytes img/docker_memory.png | Bin 0 -> 312224 bytes index.html | 436 ++ index.rst | 35 + project-schema/index.html | 795 ++ schema-options/index.html | 418 + search/search_index.json | 1 + sitemap.xml | 113 + sitemap.xml.gz | Bin 0 -> 469 bytes 68 files changed, 17295 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 AddTermToImport/index.html create mode 100644 CreateNewTerm/index.html create mode 100644 CreatingRepo/index.html create mode 100644 DailyWorkflow/index.html create mode 100644 DealWithLargeOntologies/index.html create mode 100644 DeletingAssertedSubClasses/index.html create mode 100644 FrequentlyUsedODKCommands/index.html create mode 100644 InitialSetup/index.html create mode 100644 License/index.html create mode 100644 MergeTerms/index.html create mode 100644 NewSlim/index.html create mode 100644 NewSlimTerm/index.html create mode 100644 ODKDevelopmentSnapshot/index.html create mode 100644 ObsoleteTerm/index.html create mode 100644 ReleaseArtefacts/index.html create mode 100644 Synonyms/index.html create mode 100644 TaxonRestriction/index.html create mode 100644 TermComments/index.html create mode 100644 UsingRobotPlugins/index.html create mode 100644 assets/images/favicon.png create mode 100644 assets/javascripts/bundle.51d95adb.min.js create mode 100644 assets/javascripts/bundle.51d95adb.min.js.map create mode 100644 assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 assets/javascripts/lunr/tinyseg.js create mode 100644 assets/javascripts/lunr/wordcut.js create mode 100644 assets/javascripts/workers/search.e5c33ebb.min.js create mode 100644 assets/javascripts/workers/search.e5c33ebb.min.js.map create mode 100644 assets/stylesheets/main.558e4712.min.css create mode 100644 assets/stylesheets/main.558e4712.min.css.map create mode 100644 assets/stylesheets/palette.2505c338.min.css create mode 100644 assets/stylesheets/palette.2505c338.min.css.map create mode 100644 exts/markdowntransform.py create mode 100644 img/AddingClasses.png create mode 100644 img/docker_memory.png create mode 100644 index.html create mode 100644 index.rst create mode 100644 project-schema/index.html create mode 100644 schema-options/index.html create mode 100644 search/search_index.json create mode 100644 sitemap.xml create mode 100644 sitemap.xml.gz diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..59635ea8 --- /dev/null +++ b/404.html @@ -0,0 +1,372 @@ + + + + + + + + + + + + + + + + + + Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/AddTermToImport/index.html b/AddTermToImport/index.html new file mode 100644 index 00000000..40280b18 --- /dev/null +++ b/AddTermToImport/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + AddTermToImport - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/CreateNewTerm/index.html b/CreateNewTerm/index.html new file mode 100644 index 00000000..59bca661 --- /dev/null +++ b/CreateNewTerm/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + CreateNewTerm - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

Please refer to https://oboacademy.github.io/obook/howto/create-new-term/

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/CreatingRepo/index.html b/CreatingRepo/index.html new file mode 100644 index 00000000..c4c8b74a --- /dev/null +++ b/CreatingRepo/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + CreatingRepo - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/DailyWorkflow/index.html b/DailyWorkflow/index.html new file mode 100644 index 00000000..9bd61336 --- /dev/null +++ b/DailyWorkflow/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + DailyWorkflow - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + + + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/DealWithLargeOntologies/index.html b/DealWithLargeOntologies/index.html new file mode 100644 index 00000000..dfc20e99 --- /dev/null +++ b/DealWithLargeOntologies/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + DealWithLargeOntologies - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

Please refer to https://oboacademy.github.io/obook/howto/deal-with-large-ontologies/

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/DeletingAssertedSubClasses/index.html b/DeletingAssertedSubClasses/index.html new file mode 100644 index 00000000..72b55da4 --- /dev/null +++ b/DeletingAssertedSubClasses/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + DeletingAssertedSubClasses - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

Please refer to https://oboacademy.github.io/obook/explanation/deleting-asserted-sub-classes/

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/FrequentlyUsedODKCommands/index.html b/FrequentlyUsedODKCommands/index.html new file mode 100644 index 00000000..616a9c3a --- /dev/null +++ b/FrequentlyUsedODKCommands/index.html @@ -0,0 +1,604 @@ + + + + + + + + + + + + + + + + + + + + + + Frequently used ODK commands - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + + +

Frequently used ODK commands

+

Updates the Makefile to the latest ODK

+
sh run.sh make update_repo 
+
+

Recreates and deploys the automated documentation

+
sh run.sh make update_docs
+
+

Preparing a new release

+
sh run.sh make prepare_release
+
+

Refreshing a single import

+
sh run.sh make refresh-%
+
+

Example:

+
sh run.sh make refresh-chebi
+
+

Refresh all imports

+
sh run.sh make refresh-imports 
+
+

Refresh all imports excluding large ones

+
sh run.sh make refresh-imports-excluding-large
+
+

Run all the QC checks

+
sh run.sh make test
+
+ +
sh run.sh make odkversion
+
+

Checks the OWL2 DL profile validity

+

(of a specific file)

+

sh run.sh make validate_profile_% 
+
+Example:

+
sh run.sh make validate_profile_hp-edit.owl
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/InitialSetup/index.html b/InitialSetup/index.html new file mode 100644 index 00000000..ead60c87 --- /dev/null +++ b/InitialSetup/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + InitialSetup - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + + + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/License/index.html b/License/index.html new file mode 100644 index 00000000..b616826c --- /dev/null +++ b/License/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + License - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/MergeTerms/index.html b/MergeTerms/index.html new file mode 100644 index 00000000..c6e573ce --- /dev/null +++ b/MergeTerms/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + MergeTerms - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

Please refer to https://oboacademy.github.io/obook/howto/merge-terms/

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/NewSlim/index.html b/NewSlim/index.html new file mode 100644 index 00000000..426748f4 --- /dev/null +++ b/NewSlim/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + NewSlim - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

Please refer to https://oboacademy.github.io/obook/howto/add-new-slim/

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/NewSlimTerm/index.html b/NewSlimTerm/index.html new file mode 100644 index 00000000..753e9ef5 --- /dev/null +++ b/NewSlimTerm/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + NewSlimTerm - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

Please refer to https://oboacademy.github.io/obook/howto/add-new-slim/

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/ODKDevelopmentSnapshot/index.html b/ODKDevelopmentSnapshot/index.html new file mode 100644 index 00000000..10778f4b --- /dev/null +++ b/ODKDevelopmentSnapshot/index.html @@ -0,0 +1,488 @@ + + + + + + + + + + + + + + + + + + + + + + + + Using the Development Snapshot - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

Using the ODK Development Snapshot

+

ODK is constantly being updated, but we release new versions only once every 3-4 months. +For people with a nack to beta-testing and experimental features, or those which need to use the latest versions of the bundled tools, +we provide a "development" snapshot of the ODK which is updated roughly once per week:

+

Look for dev tag in https://hub.docker.com/r/obolibrary/odkfull/tags

+

You can install the development snapshot like this:

+
docker pull obolibrary/odkfull:dev
+
+

Important:

+
    +
  1. The dev snapshot of ODK is unstable, and therefore will have bugs. You use it at your own risk!
  2. +
  3. You cannot rely on any of the features in the development snapshot to make it into production (at least not with more than 85% confidence).
  4. +
+

How to install and use development snapshot in ODK Ontology Repo

+

If you want to use the development snapshot with your run.sh docker wrapper, you will have to make sure that have enabled it correctly.

+
    +
  1. docker pull obolibrary/odkfull:dev As mentioned above, this command installs the development snapshot
  2. +
  3. docker pull obolibrary/odkfull
  4. +
  5. Make sure your repo is up to date with the latest official release version (at least 1.3.1)
  6. +
  7. If currently using 1.3.1: IMAGE=odkfull:dev sh run.sh make update_repo, else ODK_TAG=dev sh run.sh make update_repo
  8. +
  9. ODK_TAG=dev sh run.sh make update_repo (again, if you ran it above)
  10. +
+

You have now set your repo up to run via the development snapshot. At the top of the file, in the comments, your automatically-generated src/ontology/Makefile should now reference the development snapshot you have installed rather than the stable production release.

+

Finally:

+
    +
  1. You can now run any command via the run.sh docker wrapper. Just make sure you use the appropriate prefix depending on your version of the ODK:
  2. +
  3. If you are using ODK 1.3.1 run IMAGE=obolibrary/odkfull:dev sh run.sh make update_repo (or whatever other command you wanted to run).
  4. +
  5. If you are using ODK 1.3.2 or later (or the dev image), run: ODK_TAG=dev sh run.sh make update_repo (or whatever other command you wanted to run).
  6. +
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/ObsoleteTerm/index.html b/ObsoleteTerm/index.html new file mode 100644 index 00000000..3f223da8 --- /dev/null +++ b/ObsoleteTerm/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + ObsoleteTerm - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

Please refer to https://oboacademy.github.io/obook/howto/obsolete-term/

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/ReleaseArtefacts/index.html b/ReleaseArtefacts/index.html new file mode 100644 index 00000000..bdd4a9af --- /dev/null +++ b/ReleaseArtefacts/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + ReleaseArtefacts - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+ +
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/Synonyms/index.html b/Synonyms/index.html new file mode 100644 index 00000000..0c8d4ff7 --- /dev/null +++ b/Synonyms/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + Synonyms - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

Please refer to https://oboacademy.github.io/obook/reference/synonyms-obo/

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/TaxonRestriction/index.html b/TaxonRestriction/index.html new file mode 100644 index 00000000..65f45c48 --- /dev/null +++ b/TaxonRestriction/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + TaxonRestriction - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

Please refer to https://oboacademy.github.io/obook/howto/add-taxon-restrictions/

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/TermComments/index.html b/TermComments/index.html new file mode 100644 index 00000000..ed819aeb --- /dev/null +++ b/TermComments/index.html @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + TermComments - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

Please refer to https://oboacademy.github.io/obook/explanation/term-comments/

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/UsingRobotPlugins/index.html b/UsingRobotPlugins/index.html new file mode 100644 index 00000000..c5fc79a8 --- /dev/null +++ b/UsingRobotPlugins/index.html @@ -0,0 +1,482 @@ + + + + + + + + + + + + + + + + + + + + Using ROBOT Plugins - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + + + + + +
+
+ + + + + + + + + + + + + +

Using ROBOT Plugins

+

Since version 1.9.5, the ROBOT tool allows to use plugins that provide supplementary commands that are not part of the default command set.

+

Declaring the plugins to be used

+

Before you can use plugins in a custom workflow, the ODK must be aware of those plugins. There are several ways to do that.

+

Listing the plugins in the ODK configuration

+

Add a new robot_plugins section to your ODK configuration file (src/ontology/ONT-odk.yaml). That section should contain a single plugins key, which itself should contain the list of the plugins you want to use. Each entry in the list must contain at least a name key, which is the name under which the plugin will be available, and optionally a mirror_from key, pointing to an online location from which the plugin can be downloaded.

+

For example, to use the KGCL plugin:

+
robot_plugins:
+  plugins:
+    - name: kgcl
+      mirror_from: https://github.com/gouttegd/kgcl-java/releases/download/kgcl-0.2.0/kgcl-robot-plugin-0.2.0.jar
+
+

If you do not specify a download location with the mirror_from key, a dummy rule ${ROBOT_PLUGINS_DIRECTORY}/kgcl.jar will be generated in the standard Makefile. You will need to override that rule in your ontology-specific Makefile:

+
${ROBOT_PLUGINS_DIRECTORY}/kgcl.jar:
+    curl -L -o $@ https://github.com/gouttegd/kgcl-java/releases/download/kgcl-0.2.0/kgcl-robot-plugin-0.2.0.jar
+
+

Using custom rules

+

If for whatever reason you do not want to modify your ODK configuration, you can still set up a plugin by adding a rule such as the one above in the custom Makefile, and listing the plugin in the custom_robot_plugins variable. For example, again with the KGCL lplugin:

+
${ROBOT_PLUGINS_DIRECTORY}/kgcl.jar:
+    curl -L -o $@ https://github.com/gouttegd/kgcl-java/releases/download/kgcl-0.2.0/kgcl-robot-plugin-0.2.0.jar
+
+custom_robot_plugins: $(ROBOT_PLUGINS_DIRECTORY)/kgcl.jar
+
+

Putting the plugin file in the top-level plugins directory

+

Any Jar file found in the repository’s top-level plugins directory (if such a directory exists) will automatically be found by the ODK, without requiring any change to the ODK configuration or the custom Makefile.

+

ODK-provided plugins

+

Some plugins are already bundled with the ODK and don’t need to be declared or downloaded from somewhere else. For now, there is only one such plugin: the SSSOM plugin. More default plugins may be added in future ODK versions.

+

Using a plugin a custom workflow

+

Any Make rule that involves the use of a ROBOT plugin MUST depend on the all_robot_plugins target. This will ensure that all plugins have been properly set up in the runtime ROBOT plugins directory.

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/favicon.png b/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf13b9f9d978896599290a74f77d5dbe7d1655c GIT binary patch literal 1870 zcmV-U2eJ5xP)Gc)JR9QMau)O=X#!i9;T z37kk-upj^(fsR36MHs_+1RCI)NNu9}lD0S{B^g8PN?Ww(5|~L#Ng*g{WsqleV}|#l zz8@ri&cTzw_h33bHI+12+kK6WN$h#n5cD8OQt`5kw6p~9H3()bUQ8OS4Q4HTQ=1Ol z_JAocz`fLbT2^{`8n~UAo=#AUOf=SOq4pYkt;XbC&f#7lb$*7=$na!mWCQ`dBQsO0 zLFBSPj*N?#u5&pf2t4XjEGH|=pPQ8xh7tpx;US5Cx_Ju;!O`ya-yF`)b%TEt5>eP1ZX~}sjjA%FJF?h7cX8=b!DZl<6%Cv z*G0uvvU+vmnpLZ2paivG-(cd*y3$hCIcsZcYOGh{$&)A6*XX&kXZd3G8m)G$Zz-LV z^GF3VAW^Mdv!)4OM8EgqRiz~*Cji;uzl2uC9^=8I84vNp;ltJ|q-*uQwGp2ma6cY7 z;`%`!9UXO@fr&Ebapfs34OmS9^u6$)bJxrucutf>`dKPKT%%*d3XlFVKunp9 zasduxjrjs>f8V=D|J=XNZp;_Zy^WgQ$9WDjgY=z@stwiEBm9u5*|34&1Na8BMjjgf3+SHcr`5~>oz1Y?SW^=K z^bTyO6>Gar#P_W2gEMwq)ot3; zREHn~U&Dp0l6YT0&k-wLwYjb?5zGK`W6S2v+K>AM(95m2C20L|3m~rN8dprPr@t)5lsk9Hu*W z?pS990s;Ez=+Rj{x7p``4>+c0G5^pYnB1^!TL=(?HLHZ+HicG{~4F1d^5Awl_2!1jICM-!9eoLhbbT^;yHcefyTAaqRcY zmuctDopPT!%k+}x%lZRKnzykr2}}XfG_ne?nRQO~?%hkzo;@RN{P6o`&mMUWBYMTe z6i8ChtjX&gXl`nvrU>jah)2iNM%JdjqoaeaU%yVn!^70x-flljp6Q5tK}5}&X8&&G zX3fpb3E(!rH=zVI_9Gjl45w@{(ITqngWFe7@9{mX;tO25Z_8 zQHEpI+FkTU#4xu>RkN>b3Tnc3UpWzPXWm#o55GKF09j^Mh~)K7{QqbO_~(@CVq! zS<8954|P8mXN2MRs86xZ&Q4EfM@JB94b=(YGuk)s&^jiSF=t3*oNK3`rD{H`yQ?d; ztE=laAUoZx5?RC8*WKOj`%LXEkgDd>&^Q4M^z`%u0rg-It=hLCVsq!Z%^6eB-OvOT zFZ28TN&cRmgU}Elrnk43)!>Z1FCPL2K$7}gwzIc48NX}#!A1BpJP?#v5wkNprhV** z?Cpalt1oH&{r!o3eSKc&ap)iz2BTn_VV`4>9M^b3;(YY}4>#ML6{~(4mH+?%07*qo IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/assets/javascripts/bundle.51d95adb.min.js b/assets/javascripts/bundle.51d95adb.min.js new file mode 100644 index 00000000..b20ec683 --- /dev/null +++ b/assets/javascripts/bundle.51d95adb.min.js @@ -0,0 +1,29 @@ +"use strict";(()=>{var Hi=Object.create;var xr=Object.defineProperty;var Pi=Object.getOwnPropertyDescriptor;var $i=Object.getOwnPropertyNames,kt=Object.getOwnPropertySymbols,Ii=Object.getPrototypeOf,Er=Object.prototype.hasOwnProperty,an=Object.prototype.propertyIsEnumerable;var on=(e,t,r)=>t in e?xr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))Er.call(t,r)&&on(e,r,t[r]);if(kt)for(var r of kt(t))an.call(t,r)&&on(e,r,t[r]);return e};var sn=(e,t)=>{var r={};for(var n in e)Er.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&kt)for(var n of kt(e))t.indexOf(n)<0&&an.call(e,n)&&(r[n]=e[n]);return r};var Ht=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Fi=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $i(t))!Er.call(e,o)&&o!==r&&xr(e,o,{get:()=>t[o],enumerable:!(n=Pi(t,o))||n.enumerable});return e};var yt=(e,t,r)=>(r=e!=null?Hi(Ii(e)):{},Fi(t||!e||!e.__esModule?xr(r,"default",{value:e,enumerable:!0}):r,e));var fn=Ht((wr,cn)=>{(function(e,t){typeof wr=="object"&&typeof cn!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(wr,function(){"use strict";function e(r){var n=!0,o=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(T){return!!(T&&T!==document&&T.nodeName!=="HTML"&&T.nodeName!=="BODY"&&"classList"in T&&"contains"in T.classList)}function f(T){var Ke=T.type,We=T.tagName;return!!(We==="INPUT"&&a[Ke]&&!T.readOnly||We==="TEXTAREA"&&!T.readOnly||T.isContentEditable)}function c(T){T.classList.contains("focus-visible")||(T.classList.add("focus-visible"),T.setAttribute("data-focus-visible-added",""))}function u(T){T.hasAttribute("data-focus-visible-added")&&(T.classList.remove("focus-visible"),T.removeAttribute("data-focus-visible-added"))}function p(T){T.metaKey||T.altKey||T.ctrlKey||(s(r.activeElement)&&c(r.activeElement),n=!0)}function m(T){n=!1}function d(T){s(T.target)&&(n||f(T.target))&&c(T.target)}function h(T){s(T.target)&&(T.target.classList.contains("focus-visible")||T.target.hasAttribute("data-focus-visible-added"))&&(o=!0,window.clearTimeout(i),i=window.setTimeout(function(){o=!1},100),u(T.target))}function v(T){document.visibilityState==="hidden"&&(o&&(n=!0),B())}function B(){document.addEventListener("mousemove",z),document.addEventListener("mousedown",z),document.addEventListener("mouseup",z),document.addEventListener("pointermove",z),document.addEventListener("pointerdown",z),document.addEventListener("pointerup",z),document.addEventListener("touchmove",z),document.addEventListener("touchstart",z),document.addEventListener("touchend",z)}function re(){document.removeEventListener("mousemove",z),document.removeEventListener("mousedown",z),document.removeEventListener("mouseup",z),document.removeEventListener("pointermove",z),document.removeEventListener("pointerdown",z),document.removeEventListener("pointerup",z),document.removeEventListener("touchmove",z),document.removeEventListener("touchstart",z),document.removeEventListener("touchend",z)}function z(T){T.target.nodeName&&T.target.nodeName.toLowerCase()==="html"||(n=!1,re())}document.addEventListener("keydown",p,!0),document.addEventListener("mousedown",m,!0),document.addEventListener("pointerdown",m,!0),document.addEventListener("touchstart",m,!0),document.addEventListener("visibilitychange",v,!0),B(),r.addEventListener("focus",d,!0),r.addEventListener("blur",h,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var un=Ht(Sr=>{(function(e){var t=function(){try{return!!Symbol.iterator}catch(c){return!1}},r=t(),n=function(c){var u={next:function(){var p=c.shift();return{done:p===void 0,value:p}}};return r&&(u[Symbol.iterator]=function(){return u}),u},o=function(c){return encodeURIComponent(c).replace(/%20/g,"+")},i=function(c){return decodeURIComponent(String(c).replace(/\+/g," "))},a=function(){var c=function(p){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var m=typeof p;if(m!=="undefined")if(m==="string")p!==""&&this._fromString(p);else if(p instanceof c){var d=this;p.forEach(function(re,z){d.append(z,re)})}else if(p!==null&&m==="object")if(Object.prototype.toString.call(p)==="[object Array]")for(var h=0;hd[0]?1:0}),c._entries&&(c._entries={});for(var p=0;p1?i(d[1]):"")}})})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Sr);(function(e){var t=function(){try{var o=new e.URL("b","http://a");return o.pathname="c d",o.href==="http://a/c%20d"&&o.searchParams}catch(i){return!1}},r=function(){var o=e.URL,i=function(f,c){typeof f!="string"&&(f=String(f)),c&&typeof c!="string"&&(c=String(c));var u=document,p;if(c&&(e.location===void 0||c!==e.location.href)){c=c.toLowerCase(),u=document.implementation.createHTMLDocument(""),p=u.createElement("base"),p.href=c,u.head.appendChild(p);try{if(p.href.indexOf(c)!==0)throw new Error(p.href)}catch(T){throw new Error("URL unable to set base "+c+" due to "+T)}}var m=u.createElement("a");m.href=f,p&&(u.body.appendChild(m),m.href=m.href);var d=u.createElement("input");if(d.type="url",d.value=f,m.protocol===":"||!/:/.test(m.href)||!d.checkValidity()&&!c)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:m});var h=new e.URLSearchParams(this.search),v=!0,B=!0,re=this;["append","delete","set"].forEach(function(T){var Ke=h[T];h[T]=function(){Ke.apply(h,arguments),v&&(B=!1,re.search=h.toString(),B=!0)}}),Object.defineProperty(this,"searchParams",{value:h,enumerable:!0});var z=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==z&&(z=this.search,B&&(v=!1,this.searchParams._fromString(this.search),v=!0))}})},a=i.prototype,s=function(f){Object.defineProperty(a,f,{get:function(){return this._anchorElement[f]},set:function(c){this._anchorElement[f]=c},enumerable:!0})};["hash","host","hostname","port","protocol"].forEach(function(f){s(f)}),Object.defineProperty(a,"search",{get:function(){return this._anchorElement.search},set:function(f){this._anchorElement.search=f,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(a,{toString:{get:function(){var f=this;return function(){return f.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(f){this._anchorElement.href=f,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(f){this._anchorElement.pathname=f},enumerable:!0},origin:{get:function(){var f={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],c=this._anchorElement.port!=f&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(c?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(f){},enumerable:!0},username:{get:function(){return""},set:function(f){},enumerable:!0}}),i.createObjectURL=function(f){return o.createObjectURL.apply(o,arguments)},i.revokeObjectURL=function(f){return o.revokeObjectURL.apply(o,arguments)},e.URL=i};if(t()||r(),e.location!==void 0&&!("origin"in e.location)){var n=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:n,enumerable:!0})}catch(o){setInterval(function(){e.location.origin=n()},100)}}})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Sr)});var Qr=Ht((Lt,Kr)=>{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof Lt=="object"&&typeof Kr=="object"?Kr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Lt=="object"?Lt.ClipboardJS=r():t.ClipboardJS=r()})(Lt,function(){return function(){var e={686:function(n,o,i){"use strict";i.d(o,{default:function(){return ki}});var a=i(279),s=i.n(a),f=i(370),c=i.n(f),u=i(817),p=i.n(u);function m(j){try{return document.execCommand(j)}catch(O){return!1}}var d=function(O){var w=p()(O);return m("cut"),w},h=d;function v(j){var O=document.documentElement.getAttribute("dir")==="rtl",w=document.createElement("textarea");w.style.fontSize="12pt",w.style.border="0",w.style.padding="0",w.style.margin="0",w.style.position="absolute",w.style[O?"right":"left"]="-9999px";var k=window.pageYOffset||document.documentElement.scrollTop;return w.style.top="".concat(k,"px"),w.setAttribute("readonly",""),w.value=j,w}var B=function(O,w){var k=v(O);w.container.appendChild(k);var F=p()(k);return m("copy"),k.remove(),F},re=function(O){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},k="";return typeof O=="string"?k=B(O,w):O instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(O==null?void 0:O.type)?k=B(O.value,w):(k=p()(O),m("copy")),k},z=re;function T(j){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?T=function(w){return typeof w}:T=function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},T(j)}var Ke=function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=O.action,k=w===void 0?"copy":w,F=O.container,q=O.target,Le=O.text;if(k!=="copy"&&k!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(q!==void 0)if(q&&T(q)==="object"&&q.nodeType===1){if(k==="copy"&&q.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(k==="cut"&&(q.hasAttribute("readonly")||q.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(Le)return z(Le,{container:F});if(q)return k==="cut"?h(q):z(q,{container:F})},We=Ke;function Ie(j){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ie=function(w){return typeof w}:Ie=function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},Ie(j)}function Ti(j,O){if(!(j instanceof O))throw new TypeError("Cannot call a class as a function")}function nn(j,O){for(var w=0;w0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof F.action=="function"?F.action:this.defaultAction,this.target=typeof F.target=="function"?F.target:this.defaultTarget,this.text=typeof F.text=="function"?F.text:this.defaultText,this.container=Ie(F.container)==="object"?F.container:document.body}},{key:"listenClick",value:function(F){var q=this;this.listener=c()(F,"click",function(Le){return q.onClick(Le)})}},{key:"onClick",value:function(F){var q=F.delegateTarget||F.currentTarget,Le=this.action(q)||"copy",Rt=We({action:Le,container:this.container,target:this.target(q),text:this.text(q)});this.emit(Rt?"success":"error",{action:Le,text:Rt,trigger:q,clearSelection:function(){q&&q.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(F){return yr("action",F)}},{key:"defaultTarget",value:function(F){var q=yr("target",F);if(q)return document.querySelector(q)}},{key:"defaultText",value:function(F){return yr("text",F)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(F){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return z(F,q)}},{key:"cut",value:function(F){return h(F)}},{key:"isSupported",value:function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],q=typeof F=="string"?[F]:F,Le=!!document.queryCommandSupported;return q.forEach(function(Rt){Le=Le&&!!document.queryCommandSupported(Rt)}),Le}}]),w}(s()),ki=Ri},828:function(n){var o=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,f){for(;s&&s.nodeType!==o;){if(typeof s.matches=="function"&&s.matches(f))return s;s=s.parentNode}}n.exports=a},438:function(n,o,i){var a=i(828);function s(u,p,m,d,h){var v=c.apply(this,arguments);return u.addEventListener(m,v,h),{destroy:function(){u.removeEventListener(m,v,h)}}}function f(u,p,m,d,h){return typeof u.addEventListener=="function"?s.apply(null,arguments):typeof m=="function"?s.bind(null,document).apply(null,arguments):(typeof u=="string"&&(u=document.querySelectorAll(u)),Array.prototype.map.call(u,function(v){return s(v,p,m,d,h)}))}function c(u,p,m,d){return function(h){h.delegateTarget=a(h.target,p),h.delegateTarget&&d.call(u,h)}}n.exports=f},879:function(n,o){o.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},o.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||o.node(i[0]))},o.string=function(i){return typeof i=="string"||i instanceof String},o.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(n,o,i){var a=i(879),s=i(438);function f(m,d,h){if(!m&&!d&&!h)throw new Error("Missing required arguments");if(!a.string(d))throw new TypeError("Second argument must be a String");if(!a.fn(h))throw new TypeError("Third argument must be a Function");if(a.node(m))return c(m,d,h);if(a.nodeList(m))return u(m,d,h);if(a.string(m))return p(m,d,h);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(m,d,h){return m.addEventListener(d,h),{destroy:function(){m.removeEventListener(d,h)}}}function u(m,d,h){return Array.prototype.forEach.call(m,function(v){v.addEventListener(d,h)}),{destroy:function(){Array.prototype.forEach.call(m,function(v){v.removeEventListener(d,h)})}}}function p(m,d,h){return s(document.body,m,d,h)}n.exports=f},817:function(n){function o(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var f=window.getSelection(),c=document.createRange();c.selectNodeContents(i),f.removeAllRanges(),f.addRange(c),a=f.toString()}return a}n.exports=o},279:function(n){function o(){}o.prototype={on:function(i,a,s){var f=this.e||(this.e={});return(f[i]||(f[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var f=this;function c(){f.off(i,c),a.apply(s,arguments)}return c._=a,this.on(i,c,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),f=0,c=s.length;for(f;f{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var is=/["'&<>]/;Jo.exports=as;function as(e){var t=""+e,r=is.exec(t);if(!r)return t;var n,o="",i=0,a=0;for(i=r.index;i0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function W(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),o,i=[],a;try{for(;(t===void 0||t-- >0)&&!(o=n.next()).done;)i.push(o.value)}catch(s){a={error:s}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(a)throw a.error}}return i}function D(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,i;n1||s(m,d)})})}function s(m,d){try{f(n[m](d))}catch(h){p(i[0][3],h)}}function f(m){m.value instanceof Xe?Promise.resolve(m.value.v).then(c,u):p(i[0][2],m)}function c(m){s("next",m)}function u(m){s("throw",m)}function p(m,d){m(d),i.shift(),i.length&&s(i[0][0],i[0][1])}}function mn(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof xe=="function"?xe(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(i){r[i]=e[i]&&function(a){return new Promise(function(s,f){a=e[i](a),o(s,f,a.done,a.value)})}}function o(i,a,s,f){Promise.resolve(f).then(function(c){i({value:c,done:s})},a)}}function A(e){return typeof e=="function"}function at(e){var t=function(n){Error.call(n),n.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var $t=at(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(n,o){return o+1+") "+n.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function De(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Fe=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,n,o,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=xe(a),f=s.next();!f.done;f=s.next()){var c=f.value;c.remove(this)}}catch(v){t={error:v}}finally{try{f&&!f.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}else a.remove(this);var u=this.initialTeardown;if(A(u))try{u()}catch(v){i=v instanceof $t?v.errors:[v]}var p=this._finalizers;if(p){this._finalizers=null;try{for(var m=xe(p),d=m.next();!d.done;d=m.next()){var h=d.value;try{dn(h)}catch(v){i=i!=null?i:[],v instanceof $t?i=D(D([],W(i)),W(v.errors)):i.push(v)}}}catch(v){n={error:v}}finally{try{d&&!d.done&&(o=m.return)&&o.call(m)}finally{if(n)throw n.error}}}if(i)throw new $t(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)dn(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&De(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&De(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Or=Fe.EMPTY;function It(e){return e instanceof Fe||e&&"closed"in e&&A(e.remove)&&A(e.add)&&A(e.unsubscribe)}function dn(e){A(e)?e():e.unsubscribe()}var Ae={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var st={setTimeout:function(e,t){for(var r=[],n=2;n0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,o=this,i=o.hasError,a=o.isStopped,s=o.observers;return i||a?Or:(this.currentObservers=null,s.push(r),new Fe(function(){n.currentObservers=null,De(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,o=n.hasError,i=n.thrownError,a=n.isStopped;o?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new U;return r.source=this,r},t.create=function(r,n){return new wn(r,n)},t}(U);var wn=function(e){ne(t,e);function t(r,n){var o=e.call(this)||this;return o.destination=r,o.source=n,o}return t.prototype.next=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,r)},t.prototype.error=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&o!==void 0?o:Or},t}(E);var Et={now:function(){return(Et.delegate||Date).now()},delegate:void 0};var wt=function(e){ne(t,e);function t(r,n,o){r===void 0&&(r=1/0),n===void 0&&(n=1/0),o===void 0&&(o=Et);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=n,i._timestampProvider=o,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,n),i}return t.prototype.next=function(r){var n=this,o=n.isStopped,i=n._buffer,a=n._infiniteTimeWindow,s=n._timestampProvider,f=n._windowTime;o||(i.push(r),!a&&i.push(s.now()+f)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),o=this,i=o._infiniteTimeWindow,a=o._buffer,s=a.slice(),f=0;f0?e.prototype.requestAsyncId.call(this,r,n,o):(r.actions.push(this),r._scheduled||(r._scheduled=ut.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,o){var i;if(o===void 0&&(o=0),o!=null?o>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,o);var a=r.actions;n!=null&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==n&&(ut.cancelAnimationFrame(n),r._scheduled=void 0)},t}(Ut);var On=function(e){ne(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var o=this.actions,i;r=r||o.shift();do if(i=r.execute(r.state,r.delay))break;while((r=o[0])&&r.id===n&&o.shift());if(this._active=!1,i){for(;(r=o[0])&&r.id===n&&o.shift();)r.unsubscribe();throw i}},t}(Wt);var we=new On(Tn);var R=new U(function(e){return e.complete()});function Dt(e){return e&&A(e.schedule)}function kr(e){return e[e.length-1]}function Qe(e){return A(kr(e))?e.pop():void 0}function Se(e){return Dt(kr(e))?e.pop():void 0}function Vt(e,t){return typeof kr(e)=="number"?e.pop():t}var pt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function zt(e){return A(e==null?void 0:e.then)}function Nt(e){return A(e[ft])}function qt(e){return Symbol.asyncIterator&&A(e==null?void 0:e[Symbol.asyncIterator])}function Kt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Ki(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Qt=Ki();function Yt(e){return A(e==null?void 0:e[Qt])}function Gt(e){return ln(this,arguments,function(){var r,n,o,i;return Pt(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,Xe(r.read())];case 3:return n=a.sent(),o=n.value,i=n.done,i?[4,Xe(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,Xe(o)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function Bt(e){return A(e==null?void 0:e.getReader)}function $(e){if(e instanceof U)return e;if(e!=null){if(Nt(e))return Qi(e);if(pt(e))return Yi(e);if(zt(e))return Gi(e);if(qt(e))return _n(e);if(Yt(e))return Bi(e);if(Bt(e))return Ji(e)}throw Kt(e)}function Qi(e){return new U(function(t){var r=e[ft]();if(A(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Yi(e){return new U(function(t){for(var r=0;r=2;return function(n){return n.pipe(e?_(function(o,i){return e(o,i,n)}):me,Oe(1),r?He(t):zn(function(){return new Xt}))}}function Nn(){for(var e=[],t=0;t=2,!0))}function fe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new E}:t,n=e.resetOnError,o=n===void 0?!0:n,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,f=s===void 0?!0:s;return function(c){var u,p,m,d=0,h=!1,v=!1,B=function(){p==null||p.unsubscribe(),p=void 0},re=function(){B(),u=m=void 0,h=v=!1},z=function(){var T=u;re(),T==null||T.unsubscribe()};return g(function(T,Ke){d++,!v&&!h&&B();var We=m=m!=null?m:r();Ke.add(function(){d--,d===0&&!v&&!h&&(p=jr(z,f))}),We.subscribe(Ke),!u&&d>0&&(u=new et({next:function(Ie){return We.next(Ie)},error:function(Ie){v=!0,B(),p=jr(re,o,Ie),We.error(Ie)},complete:function(){h=!0,B(),p=jr(re,a),We.complete()}}),$(T).subscribe(u))})(c)}}function jr(e,t){for(var r=[],n=2;ne.next(document)),e}function K(e,t=document){return Array.from(t.querySelectorAll(e))}function V(e,t=document){let r=se(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function se(e,t=document){return t.querySelector(e)||void 0}function _e(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}function tr(e){return L(b(document.body,"focusin"),b(document.body,"focusout")).pipe(ke(1),l(()=>{let t=_e();return typeof t!="undefined"?e.contains(t):!1}),N(e===_e()),Y())}function Be(e){return{x:e.offsetLeft,y:e.offsetTop}}function Yn(e){return L(b(window,"load"),b(window,"resize")).pipe(Ce(0,we),l(()=>Be(e)),N(Be(e)))}function rr(e){return{x:e.scrollLeft,y:e.scrollTop}}function dt(e){return L(b(e,"scroll"),b(window,"resize")).pipe(Ce(0,we),l(()=>rr(e)),N(rr(e)))}var Bn=function(){if(typeof Map!="undefined")return Map;function e(t,r){var n=-1;return t.some(function(o,i){return o[0]===r?(n=i,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(r){var n=e(this.__entries__,r),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(r,n){var o=e(this.__entries__,r);~o?this.__entries__[o][1]=n:this.__entries__.push([r,n])},t.prototype.delete=function(r){var n=this.__entries__,o=e(n,r);~o&&n.splice(o,1)},t.prototype.has=function(r){return!!~e(this.__entries__,r)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o0},e.prototype.connect_=function(){!zr||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),xa?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!zr||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var r=t.propertyName,n=r===void 0?"":r,o=ya.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),Jn=function(e,t){for(var r=0,n=Object.keys(t);r0},e}(),Zn=typeof WeakMap!="undefined"?new WeakMap:new Bn,eo=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var r=Ea.getInstance(),n=new Ra(t,r,this);Zn.set(this,n)}return e}();["observe","unobserve","disconnect"].forEach(function(e){eo.prototype[e]=function(){var t;return(t=Zn.get(this))[e].apply(t,arguments)}});var ka=function(){return typeof nr.ResizeObserver!="undefined"?nr.ResizeObserver:eo}(),to=ka;var ro=new E,Ha=I(()=>H(new to(e=>{for(let t of e)ro.next(t)}))).pipe(x(e=>L(Te,H(e)).pipe(C(()=>e.disconnect()))),J(1));function de(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ge(e){return Ha.pipe(S(t=>t.observe(e)),x(t=>ro.pipe(_(({target:r})=>r===e),C(()=>t.unobserve(e)),l(()=>de(e)))),N(de(e)))}function bt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function ar(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}var no=new E,Pa=I(()=>H(new IntersectionObserver(e=>{for(let t of e)no.next(t)},{threshold:0}))).pipe(x(e=>L(Te,H(e)).pipe(C(()=>e.disconnect()))),J(1));function sr(e){return Pa.pipe(S(t=>t.observe(e)),x(t=>no.pipe(_(({target:r})=>r===e),C(()=>t.unobserve(e)),l(({isIntersecting:r})=>r))))}function oo(e,t=16){return dt(e).pipe(l(({y:r})=>{let n=de(e),o=bt(e);return r>=o.height-n.height-t}),Y())}var cr={drawer:V("[data-md-toggle=drawer]"),search:V("[data-md-toggle=search]")};function io(e){return cr[e].checked}function qe(e,t){cr[e].checked!==t&&cr[e].click()}function je(e){let t=cr[e];return b(t,"change").pipe(l(()=>t.checked),N(t.checked))}function $a(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ia(){return L(b(window,"compositionstart").pipe(l(()=>!0)),b(window,"compositionend").pipe(l(()=>!1))).pipe(N(!1))}function ao(){let e=b(window,"keydown").pipe(_(t=>!(t.metaKey||t.ctrlKey)),l(t=>({mode:io("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),_(({mode:t,type:r})=>{if(t==="global"){let n=_e();if(typeof n!="undefined")return!$a(n,r)}return!0}),fe());return Ia().pipe(x(t=>t?R:e))}function Me(){return new URL(location.href)}function ot(e){location.href=e.href}function so(){return new E}function co(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)co(e,r)}function M(e,t,...r){let n=document.createElement(e);if(t)for(let o of Object.keys(t))typeof t[o]!="undefined"&&(typeof t[o]!="boolean"?n.setAttribute(o,t[o]):n.setAttribute(o,""));for(let o of r)co(n,o);return n}function fr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function fo(){return location.hash.substring(1)}function uo(e){let t=M("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Fa(){return b(window,"hashchange").pipe(l(fo),N(fo()),_(e=>e.length>0),J(1))}function po(){return Fa().pipe(l(e=>se(`[id="${e}"]`)),_(e=>typeof e!="undefined"))}function Nr(e){let t=matchMedia(e);return Zt(r=>t.addListener(()=>r(t.matches))).pipe(N(t.matches))}function lo(){let e=matchMedia("print");return L(b(window,"beforeprint").pipe(l(()=>!0)),b(window,"afterprint").pipe(l(()=>!1))).pipe(N(e.matches))}function qr(e,t){return e.pipe(x(r=>r?t():R))}function ur(e,t={credentials:"same-origin"}){return ve(fetch(`${e}`,t)).pipe(ce(()=>R),x(r=>r.status!==200?Tt(()=>new Error(r.statusText)):H(r)))}function Ue(e,t){return ur(e,t).pipe(x(r=>r.json()),J(1))}function mo(e,t){let r=new DOMParser;return ur(e,t).pipe(x(n=>n.text()),l(n=>r.parseFromString(n,"text/xml")),J(1))}function pr(e){let t=M("script",{src:e});return I(()=>(document.head.appendChild(t),L(b(t,"load"),b(t,"error").pipe(x(()=>Tt(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(l(()=>{}),C(()=>document.head.removeChild(t)),Oe(1))))}function ho(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function bo(){return L(b(window,"scroll",{passive:!0}),b(window,"resize",{passive:!0})).pipe(l(ho),N(ho()))}function vo(){return{width:innerWidth,height:innerHeight}}function go(){return b(window,"resize",{passive:!0}).pipe(l(vo),N(vo()))}function yo(){return Q([bo(),go()]).pipe(l(([e,t])=>({offset:e,size:t})),J(1))}function lr(e,{viewport$:t,header$:r}){let n=t.pipe(X("size")),o=Q([n,r]).pipe(l(()=>Be(e)));return Q([r,t,o]).pipe(l(([{height:i},{offset:a,size:s},{x:f,y:c}])=>({offset:{x:a.x-f,y:a.y-c+i},size:s})))}(()=>{function e(n,o){parent.postMessage(n,o||"*")}function t(...n){return n.reduce((o,i)=>o.then(()=>new Promise(a=>{let s=document.createElement("script");s.src=i,s.onload=a,document.body.appendChild(s)})),Promise.resolve())}var r=class{constructor(n){this.url=n,this.onerror=null,this.onmessage=null,this.onmessageerror=null,this.m=a=>{a.source===this.w&&(a.stopImmediatePropagation(),this.dispatchEvent(new MessageEvent("message",{data:a.data})),this.onmessage&&this.onmessage(a))},this.e=(a,s,f,c,u)=>{if(s===this.url.toString()){let p=new ErrorEvent("error",{message:a,filename:s,lineno:f,colno:c,error:u});this.dispatchEvent(p),this.onerror&&this.onerror(p)}};let o=new EventTarget;this.addEventListener=o.addEventListener.bind(o),this.removeEventListener=o.removeEventListener.bind(o),this.dispatchEvent=o.dispatchEvent.bind(o);let i=document.createElement("iframe");i.width=i.height=i.frameBorder="0",document.body.appendChild(this.iframe=i),this.w.document.open(),this.w.document.write(` + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

The Ontology Development Kit (ODK) - Documentation

+

+

Manage your ontology's life cycle with the Ontology Development Kit (ODK)!

+

The ODK is +- a toolbox of various ontology related tools such as ROBOT, owltools, dosdp-tools and many more, bundled as a docker image +- a set of executable workflows for managing your ontology's continuous integration, quality control, releases and dynamic imports

+

For more details, see

+ +

Where to get help

+ + + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/index.rst b/index.rst new file mode 100644 index 00000000..af54eeea --- /dev/null +++ b/index.rst @@ -0,0 +1,35 @@ +Ontology Development Kit Guide +============ + +This guide is intended for maintainers and editors of OBO ontologies. + +The first part of the guide is how to set up a new ontology +project. This requires some technical steps. + +The second part of the guide is for day to day editing. + +**NOTE** this guide is adapted from the GO editors guide. Some +instructions may still be too GO-specific. + + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + NewRepo + InitialSetup + Configs + Installgit + UsingRobotPlugins + DailyWorkflow + CreateNewTerm + Synonyms + DeletingAssertedSubClasses + ObsoleteTerm + MergeTerms + TermComments + NewSlimTerm + NewSlim + TaxonRestriction + AddTermToImport + diff --git a/project-schema/index.html b/project-schema/index.html new file mode 100644 index 00000000..3a434a51 --- /dev/null +++ b/project-schema/index.html @@ -0,0 +1,795 @@ + + + + + + + + + + + + + + + + + + + + + + + + ODK Schema - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

ODK Schema

+ +

ODK Project Configuration Schema

+
    +
  • +

    allow_equivalents (string): can be all, none or asserted-only (see ROBOT documentation: http://robot.obolibrary.org/reason). Default: asserted-only.

    +
  • +
  • +

    catalog_file (string): Name of the catalog file to be used by the build. Default: catalog-v001.xml.

    +
  • +
  • +

    ci (list): continuous integration defaults; currently available: travis, github_actions, gitlab-ci. Default: ['github_actions'].

    +
  • +
  • +

    Items (string)

    +
  • +
  • +

    components:

    +
      +
    • base_iris (list) A list of URI prefixes used to identify terms belonging to the component.
    • +
    • Items (string)
    • +
    • filename (string) The filename of this component.
    • +
    • make_base (boolean): if make_base is true, the file is turned into a base (works with source). Default: False.
    • +
    • mappings (list) A list of SSSOM template names. If set, these will be used to source this component.
    • +
    • Items (string)
    • +
    • source (string) The URL source for which the component should be obtained.
    • +
    • sssom_tool_options (string) SSSOM toolkit options passed to the sssom command used to generate this product command.
    • +
    • template_options (string) ROBOT options passed to the template command.
    • +
    • templates (list) A list of ROBOT template names. If set, these will be used to source this component.
    • +
    • Items (string)
    • +
    • use_mappings (boolean): If true, the component will be sourced from on or more SSSOM mapping files. Default: False.
    • +
    • use_template (boolean): If true, the component will be sourced by a template. Default: False.
    • +
    • directory (string): directory where components are maintained. Default: components.
    • +
    • products (list)
        +
      • base_iris (list) A list of URI prefixes used to identify terms belonging to the component.
      • +
      • Items (string)
      • +
      • filename (string) The filename of this component.
      • +
      • make_base (boolean): if make_base is true, the file is turned into a base (works with source). Default: False.
      • +
      • mappings (list) A list of SSSOM template names. If set, these will be used to source this component.
      • +
      • Items (string)
      • +
      • source (string) The URL source for which the component should be obtained.
      • +
      • sssom_tool_options (string) SSSOM toolkit options passed to the sssom command used to generate this product command.
      • +
      • template_options (string) ROBOT options passed to the template command.
      • +
      • templates (list) A list of ROBOT template names. If set, these will be used to source this component.
      • +
      • Items (string)
      • +
      • use_mappings (boolean): If true, the component will be sourced from on or more SSSOM mapping files. Default: False.
      • +
      • use_template (boolean): If true, the component will be sourced by a template. Default: False.
      • +
      +
    • +
    +
  • +
  • +

    contact (string) Single contact for ontology as required by OBO.

    +
  • +
  • +

    contributors (list) List of ontology contributors (currently setting this has no effect).

    +
  • +
  • +

    Items (string)

    +
  • +
  • +

    create_obo_metadata (boolean): if true OBO Markdown and PURL configs are created. Default: True.

    +
  • +
  • +

    creators (list) List of ontology creators (currently setting this has no effect).

    +
  • +
  • +

    Items (string)

    +
  • +
  • +

    custom_makefile_header (string): A multiline string that is added to the Makefile. Default: # ----------------------------------------# More information: https://github.com/INCATools/ontology-development-kit/.

    +
  • +
  • +

    description (string): Provide a short description of the ontology. Default: None.

    +
  • +
  • +

    documentation:

    +
      +
    • documentation_system (string): Currently, only mkdocs is supported. Default: mkdocs.
    • +
    +
  • +
  • +

    dosdp_tools_options (string): default parameters for dosdp-tools. Default: --obo-prefixes=true.

    +
  • +
  • +

    edit_format (string): Format in which the edit file is managed, either obo or owl. Default: owl.

    +
  • +
  • +

    ensure_valid_rdfxml (boolean): When enabled, ensure that any RDF/XML product file is valid. Default: False.

    +
  • +
  • +

    exclude_tautologies (string): Remove tautologies such as A SubClassOf: owl:Thing or owl:Nothing SubclassOf: A. For more information see http://robot.obolibrary.org/reason#excluding-tautologies. Default: structural.

    +
  • +
  • +

    export_formats (list): A list of export formats you wish your release artefacts to be exported to, such as owl, obo, gz, ttl. Default: ['owl', 'obo'].

    +
  • +
  • +

    Items (string)

    +
  • +
  • +

    export_project_yaml (boolean): Flag to set if you want a full project.yaml to be exported, including all the default options. Default: False.

    +
  • +
  • +

    git_main_branch (string): The main branch for your repo, such as main, or (now discouraged) master. Default: main.

    +
  • +
  • +

    git_user (string): GIT user name (necessary for generating releases). Default: ``.

    +
  • +
  • +

    github_org (string): Name of github org or username where repo will live. Examples: obophenotype, cmungall. Default: ``.

    +
  • +
  • +

    gzip_main (boolean): if true add a gzipped version of the main artefact. Default: False.

    +
  • +
  • +

    id (string): OBO id for this ontology. Must be lowecase Examples: uberon, go, cl, envo, chebi. Default: ``.

    +
  • +
  • +

    import_component_format (string): The default serialisation for all components and imports. Default: ofn.

    +
  • +
  • +

    import_group:

    +
      +
    • disabled (boolean): if set then this is not used. Default: False.
    • +
    • ids (list) potentially deprecated, specify explicit product list instead.
    • +
    • Items (string)
    • +
    • rebuild_if_source_changes (boolean): if false then upstream ontology is re-downloaded any time edit file changes. Default: True.
    • +
    • annotation_properties (list): Define which annotation properties to pull in. Default: ['rdfs:label', 'IAO:0000115'].
    • +
    • directory (string): directory where imports are extracted into to. Default: imports/.
    • +
    • exclude_iri_patterns (list): List of IRI patterns. If set, IRIs matching and IRI pattern will be removed from the import. Default: ``.
    • +
    • export_obo (boolean): If set to true, modules will not only be created in OWL, but also OBO format. Default: False.
    • +
    • mirror_max_time_download (integer): Corresponds to the cURL --max-time parameter (in seconds), see http://www.ipgp.fr/~arnaudl/NanoCD/software/win32/curl/docs/curl.html. Default: 200.
    • +
    • mirror_retry_download (integer): Corresponds to the cURL --retry parameter, see http://www.ipgp.fr/~arnaudl/NanoCD/software/win32/curl/docs/curl.html. Default: 4.
    • +
    • module_type (string): Module type. Supported: slme, minimal, custom. Default: slme.
    • +
    • module_type_slme (string): SLME module type. Supported: BOT, TOP, STAR. Default: BOT.
    • +
    • products (list)
        +
      • description (string) A concise textual description of the product.
      • +
      • id (string) ontology project identifier / shorthand; e.g. go, obi, envo.
      • +
      • maintenance (string): A setting that can be used to change certain assets that are typically managed automatically (by ODK) to manual or other maintenance strategies. Default: manual.
      • +
      • rebuild_if_source_changes (boolean): If false then previously downloaded versions of external ontologies are used. Default: True.
      • +
      • robot_settings:
          +
        • memory_gb (integer) Amount of memory in GB to provide for tool such as robot.
        • +
        +
      • +
      • annotation_properties (list): Define which annotation properties to pull in. Default: ['rdfs:label', 'IAO:0000115'].
      • +
      • base_iris (list): if specified this URL is used rather than the default OBO PURL for the main OWL product. Default: ``.
      • +
      • is_large (boolean): if large, ODK may take measures to reduce the memory footprint of the import. Default: False.
      • +
      • make_base (boolean): if make_base is true, try to extract a base file from the mirror. Default: False.
      • +
      • mirror_from (string): if specified this URL is used rather than the default OBO PURL for the main OWL product. Default: ``.
      • +
      • mirror_type (string): Define the type of the mirror for your import. Supported: base, custom, no_mirror. Default: ``.
      • +
      • module_type (string): Module type. Supported: slme, minimal, custom, mirror. Default: ``.
      • +
      • module_type_slme (string): SLME module type. Supported: BOT, TOP, STAR. Default: BOT.
      • +
      • slme_individuals (string): See http://robot.obolibrary.org/extract#syntactic-locality-module-extractor-slme. Default: include.
      • +
      • use_base (boolean): if use_base is true, try use the base IRI instead of normal one to mirror from. Default: False.
      • +
      • use_gzipped (boolean): if use_gzipped is true, try use the base IRI instead of normal one to mirror from. Default: False.
      • +
      +
    • +
    • release_imports (boolean): If set to True, imports are copied to the release directory. Default: False.
    • +
    • slme_individuals (string): See http://robot.obolibrary.org/extract#syntactic-locality-module-extractor-slme. Default: include.
    • +
    • use_base_merging (boolean): If set to true, mirrors will be merged before determining a suitable seed. This can be a quite costly process. Default: False.
    • +
    +
  • +
  • +

    import_pattern_ontology (boolean): if true import pattern.owl. Default: False.

    +
  • +
  • +

    license (string): Which license is ontology supplied under - must be an IRI. Default: https://creativecommons.org/licenses/unspecified.

    +
  • +
  • +

    namespaces (list) A list of namespaces that are considered at home in this ontology. Used for certain filter commands.

    +
  • +
  • +

    Items (string)

    +
  • +
  • +

    obo_format_options (string): Additional args to pass to robot when saving to obo. TODO consider changing to a boolean for checks. Default: ``.

    +
  • +
  • +

    owltools_memory (string): OWLTools memory, for example 4GB. Default: ``.

    +
  • +
  • +

    pattern_pipelines_group:

    +
      +
    • disabled (boolean): if set then this is not used. Default: False.
    • +
    • ids (list) potentially deprecated, specify explicit product list instead.
    • +
    • Items (string)
    • +
    • rebuild_if_source_changes (boolean): if false then upstream ontology is re-downloaded any time edit file changes. Default: True.
    • +
    • directory (string): directory where pattern source lives, also where TSV exported to. Default: ../patterns/.
    • +
    • matches (list)
        +
      • description (string) A concise textual description of the product.
      • +
      • id (string) ontology project identifier / shorthand; e.g. go, obi, envo.
      • +
      • maintenance (string): A setting that can be used to change certain assets that are typically managed automatically (by ODK) to manual or other maintenance strategies. Default: manual.
      • +
      • rebuild_if_source_changes (boolean): If false then previously downloaded versions of external ontologies are used. Default: True.
      • +
      • robot_settings:
          +
        • memory_gb (integer) Amount of memory in GB to provide for tool such as robot.
        • +
        +
      • +
      • dosdp_tools_options (string): Default: --obo-prefixes=true.
      • +
      • ontology (string): Default: $(SRC).
      • +
      +
    • +
    • products (list)
    • +
    • ...
    • +
    +
  • +
  • +

    primary_release (string): Which release file should be published as the primary release artefact, i.e. foo.owl. Default: full.

    +
  • +
  • +

    public_release (string): if true add functions to run automated releases (experimental). Current options are: github_curl, github_python. Default: none.

    +
  • +
  • +

    public_release_assets (list) A list of files that gets added to a github/gitlab/etc release (as assets). If this option is not set (None), the standard ODK assets will be deployed.

    +
  • +
  • +

    Items (string)

    +
  • +
  • +

    reasoner (string): Name of reasoner to use in ontology pipeline, see robot reason docs for allowed values. Default: ELK.

    +
  • +
  • +

    release_artefacts (list): A list of release artefacts you wish to be exported. Default: ['full', 'base'].

    +
  • +
  • +

    Items (string)

    +
  • +
  • +

    release_date (boolean): if true, releases will be tagged with a release date (oboInOwl:date). Default: False.

    +
  • +
  • +

    release_diff (boolean): When enabled, a diff is generated between the current release and the new one. Default: False.

    +
  • +
  • +

    release_use_reasoner (boolean): If set to True, the reasoner will be used during the release process. Default: True.

    +
  • +
  • +

    remove_owl_nothing (boolean): Flag to set if you want odk to remove owl:Nothing from releases. Default: False.

    +
  • +
  • +

    repo (string): Name of repo (do not include org). E.g. cell-ontology. Default: ``.

    +
  • +
  • +

    robot_java_args (string): Java args to pass to ROBOT at runtime, such as -Xmx6G. Default: ``.

    +
  • +
  • +

    robot_report (object): Block that includes settings for ROBOT report, ROBOT verify and additional reports that are generated. Default: {'custom_profile': False, 'custom_sparql_checks': ['owldef-self-reference', 'iri-range', 'label-with-iri', 'multiple-replaced_by'], 'custom_sparql_exports': ['basic-report', 'class-count-by-prefix', 'edges', 'xrefs', 'obsoletes', 'synonyms'], 'ensure_owl2dl_profile': True, 'fail_on': None, 'release_reports': False, 'report_on': ['edit'], 'sparql_test_on': ['edit'], 'use_base_iris': True, 'use_labels': True}.

    +
  • +
  • +

    robot_settings:

    +
      +
    • memory_gb (integer) Amount of memory in GB to provide for tool such as robot.
    • +
    +
  • +
  • +

    robot_version (string) Only set this if you want to pin to a specific robot version.

    +
  • +
  • +

    sssom_mappingset_group:

    +
      +
    • directory (string): Default: ../mappings.
    • +
    • products (list)
        +
      • description (string) A concise textual description of the product.
      • +
      • id (string) ontology project identifier / shorthand; e.g. go, obi, envo.
      • +
      • maintenance (string): A setting that can be used to change certain assets that are typically managed automatically (by ODK) to manual or other maintenance strategies. Default: manual.
      • +
      • rebuild_if_source_changes (boolean): If false then previously downloaded versions of external ontologies are used. Default: True.
      • +
      • robot_settings:
      • +
      • memory_gb (integer) Amount of memory in GB to provide for tool such as robot.
      • +
      +
    • +
    • mirror_from (string): if specified this URL is used to mirror the mapping set. Default: ``.
    • +
    • source_file (string): The name of the file from which the mappings should be extracted. Default: ``.
    • +
    • sssom_tools_options (string): Custom SSSOM toolkit options to be added to command. Default: ``.
    • +
    • release_mappings (boolean): If set to True, mappings are copied to the release directory. Default: False.
    • +
    +
  • +
  • +

    subset_group:

    +
      +
    • disabled (boolean): if set then this is not used. Default: False.
    • +
    • ids (list) potentially deprecated, specify explicit product list instead.
    • +
    • Items (string)
    • +
    • rebuild_if_source_changes (boolean): if false then upstream ontology is re-downloaded any time edit file changes. Default: True.
    • +
    • directory (string): directory where subsets are placed after extraction from ontology. Default: subsets/.
    • +
    • products (list)
        +
      • description (string) A concise textual description of the product.
      • +
      • id (string) ontology project identifier / shorthand; e.g. go, obi, envo.
      • +
      • maintenance (string): A setting that can be used to change certain assets that are typically managed automatically (by ODK) to manual or other maintenance strategies. Default: manual.
      • +
      • rebuild_if_source_changes (boolean): If false then previously downloaded versions of external ontologies are used. Default: True.
      • +
      • robot_settings:
          +
        • memory_gb (integer) Amount of memory in GB to provide for tool such as robot.
        • +
        +
      • +
      • creators (list): list of people that are credited as creators/maintainers of the subset. Default: ``.
      • +
      +
    • +
    +
  • +
  • +

    title (string): Concise descriptive text about this ontology. Default: ``.

    +
  • +
  • +

    travis_emails (list) Emails to use in travis configurations.

    +
  • +
  • +

    Items (string)

    +
  • +
  • +

    uribase (string): Base URI for PURLs. For an example see https://gitlab.c-path.org/c-pathontology/critical-path-ontology. Default: http://purl.obolibrary.org/obo.

    +
  • +
  • +

    uribase_suffix (string) Suffix for the uri base. If not set, the suffix will be the ontology id by default.

    +
  • +
  • +

    use_context (boolean): If True, a context file is created that allows the user to specify prefixes used across the project. Default: False.

    +
  • +
  • +

    use_custom_import_module (boolean): if true add a custom import module which is managed through a robot template. This can also be used to manage your module seed. Default: False.

    +
  • +
  • +

    use_dosdps (boolean): if true use dead simple owl design patterns. Default: False.

    +
  • +
  • +

    use_edit_file_imports (boolean): If True, ODK will release the ontology with imports explicitly specified by owl:imports in the edit file. + If False, ODK will build and release the ontology with all imports and all components specified in the ODK config file. Default: True.

    +
  • +
  • +

    use_env_file_docker (boolean): if true environment variables are collected by the docker wrapper and passed into the container. Default: False.

    +
  • +
  • +

    use_external_date (boolean): Flag to set if you want odk to use the host date rather than the docker internal date. Default: False.

    +
  • +
  • +

    use_mappings (boolean): if true use SSSOM mapping files. Default: False.

    +
  • +
  • +

    use_templates (boolean): if true use ROBOT templates. Default: False.

    +
  • +
  • +

    workflows (list): Workflows that are synced when updating the repo. Currently available: docs, diff, qc. Default: ['docs'].

    +
  • +
  • Items (string)
  • +
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/schema-options/index.html b/schema-options/index.html new file mode 100644 index 00000000..ebb642ba --- /dev/null +++ b/schema-options/index.html @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + + + + + + + + + + + ODK Schema Options - Ontology Development Kit (ODK) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + + + + + + + +

Breakdown of values for the ODK schema

+

The auto-generated schema can be found here.

+

This document provides additional explanations about options in the ODK schema.

+

Module types

+

TBD

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/search/search_index.json b/search/search_index.json new file mode 100644 index 00000000..98d21969 --- /dev/null +++ b/search/search_index.json @@ -0,0 +1 @@ +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"The Ontology Development Kit (ODK) - Documentation","text":"

Manage your ontology's life cycle with the Ontology Development Kit (ODK)!

The ODK is - a toolbox of various ontology related tools such as ROBOT, owltools, dosdp-tools and many more, bundled as a docker image - a set of executable workflows for managing your ontology's continuous integration, quality control, releases and dynamic imports

For more details, see

  • 2022 Paper
  • 2018 Article
  • ICBO Workshop Slides 2018
  • ICBO Workshop Slides 2017
"},{"location":"#where-to-get-help","title":"Where to get help","text":"
  • How-to guides:
  • How to create your first repository with the ODK
  • ODK in 20 minutes
  • ODK adding custom QC checks
  • How to import large ontologies efficiently
  • Reference:
  • Learn about the different kinds of release artefacts
  • Learn about the ODK Project Configuration Schema for allowed parameters in your [project]-odk.yaml
  • Community:
  • If you have issues, file them on our issue tracker
  • We also have an active community on Slack; you can request access by making a ticket here
"},{"location":"AddTermToImport/","title":"AddTermToImport","text":"

See https://oboacademy.github.io/obook/howto/update-import/

"},{"location":"CreateNewTerm/","title":"CreateNewTerm","text":"

Please refer to https://oboacademy.github.io/obook/howto/create-new-term/

"},{"location":"CreatingRepo/","title":"CreatingRepo","text":"

Please refer to https://oboacademy.github.io/obook/tutorial/setting-up-project-odk/

"},{"location":"DailyWorkflow/","title":"DailyWorkflow","text":"

See https://oboacademy.github.io/obook/tutorial/managing-ontology-project/.

"},{"location":"DealWithLargeOntologies/","title":"DealWithLargeOntologies","text":"

Please refer to https://oboacademy.github.io/obook/howto/deal-with-large-ontologies/

"},{"location":"DeletingAssertedSubClasses/","title":"DeletingAssertedSubClasses","text":"

Please refer to https://oboacademy.github.io/obook/explanation/deleting-asserted-sub-classes/

"},{"location":"FrequentlyUsedODKCommands/","title":"Frequently used ODK commands","text":""},{"location":"FrequentlyUsedODKCommands/#updates-the-makefile-to-the-latest-odk","title":"Updates the Makefile to the latest ODK","text":"
sh run.sh make update_repo \n
"},{"location":"FrequentlyUsedODKCommands/#recreates-and-deploys-the-automated-documentation","title":"Recreates and deploys the automated documentation","text":"
sh run.sh make update_docs\n
"},{"location":"FrequentlyUsedODKCommands/#preparing-a-new-release","title":"Preparing a new release","text":"
sh run.sh make prepare_release\n
"},{"location":"FrequentlyUsedODKCommands/#refreshing-a-single-import","title":"Refreshing a single import","text":"
sh run.sh make refresh-%\n

Example:

sh run.sh make refresh-chebi\n
"},{"location":"FrequentlyUsedODKCommands/#refresh-all-imports","title":"Refresh all imports","text":"
sh run.sh make refresh-imports \n
"},{"location":"FrequentlyUsedODKCommands/#refresh-all-imports-excluding-large-ones","title":"Refresh all imports excluding large ones","text":"
sh run.sh make refresh-imports-excluding-large\n
"},{"location":"FrequentlyUsedODKCommands/#run-all-the-qc-checks","title":"Run all the QC checks","text":"
sh run.sh make test\n
"},{"location":"FrequentlyUsedODKCommands/#print-the-version-of-the-currently-installed-odk","title":"Print the version of the currently installed ODK","text":"
sh run.sh make odkversion\n
"},{"location":"FrequentlyUsedODKCommands/#checks-the-owl2-dl-profile-validity","title":"Checks the OWL2 DL profile validity","text":"

(of a specific file)

sh run.sh make validate_profile_% \n
Example:

sh run.sh make validate_profile_hp-edit.owl\n
"},{"location":"InitialSetup/","title":"InitialSetup","text":"

See https://oboacademy.github.io/obook/pathways/ontology-curator-go-style/

"},{"location":"License/","title":"License","text":"

Refer to https://oboacademy.github.io/obook/reference/formatting-license/.

"},{"location":"MergeTerms/","title":"MergeTerms","text":"

Please refer to https://oboacademy.github.io/obook/howto/merge-terms/

"},{"location":"NewSlim/","title":"NewSlim","text":"

Please refer to https://oboacademy.github.io/obook/howto/add-new-slim/

"},{"location":"NewSlimTerm/","title":"NewSlimTerm","text":"

Please refer to https://oboacademy.github.io/obook/howto/add-new-slim/

"},{"location":"ODKDevelopmentSnapshot/","title":"Using the ODK Development Snapshot","text":"

ODK is constantly being updated, but we release new versions only once every 3-4 months. For people with a nack to beta-testing and experimental features, or those which need to use the latest versions of the bundled tools, we provide a \"development\" snapshot of the ODK which is updated roughly once per week:

Look for dev tag in https://hub.docker.com/r/obolibrary/odkfull/tags

You can install the development snapshot like this:

docker pull obolibrary/odkfull:dev\n

Important:

  1. The dev snapshot of ODK is unstable, and therefore will have bugs. You use it at your own risk!
  2. You cannot rely on any of the features in the development snapshot to make it into production (at least not with more than 85% confidence).
"},{"location":"ODKDevelopmentSnapshot/#how-to-install-and-use-development-snapshot-in-odk-ontology-repo","title":"How to install and use development snapshot in ODK Ontology Repo","text":"

If you want to use the development snapshot with your run.sh docker wrapper, you will have to make sure that have enabled it correctly.

  1. docker pull obolibrary/odkfull:dev As mentioned above, this command installs the development snapshot
  2. docker pull obolibrary/odkfull
  3. Make sure your repo is up to date with the latest official release version (at least 1.3.1)
  4. If currently using 1.3.1: IMAGE=odkfull:dev sh run.sh make update_repo, else ODK_TAG=dev sh run.sh make update_repo
  5. ODK_TAG=dev sh run.sh make update_repo (again, if you ran it above)

You have now set your repo up to run via the development snapshot. At the top of the file, in the comments, your automatically-generated src/ontology/Makefile should now reference the development snapshot you have installed rather than the stable production release.

Finally:

  1. You can now run any command via the run.sh docker wrapper. Just make sure you use the appropriate prefix depending on your version of the ODK:
  2. If you are using ODK 1.3.1 run IMAGE=obolibrary/odkfull:dev sh run.sh make update_repo (or whatever other command you wanted to run).
  3. If you are using ODK 1.3.2 or later (or the dev image), run: ODK_TAG=dev sh run.sh make update_repo (or whatever other command you wanted to run).
"},{"location":"ObsoleteTerm/","title":"ObsoleteTerm","text":"

Please refer to https://oboacademy.github.io/obook/howto/obsolete-term/

"},{"location":"ReleaseArtefacts/","title":"ReleaseArtefacts","text":"

Please refer to https://oboacademy.github.io/obook/reference/release-artefacts/

"},{"location":"Synonyms/","title":"Synonyms","text":"

Please refer to https://oboacademy.github.io/obook/reference/synonyms-obo/

"},{"location":"TaxonRestriction/","title":"TaxonRestriction","text":"

Please refer to https://oboacademy.github.io/obook/howto/add-taxon-restrictions/

"},{"location":"TermComments/","title":"TermComments","text":"

Please refer to https://oboacademy.github.io/obook/explanation/term-comments/

"},{"location":"UsingRobotPlugins/","title":"Using ROBOT Plugins","text":"

Since version 1.9.5, the ROBOT tool allows to use plugins that provide supplementary commands that are not part of the default command set.

"},{"location":"UsingRobotPlugins/#declaring-the-plugins-to-be-used","title":"Declaring the plugins to be used","text":"

Before you can use plugins in a custom workflow, the ODK must be aware of those plugins. There are several ways to do that.

"},{"location":"UsingRobotPlugins/#listing-the-plugins-in-the-odk-configuration","title":"Listing the plugins in the ODK configuration","text":"

Add a new robot_plugins section to your ODK configuration file (src/ontology/ONT-odk.yaml). That section should contain a single plugins key, which itself should contain the list of the plugins you want to use. Each entry in the list must contain at least a name key, which is the name under which the plugin will be available, and optionally a mirror_from key, pointing to an online location from which the plugin can be downloaded.

For example, to use the KGCL plugin:

robot_plugins:\nplugins:\n- name: kgcl\nmirror_from: https://github.com/gouttegd/kgcl-java/releases/download/kgcl-0.2.0/kgcl-robot-plugin-0.2.0.jar\n

If you do not specify a download location with the mirror_from key, a dummy rule ${ROBOT_PLUGINS_DIRECTORY}/kgcl.jar will be generated in the standard Makefile. You will need to override that rule in your ontology-specific Makefile:

${ROBOT_PLUGINS_DIRECTORY}/kgcl.jar:\ncurl -L -o $@ https://github.com/gouttegd/kgcl-java/releases/download/kgcl-0.2.0/kgcl-robot-plugin-0.2.0.jar\n
"},{"location":"UsingRobotPlugins/#using-custom-rules","title":"Using custom rules","text":"

If for whatever reason you do not want to modify your ODK configuration, you can still set up a plugin by adding a rule such as the one above in the custom Makefile, and listing the plugin in the custom_robot_plugins variable. For example, again with the KGCL lplugin:

${ROBOT_PLUGINS_DIRECTORY}/kgcl.jar:\ncurl -L -o $@ https://github.com/gouttegd/kgcl-java/releases/download/kgcl-0.2.0/kgcl-robot-plugin-0.2.0.jar\n\ncustom_robot_plugins: $(ROBOT_PLUGINS_DIRECTORY)/kgcl.jar\n
"},{"location":"UsingRobotPlugins/#putting-the-plugin-file-in-the-top-level-plugins-directory","title":"Putting the plugin file in the top-level plugins directory","text":"

Any Jar file found in the repository\u2019s top-level plugins directory (if such a directory exists) will automatically be found by the ODK, without requiring any change to the ODK configuration or the custom Makefile.

"},{"location":"UsingRobotPlugins/#odk-provided-plugins","title":"ODK-provided plugins","text":"

Some plugins are already bundled with the ODK and don\u2019t need to be declared or downloaded from somewhere else. For now, there is only one such plugin: the SSSOM plugin. More default plugins may be added in future ODK versions.

"},{"location":"UsingRobotPlugins/#using-a-plugin-a-custom-workflow","title":"Using a plugin a custom workflow","text":"

Any Make rule that involves the use of a ROBOT plugin MUST depend on the all_robot_plugins target. This will ensure that all plugins have been properly set up in the runtime ROBOT plugins directory.

"},{"location":"project-schema/","title":"ODK Schema","text":""},{"location":"project-schema/#odk-project-configuration-schema","title":"ODK Project Configuration Schema","text":"
  • allow_equivalents (string): can be all, none or asserted-only (see ROBOT documentation: http://robot.obolibrary.org/reason). Default: asserted-only.

  • catalog_file (string): Name of the catalog file to be used by the build. Default: catalog-v001.xml.

  • ci (list): continuous integration defaults; currently available: travis, github_actions, gitlab-ci. Default: ['github_actions'].

  • Items (string)

  • components:

    • base_iris (list) A list of URI prefixes used to identify terms belonging to the component.
    • Items (string)
    • filename (string) The filename of this component.
    • make_base (boolean): if make_base is true, the file is turned into a base (works with source). Default: False.
    • mappings (list) A list of SSSOM template names. If set, these will be used to source this component.
    • Items (string)
    • source (string) The URL source for which the component should be obtained.
    • sssom_tool_options (string) SSSOM toolkit options passed to the sssom command used to generate this product command.
    • template_options (string) ROBOT options passed to the template command.
    • templates (list) A list of ROBOT template names. If set, these will be used to source this component.
    • Items (string)
    • use_mappings (boolean): If true, the component will be sourced from on or more SSSOM mapping files. Default: False.
    • use_template (boolean): If true, the component will be sourced by a template. Default: False.
    • directory (string): directory where components are maintained. Default: components.
    • products (list)
      • base_iris (list) A list of URI prefixes used to identify terms belonging to the component.
      • Items (string)
      • filename (string) The filename of this component.
      • make_base (boolean): if make_base is true, the file is turned into a base (works with source). Default: False.
      • mappings (list) A list of SSSOM template names. If set, these will be used to source this component.
      • Items (string)
      • source (string) The URL source for which the component should be obtained.
      • sssom_tool_options (string) SSSOM toolkit options passed to the sssom command used to generate this product command.
      • template_options (string) ROBOT options passed to the template command.
      • templates (list) A list of ROBOT template names. If set, these will be used to source this component.
      • Items (string)
      • use_mappings (boolean): If true, the component will be sourced from on or more SSSOM mapping files. Default: False.
      • use_template (boolean): If true, the component will be sourced by a template. Default: False.
  • contact (string) Single contact for ontology as required by OBO.

  • contributors (list) List of ontology contributors (currently setting this has no effect).

  • Items (string)

  • create_obo_metadata (boolean): if true OBO Markdown and PURL configs are created. Default: True.

  • creators (list) List of ontology creators (currently setting this has no effect).

  • Items (string)

  • custom_makefile_header (string): A multiline string that is added to the Makefile. Default: # ----------------------------------------# More information: https://github.com/INCATools/ontology-development-kit/.

  • description (string): Provide a short description of the ontology. Default: None.

  • documentation:

    • documentation_system (string): Currently, only mkdocs is supported. Default: mkdocs.
  • dosdp_tools_options (string): default parameters for dosdp-tools. Default: --obo-prefixes=true.

  • edit_format (string): Format in which the edit file is managed, either obo or owl. Default: owl.

  • ensure_valid_rdfxml (boolean): When enabled, ensure that any RDF/XML product file is valid. Default: False.

  • exclude_tautologies (string): Remove tautologies such as A SubClassOf: owl:Thing or owl:Nothing SubclassOf: A. For more information see http://robot.obolibrary.org/reason#excluding-tautologies. Default: structural.

  • export_formats (list): A list of export formats you wish your release artefacts to be exported to, such as owl, obo, gz, ttl. Default: ['owl', 'obo'].

  • Items (string)

  • export_project_yaml (boolean): Flag to set if you want a full project.yaml to be exported, including all the default options. Default: False.

  • git_main_branch (string): The main branch for your repo, such as main, or (now discouraged) master. Default: main.

  • git_user (string): GIT user name (necessary for generating releases). Default: ``.

  • github_org (string): Name of github org or username where repo will live. Examples: obophenotype, cmungall. Default: ``.

  • gzip_main (boolean): if true add a gzipped version of the main artefact. Default: False.

  • id (string): OBO id for this ontology. Must be lowecase Examples: uberon, go, cl, envo, chebi. Default: ``.

  • import_component_format (string): The default serialisation for all components and imports. Default: ofn.

  • import_group:

    • disabled (boolean): if set then this is not used. Default: False.
    • ids (list) potentially deprecated, specify explicit product list instead.
    • Items (string)
    • rebuild_if_source_changes (boolean): if false then upstream ontology is re-downloaded any time edit file changes. Default: True.
    • annotation_properties (list): Define which annotation properties to pull in. Default: ['rdfs:label', 'IAO:0000115'].
    • directory (string): directory where imports are extracted into to. Default: imports/.
    • exclude_iri_patterns (list): List of IRI patterns. If set, IRIs matching and IRI pattern will be removed from the import. Default: ``.
    • export_obo (boolean): If set to true, modules will not only be created in OWL, but also OBO format. Default: False.
    • mirror_max_time_download (integer): Corresponds to the cURL --max-time parameter (in seconds), see http://www.ipgp.fr/~arnaudl/NanoCD/software/win32/curl/docs/curl.html. Default: 200.
    • mirror_retry_download (integer): Corresponds to the cURL --retry parameter, see http://www.ipgp.fr/~arnaudl/NanoCD/software/win32/curl/docs/curl.html. Default: 4.
    • module_type (string): Module type. Supported: slme, minimal, custom. Default: slme.
    • module_type_slme (string): SLME module type. Supported: BOT, TOP, STAR. Default: BOT.
    • products (list)
      • description (string) A concise textual description of the product.
      • id (string) ontology project identifier / shorthand; e.g. go, obi, envo.
      • maintenance (string): A setting that can be used to change certain assets that are typically managed automatically (by ODK) to manual or other maintenance strategies. Default: manual.
      • rebuild_if_source_changes (boolean): If false then previously downloaded versions of external ontologies are used. Default: True.
      • robot_settings:
        • memory_gb (integer) Amount of memory in GB to provide for tool such as robot.
      • annotation_properties (list): Define which annotation properties to pull in. Default: ['rdfs:label', 'IAO:0000115'].
      • base_iris (list): if specified this URL is used rather than the default OBO PURL for the main OWL product. Default: ``.
      • is_large (boolean): if large, ODK may take measures to reduce the memory footprint of the import. Default: False.
      • make_base (boolean): if make_base is true, try to extract a base file from the mirror. Default: False.
      • mirror_from (string): if specified this URL is used rather than the default OBO PURL for the main OWL product. Default: ``.
      • mirror_type (string): Define the type of the mirror for your import. Supported: base, custom, no_mirror. Default: ``.
      • module_type (string): Module type. Supported: slme, minimal, custom, mirror. Default: ``.
      • module_type_slme (string): SLME module type. Supported: BOT, TOP, STAR. Default: BOT.
      • slme_individuals (string): See http://robot.obolibrary.org/extract#syntactic-locality-module-extractor-slme. Default: include.
      • use_base (boolean): if use_base is true, try use the base IRI instead of normal one to mirror from. Default: False.
      • use_gzipped (boolean): if use_gzipped is true, try use the base IRI instead of normal one to mirror from. Default: False.
    • release_imports (boolean): If set to True, imports are copied to the release directory. Default: False.
    • slme_individuals (string): See http://robot.obolibrary.org/extract#syntactic-locality-module-extractor-slme. Default: include.
    • use_base_merging (boolean): If set to true, mirrors will be merged before determining a suitable seed. This can be a quite costly process. Default: False.
  • import_pattern_ontology (boolean): if true import pattern.owl. Default: False.

  • license (string): Which license is ontology supplied under - must be an IRI. Default: https://creativecommons.org/licenses/unspecified.

  • namespaces (list) A list of namespaces that are considered at home in this ontology. Used for certain filter commands.

  • Items (string)

  • obo_format_options (string): Additional args to pass to robot when saving to obo. TODO consider changing to a boolean for checks. Default: ``.

  • owltools_memory (string): OWLTools memory, for example 4GB. Default: ``.

  • pattern_pipelines_group:

    • disabled (boolean): if set then this is not used. Default: False.
    • ids (list) potentially deprecated, specify explicit product list instead.
    • Items (string)
    • rebuild_if_source_changes (boolean): if false then upstream ontology is re-downloaded any time edit file changes. Default: True.
    • directory (string): directory where pattern source lives, also where TSV exported to. Default: ../patterns/.
    • matches (list)
      • description (string) A concise textual description of the product.
      • id (string) ontology project identifier / shorthand; e.g. go, obi, envo.
      • maintenance (string): A setting that can be used to change certain assets that are typically managed automatically (by ODK) to manual or other maintenance strategies. Default: manual.
      • rebuild_if_source_changes (boolean): If false then previously downloaded versions of external ontologies are used. Default: True.
      • robot_settings:
        • memory_gb (integer) Amount of memory in GB to provide for tool such as robot.
      • dosdp_tools_options (string): Default: --obo-prefixes=true.
      • ontology (string): Default: $(SRC).
    • products (list)
    • ...
  • primary_release (string): Which release file should be published as the primary release artefact, i.e. foo.owl. Default: full.

  • public_release (string): if true add functions to run automated releases (experimental). Current options are: github_curl, github_python. Default: none.

  • public_release_assets (list) A list of files that gets added to a github/gitlab/etc release (as assets). If this option is not set (None), the standard ODK assets will be deployed.

  • Items (string)

  • reasoner (string): Name of reasoner to use in ontology pipeline, see robot reason docs for allowed values. Default: ELK.

  • release_artefacts (list): A list of release artefacts you wish to be exported. Default: ['full', 'base'].

  • Items (string)

  • release_date (boolean): if true, releases will be tagged with a release date (oboInOwl:date). Default: False.

  • release_diff (boolean): When enabled, a diff is generated between the current release and the new one. Default: False.

  • release_use_reasoner (boolean): If set to True, the reasoner will be used during the release process. Default: True.

  • remove_owl_nothing (boolean): Flag to set if you want odk to remove owl:Nothing from releases. Default: False.

  • repo (string): Name of repo (do not include org). E.g. cell-ontology. Default: ``.

  • robot_java_args (string): Java args to pass to ROBOT at runtime, such as -Xmx6G. Default: ``.

  • robot_report (object): Block that includes settings for ROBOT report, ROBOT verify and additional reports that are generated. Default: {'custom_profile': False, 'custom_sparql_checks': ['owldef-self-reference', 'iri-range', 'label-with-iri', 'multiple-replaced_by'], 'custom_sparql_exports': ['basic-report', 'class-count-by-prefix', 'edges', 'xrefs', 'obsoletes', 'synonyms'], 'ensure_owl2dl_profile': True, 'fail_on': None, 'release_reports': False, 'report_on': ['edit'], 'sparql_test_on': ['edit'], 'use_base_iris': True, 'use_labels': True}.

  • robot_settings:

    • memory_gb (integer) Amount of memory in GB to provide for tool such as robot.
  • robot_version (string) Only set this if you want to pin to a specific robot version.

  • sssom_mappingset_group:

    • directory (string): Default: ../mappings.
    • products (list)
      • description (string) A concise textual description of the product.
      • id (string) ontology project identifier / shorthand; e.g. go, obi, envo.
      • maintenance (string): A setting that can be used to change certain assets that are typically managed automatically (by ODK) to manual or other maintenance strategies. Default: manual.
      • rebuild_if_source_changes (boolean): If false then previously downloaded versions of external ontologies are used. Default: True.
      • robot_settings:
      • memory_gb (integer) Amount of memory in GB to provide for tool such as robot.
    • mirror_from (string): if specified this URL is used to mirror the mapping set. Default: ``.
    • source_file (string): The name of the file from which the mappings should be extracted. Default: ``.
    • sssom_tools_options (string): Custom SSSOM toolkit options to be added to command. Default: ``.
    • release_mappings (boolean): If set to True, mappings are copied to the release directory. Default: False.
  • subset_group:

    • disabled (boolean): if set then this is not used. Default: False.
    • ids (list) potentially deprecated, specify explicit product list instead.
    • Items (string)
    • rebuild_if_source_changes (boolean): if false then upstream ontology is re-downloaded any time edit file changes. Default: True.
    • directory (string): directory where subsets are placed after extraction from ontology. Default: subsets/.
    • products (list)
      • description (string) A concise textual description of the product.
      • id (string) ontology project identifier / shorthand; e.g. go, obi, envo.
      • maintenance (string): A setting that can be used to change certain assets that are typically managed automatically (by ODK) to manual or other maintenance strategies. Default: manual.
      • rebuild_if_source_changes (boolean): If false then previously downloaded versions of external ontologies are used. Default: True.
      • robot_settings:
        • memory_gb (integer) Amount of memory in GB to provide for tool such as robot.
      • creators (list): list of people that are credited as creators/maintainers of the subset. Default: ``.
  • title (string): Concise descriptive text about this ontology. Default: ``.

  • travis_emails (list) Emails to use in travis configurations.

  • Items (string)

  • uribase (string): Base URI for PURLs. For an example see https://gitlab.c-path.org/c-pathontology/critical-path-ontology. Default: http://purl.obolibrary.org/obo.

  • uribase_suffix (string) Suffix for the uri base. If not set, the suffix will be the ontology id by default.

  • use_context (boolean): If True, a context file is created that allows the user to specify prefixes used across the project. Default: False.

  • use_custom_import_module (boolean): if true add a custom import module which is managed through a robot template. This can also be used to manage your module seed. Default: False.

  • use_dosdps (boolean): if true use dead simple owl design patterns. Default: False.

  • use_edit_file_imports (boolean): If True, ODK will release the ontology with imports explicitly specified by owl:imports in the edit file. If False, ODK will build and release the ontology with all imports and all components specified in the ODK config file. Default: True.

  • use_env_file_docker (boolean): if true environment variables are collected by the docker wrapper and passed into the container. Default: False.

  • use_external_date (boolean): Flag to set if you want odk to use the host date rather than the docker internal date. Default: False.

  • use_mappings (boolean): if true use SSSOM mapping files. Default: False.

  • use_templates (boolean): if true use ROBOT templates. Default: False.

  • workflows (list): Workflows that are synced when updating the repo. Currently available: docs, diff, qc. Default: ['docs'].

  • Items (string)
"},{"location":"schema-options/","title":"Breakdown of values for the ODK schema","text":"

The auto-generated schema can be found here.

This document provides additional explanations about options in the ODK schema.

"},{"location":"schema-options/#module-types","title":"Module types","text":"

TBD

"}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..5936ab08 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,113 @@ + + + + https://incatools.github.io/ontology-development-kit/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/AddTermToImport/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/CreateNewTerm/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/CreatingRepo/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/DailyWorkflow/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/DealWithLargeOntologies/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/DeletingAssertedSubClasses/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/FrequentlyUsedODKCommands/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/InitialSetup/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/License/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/MergeTerms/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/NewSlim/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/NewSlimTerm/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/ODKDevelopmentSnapshot/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/ObsoleteTerm/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/ReleaseArtefacts/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/Synonyms/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/TaxonRestriction/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/TermComments/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/UsingRobotPlugins/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/project-schema/ + 2024-02-26 + daily + + + https://incatools.github.io/ontology-development-kit/schema-options/ + 2024-02-26 + daily + + \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..2d2e291f22b1758a2b0d19bcd06c1300afa77ac9 GIT binary patch literal 469 zcmV;`0V@60O?|jpy@|~BB}iLrL&7?@MO@flMmT4S%9ms zHm+GGr{i7vIk_!v^1)jIUWl@zb<#5TUzHliF(bp!>7Fw5jiRcR4XHPwT4rC8;$|T$ z7?|H)S8lN?f)x@o##NdTEoF`2b~tAS6*@+X&6L*g3>Nzi9H&o)Rj$IP*OoMKhjp=9 zu0E#ARl52lDsQqYwW`&wfs2RVMXimUa&;w{5!E~6Kcn5$^$~n`#QUyC9~=GFgJ$>v zWAGtHc1hv`^cWfXF8t~d{nN$b7#lli`zUG;+BdMDwG2>nURVgpvmpY{P?y7bD{vH@ zBX?qbkd2*A1oeLRZHrx}T^*Yr_s+1hB=uHvp*9`#fJ#ve~?zC2{zKEF1q5_j%ztNbW?Oy=BQuL9e~)I zisj}M8@}Xum;_`WTjWm^hI%|B|FlD6Tx|Tk$6ru!I$xC|gP);O>_g7~hseJ^2)OtI LT5hNJrw{-DWtHbB literal 0 HcmV?d00001