summary refs log tree commit diff
path: root/issues/rdf/expose-rdf-to-web.gmi
blob: 3cbb91df99b8d5057334ab6427619c7614ba03e1 (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
# Expose Versioned "rdf.genenetwork.org" Namespaces

* assigned: bonfacem
* status: in-progress

## Description

We have switched all RDF namespaces from "genenetwork.org" to the versioned base "rdf.genenetwork.org/v1."   These endpoints don't resolve yet.

## What changed

Replaced

* "http://genenetwork.org/id/" -> "http://rdf.genenetwork.org/v1/id/"
* "http://genenetwork.org/category/" -> "http://rdf.genenetwork.org/v1/category/"
* "http://genenetwork.org/term/" -> "http://rdf.genenetwork.org/v1/term/"

## Current Problem

New "rdf.genenetwork.org/v1/*" URIs return a 5XX/4XX which blocks validation, dereferencing and external re-use

## Expected Behaviour

All rdf.genenetwork.org/v1/* namespaces resolve over HTTP.  At minimum:

* Human-readable HTML in a browser.
* RDF (Turtle or RDF/XML) via content negotiation.

## Notes

* (Example) Queries for all terms/categories/ids:

```
PREFIX gn: <http://rdf.genenetwork.org/v1/id/>
PREFIX gnc: <http://rdf.genenetwork.org/v1/category/>
PREFIX gnt: <http://rdf.genenetwork.org/v1/term/>

CONSTRUCT {
  gn:Arabidopsis_thaliana ?p ?o .
} FROM <http://rdf.genenetwork.org/v1>
WHERE {
  gn:Arabidopsis_thaliana ?p ?o .
  ?s ?p ?o .
}

CONSTRUCT {
  gnc:phenotype ?p ?o .
} FROM <http://rdf.genenetwork.org/v1>
WHERE {
  gnc:phenotype ?p ?o .
  ?s ?p ?o .
}

CONSTRUCT {
  gnt:shortName ?p ?o .
} FROM <http://rdf.genenetwork.org/v1>
WHERE {
  gnt:shortName ?p ?o .
  ?s ?p ?o .
}

```

* When serving, all supported formats based off Virtuoso's content negotiation:

=> https://docs.openlinksw.com/virtuoso/rdfsparqlprotocolendpoint/

* Location of all files (tux02): /export/data/genenetwork-virtuoso/

* For current gn3, old data is maintained in this named graph: "http://genenetwork.org" while new data is being uploaded to this named graph: "http://rdf.genenetwork.org/v1"

## Tasks

* [X] Set up new named graph for the rdf endpoint.   Maintain old named graph for gn3 stability.
* [-] Serve: "/v1/id/<id>"; "/v1/category/<category>"; and "/v1/term/<term>" under "rdf.genenetwork.org."
* [-] Add basic content negotiation for "text/microdata+html", "text/x-nice-turtle"
* [ ] Verify: `curl -H "Accept: text/microdata+html" http://rdf.genenetwork.org/v1/term/...`