These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
 

Graph tools for eve map

Author
Thabiso
Merchants of the Golden Goose
#1 - 2012-02-29 15:23:50 UTC
Is there any tools out there for loading the jump information set for eve?

Optimal would be a library (python/java - C/C++ are also options, but I tend to do the old memory fandago) which already implements some form of breadth first exploration of the graph.

Or alternatively - does MSSQL have some form of graphing / spatial searching that works on the eve dataset?
Osku Rei
Pixel 6
#2 - 2012-02-29 17:33:05 UTC
api.evejb.com/index.php?from=jita&to=Amarr

^ Old api example.

I have written an extensive php/mysql library that does a lot of stuff with the eve SSD regarding jump(gate) calculations.

Seems like a lot of people have been asking about this recently.

Is that what you kind of thinking about ?

P.s when you say 'loading' do you mean? Putting them into a database ? converting them to some form of array that can worked on ?

Next generation of lottery tracker coming soon! http://evelotterytracker.com/

Please like my post if it has helped you :)

Thabiso
Merchants of the Golden Goose
#3 - 2012-02-29 23:34:50 UTC
Osku Rei wrote:
api.evejb.com/index.php?from=jita&to=Amarr

^ Old api example.

I have written an extensive php/mysql library that does a lot of stuff with the eve SSD regarding jump(gate) calculations.

Seems like a lot of people have been asking about this recently.

Is that what you kind of thinking about ?

P.s when you say 'loading' do you mean? Putting them into a database ? converting them to some form of array that can worked on ?


I've loaded the data into a MSSQL express database, which currently has a few issues with FKs (posted about those elsewhere) - When I'm talking about loading the dataset, it is because a relational database isn't that good for working with graphs (not the excel type, the vertice/node type). What I need is a datastructure (or set of) that will handle breadth first traversel of the universe, searching for specific data. Currently my biggest issue is figuring out how to configure the damn database :-), making the datastructure is fairly straight forward, but if someone already had the structures needed I could save quite some time.
Osku Rei
Pixel 6
#4 - 2012-03-01 08:25:03 UTC
Thabiso wrote:
Osku Rei wrote:
api.evejb.com/index.php?from=jita&to=Amarr

^ Old api example.

I have written an extensive php/mysql library that does a lot of stuff with the eve SSD regarding jump(gate) calculations.

Seems like a lot of people have been asking about this recently.

Is that what you kind of thinking about ?

P.s when you say 'loading' do you mean? Putting them into a database ? converting them to some form of array that can worked on ?


I've loaded the data into a MSSQL express database, which currently has a few issues with FKs (posted about those elsewhere) - When I'm talking about loading the dataset, it is because a relational database isn't that good for working with graphs (not the excel type, the vertice/node type). What I need is a datastructure (or set of) that will handle breadth first traversel of the universe, searching for specific data. Currently my biggest issue is figuring out how to configure the damn database :-), making the datastructure is fairly straight forward, but if someone already had the structures needed I could save quite some time.


I know what graphs you mean ;)

I'm a little confused, just use the SDD jump table. Write a SQL statement group by toSolarSystemID on fromSolarSystemID
(so, in plain English "for each system get me all connecting systems")

So you'll end up with a 2d array, something like:

Array[someSystemId] = Array { connectedSystem1, connectedSystem2, connectedSystem3, etc... }

Then transverse it like normal.

Does that make sense ? :)

P.s All you need is the 'mapSolarSystemJumps' table, nothing else, once you have your route then you can get system names / info etc from the id's



Next generation of lottery tracker coming soon! http://evelotterytracker.com/

Please like my post if it has helped you :)

Thabiso
Merchants of the Golden Goose
#5 - 2012-03-01 12:10:20 UTC
Yeah, its easy enough (except for the MSSQL, they seem dead bent on doing it different than what PG/MySQL does).

Was just wondering if there where any nice libraries out there for loading the set.

While jump calculation is part of the puzzle, I also need to bolt a logical language on top to enable searching, so it is probably easiest to do the whole thing from scratch :-)

(Thinking of taking the jboss drools engine and use the drl language to determine if a node is within search criteria)

But thanks for the help, I'll be back here when I get stuck :D
Osku Rei
Pixel 6
#6 - 2012-03-01 16:38:40 UTC
Thabiso wrote:
Yeah, its easy enough (except for the MSSQL, they seem dead bent on doing it different than what PG/MySQL does).

Was just wondering if there where any nice libraries out there for loading the set.

While jump calculation is part of the puzzle, I also need to bolt a logical language on top to enable searching, so it is probably easiest to do the whole thing from scratch :-)

(Thinking of taking the jboss drools engine and use the drl language to determine if a node is within search criteria)

But thanks for the help, I'll be back here when I get stuck :D


MSSQL and MySQL both use SQL (with slight differences); I don't see what the problem is, the query is the same.

Again, the 'library' is the SQL query. Unless you want a pre-existing library that will do all the D*, A* etc for you ?

Next generation of lottery tracker coming soon! http://evelotterytracker.com/

Please like my post if it has helped you :)

Thabiso
Merchants of the Golden Goose
#7 - 2012-03-02 06:39:15 UTC
Osku Rei wrote:
Thabiso wrote:
Yeah, its easy enough (except for the MSSQL, they seem dead bent on doing it different than what PG/MySQL does).

Was just wondering if there where any nice libraries out there for loading the set.

While jump calculation is part of the puzzle, I also need to bolt a logical language on top to enable searching, so it is probably easiest to do the whole thing from scratch :-)

(Thinking of taking the jboss drools engine and use the drl language to determine if a node is within search criteria)

But thanks for the help, I'll be back here when I get stuck :D


MSSQL and MySQL both use SQL (with slight differences); I don't see what the problem is, the query is the same.

Again, the 'library' is the SQL query. Unless you want a pre-existing library that will do all the D*, A* etc for you ?


SQL is by no means any form of a standard - the query you talked about, will work on both systems, but that is not the issue. My biggest issue is administrating the beast (and making it accept connections). When you are used to setting up a database through the database, using something like SQL Server Management Studio confusing and annoying.
Steve Ronuken
Fuzzwork Enterprises
Vote Steve Ronuken for CSM
#8 - 2012-03-02 17:49:03 UTC
Thabiso wrote:
SQL is by no means any form of a standard - the query you talked about, will work on both systems, but that is not the issue. My biggest issue is administrating the beast (and making it accept connections). When you are used to setting up a database through the database, using something like SQL Server Management Studio confusing and annoying.



Well, there's SQL:2008, which is most certainly a standard. https://en.wikipedia.org/wiki/SQL:2008

There are a few other versions too. So, they're standards none the less.


As for using sql server management studio, if I remember correctly, it has a plain sql worksheet interface too. Where your create table statements have no problem working.



Anyway, I'd just use MySQL, unless you're already using sqlserver. No real licensing issues (unless you're distributing it) (Or use MariaDB to skip the whole problem), and a simpler connection setup (sql server isn't significantly more complex, but it does have a few steps)


Or skip them all and pull up an Oracle Express Edition instance. As long as you're using less than 10GB. A real man's database. (As you have to fight with it)

Woo! CSM XI!

Fuzzwork Enterprises

Twitter: @fuzzysteve on Twitter

Thabiso
Merchants of the Golden Goose
#9 - 2012-03-02 18:02:46 UTC
Steve Ronuken wrote:
Thabiso wrote:
SQL is by no means any form of a standard - the query you talked about, will work on both systems, but that is not the issue. My biggest issue is administrating the beast (and making it accept connections). When you are used to setting up a database through the database, using something like SQL Server Management Studio confusing and annoying.



Well, there's SQL:2008, which is most certainly a standard. https://en.wikipedia.org/wiki/SQL:2008

There are a few other versions too. So, they're standards none the less.


As for using sql server management studio, if I remember correctly, it has a plain sql worksheet interface too. Where your create table statements have no problem working.



Anyway, I'd just use MySQL, unless you're already using sqlserver. No real licensing issues (unless you're distributing it) (Or use MariaDB to skip the whole problem), and a simpler connection setup (sql server isn't significantly more complex, but it does have a few steps)


Or skip them all and pull up an Oracle Express Edition instance. As long as you're using less than 10GB. A real man's database. (As you have to fight with it)


SQL-XXXX are standards yes, but so far I've never seen any vendor actually doing what the standard says - they all have their funny little quircks. The closest I've seen so far is SolidDB (Currently owned by IBM), which is trying to be strictly 92.

Aaaand anyways, turns out the problem where twofold. Standard installation doesn't listen for network traffic and for some reason my installation decided the default port 1433 wasn't good enough for it, so it went ahead and listened on 50074.

Regarding creating tables and other databases - The dataset in the toolkit is for MSSQL - which is why I'm going for that - yes you can migrate the data, but as the changelog says - they will change and update it as they see fit with each release; therefore, it makes more sense for me to keep it in original format. (Also, added bonus, get to play with MSSQL which I haven't done so far).


Steve Ronuken
Fuzzwork Enterprises
Vote Steve Ronuken for CSM
#10 - 2012-03-02 20:01:33 UTC
There's enough people who use mysql with it, that the lag between a new version being release, and it being converted is generally a day or so. Smile

Woo! CSM XI!

Fuzzwork Enterprises

Twitter: @fuzzysteve on Twitter