#! /usr/bin/env guile !# (use-modules (rnrs programs) (rnrs io ports) (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 gn:set->gn:dataset (tables (Datasets (inner-join InfoFiles "ON InfoFiles.DatasetId = Datasets.DatasetId") (inner-join InbredSet "ON InbredSet.Id = InfoFiles.InbredSetId") (inner-join PublishFreeze "ON PublishFreeze.InbredSetId = InbredSet.Id")) "WHERE PublishFreeze.public > 0 GROUP BY Datasets.DatasetId") (schema-triples (gnt:has_phenotype_data rdf:type owl:ObjectProperty) (gnt:has_phenotype_data rdfs:label "this resources has this phenotype data.") (gnt:has_phenotype_data rdfs:comment "Associates a resource with its phenotype data.") (gnt:has_phenotype_data rdfs:domain gnc:set) (gnt:has_phenotype_data rdfs:range dcat:Dataset) (gnt:has_phenotype_data rdfs:subPropertyOf dct:relation)) (triples (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_") (set gnt:has_phenotype_data (string->identifier "dataset" (field PublishFreeze Name) #:separator "_")))) (define-transformer gn:dataset->gn:set (tables (Datasets (inner-join InfoFiles "ON InfoFiles.DatasetId = Datasets.DatasetId") (inner-join InbredSet "ON InbredSet.Id = InfoFiles.InbredSetId") (inner-join PublishFreeze "ON PublishFreeze.InbredSetId = InbredSet.Id")) "WHERE PublishFreeze.public > 0 GROUP BY Datasets.DatasetId") (triples (string->identifier "dataset" (field PublishFreeze Name) #:separator "_") (set gnt:has_strain (string->identifier "set" (field InbredSet Name InbredSetName) #:separator "_")))) (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 "Genotype Datasets") (connection %connection-settings) (table-metadata? #f) (prefixes '(("dcat:" "") ("dct:" "") ("gn:" "") ("gnc:" "") ("gnt:" "") ("rdf:" "") ("rdfs:" "") ("owl:" "") ("skos:" "") ("xkos:" "") ("xsd:" ""))) (inputs (list gn:set->gn:dataset gn:dataset->gn:set)) (outputs `(#:documentation ,documentation #:rdf ,output))))