Hi Andy,

I'm looking to use a graph modelisation which is {vertices, ports, steps}
based, an edged being a [ port1, port2, step ] with data on the step and
port being linked to a vertex which itself hold data.
It is 1-1 with a vertex/edge modelisation where both the vertices and edges
have metadata on it.
The main feature I'm looking for is to be able to navigate in the graph,
typically from a vertex check if there is a "previous" vertex which matches
some predicate and if so mutate it (+ same thing the other way around).

Le lun. 9 sept. 2019 à 12:28, Andy Seaborne <a...@apache.org> a écrit :

> Couple of points:
>
> 1/ CommonsRDF -
> https://commons.apache.org/proper/commons-rdf/
>
> This is a RDF API and there is a simple implementation. The footprint
> should be smaller.
>
> 2/ When you say you want a graph API, what features of the graph? e.g.
> do you want attributes on edges? Do you publish data or only work within
> your own domain?
>
> There are two categories of graph system around - RDF and Labelled
> property Graph (often "Property Graph" - PG). The "graphs" are different
> data models.
>
> For PG there is Apache Tinkerpop, but that has it's own dependencies.
>
>      Andy
>
> On 09/09/2019 09:55, Marco Neumann wrote:
> > as I said Romain you are probably best advised to roll-your-own DAG
> code. I
> > initially thought you could model the DAG in RDF (Bob DuCharme wrote a
> > blog post about using Spark with SPARQL*
> > in 2015) but since that's not your focus Jena adds much more stuff, stuff
> > you most likely wont need on the lower graph level processing in your
> case.
> >
> >
> http://www.snee.com/bobdc.blog/2015/03/spark-and-sparql-rdf-graphs-an.html
> >
> >
> > On Mon, Sep 9, 2019 at 5:44 AM Romain Manni-Bucau <rmannibu...@gmail.com
> >
> > wrote:
> >
> >> Hmm, the DAG in my case is about modelising a problem and the algorithm
> >> modify it to make it simpler and closer to a solution.
> >>
> >> If it helps, see it as a generic algorithm and iterations.
> >>
> >> So RDF and backends will not help since it is not a goal and if so the
> >> backend would be a plain json serialization for example.
> >>
> >> So I see how a DAG can be enriched to be jena compatible - change
> vertices
> >> and edges impl - but the opposite is still less clear for me.
> >>
> >> Le dim. 8 sept. 2019 à 23:31, Marco Neumann <marco.neum...@gmail.com> a
> >> écrit :
> >>
> >>> On Sun, Sep 8, 2019 at 10:15 PM Romain Manni-Bucau <
> >> rmannibu...@gmail.com>
> >>> wrote:
> >>>
> >>>> Le dim. 8 sept. 2019 à 23:03, Marco Neumann <marco.neum...@gmail.com>
> >> a
> >>>> écrit :
> >>>>
> >>>>> Romain, if I understand you correctly here, and since you are at the
> >>>>> beginning of this process I think I would like to see this designed
> >> as
> >>>>> another custom graph in Jena that in its most basic form could also
> >>> work
> >>>> as
> >>>>> a stand-alone graph with eventually zero jena dependencies.
> >>>>>
> >>>>
> >>>> A bit as a subproject? = Jena would deliver it but not use it?
> >>>
> >>>
> >>> there are a number of adapters that implement vendor specefic backends.
> >>> orcale, virtuoso etc
> >>>
> >>>
> >>>>
> >>>>
> >>>>> said said it sounds like there is some overlap in your effort that
> >>> could
> >>>>> benefit significantly from Jena infratructure features directly.
> >>>>>
> >>>>
> >>>> Hmm, do you have some pointers handy?
> >>>
> >>>
> >>> search for jena adapters and custom implementations of GraphBase.
> >>>
> >>> I do say so since you explictly mentioned that you are not yet ready to
> >> go
> >>> RDF here and a basic DAG impl might be feasible for your anticipated
> use
> >>> case. but if this takes off in context of the Commons implementation
> I'd
> >>> like to be ready to use these bridges to the RDF world and use Jena to
> >>> scale for enterprise and web appplication.
> >>>
> >>>
> >>>>
> >>>>
> >>>>
> >>>>> On Sun, Sep 8, 2019 at 4:35 PM Romain Manni-Bucau <
> >>> rmannibu...@gmail.com
> >>>>>
> >>>>> wrote:
> >>>>>
> >>>>>> 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
> >>>>>>>
> >>>>>>
> >>>>> --
> >>>>>
> >>>>>
> >>>>> ---
> >>>>> Marco Neumann
> >>>>> KONA
> >>>>>
> >>>>
> >>> --
> >>>
> >>>
> >>> ---
> >>> Marco Neumann
> >>> KONA
> >>>
> >>
> >
> >
>

Reply via email to