about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2022-05-04 17:13:56 +0530
committerArun Isaac2022-05-04 20:42:09 +0530
commit51d0de6931bb5c8a76efc0b34dde6b902285dd1f (patch)
treee822f38d34ce32c286b6c99b531939633e44c346
parent38e8ea6fe724ca5e6737746d48acfbcdae1e6ed4 (diff)
downloadgn-machines-51d0de6931bb5c8a76efc0b34dde6b902285dd1f.tar.gz
Load dumped RDF into virtuoso and visualize schema.
* genenetwork-development.scm: Import virtuoso-ose from (gnu packages
databases). Import guile-hashing from (gnu packages guile-xyz).
(dump-genenetwork-database): Add ccwl, guile-hashing, guile-libyaml,
guile-sparql and virtuoso-ose to manifest. Load dumped RDF into
virtuoso and visualize schema.
-rw-r--r--genenetwork-development.scm28
1 files changed, 21 insertions, 7 deletions
diff --git a/genenetwork-development.scm b/genenetwork-development.scm
index b18cee8..055d701 100644
--- a/genenetwork-development.scm
+++ b/genenetwork-development.scm
@@ -29,10 +29,11 @@
              ((gnu packages certs) #:select (nss-certs))
              ((gnu packages check) #:select (python-pylint))
              ((gnu packages ci) #:select (laminar))
+             ((gnu packages databases) #:select (virtuoso-ose))
              ((gnu packages gnupg) #:select (guile-gcrypt))
              ((gnu packages graphviz) #:select (graphviz))
              ((gnu packages guile) #:select (guile-3.0 guile-zlib))
-             ((gnu packages guile-xyz) #:select (guile-dbd-mysql guile-dbi guile-libyaml))
+             ((gnu packages guile-xyz) #:select (guile-dbd-mysql guile-dbi guile-hashing guile-libyaml))
              ((gnu packages guile-xyz) #:select (guile-sparql) #:prefix guix:)
              ((gnu packages haskell-apps) #:select (shellcheck))
              ((gnu packages python-check) #:select (python-mypy))
@@ -552,8 +553,9 @@ command to be executed."
 
 (define (dump-genenetwork-database project)
   (with-imported-modules '((guix build utils))
-    (with-packages (list git-minimal guile-3.0 guile-dbd-mysql
-                         guile-dbi nss-certs)
+    (with-packages (list ccwl git-minimal guile-3.0 guile-dbd-mysql
+                         guile-dbi guile-hashing guile-libyaml guile-sparql
+                         nss-certs virtuoso-ose)
       #~(begin
           (use-modules (guix build utils))
 
@@ -561,15 +563,16 @@ command to be executed."
                   "--depth" "1"
                   #$(forge-project-repository project)
                   ".")
-          (let ((dump-directory #$(string-append %dump-genenetwork-database-export-directory
+          (let ((connection-settings-file #$(string-append %dump-genenetwork-database-export-directory
+                                                           "/conn.scm"))
+                (dump-directory #$(string-append %dump-genenetwork-database-export-directory
                                                  "/dump")))
             (when (file-exists? dump-directory)
               (delete-file-recursively dump-directory))
             (mkdir-p dump-directory)
             ;; Dump data to RDF.
             (invoke "./pre-inst-env" "./dump.scm"
-                    #$(string-append %dump-genenetwork-database-export-directory
-                                     "/conn.scm")
+                    connection-settings-file
                     dump-directory)
             ;; Validate dumped RDF.
             (invoke #$(file-append raptor2 "/bin/rapper")
@@ -578,7 +581,18 @@ command to be executed."
                     ;; We use --ignore-errors because we don't want to
                     ;; print out potentially sensitive data.
                     "--ignore-errors"
-                    (string-append dump-directory "/dump.ttl")))))))
+                    (string-append dump-directory "/dump.ttl"))
+            ;; Load RDF into virtuoso.
+            (invoke "./pre-inst-env" "./load-rdf.scm"
+                    connection-settings-file
+                    (string-append dump-directory "/dump.ttl"))
+            ;; Visualize schema and archive results.
+            (invoke "./pre-inst-env" "./visualize-schema.scm"
+                    connection-settings-file)
+            (invoke #$(file-append graphviz "/bin/dot")
+                    "-Tsvg" "sql.dot" (string-append "-o" (getenv "ARCHIVE") "/sql.svg"))
+            (invoke #$(file-append graphviz "/bin/dot")
+                    "-Tsvg" "rdf.dot" (string-append "-o" (getenv "ARCHIVE") "/rdf.svg")))))))
 
 (define dump-genenetwork-database-project
   (forge-project