MaastrichtU-IDS / MaastrichtU-IDS/d2s-cli

Web UI to manage d2s services and jobs

Open
#11 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.