I have been experimenting with something I call "path database".
It is very rough, but usable.
I would welcome some additional eyes and hands.

I have an index structure where you can "build an index" and then "find"
things.

https://github.com/mstang/pathdatabase

regards,

Mark

On Tue, Jul 19, 2016 at 4:05 PM, Olek <aleksander.nas...@gmail.com> wrote:

> Hi!
>
> Often through the software development I bump into structures defining
> specification/manifest/configuration of some Unit
> (service/process/transformation/configuration).
> From my observation I've noticed the repeating pattern in software
> development for consuming above. We star with a
>
> structure > (then go to) slurp > (then) morph to indexed structures > (for
> final) retrieve (during algorithms executions)
>
> What bothers me is the slurp and morph steps. These always seem to be big
> effort which is not particular functional from the algorithm use (these are
> internal steps not produced by Business Analytics and not consumed by
> Program Algorithms). It would be nice if there was a method to make slurp
> and morph as one step in declarative (because it is most natural way to
> express statement) manner.
>
> Now lets dive to example and make some assumptions. Let assume that
> structure can be any tree structure. For example let say it will be XML
> which can have parent node, child nodes with attributes.
>
> <node>
>  <events>
>  <event name="foo"/>
>  <event name="bar"/>
>  <events>
>  <transformations>
>  <transformation name="transfoo" source="fooxu" dest-event="foosa"/>
>  <transformation name="transfer" source="barxu" dest-event="barsa"/>
>  </transformations>
> <node/>
>
> This can be for example specification of node which has declared group of
> events and group of transformations. So it can easily fit in memory and is
> read only once at startup.
> Now it would be nice to make slurp of that structure (and it's pretty easy
> in clojure - the only true language in which you express the algorithms in
> terms of thoughts - only if there are built of lists ;-) ) and next get the
> structure of which we could make farther retrieves. For example we could
> ask for all incoming events or ask if we can expect the event of name "foo"
> in that spec. Or we can ask for transformation of name "transfoo". As you
> can see, to be able to ask such questions, I would have to index above
> structure for given predicates.
> First I thought about indexing every data. For example I make inverted
> index of all terminal nodes. So I got indexes like: transformation, name,
> events, event, node, source, dest-event, from which I could just ask for
> (query example) #{transformation [ :name %1 ]} to get all transformation
> which match the %1 argument.
> Latter I noticed that in fact, Datomic does that, but the indexing and
> query language would be not so easy.
>
> Nevertheless do you know any piece of code/software/library which allow
> for such functionality?
>
>
>
>
>
>
>
>
> --
> 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.
>

-- 
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.

Reply via email to