about summary refs log tree commit diff
path: root/load-rdf.scm
diff options
context:
space:
mode:
Diffstat (limited to 'load-rdf.scm')
-rwxr-xr-xload-rdf.scm54
1 files changed, 51 insertions, 3 deletions
diff --git a/load-rdf.scm b/load-rdf.scm
index aaf1b00..4acce8a 100755
--- a/load-rdf.scm
+++ b/load-rdf.scm
@@ -16,7 +16,7 @@
              (web uri))
 
 (define %graph-uri
-  "http://genenetwork.org")
+  "http://rdf.genenetwork.org/v1")
 
 (define (call-with-pipe proc mode program . args)
   "Execute PROGRAM ARGS ... in a subprocess with a pipe of MODE to
@@ -45,7 +45,8 @@ authenticating as the dba user with PASSWORD."
      (format out
              "SET DSN=localhost:~a;
 SET PWD=~s;
-DELETE FROM rdf_quad WHERE g = iri_to_id ('~a');"
+DELETE FROM rdf_quad WHERE g = iri_to_id ('~a');
+CHECKPOINT;"
              port
              password
              graph))
@@ -59,7 +60,8 @@ DELETE FROM rdf_quad WHERE g = iri_to_id ('~a');"
      (format out
              "SET DSN=localhost:~a;
 SET PWD=~s;
-DELETE FROM DB.DBA.load_list;"
+DELETE FROM DB.DBA.load_list;
+CHECKPOINT;"
              port
              password))
    OPEN_WRITE
@@ -82,6 +84,44 @@ CHECKPOINT;
    OPEN_WRITE
    "isql"))
 
+(define (set-global-namespaces port password)
+  "Set the global namespaces"
+  (call-with-pipe
+   (lambda (out)
+     (format out
+             "SET DSN=localhost:~a;
+SET PWD=~s;
+DB.DBA.XML_SET_NS_DECL ('dcat', 'http://www.w3.org/ns/dcat#', 2);
+DB.DBA.XML_SET_NS_DECL ('dct', 'http://purl.org/dc/terms/', 2);
+DB.DBA.XML_SET_NS_DECL ('fabio', 'http://purl.org/spar/fabio/', 2);
+DB.DBA.XML_SET_NS_DECL ('genbank', 'https://bioregistry.io/reference/genbank:', 2);
+DB.DBA.XML_SET_NS_DECL ('gene', 'http://www.ncbi.nlm.nih.gov/gene?cmd=Retrieve&dopt=Graphics&list_uids=', 2);
+DB.DBA.XML_SET_NS_DECL ('generif', 'http://www.ncbi.nlm.nih.gov/gene?cmd=Retrieve&dopt=Graphics&list_uids=', 2);
+DB.DBA.XML_SET_NS_DECL ('geoSeries', 'http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=', 2);
+DB.DBA.XML_SET_NS_DECL ('gn', 'http://rdf.genenetwork.org/v1/id/', 2);
+DB.DBA.XML_SET_NS_DECL ('gnc', 'http://rdf.genenetwork.org/v1/category/', 2);
+DB.DBA.XML_SET_NS_DECL ('gnt', 'http://rdf.genenetwork.org/v1/term/', 2);
+DB.DBA.XML_SET_NS_DECL ('ncbiTaxon', 'https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=', 2);
+DB.DBA.XML_SET_NS_DECL ('prism', 'http://prismstandard.org/namespaces/basic/2.0/', 2);
+DB.DBA.XML_SET_NS_DECL ('pubmed', 'http://rdf.ncbi.nlm.nih.gov/pubmed/', 2);
+DB.DBA.XML_SET_NS_DECL ('qb', 'http://purl.org/linked-data/cube#', 2);
+DB.DBA.XML_SET_NS_DECL ('sdmx-measure', 'http://purl.org/linked-data/sdmx/2009/measure#', 2);
+DB.DBA.XML_SET_NS_DECL ('taxon', 'http://purl.uniprot.org/taxonomy/', 2);
+DB.DBA.XML_SET_NS_DECL ('transcript', 'https://portals.broadinstitute.org/gpp/public/trans/details?transName=', 2);
+DB.DBA.XML_SET_NS_DECL ('v', 'http://www.w3.org/2006/vcard/ns#', 2);
+DB.DBA.XML_SET_NS_DECL ('xkos', 'http://rdf-vocabulary.ddialliance.org/xkos#', 2);
+DB.DBA.XML_SET_NS_DECL ('schema', 'https://schema.org/', 2);
+DB.DBA.XML_SET_NS_DECL ('foaf', 'http://xmlns.com/foaf/0.1/#term_', 2);
+DB.DBA.XML_SET_NS_DECL ('wd', 'http://www.wikidata.org/entity/', 2);
+DB.DBA.XML_SET_NS_DECL ('gnd', 'https://cd.genenetwork.org/api3/lmdb/v1/data/traits/', 2);
+DB.DBA.XML_SET_NS_DECL ('gn-files', 'http://files.genenetwork.org/current/', 2);
+CHECKPOINT;
+"
+             port
+             password))
+   OPEN_WRITE
+   "isql"))
+
 (define (index-data port password)
   "Index all text data for quicker search"
   (call-with-pipe
@@ -91,6 +131,7 @@ CHECKPOINT;
 SET PWD=~s;
 DB.DBA.RDF_OBJ_FT_RULE_ADD (null, null, 'All');
 DB.DBA.VT_INC_INDEX_DB_DBA_RDF_OBJ();
+CHECKPOINT;
 quit;
 "
              port
@@ -120,6 +161,13 @@ quit;
                      (assq-ref connection-settings 'virtuoso-port)
                      (assq-ref connection-settings 'virtuoso-password)
                      %graph-uri)))
+       ;; Update global namespaces
+       (format (current-output-port)
+               "Global namespaces set in ~a seconds~%"
+               (time-thunk
+                (cut set-global-namespaces
+                     (assq-ref connection-settings 'virtuoso-port)
+                     (assq-ref connection-settings 'virtuoso-password))))
        ;; Delete the load queue
        (format (current-output-port)
                "Existing DB.LOAD queue deleted in ~a seconds~%"