#+TITLE: Bugs and tasks * TODO Construct SPARQL query results from JSON instead of CSV :minor:easy: <2021-12-24 Fri> sparql-query-results in visualize-schema.scm should retrieve SPARQL query results in JSON instead of CSV. CSV ignores type information and returns everything as a string. This results in unnecessary conversions such as using string->number. * TODO Specification of field alias in define-dump is a leaky abstraction :wish: <2021-12-24 Fri> In define-dump expressions, database fields can be referenced by (field TABLE COLUMN ALIAS) in addition to (field TABLE COLUMN). Specification of the field alias in the first form is a leak in the abstraction. There is no need for the caller to know anything about field aliases. define-dump should be able to set up aliases transparently. * TODO Guess string encodings :grave: <2021-12-24 Fri> Over the years, strings have been stored in the database using different character encodings. That is why when they are all interpreted in UTF-8, they appear to have unprintable characters. Somehow, guess the encoding of the retrieved strings and compensate. * TODO Fix table size estimates :minor:easy: <2021-12-24 Fri> The tables function in dump.scm estimates the table size from the data_length column of the information_schema.tables table. But, this is correct only for MyISAM tables. Generalize it. * TODO Dump table and field annotations to RDF :minor:easy: <2021-12-27 Mon> The TableComments and TableFieldAnnotations tables partially document the database schema. GeneNetwork 1 uses this to generate [[http://gn1.genenetwork.org/webqtl/main.py?FormID=schemaShowPage]]. We dump this to an org mode format in the dump-schema-annotations function. Dump these tables to RDF instead so that they can be shown as tooltip text in our database visualization.