If this sort of thing is interesting to you -- using type theory and category theory to add compositionality to programming and databases -- also check out CQL's cousin, the graph programming language Hydra: https://github.com/CategoricalData/hydra.
HN user
joshsh
http://fortytwo.net
In reply to a question on Facebook ("Do you have some examples or use case docs? I'm trying to wrap my head around what I could do with something like this."):
There is a subproject called hydra-extensions (https://github.com/.../hydra.../src/main/haskell/Hydra) where I have started putting examples, but there is no documentation yet. There is a wiki from a recent hackathon at LinkedIn (where I provided Hydra-based tools to the contestants) which I would like to pull out, as well. Here are some things you can do, though: 1) define schemas for your application domain and map them into various mainstream schema languages, 2) define graphs and map them out into various data languages, 3) transport schemas and/or data horizontally between languages -- this was done a lot with Dragon 4) do hybrid things like using a schema expressed in one language to validate data in an unrelated data language 5) define translation pipelines which take schema-conforming data (e.g. JSON conforming to an Avro schema) and turn them into graphs, e.g. RDF graphs conforming to a SHACL shapes graph. Hydra aims to make the boundaries between the languages it supports more permeable.
It would be interesting to visualize a SmSn knowledge graph as a Concept Map. I feel that text buffers are best for viewing and editing a graph when you are seated at a keyboard, but graphical views have their place, as well.