4 ms·
How do you search a graph that is separated onto different machines? I know a matrix multiplication can be a breadth first search if you use a 1 for each colum
by samsquire 3y ago
How do you search a graph that is separated onto different machines?
I know a matrix multiplication can be a breadth first search if you use a 1 for each column you want to breadth search.
How do you shard a graph data structure?
- emmanueloga_ 3y agoFollowing the RDF model, every node and edge of a graph can be represented as: subject -> predicate -> object; Example: `<bob> <isa> <person>` (from this RDF primer [1]). Sharding data that follows this model sounds easy? Any sort of rule and/or hashing over the triples could be used to send triples to arbitrary servers. 1: https://www.w3.org/TR/rdf11-primer/#section-triple https://www.w3.org/TR/rdf11-primer/#section-triple
- motohagiography 3y agoThank you for such a succinct explanation of the RDF model of graphs. I have developed applications with cypher and neo4j, and skipped gremlin and even graphql because I found the RDF schema descriptions too complicated to bother with. Nodes and relationships seemed sufficient, but that everything as an implied digraph here makes it clearer. My note thanking you is a multiple of the length of your explanation, which is a pretty good measure!
- emmanueloga_ 3y agothank you!
- samsquire 3y agoThanks for this. I have worked with RDF and N3 notation. I created a D3 visualiser from Jena Fuseki database https://camo.githubusercontent.com/3064a94d00812c1373c4eb3b2ac85e7f5a68dff08df7e25740ae963a2be34d51/68747470733a2f2f7261772e6769746875622e636f6d2f73616d7371756972652f696e746572666163652d6578706572696d656e74732f6d61737465722f6c6976696e672d646f63756d656e742d656469746f722e706e67 https://camo.githubusercontent.com/3064a94d00812c1373c4eb3b2... It renders RDF/N3 relationships. Unfortunately the code is trapped in an Sqlite jsbin file :-) It never occurred to me that it would be that trivial to shard, you could mapreduce the queries. I just worry about how you would do joins on data that live on independent nodes. If a value is on server A and another on server B and there would be a relationship between them, how would you "join" this data unless you colocated join keys.