aboutsummaryrefslogtreecommitdiff
path: root/dump.scm
AgeCommit message (Collapse)Author
2022-05-04Special case investigator ID for "Yohan Bossé".Arun Isaac
* dump.scm (investigator-attributes->id): Add special case for investigator "Yohan Bossé".
2022-03-10Ignore 0th command-line argument.Arun Isaac
* dump.scm (%connection-settings): Use 1th command-line argument. (%dump-directory): Use 2th command-line argument.
2022-03-10Accept connection parameters and dump directory as arguments.Arun Isaac
* dump.scm: Import (rnrs programs). (%connection-settings): New variable. (call-with-database): Use %connection-settings. (%database-name): Delete variable. (%dump-directory): Set from command-line arguments. (dump-data-table): Use %connection-settings instead of %database-name. * README.org (Using): Add command-line arguments to usage instructions.
2022-01-04Eval macro helper functions at macro expansion time.Arun Isaac
If these macro helper functions are not evaluated at macro expansion time, the dependent macros will fail to compile. * dump.scm (string->identifier, field->key, field->assoc-ref, collect-fields, find-clause, remove-namespace, column-id, dump-id): Eval at macro expansion time.
2021-12-24Do not add to load path in script.Arun Isaac
* dump.scm: Do not add to load path.
2021-12-24Document define-dump.Arun Isaac
* dump.scm (define-dump): Add docstring.
2021-12-24Introduce syntax-let abstraction.Arun Isaac
* dump.scm (syntax-let): New macro. (define-dump): Use syntax-let. * .dir-locals.el (scheme-mode): Indent syntax-let correctly.
2021-12-23Automatically create domain triples for predicates.Arun Isaac
* dump.scm (define-dump): Automatically create domain triples for predicates.
2021-12-23Dump metadata about the dump itself.Arun Isaac
* dump.scm (remove-namespace, dump-id): New functions. (define-dump): Dump metadata about the dump itself.
2021-12-23Disambiguate user and User tables in RDF identifier.Arun Isaac
* dump.scm (dump-schema, column-id): Disambiguate user and User tables in RDF identifier.
2021-12-23Abstract column id generation to separate function.Arun Isaac
* dump.scm (column-id): New function. (dump-schema): Use column-id.
2021-12-23Do not register dumped tables and columns to %dumped.Arun Isaac
* dump.scm (%dumped): Delete variable. (define-dump): Do not register dumped tables and columns to %dumped. (dumped-table?): Delete function.
2021-12-23Specify range of gn:inbredSetOfSpecies.Arun Isaac
* dump.scm (dump-inbred-set): Set range of gn:inbredSetOfSpecies to gn:species.
2021-12-23Use foaf:Person instead of gn:investigator.Arun Isaac
* dump.scm (dump-info-files): Set range of gn:datasetOfInvestigator to foaf:Person instead of gn:investigator.
2021-12-23Add Literal range triples.Arun Isaac
* dump.scm (dump-species, dump-strain, dump-inbred-set, dump-phenotype, dump-publication, dump-tissue, dump-investigator, dump-avg-method, dump-gene-chip, dump-info-files): Add Literal range triples.
2021-12-23Remove duplicate predicates for gn:phenotype.Arun Isaac
* dump.scm (dump-phenotype): Remove duplicate predicates gn:prePublicationDescription and gn:postPublicationDescription.
2021-12-23Rename gn:authors predicate to gn:author.Arun Isaac
gn:authors is a typo. * dump.scm (dump-publication): Rename gn:authors predicate to gn:author.
2021-12-23Add runtime type checking for triple.Arun Isaac
* dump.scm (triple): Add runtime type checking.
2021-12-20Move schema visualization to separate script.Arun Isaac
* dump.scm: Do not import (sxml simple) and (dump string-similarity). (string-remove-suffix-ci, floor-log1024, human-units, human-units-color, sxml->xml-string, sxml->graphviz-html, table-label, table->graphviz-node, column->foreign-table, tables->graphviz-edges): Move to ... (dump-schema): Dump schema to RDF. (main): Call dump-schema without setting schema.dot as the output file. * visualize-schema.scm: ... here.
2021-12-20Capture full column type.Arun Isaac
Capture full column type instead of just whether it is an integer. * dump.scm (dump-data-table): Capture full column type in <column> object. * dump/table.scm (<column>)[int?]: Delete member. [type]: New member. Export column-type instead of column-int?.
2021-12-20Move <table> and <column> types to separate module.Arun Isaac
* dump.scm (<table>, <column>): Move to ... * dump/table.scm: ... here.
2021-12-17Indent define-dump better.Arun Isaac
* dump.scm (define-dump): Indent better.
2021-12-17Document RDF schema during dumping.Arun Isaac
* dump.scm (define-dump): Support schema-triples clause. (dump-strain, dump-publish-xref, dump-info-files): Add schema-triples clause. (main): Output rdfs: prefix.
2021-12-17Make order of clauses in define-dump unspecified.Arun Isaac
* dump.scm (find-clause): New function. (define-dump): Make order of clauses unspecified.
2021-12-16Make define-dump syntax more concise.Arun Isaac
* dump.scm (field->key, field->assoc-ref, collect-fields): New functions. (define-dump): Redefine with more concise syntax. * dump.scm (dump-species, dump-strain, dump-mapping-method, dump-inbred-set, dump-phenotype, dump-publication, dump-publish-xref, dump-tissue, dump-investigators, dump-avg-method, dump-gene-chip, dump-info-files): Use new define-dump syntax. (default-metadata-proc): Delete function. * .dir-locals.el (scheme-mode): Indent triples form correctly.
2021-12-15Move string similarity functions to separate module.Arun Isaac
* dump.scm: Use (dump string-similarity). (trigrams, jaccard-index, jaccard-string-similarity, jaccard-string-similar?): Move to ... * dump/string-similarity.scm: ... here.
2021-12-14Camel case gn:binomialName.Arun Isaac
* dump.scm (dump-species): Change gn:binomialname to gn:binomialName.
2021-12-14Use node ports to indicate foreign key relations precisely.Arun Isaac
* dump.scm (table-label): Set port attributes on <td> tag. (tables->graphviz-edges): Specify ports on edges.
2021-12-14Specify appearance using HTML table.Arun Isaac
* dump.scm (table-label): Unset border attribute of <table> tag. Set cellborder and bgcolor attributes of <table> tag. (table->graphviz-node): Unset style and fillcolor node attributes. Set shape node attribute to none.
2021-12-14Take advantage of bug fixes in bleeding edge (ccwl graphviz).Arun Isaac
* dump.scm (graph->dot): Delete function. (sxml->graphviz-html): Return a <html-string> object. (dump-schema): Use graph->dot from (ccwl graphviz).
2021-12-13Abstract out table to graphviz edge conversion.Arun Isaac
* dump.scm (column->foreign-table, tables->graphviz-edges): New functions. (dump-schema): Use tables->graphviz-edges.
2021-12-13Abstract out table to graphviz node conversion.Arun Isaac
* dump.scm (dumped-table?, table-label, table->graphviz-node): New functions. (dump-schema): Use table->graphviz-node.
2021-12-13Color table headers by size.Arun Isaac
* dump.scm (human-units-color): New function. (dump-schema): Use human-units-color.
2021-12-13Implement human units conversion in terms of log1024.Arun Isaac
This generalizes better and is mathematically cleaner. * dump.scm (floor-log1024): New function. (human-units): Use floor-log1024.
2021-12-13Use sxml to construct graphviz HTML strings.Arun Isaac
Using sxml allows us to stay in the world of S-expressions. * dump.scm (sxml->xml-string, sxml->graphviz-html): New function. (dump-schema): Construct graphviz HTML string using sxml.
2021-12-11Highlight dumped tables and columns.Arun Isaac
* dump.scm (dump-schema): Highlight tables and columns.
2021-12-11Fix HTML string handling in dot output.Arun Isaac
* dump.scm (replace-substrings): New function. (graph->dot): Fix HTML string handling.
2021-12-11Log dumped tables and columns.Arun Isaac
* dump.scm (%dumped): New variable. (define-dump): Append to %dumped when a new table dumping function is defined.
2021-12-11Abstract out definition of table dumping functions.Arun Isaac
* dump.scm (define-dump): New macro. (dump-species, dump-strain, dump-mapping-method, dump-inbred-set, dump-phenotype, dump-publication, dump-publish-xref, dump-tissue, dump-investigators, dump-avg-method, dump-gene-chip, dump-info-files): Redefine using define-dump.
2021-12-11Use string similarity and check if foreign key is an integer.Arun Isaac
* dump.scm (<column>): New type. (tables): Use <column> objects to represent columns. (trigrams, jaccard-index, jaccard-string-similarity): New functions. (dump-schema): Use string similarity and check if foreign key is an integer.
2021-12-11Visualize schema.Arun Isaac
* .dir-locals.el (scheme-mode): Indent set-table-columns correctly. * dump.scm: Import (srfi srfi-9 gnu). (%database-name): New variable. (<table>): New type. (tables, string-remove-suffix-ci, human-units, graph->dot, dump-schema): New functions. Invoke dump-schema. * guix.scm: Import (gnu packages bioinformatics). Add ccwl, graphviz and guile-libyaml to the manifest.
2021-12-11Use select-query.Arun Isaac
* dump.scm (get-tables-from-comments, dump-table-fields, dump-species, dump-strain, dump-mapping-method, dump-inbred-set, dump-phenotype, dump-publication, dump-publish-xref, dump-tissue, dump-investigators, dump-avg-method, dump-gene-chip, dump-info-files): Use select-query.
2021-12-04Remove redundant camel->lower-camel function.Arun Isaac
* dump.scm (camel->lower-camel): Delete function. (default-metadata-proc): Do not use camel->lower-camel.
2021-12-04Build subjects exclusively with string->identifier.Arun Isaac
* dump.scm (dump-mapping-method, dump-publication, dump-info-files): Use string->identifier to build subjects.
2021-12-04Append an underscore to the identifier prefix.Arun Isaac
This is slightly more readable. * dump.scm (string->identifier): Append an underscore to the identifier prefix.
2021-12-04Fix indentation.Arun Isaac
* dump.scm (get-tables-from-comments, dump-table-fields): Fix indentation.
2021-12-04Use the map-alist DSL.Arun Isaac
* dump.scm: Import (dump utils). (string-blank?): New function. (scm->triples): Filter out triples with #f or blank string objects. (process-metadata-alist): Delete function. (default-metadata-proc): New function. (dump-species, dump-strain, mapping-method-name->id, dump-inbred-set, dump-phenotype, dump-publication, dump-publish-xref, dump-tissue, dump-investigators, dump-avg-method, dump-gene-chip, dump-info-files): Use map-alist.
2021-12-02Construct investigator ID using first and last names too.Arun Isaac
* dump.scm (investigator-email->id): Rename to investigator-attributes->id. Use first and last names in addition to the email ID. (dump-investigators): Use investigator-attributes->id. Include records that have no email ID. (dump-info-files): Use investigator-attributes->id. Include records that have no email ID.
2021-12-02Use string-delete instead of string-replace-substring.Arun Isaac
For the simple task of removing spaces, string-delete is sufficient. string-replace-substring is overkill. * dump.scm (fix-email-id): Use string-delete instead of string-replace-substring.
2021-12-02Abstract out string->identifier.Arun Isaac
Building a turtle identifier from a string after removing illegal characters and prefixing is an extremely common operation. Abstract it. Also, mandate identifier prefixes. It is better to play it safe. * dump.scm (string->identifier): New function. (binomial-name->species-id, dump-strain, mapping-method-name->id, inbred-set-name->id, aphenotype-id->id, tissue-short-name->id, investigator-email->id, avg-method-name->id, gene-chip-name->id): Use string->identifier.