Happy to help.
If you want to chat in person, I live in Dresden, and am in Berlin on Sept.
30 for our Neo4j Meetup.

Cheers, Michael

On Wed, Sep 17, 2014 at 9:44 AM, Sebastian Hennebrueder <
[email protected]> wrote:

> Hello Michael,
>
> I am stunned. I was already happy from the input of the first post. Thanks
> a lot for spending the time to illustrate it in detail. I will need a day
> to research it.
>
> Best Regards
>
> Sebastian
>
> On Tuesday, September 16, 2014 10:56:49 PM UTC+2, Michael Hunger wrote:
>>
>> I tried to put it together but have no realistic data to model it in a
>> graph gist.
>> Would be fun to load actual train stations, routes and reseverations with
>> LOAD CSV into a graphgist though.
>>
>> http://gist.neo4j.org/?dropbox-14493611%2Ftrain-stops_reseverations.txt
>>
>> Hope it helps
>>
>> Michael
>>
>> On Tue, Sep 16, 2014 at 10:35 PM, Michael Hunger <
>> [email protected]> wrote:
>>
>>> Hi Sebastian,
>>>
>>> I'm not sure I understand your model.
>>>
>>> The relationships between stations are one seat of segments of the same
>>> train-trip ?
>>>
>>> I wonder why you didn't model the train with it's wagons and seats as
>>> nodes and then connect the seat nodes with a RESERVED_FROM releationship to
>>> the stations from which it is reseved?
>>>
>>> and the :Train also being connected to a :Trip or :Route which has a
>>> start-time at the first station and connections between the stations as
>>> :Stop
>>>
>>> (:Train {trainNo})<-[:IN_TRAIN]-(:Wagon {wagonNo})<-[:IN_WAGON]-(:Seat
>>> {seatNo})-[:RESERVED_FROM]->(:Stop)
>>>
>>> then you should be able to find all :Seats which have no :RESERVED_FROM
>>> relationship between the stations that you look at
>>>
>>> or probably just subtract those with a RESERVED_FROM relationship from
>>> all seats in your train.
>>>
>>> REGARDING YOUR MODEL:
>>>
>>> Did you look into allShortestPaths for your path search? An unlimited
>>> path search explodes the numbers of paths looked at
>>> and your WITH statement in between you inhibit the planner to pull in
>>> your conditions into the path matching.
>>>
>>> match p=(d:Station {name: 
>>> 'Berlin-stop-01'})-[r1:train]->()-[r:train*]->(a:Station
>>> {name: 'Berlin-stop-07'})
>>> WHERE r1.reserved = false AND all(r2 in r WHERE r2.reseved = false and
>>> r2.seat = r1.seat and r2.trainnumber = r1.trainnumber)
>>>
>>> perhaps it even makes sense to split up the match.
>>>
>>> On Tue, Sep 16, 2014 at 10:01 PM, Sebastian Hennebrueder <
>>> [email protected]> wrote:
>>>
>>>> Hi all.
>>>>
>>>> My data presents seats in trains, which can be booked. I am struggling
>>>> to get a search for a bookable seat reasonable fast.
>>>>
>>>> Data sample:
>>>>
>>>> create (source:Station {name: 'Berlin-stop-01'}), (target:Station
>>>> {name: 'Berlin-stop-02'}), (source)-[:train {trainnumber: "abc", seat: "1",
>>>> reserved: false}]->(target)
>>>>
>>>> I am using the following data scenario:
>>>>
>>>> 50 stops, 50 seats, 10 different train numbers
>>>>
>>>> For every seat and train number there is a relation between two
>>>> stations.
>>>>
>>>> The query I use is:
>>>>
>>>> match p=(d:Station {name: 'Berlin-stop-01'})-[r:train*]->(a:Station
>>>> {name: 'Berlin-stop-07'})
>>>> with head(relationships(p)) as r1,p where r1.reserved = false and
>>>> all(r2 in relationships(p) where r2.seat=r1. seat and r2.trainnumber =
>>>> r1. trainnumber)
>>>> return r1 as `r` limit 1
>>>>
>>>> With longer distances between the stops, the database becomes
>>>> unresponsive. I tried to use start to fix the destination and arrival but
>>>> did not get any major improvements.
>>>>
>>>> I would appreciate any help.
>>>>
>>>> Best Regards
>>>>
>>>> Sebastian
>>>>
>>>>  --
>>>> 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 [email protected].
>>>> 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 [email protected].
> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to