-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Interface with graph databases? #11
Comments
It is my opinion that a graph computing framework is absolutely necessary in order to make accurate economic models. This may be something you can deprioritize until later, but real economies function in the world, which is shaped like a sphere. You can use a 2D map for the UK, but if you want to model the global economy you need to use latitude and longitude, and calculate distances between points and regions. For example, real estate values are wholly dependent on what they are near and what they can be used for. The Sahara cannot be used for growing corn, and regulators determine what is allowed to be built on buildable land. Real estate is such a different type of property from corn that every country has entire bodies of law that regulate it. Some people expect the microfoundations of basic supply/demand curves to work equally well for both types of goods, but real estate bubbles/price fluctuations have been known to be a major cause of financial instability since... recorded history? If the model seeks to explain real estate bubbles, it needs to know what is going on on which piece of land and when. I suggest using a graph database like OrientDB because most of the work is already done for you. Yes, there is a graph API, but do you really have the time and resources to optimize it? If you do, it might be a better solution, but developing and maintaining it will take a huge amount of time and expertise. |
@KG-ethc I don't think that anyone here will argue that graphs and networks are fundamental to building accurate economic models. Our core abstractions like balance sheets (nodes) and contracts (edges) map nicely into a graph framework. There are loads of questions about implementation layers however and I have not thought too deeply about this yet I am not terribly familiar with OrientDB. I am more familiar with Neo4j and GraphX. Neo4j's license is AGPL which AFAIK is not compatible with Apache 2.0 license we are looking to use for our projects. Titan is a graph database that has tight integration with Cassandra and is Apache 2.0 licensed. At the moment my preference would be to start with GraphX... |
Sorry, you mentioned possible use cases and I thought you were trying to assess graph value. OrientDB is written in Java, has drivers for most languages, community edition is apache 2.0, and it supports unlimited vertices & distributed clusters (as does GraphX). It supports SQL query syntax, and has a browser GUI that allows you to easily inspect and modify data, which could be useful for testing result sets. GraphX is also definitely worth considering. |
In issue #6 @KG-ethc stated..
...indeed! We need to think carefully about whether we want to use an actual graph database and if so which one? Or whether we actually need a graph computing framework like Spark's GraphX?
Initializing balance sheets and contracts by loading data into a graph database and then populating the model agents by reading from the graph database would seem like a possible use case.
The text was updated successfully, but these errors were encountered: