#! /usr/bin/env guile !# (use-modules (srfi srfi-1) (srfi srfi-26) (ice-9 getopt-long) (ice-9 match) (ice-9 regex) (transform strings) (transform sql) (transform triples) (transform special-forms)) (define-transformer gene-chip (tables (GeneChip (left-join Species "USING (SpeciesId)"))) (schema-triples (gnc:gene_chip a skos:Concept) (gnc:gene_chip skos:description "This is a set of controlled terms that are used to describe a given gene chip/platform") (gnt:has_geo_series_id rdfs:domain gnc:platform) (gnt:has_geo_series_id rdfs:domain gnc:gene_chip) (gnt:has_go_tree_value a owl:ObjectProperty) (gnt:has_go_tree_value skos:definition "This resource the following GO tree value") (gnt:has_go_tree_value rdfs:domain gnc:gene_chip)) (triples (string->identifier "platform" (field GeneChip Name) #:separator "_") (set rdf:type 'gnc:gene_chip) (set rdfs:label (field GeneChip GeneChipName)) (set skos:prefLabel (field GeneChip Name)) (set skos:altLabel (field ("IF(GeneChip.GeneChipName != GeneChip.Title, Title, NULL)" Title))) (set gnt:has_go_tree_value (field GeneChip Go_tree_value)) (set xkos:classifiedUnder (string->identifier "" (remap-species-identifiers (field Species Fullname)) #:separator "")) (set gnt:has_geo_series_id (ontology 'geoSeries: (string-trim-both (field GeneChip GeoPlatform)))))) (let* ((option-spec '((settings (single-char #\s) (value #t)) (output (single-char #\o) (value #t)) (documentation (single-char #\d) (value #t)))) (options (getopt-long (command-line) option-spec)) (settings (option-ref options 'settings #f)) (output (option-ref options 'output #f)) (documentation (option-ref options 'documentation #f)) (%connection-settings (call-with-input-file settings read))) (with-documentation (name "Info files / Investigators Metadata") (connection %connection-settings) (table-metadata? #f) (prefixes '(("v:" "") ("foaf:" "") ("xsd:" "") ("dcat:" "") ("skos:" "") ("xkos:" "") ("geoSeries:" "") ("gnt:" "") ("gn:" "") ("gnc:" "") ("rdf:" "") ("owl:" "") ("rdfs:" "") ("taxon:" "") ("dct:" ""))) (inputs (list gene-chip)) (outputs `(#:documentation ,documentation #:rdf ,output))))