{"id":22257074,"url":"https://github.com/Senckenberg-DCBiodivIT/FAIR-workflow-platform-cordra-schema","last_synced_at":"2025-07-28T07:31:40.125Z","repository":{"id":264836467,"uuid":"887776912","full_name":"dnlbauer/FAIR-workflow-platform-cordra-schema","owner":"dnlbauer","description":"Cordra schema for the FAIR workflow platform. Modeled after RO-Crate.","archived":false,"fork":false,"pushed_at":"2024-11-26T10:39:32.000Z","size":646,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-26T11:38:47.831Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dnlbauer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-13T09:12:29.000Z","updated_at":"2024-11-26T10:39:35.000Z","dependencies_parsed_at":"2024-11-26T11:40:48.307Z","dependency_job_id":"fc38f6df-10b3-4190-af3e-bd8ae89b7087","html_url":"https://github.com/dnlbauer/FAIR-workflow-platform-cordra-schema","commit_stats":null,"previous_names":["dnlbauer/fair-workflow-platform-cordra-schema"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnlbauer%2FFAIR-workflow-platform-cordra-schema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnlbauer%2FFAIR-workflow-platform-cordra-schema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnlbauer%2FFAIR-workflow-platform-cordra-schema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnlbauer%2FFAIR-workflow-platform-cordra-schema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dnlbauer","download_url":"https://codeload.github.com/dnlbauer/FAIR-workflow-platform-cordra-schema/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227877882,"owners_count":17833559,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-03T08:09:32.203Z","updated_at":"2025-07-28T07:31:34.729Z","avatar_url":"https://github.com/dnlbauer.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Corda Data Schema for Crop wild relatives\n\nCorda types and hooks for representing workflows and their results as FAIR Digital Objects.\nThis is part of the [FAIR workflow platform](https://github.com/dnlbauer/FAIR-workflow-platform).\n\nThe data model closely resembles the RO-Crate data schema.\nAll digital objects are intended to also represent valid JSON-LD objects,\nand therefore provide their own JSON-LD @context.\n\n## Schema\n\n![schema](assets/data_schema.drawio.png)\n\n## Hooks and Methods\n\n- All Types extend `JsonLdType`, which patches objects before schema validation\nto add a `@context` and `@type`. \n- The `Dataset` type deletes all of it's linked objects in `afterDelete` to clean\nthe repository if a dataset is removed.\n\n### Type Methods\n\n- `asNestedGraph` is a custom method on the `Dataset` type that returns a dataset and all linked objects in a single jsonld graph `{\"@graph\": [dataset, relatedObject1, relatedObject2, ...]}`\n- `asGraph` is similar to `asNestedGraph`, but does not return objects linked by a nested Dataset (i.e. Files that are not part of the root dataset, but of a dataset that is included in that dataset)\n\n## Build\n\nLifecycle hooks and type methods are written in Kotlin.\nGradle is used as a build system to create a \"fat jar\"\nwhich can be used with Cordra (see [Cordra Java hooks](https://www.cordra.org/documentation/design/java-hooks-and-methods.html)).\n\n## Deployment/Installation\n\nThe provided script [schemas/updateSchemas.py] can be used\nto update a running Cordra instance with all types and the hook library.\nIt takes care of uploading all schemas and attaches the library jar file\nto the dataset schema object:\n\nTo install, first build the library with `gradle build`:\n\n```bash\ngradle clean build\n(...snip...)\nBUILD SUCCESSFUL in 10s\n7 actionable tasks: 7 execute\n```\n\nThen update Cordra using the script:\n\n```bash\n# install requirements for update script\npython -m virtualenv venv\nsource venv/bin/activate\npip install -r schemas/requirements.txt\n\n# run script\n./schemas/updateSchemas.py https://example.com/cordra -u user -p password\nFound schemas: ['Dataset.schema.json', 'FileObject.schema.json', 'PropertyValue.schema.json', 'FormalParameter.schema.json', 'Person.schema.json', 'Workflow.schema.json', 'Organization.schema.json', 'SoftwareApplication.schema.json', 'CreateAction.schema.json']\nPatches for all schemas: [PosixPath('/home/dbauer/projects/destine_sdm/cordra-schema/schemas/AuthConfig.mergepatch.json')]\nProcessing  Dataset.schema.json ...\nattach library /home/dbauer/projects/destine_sdm/cordra-schema/schemas/../lib/build/libs/lib.jar to schema Dataset\nSchema known under id test/1052689464e38f5066d8. Updating...\nProcessing  FileObject.schema.json ...\nSchema known under id test/d4c3554875c2b918da2d. Updating...\nProcessing  PropertyValue.schema.json ...\nSchema known under id test/fcf8f76dda223261a8d8. Updating...\nProcessing  FormalParameter.schema.json ...\nSchema known under id test/497954f5a6f4f66ce6f7. Updating...\nProcessing  Person.schema.json ...\nSchema known under id test/8c41ae88467fe5bbad09. Updating...\nProcessing  Workflow.schema.json ...\nSchema known under id test/d7a484140f5f9f7f5427. Updating...\nProcessing  Organization.schema.json ...\nSchema known under id test/519255ae1f74ffc5ddd2. Updating...\nProcessing  SoftwareApplication.schema.json ...\nSchema known under id test/ca05d5aed1fb0fa6b2c0. Updating...\nProcessing  CreateAction.schema.json ...\nSchema known under id test/64b34dfa733ba2401298. Updating...\n```\n\nThere is also an utility script [./schemas/deleteAllObjects.py]\nwhich can be used to delete all objects from a running Cordra instance.\n\n## LICENSE\n\nLicensed under the [MIT](./LICENSE) License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSenckenberg-DCBiodivIT%2FFAIR-workflow-platform-cordra-schema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSenckenberg-DCBiodivIT%2FFAIR-workflow-platform-cordra-schema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSenckenberg-DCBiodivIT%2FFAIR-workflow-platform-cordra-schema/lists"}