MaastrichtU-IDS / MaastrichtU-IDS/d2s-cli
Web UI to manage d2s services and jobs
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 8
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Should we start with a simple UI taking automatically generated SPARQL mapping files and helping filing the gap for the mappings?
Ideally it could be linked to GitHub First version could just be: generate mapping template, add download template script and metadata template script. And links to edit directly on github!.
Then with a hook or direct bash command we could update the git repo, and provide a UI to run the `docker-compose` and `cwl-runner` commands without seeing a terminal: button to start services, with their status, select type of workflow (csv, xml, csv-split), and select config file or create a new one (based on template)
We could use electron (https://electronjs.org/) to run natively on the client computer and allow running bash commands (`docker-compose`, `cwl-runner`, `git`).
More links:
* https://github.com/martinjackson/electron-run-shell-example
* https://nodejs.org/api/child_process.html
3 steps:
* Nice form to define metadata (pull values, but allow to edit them, if not first version)
* Write download bash script, from a simple, yet exhaustive, template (with basic wget, add columns label, unzip)
* SPARQL GUI loading the automatically generated mapping file to help with mapping
Later forms could be generated to ease
* download definition: provide URLs, checkbox `.tar.gz`, `.zip`, add columns labels... (show the 3 first lines of the file to help the user to know if he needs to add column labels)
* SPARQL mapping: pick the different variables to set and use the BioPortal annotator to find a right match in the target ontology selected by the user.
---
* Bootstrap mappings based on the input data are generated when AutoR2RML / xml2rdf is run. See the [documentation to add a new dataset](https://d2s.semanticscience.org/docs/d2s-new-dataset)
* [Rabix Composer](https://rabix.io/) helps with designing CWL workflows
Should we build electron UI or use a table format like Translator?
The table is easy to read but don't give powerful mechanisms to map most data sources (which have a weird structure)
Example of Electron apps to get inspiration from:
* Run Bash scripts: https://tenhands.app/
* Manage docker container in tooltip menu: https://www.electronjs.org/apps/container-ps
* All apps: https://www.electronjs.org/apps
---
* Using Matey for YARRRML mappings
* Try LinkedDataHub and LinkedPipes
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source files or tests are named. Start by reading the linked documentation for adding a dataset and reviewing how the existing CLI invokes docker-compose, cwl-runner, and Git. Define and implement only a scoped first version, with a clear decision between an Electron UI and a table-based workflow.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker-compose, electron, git, python, shell
- Domain
- cli, desktop, devops
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100