4 ms·
We just did our annual conference GraphConnect in NYC last month. There's a BUNCH of talks online of people who are very successfully and very happily using it
by emileifrem 8y ago
We just did our annual conference GraphConnect in NYC last month. There's a BUNCH of talks online of people who are very successfully and very happily using it in production deployments. Check it out here: https://neo4j.com/graphconnect-2018 https://neo4j.com/graphconnect-2018
Btw, if you've ever stayed at a Marriott (or anyone they now own: Starwood, Hilton, Ritz Carlton) then you've used Neo4j in production (to book that room). If you've ever purchased a flight ticket, then you've used Neo4j in production (over 99% of all fare calculations are done with Neo4j). Etc.
- weavie 8y agoOut of curiosity, how would a graph database help when booking a room? I would have thought a simple table: create table room_booking { roomid, booking_started, booking_ended } and some simple sql to check if any rows exist within the required date range would have covered it? What other aspects am I not considering?
- emileifrem 8y agoOh, there's a bunch of stuff in addition to that. I could give it a shot, but would probably mess it up. :) Way better if you hear it from the horse's mouth. Here's Scott Grimes from Marriott at GraphConnect 2016: https://www.youtube.com/watch?v=wdFYEuWWpzo https://www.youtube.com/watch?v=wdFYEuWWpzo Pretty amazing stats in there!
- weavie 8y agoThanks, I'll have a watch when I get the time.
- jeletonskelly 8y agoI used to work at an OTA (online travel agency, ie Booking.com, Hotels.com). There's all kinds of complications to what seems to be a pretty simple thing: a building with rooms that are either occupied or not. There's multiple rates per room for a single night, then there's something called room rate plans which I won't get into. In other words: it's more complicated that we think (or than it needs to be).
- segmondy 8y agoThis type of things is based solved with Prolog. The issue is that folks are trying to solve declarative problems using procedural/object oriented/functional programming. Because we store data in databases, we have twisted it into a database problem but it's not. book(Room, Rate):- availableBuildings(Buildings), availableRooms(Buildings, Rooms), rate_less_than(Rate, Rooms) cheapest(Rooms, Room). However complex you think this problem is, it's pretty simple. It's a very old problem, scheduling, well understood and solved. Using the wrong tool makes it a nightmare. Using the right tool makes it ridiculously easy. The solution is not the database, but the language.
- mfrager 8y agoVery interesting... my inclination is that you’re probably right. Any tips on how to learn to use Prolog with pulling data from external sources?
- segmondy 8y agoProlog's DB is just a text file. You can construct a DB file by using SQL to select into a text file. You can use ODBC http://www.swi-prolog.org/pldoc/doc_for?object=section(%27packages/odbc.html%27) http://www.swi-prolog.org/pldoc/doc_for?object=section(%27pa... You can use CSV http://www.swi-prolog.org/pldoc/man?section=csv http://www.swi-prolog.org/pldoc/man?section=csv I've used the above methods. For RDF, you can load with various methods even over http http://www.swi-prolog.org/pldoc/man?section=rdflib http://www.swi-prolog.org/pldoc/man?section=rdflib
- e12e 8y agoI too would like to hear about getting facts from an sql db, and writing back results from prolog - it's hard to see how a prolog text file can/could be used as a source for transactional problems like booking (making sure the answer you find can be committed while still valid). I suppose one could have a prolog service that came up with suggestions, ordered by preference, and then attempt committing them in order to the actual transactional storage layer. But I don't see how you could avoid re-implementing transactions. With an rdms you could look for options, and attempt a booking in a transaction, and have a fairly established way to resolve conflicts.
- j_anstice 8y agoDo you have any reference material on using neo4j for complex pricing - we're looking at using neo4j for this, and some evidence that it's going well in other places will increase the comfort level.
- emileifrem 8y agoOff the top of my head, I know of two big and complex pricing engine projects in production. One is the Marriott one I referenced in a previous post. Scott Grimes spoke about it at GraphConnect 2016: https://www.youtube.com/watch?v=wdFYEuWWpzo The other one is confidential but is in the airline industry.