From 97c6c79a40ab801b38bce3cc39af46b354175187 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 17 Dec 2021 11:51:13 +0530 Subject: Document RDF schema during dumping. * dump.scm (define-dump): Support schema-triples clause. (dump-strain, dump-publish-xref, dump-info-files): Add schema-triples clause. (main): Output rdfs: prefix. --- dump.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/dump.scm b/dump.scm index 5be7b4b..e1bcf5e 100755 --- a/dump.scm +++ b/dump.scm @@ -193,6 +193,8 @@ ALIST field-name) forms." (syntax-case x (tables schema-triples triples) ((_ name clauses ...) (let ((tables-clause (find-clause #'(clauses ...) 'tables)) + (schema-triples-clause (or (find-clause #'(clauses ...) 'schema-triples) + #'(schema-triples))) (triples-clause (find-clause #'(clauses ...) 'triples))) (syntax-case triples-clause (triples) ((triples subject predicates ...) @@ -207,6 +209,13 @@ ALIST field-name) forms." fields)) %dumped)) (define (name db) + #,(syntax-case schema-triples-clause (schema-triples) + ((schema-triples (triple-subject triple-predicate triple-object) ...) + #`(for-each triple + (list 'triple-subject ...) + (list 'triple-predicate ...) + (list 'triple-object ...))) + (_ (error "Invalid schema triples clause:" schema-triples-clause))) (sql-for-each (lambda (row) (scm->triples @@ -234,6 +243,9 @@ ALIST field-name) forms." (define-dump dump-strain (tables (Strain (join Species "ON Strain.SpeciesId = Species.SpeciesId"))) + (schema-triples + (gn:strainOfSpecies rdfs:domain gn:strain) + (gn:strainOfSpecies rdfs:range gn:species)) (triples (string->identifier "strain" (field Strain Name)) (set rdf:type 'gn:strain) (set gn:strainOfSpecies @@ -311,6 +323,9 @@ ALIST field-name) forms." (define-dump dump-publish-xref (tables (PublishXRef (inner-join InbredSet "USING (InbredSetId)"))) + (schema-triples + (gn:phenotypeOfSpecies rdfs:domain gn:phenotype) + (gn:phenotypeOfSpecies rdfs:range gn:species)) (triples (phenotype-id->id (field PublishXRef PhenotypeId)) (set gn:phenotypeOfSpecies (inbred-set-name->id (field InbredSet Name))))) @@ -398,6 +413,19 @@ ALIST field-name) forms." (left-join AvgMethod "USING (AvgMethodId)") (left-join GeneChip "USING (GeneChipId)")) "WHERE GN_AccesionId IS NOT NULL") + (schema-triples + (gn:datasetOfInvestigator rdfs:domain gn:dataset) + (gn:datasetOfInvestigator rdfs:range gn:investigator) + (gn:datasetOfSpecies rdfs:domain gn:dataset) + (gn:datasetOfSpecies rdfs:range gn:species) + (gn:datasetOfInbredSet rdfs:domain gn:dataset) + (gn:datasetOfInbredSet rdfs:range gn:inbredSet) + (gn:datasetOfTissue rdfs:domain gn:dataset) + (gn:datasetOfTissue rdfs:range gn:tissue) + (gn:normalization rdfs:domain gn:dataset) + (gn:normalization rdfs:range gn:avgMethod) + (gn:datasetOfPlatform rdfs:domain gn:dataset) + (gn:datasetOfPlatform rdfs:range gn:geneChip)) (triples (string->identifier "dataset" (number->string (field InfoFiles GN_AccesionId))) (set rdf:type 'gn:dataset) @@ -647,6 +675,7 @@ relations in TABLES." (with-output-to-file (string-append %dump-directory "/dump.ttl") (lambda () (prefix "rdf:" "") + (prefix "rdfs:" "") (prefix "foaf:" "") (prefix "gn:" "") (newline) -- cgit v1.2.3