summaryrefslogtreecommitdiff
path: root/issues/rdf/0001-rdf-ui-frontend.gmi
blob: 232011d4bcd5792a3cb60f0bdd1256d77bf877df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# UI Frontend for RDF

## Tags

* assigned: bonfacem
* type: issue

### Motivation

We have GN Metadata in RDF already.  Right now, it's only accessible through a SPARQL endpoint, and it's not benefiting anyone.  We want to create REST endpoints to let both users and machines easily acess the data.  We'll also demonstrate how HTMX reduces the need for heavy javascript in a way that can be adopted in other parts of the GN website.

### Context

We've finished modeling GeneNetwork Metadata in RDF. It's sitting in a public SPARQL endpoint, but no one can use it. To alleviate this, we're building REST endpoints, which helps our technical strategy and ties into our goal of making data more accessible. We're also using HTMX to make the system more efficient and user-friendly.


### Goals

* Implement REST endpoints for querying/searching metadata about Publications, Datasets, Phenotypes, Generif and Genotype.

Metric: UPTIME as per indicated by SheepDog; A low Request Per Minute (RPM) of not more than 60s(for large queries).

* Create UI pages that utilize HTMX to access and display the metadata endpoints effectively.

Metric: A decent accessibily and web performance score that should be better than the rest of GN.

* Implement Test Cases for the proposed endpoints to ensure system stability

Metric: 100% Test Coverage for the new pages.

* Create UI pages that utilize HTMX to access and display the metadata endpoints effectively.

Metric: A decent accessibily and web performance score that should be better than the rest of GN.

### Non-Goals

* Editing/Adding metadata.  This will be tackled in another document.
* Orchestrating a running production virtuoso instance to ensure this work is exposed to the end-user.  This needs some co-ordination with Zach/Arun to get done.  Changes will be visible in CI/CD but no strong guarantees of a roll-out in production.

### Milestones

START DATE: October 11, 2020

Milestone 1 - New GN3 Endpoints (json-ld) for Publications, Genotype, Datasets, Phenotype, Probesets; Delete old endpoints: October 19, 2023

Milestone 2 - UI Endpoints in GN2: October 25, 2023

END DATE: E2E test-cases for GN2: October 31, 2023

### Design

Data output should be in json-ld where feasible.

### GN3 APIs

Support for search and pagination
* GET /metadata/datasets/<name>
* GET /metadata/datasets/search/<term>
* GET /metadata/publications/<name>
* GET /metadata/publications/search/<term>
* GET /metadata/genotypes/<name>
* GET /metadata/phenotypes/<name>
* GET /metadata/probesets/<name>
* GET /metadata/genewikis/ncbi/<symbol>
* GET /metadata/genewikis/gn/<symbol>
* GET /metadata/species
* GET /metadata/species/<name>
* GET /metadata/group/<species-name>

### UI Pages

Whenever a resource is unavailable, show a search bar.

* /datasets/<name>
* /datasets?search=""&page=1&per_page=20
* /publications/<name>
* /publications?search=""&page=1&per_page=20
* /genotypes/<name>
* /genotypes?search=""&page=1&per_page=20
* /phenotypes/<name>
* /phenotypes?search=""&page=1&per_page=20
* /probesets/<name>
* /probesets?search=""&page=1&per_page=20
* /genewikis/<symbol>

* closed