You can model your NODE and COMPONENT as Nodes in Neo4j.

In our query language Cypher you indicate direction with an arrow tip '>'
or '<' that you can also leave off for undirected matches.

Best is to import your data first using either LOAD CSV or the apoc
<https://github.com/neo4j-contrib/neo4j-apoc-procedures> library (that you
can install in neo4j desktop under 'Plugins')
with apoc.load.jdbc and creating your nodes first and then connecting them
with relationships.

And then incrementally write the queries. You can use variable length
queries for longer patterns.
Best to quickly take our online course
<https://neo4j.com/graphacademy/online-training/introduction-graph-databases/>
and then use the cypher-refcard
<http://neoj4.com/docs/cypher-refcard/current>.

You might find some examples here: portal.graphgist.org
https://portal.graphgist.org/graph_gists/3d453f61-68c3-48c0-aa52-a1fc4a7f3d47
- Piping Water

Cheers, Michael


On Thu, Nov 9, 2017 at 12:35 AM, Aron Olsen <aronol...@gmail.com> wrote:

> Hi there,
>
> I am a complete newbie with Neo4J.
>
> Despite that, I have programmed and implemented native "engines" to
> perform network traversals and computations in the domain of utility
> networks (water-supply, sewing, district heating, natural gas distribution).
> In this respect it was essential for us, to isolate and rank ring-systems,
> in order to establish matrices of equations to be solved / balanced as of
> Kirchoffs laws.
>
> Nowadays such "engines" / "frameworks" are off-the-shelf products, and I
> have no intentions to compete with such at all.
> My goal is to establish a fairly simple model of a network, allowing an
> end-user to perform various kinds of queries against it, i.e. what is
> upstream/downstream relative to a position in the graph, who will be
> affected when this pipe is broken, how to shut-off etc..
>
> In my RDBMs the network is constituted by the following entities:
>
> EDGE: A connection between two nodes in terms of a pipe. Have a natural
> orientation of say left-to-right: EDGE_ID, LEFT_NODE_ID, RIGHT_NODE_ID
> NODE: A junction for multiple edge. May be marked as being a "sink" or a
> "source": NODE_ID
> COMPONENT: Something that is attached to an EDGE at a relative position in
> the range [0.0 .. 1.0]: COMP_ID, EDGE_ID, EDGE_POS
>
> I need to perform a traversal from some position on some edge to the rest
> of the network, stopping at COMPONENTs / NODEs satisfying various filters,
> and collecting properties of the graph traversed when doing so (NODES,
> EDGE-segments, COMPONENTs).
>
> Some of the challences for me are:
>
> Edges may be traversable in one direction only or in both directions. This
> is a predefined property of an edge, but how to model it, and how to
> implement a traverse-scheme that respects it?
> The components attached to an edge need to be traversed in left or right
> fashion starting at some position in the range 0.0 to 1.0. How to
> facilitate this?
>
> Does anybody know about anything that just resembles something like this
> in Neo4J?
>
> Thank you!
>
> /Aron
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Neo4j" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to neo4j+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 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to neo4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to