Hi all,

I'm coming from dev@commons list and was redirected there by Marco, the
discussion is available on our archives ([1])

Long story short, I'm looking for a core DAG library which is dependency
free (~100K is ok for the stack, more will need to bring a lot of value ;)).

My need is "simple" but very generic (so shareable) and should be strong
(so better if shared and reused instead of coded by app):

1. load/build a graph (DAG actually) model
2. be able to navigate in the model to capture nodes (mainly upstream
browsing in my case but downstream will be useful quite quickly)
3. create a new DAG by "mutating" (copy of an immutable model is not an
issue) the original graph
4. dump back the newly obtained graph

I did a quick prototype at [2] - please ignore the specificity of the model
loading using JSON-B and modelisation using ports which is likely specific
to my case (?).
The interesting piece of code (core logic) is this class [3] and the
findUpStream method usage of the DAG.
In terms of logic it is very close to what Spark does when it "pushes down"
some filter/predicates in a source during a plan computation (that's why it
is called this way in the PoC).

Therefore my question to Jena are:

1. Does it somehow overlap with Jena goals (even if low level)?
2. Can it be extracted in a jena-graph (core would maybe depend on it?)
without guava, slf4j implementation (api is ok) and base dependencies?
Concretely jena-graph+slf4j-api are ok for me, more wouldn't.
3. Is a graph modelization not RDF specific ok and would it be stable for
consumers?

[1]
https://markmail.org/search/?q=graph%20status%20list%3Aorg.apache.commons.dev%2F#query:graph%20status%20list%3Aorg.apache.commons.dev%2F+page:1+mid:pxecs5y3ezmfztbj+state:results
[2] https://github.com/rmannibucau/drag
[3]
https://github.com/rmannibucau/drag/blob/master/src/main/java/com/github/rmannibucau/graph/drag/rule/PushdownRule.java

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>

Reply via email to