about summary refs log tree commit diff
path: root/examples/generif.scm
diff options
context:
space:
mode:
Diffstat (limited to 'examples/generif.scm')
-rwxr-xr-xexamples/generif.scm130
1 files changed, 49 insertions, 81 deletions
diff --git a/examples/generif.scm b/examples/generif.scm
index 628e34e..a8a8460 100755
--- a/examples/generif.scm
+++ b/examples/generif.scm
@@ -20,37 +20,25 @@
            (left-join Species "ON Species.SpeciesId = GeneRIF.SpeciesId")
            (left-join GeneRIFXRef "ON GeneRIFXRef.GeneRIFId = GeneRIF.Id")
            (left-join GeneCategory "ON GeneRIFXRef.GeneCategoryId = GeneCategory.Id"))
-          "WHERE GeneRIF.display > 0 AND GeneRIF.comment IS NOT NULL
-GROUP BY GeneRIF.Id, GeneRIF.versionId, GeneRIF.symbol")
-  (schema-triples
-   (gnc:GeneWikiEntry a rdfs:Class)
-   (gnc:GNWikiEntry rdfs:subClassOf gnc:GeneWikiEntry)
-   (gnt:initial a owl:ObjectProperty)
-   (gnt:initial rdfs:domain gnc:GeneWikiEntry)
-   (gnt:initial skos:definition "Optional user or project code or your initials")
-   (gnt:reason a owl:ObjectProperty)
-   (gnt:reason rdfs:domain gnc:GeneWikiEntry)
-   (gnt:reason skos:definition "The reason why this resource was modified")
-   (gnc:GNWikiEntry rdfs:comment "Represents GeneRIF Entries entered from GeneNetwork")
-   (gnt:geneSymbol rdfs:domain gnc:GNWikiEntry))
+          "WHERE GeneRIF.display > 0 AND GeneRIF.comment IS NOT NULL GROUP BY GeneRIF.Id, GeneRIF.versionId, GeneRIF.symbol")
   (triples
-      (format
-       #f "gn:wiki-~a-~a"
-       (field GeneRIF Id)
-       (field GeneRIF versionId))
+      (string->identifier ""
+                          (gn-uuid (format #f "~a.~a.~a?type=wikii"
+                                           (field GeneRIF Id)
+                                           (field GeneRIF versionId)
+                                           (field GeneRIF createtime)))
+                          #:url-char #\-)
+    (set dct:identifier (gn-uuid (format #f "~a?type=wiki"
+                                         (field GeneRIF Id))))
     (set rdfs:label (string->symbol
                      (format #f "'~a'@en"
                              (replace-substrings
                               (sanitize-rdf-string
                                (field GeneRIF comment))
                               '(("'" . "\\'"))))))
-    (set rdf:type 'gnc:GNWikiEntry)
+    (set rdf:type 'gnc:gn_wiki_entry)
     (set gnt:symbol (field GeneRIF symbol))
-    (set gnt:belongsToSpecies (string->identifier
-                               ""
-                               (remap-species-identifiers (field Species Fullname))
-                               #:separator ""
-                               #:proc string-capitalize-first))
+    (set gnt:has_species (string->identifier "" (remap-species-identifiers (field Species Fullname))))
     (set dct:created
          (string->symbol
           (format #f "~s^^xsd:datetime "
@@ -64,13 +52,12 @@ GROUP BY GeneRIF.Id, GeneRIF.versionId, GeneRIF.symbol")
                            (format #f "pubmed:~a" (string-trim-both pmid))))))
                    (string-split (field GeneRIF PubMed_ID PMID)
                                  #\space)))
-    (set foaf:mbox
-         (match (sanitize-rdf-string (field GeneRIF email))
-           ((? string-blank? mbox) "")
-           (mbox (string->symbol
-                  (format #f "<~a>" mbox)))))
-    (set dct:identifier (annotate-field (format #f "~s" (field GeneRIF Id))
-                                        '^^xsd:integer))
+    ;; Hide e-mail for now.
+    ;; (set foaf:mbox
+    ;;      (match (sanitize-rdf-string (field GeneRIF email))
+    ;;        ((? string-blank? mbox) "")
+    ;;        (mbox (string->symbol
+    ;;               (format #f "<~a>" mbox)))))
     (set foaf:homepage
          (match (sanitize-rdf-string (field GeneRIF weburl))
            ((? string-blank? homepage) "")
@@ -80,7 +67,7 @@ GROUP BY GeneRIF.Id, GeneRIF.versionId, GeneRIF.symbol")
                                         '^^xsd:integer))
     (set gnt:initial (sanitize-rdf-string (field GeneRIF initial)))
     (set gnt:reason (field GeneRIF reason))
-    (multiset gnt:belongsToCategory
+    (multiset gnt:belongs_to_category
               (string-split
                (field ("GROUP_CONCAT(DISTINCT GeneCategory.Name SEPARATOR ';')"
                        GeneCategory))
@@ -89,53 +76,34 @@ GROUP BY GeneRIF.Id, GeneRIF.versionId, GeneRIF.symbol")
 (define-transformer ncbi-genewiki-entries
   (tables (GeneRIF_BASIC
            (left-join Species "USING (SpeciesId)")))
-  (schema-triples
-   (gnc:NCBIWikiEntry rdfs:subClassOf gnc:GeneWikiEntry)
-   (gnc:NCBIWikiEntry rdfs:comment "Represents GeneRIF Entries obtained from NCBI"))
   (triples
-      (format
-       #f "gn:rif-~a-~a-~a-~a"
-       (field GeneRIF_BASIC GeneId)
-       (field GeneRIF_BASIC PubMed_ID)
-       (field
-        ("DATE_FORMAT(createtime, '%Y-%m-%dT%T')" CreateTime))
-       (field GeneRIF_BASIC VersionId))
-    (set rdf:type
-         (let* ((comment (format #f "'~a'@en"
-                                 (replace-substrings
-                                  (sanitize-rdf-string
-                                   (field GeneRIF_BASIC comment))
-                                  '(("\\" . "\\\\")
-                                    ("\n" . "\\n")
-                                    ("\r" . "\\r")
-                                    ("'" . "\\'")))))
-                (create-time (format #f "~s^^xsd:datetime"
-                                     (field
-                                      ("CAST(createtime AS CHAR)" EntryCreateTime))))
-                (symbol (field GeneRIF_BASIC symbol))
-                (species (string->identifier
-                          ""
-                          (remap-species-identifiers (field Species Fullname))
-                          #:separator ""
-                          #:proc string-capitalize-first))
-                (gene-id (field GeneRIF_BASIC GeneId))
-                (taxon-id (field GeneRIF_BASIC TaxID TaxonomicId))
-                (pmid (field GeneRIF_BASIC PubMed_ID))
-                (version-id (field GeneRIF_BASIC versionId)))
-           (string->symbol
-            (string-append
-             (format #f "gnc:NCBIWikiEntry ;\n")
-             (format #f "\trdfs:label ~a ;\n" comment)
-             (format #f "\tgnt:belongsToSpecies ~a ;\n" species)
-             (format #f "\tgnt:symbol ~s ;\n" symbol)
-             (format #f "\tgnt:hasGeneId generif:~a ;\n" gene-id)
-             (match taxon-id
-               ((? number? x)
-                (format #f "\tskos:notation taxon:~a ;\n" taxon-id))
-               (else ""))
-             (format #f "\tdct:hasVersion \"~a\"^^xsd:integer ;\n" version-id)
-             (format #f "\tdct:references pubmed:~a ;\n" pmid)
-             (format #f "\tdct:created ~a" create-time)))))))
+      (string->identifier
+       "" (gn-uuid (format #f "~a_~a_~a_~a"
+                           (field GeneRIF_BASIC GeneId)
+                           (field GeneRIF_BASIC PubMed_ID)
+                           (field ("DATE_FORMAT(createtime, '%Y-%m-%dT%T')" CreateTime))
+                           (field GeneRIF_BASIC VersionId)))
+       #:url-char #\-)
+    (set rdf:type 'gnc:ncbi_wiki_entry)
+    (set rdfs:label (format #f "'~a'@en"
+                            (replace-substrings
+                             (sanitize-rdf-string
+                              (field GeneRIF_BASIC comment))
+                             '(("\\" . "\\\\")
+                               ("\n" . "\\n")
+                               ("\r" . "\\r")
+                               ("'" . "\\'")))))
+    (set gnt:symbol (field GeneRIF_BASIC symbol))
+    (set gnt:has_species (string->identifier "" (remap-species-identifiers (field Species Fullname))))
+    (set skos:notation (ontology 'taxon: (field GeneRIF_BASIC TaxID TaxonomicId)))
+    (set dct:hasVersion (annotate-field (field GeneRIF_BASIC versionId) '^^xsd:integer))
+    (set gnt:has_gene_id (ontology 'generif: (field GeneRIF_BASIC GeneId)))
+    (set dct:references (ontology 'pubmed: (field GeneRIF_BASIC PubMed_ID)))
+    (set dct:created
+         (string->symbol
+          (format #f "~s^^xsd:datetime"
+                  (field
+                   ("CAST(createtime AS CHAR)" EntryCreateTime)))))))
 
 
 
@@ -160,11 +128,11 @@ GROUP BY GeneRIF.Id, GeneRIF.versionId, GeneRIF.symbol")
       ("rdfs:" "<http://www.w3.org/2000/01/rdf-schema#>")
       ("skos:" "<http://www.w3.org/2004/02/skos/core#>")
       ("xkos:" "<http://rdf-vocabulary.ddialliance.org/xkos#>")
-      ("gn:" "<http://genenetwork.org/id/>")
-      ("gnc:" "<http://genenetwork.org/category/>")
-      ("gnt:" "<http://genenetwork.org/term/>")
+      ("gn:" "<http://rdf.genenetwork.org/v1/id/>")
+      ("gnc:" "<http://rdf.genenetwork.org/v1/category/>")
+      ("gnt:" "<http://rdf.genenetwork.org/v1/term/>")
       ("dct:" "<http://purl.org/dc/terms/>")
-      ("foaf:" "<http://xmlns.com/foaf/0.1/>")
+      ("foaf:" "<http://xmlns.com/foaf/0.1/#term_>")
       ("pubmed:" "<http://rdf.ncbi.nlm.nih.gov/pubmed/>")
       ("taxon:" "<https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=>")
       ("generif:" "<http://www.ncbi.nlm.nih.gov/gene?cmd=Retrieve&dopt=Graphics&list_uids=>")