A big one I forgot: RDF's query language SPARQL: https://www.w3.org/TR/rdf-sparql-query/
On Wednesday, March 8, 2017 at 5:35:42 PM UTC-8, Brandon Bloom wrote: > > Responsible adults sometimes needs to access and modify deeply nested data >> structures > > > So far, my experience has been that it is almost always better to build a > pair of flattening and unflattening transforms on the data. Especially > since you frequently want only one flattening, but potentially many > un-flattenings. The "unflattened" form (aka "documents") is usually an > end-point where data goes to die; assuming it isn't immediately displayed > on the screen. > > However, having said that, path-dependent / context-sensitive query is a > very rich and interesting space that does have meaningful utility, > especially in the context of graph-like datasets. This is especially true > when combined with some kind of algebra for unioning/intersecting/etc. I'm > also interested in this sort of thing for programmable user-interface use > cases: Think text editors with multiple-cursors. > > I think experimentation is in order >> > > Agreed. Here's some starting points for pre-hammock reading/viewing > materials: > > *Tree Traversal * > > - XPath: https://www.w3.org/TR/xpath/ > - CSS: https://www.w3.org/TR/css3-selectors/ > > *Richer Tree Querying* > > - XQuery: https://www.w3.org/TR/xquery/ > - jQuery: https://api.jquery.com > > *Second-Class "Generalized References" (nee "L-values")* > > - Common Lisp: > http://www.lispworks.com/documentation/lw50/CLHS/Body/05_a.htm > - C/C++: > > http://eli.thegreenplace.net/2011/12/15/understanding-lvalues-and-rvalues-in-c-and-c > > *Lenses in Other Languages* > > - Haskell: > > https://skillsmatter.com/skillscasts/4251-lenses-compositional-data-access-and-manipulation > > (great overview of key concepts!) > - Racket: https://docs.racket-lang.org/lens/index.html > > *Graph Querying* > > - Neo4j Cypher: https://neo4j.com/developer/cypher-query-language/ > - TinkerPop Gremlin: https://tinkerpop.apache.org/gremlin.html > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.