This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-03-25
Channels
- # aleph (9)
- # announcements (2)
- # babashka (32)
- # babashka-sci-dev (72)
- # beginners (77)
- # calva (1)
- # cider (3)
- # clj-kondo (19)
- # clojure (61)
- # clojure-brasil (13)
- # clojure-europe (25)
- # clojure-italy (1)
- # clojure-nl (2)
- # clojure-norway (27)
- # clojure-uk (23)
- # clojuredesign-podcast (6)
- # clojurescript (12)
- # conjure (2)
- # core-typed (3)
- # cursive (6)
- # datalevin (2)
- # datomic (13)
- # emacs (9)
- # events (19)
- # fulcro (6)
- # graphql (11)
- # gratitude (2)
- # helix (3)
- # honeysql (16)
- # jobs (1)
- # lsp (89)
- # malli (33)
- # meander (14)
- # off-topic (87)
- # pathom (4)
- # polylith (7)
- # portal (4)
- # practicalli (1)
- # rdf (6)
- # reagent (2)
- # releases (8)
- # remote-jobs (1)
- # shadow-cljs (59)
- # sql (8)
- # tools-deps (14)
- # xtdb (18)
@quoll: I mentioned this before, and it’s not a programming API for arbitrary transformations but you might be interested in our standards based implementation of the W3C’s CSV on the Web (CSVW) spec for csv2rdf: https://www.w3.org/TR/csv2rdf/ Two colleague’s of mine (one from Swirrl and the other from a client of ours at the Office for National Statistics) is actually doing a talk on it at the Open Data Institute today at 13:00 GMT. Registration is necessary to view the live-stream but it’s free: https://theodi.org/event/odi-fridays-csv-on-the-web/ Our csv2rdf command line tool implemented in clojure is available here: https://github.com/Swirrl/csv2rdf and there are some native-image binaries for macos and linux available too. We’ve also started trying to create some more “consumer friendly” documentation and guides here: https://csvw.org/
CSVW’s csv2rdf is quite good, when: 1. You have your data arranged in a normalised form, e.g. 3NF or tidy(ish)-data. 2. You want to then map columns to predicates and cells to URIs or datatypes. 3. You don’t need complex transformations; as part of the RDFisation step. You can use virtual columns and URI templates to help build URIs/values
Basically you just need to write a metadata file (which is a restricted subset/dialect of jsonld) that can include some metadata and a TableSchema, which describes how to annotate the columns and cells and essentially convert them into URI’s/RDF.
The standard itself is quite opaque about what CSVW really is… I’d summarise the standard as providing the following: 1. A means of annotating CSV files on the web (or locally). 2. A json(ld) hypertext format for connecting tables together across the web; essentially allowing anyone to annotate arbitrary CSV files from the web and convert them into a connected web-spanning relational database. 3. A standards based way to describe various CSV dialects 4. A way to annotate proper datatypes on top of CSV 5. A way to convert CSV into RDF statements You obviously don’t need to use it for all of those purposes; as it is also a reasonable way to just do 5.
Slides from the talk I posted earlier are here: https://docs.google.com/presentation/d/1AAoz16Wb1DggId6R-eYJv2fWlroMw-m7CMekv-4q06Y/edit#slide=id.gf3bb74a837_4_137 I believe a recording will be available at some point soon