Live data from Hacker News

Graph Mining Library

github.com

101–110 of 113 posts

Re: Graph Mining Library

#101

Can someone with familiarity with Bazel give any clues how to build? `bazel build` does something, but I end up with `bazel-build` and `bazel-build` with no obvious build artefacts.

Just to follow up on the above replies, you could also just build a single package. For example, you could build asynchronous_union_find with `bazel build //in_memory/connected_components:asynchronous_union_find`. (This isn't very useful outside of the context of a cc_binary rule.)

This in turn allows you to only build and use the 'package' you care about without having to build the whole repo in other projects. Continuing on the above example, if you only wanted to use the asynchronous_union_find.h header file in your project, somewhere in your WORKSPACE file, you add the graph-mining library using a git_repository rule (see WORKSPACE.bazel for examples), and in a cc_library rule in a BUILD file inside your project, you can add a `@graph-mining//in_memory/connected_components:asynchronous_union_find`. Then you can include it as a header elsewhere. Building your project then only builds that package and its dependencies, and not the entire graph-mining library.

Re: Graph Mining Library

#102
For those wanting to play with graphs and ML I was browsing the arangodb docs recently and I saw that it includes integrations to various graph libraries and machine learning frameworks [1]. I also saw a few jupyter notebooks dealing with machine learning from graphs [2].

Integrations include:

* NetworkX -- https://networkx.org/

* DeepGraphLibrary -- https://www.dgl.ai/

* cuGraph (Rapids.ai Graph) -- https://docs.rapids.ai/api/cugraph/stable/

* PyG (PyTorch Geometric) -- https://pytorch-geometric.readthedocs.io/en/latest/

--

1: https://docs.arangodb.com/3.11/data-science/adapters/

2: https://github.com/arangodb/interactive_tutorials#machine-le...

Re: Graph Mining Library

#103

How is this usable. I see no documentation. There is a docs folder but all it contains is a code of conduct.

This header file has lots of commentary.

https://github.com/google/graph-mining/blob/main/in_memory/c...

This, too:

https://github.com/google/graph-mining/blob/main/in_memory/s...

Same with most of the other files.

How is it usable? It's usable if you want to find date within lots and lots of data efficiently. That's kinda Google's thing. :-D

Re: Graph Mining Library

#104
post #98

Earlier quoted context omitted.

I'm not trying to be snarky but have you considered reading the code? Like I'll be honest I can't remember the last time I looked at docs at all instead of reading the code itself.

Are you for real? I'm also not trying to be snarky but... $ cat $(find . -type f | grep -vE LICENSE\|README\|BUILD\|bazel\|git\|docs) | sort -u | wc -l 8360 unique lines scattered across more than 100 files. Good luck deciphering that in a single day! By the way, the first issue in the repo is a "Request for a more verbose README", which I agree with.

You could try using something like Adrenaline https://www.useadrenaline.com/ I built it exactly for this use case :)

Re: Graph Mining Library

#107
post #85

Earlier quoted context omitted.

There are "graph databases" which see graphs as a universal approach to data, see RDF and SPARQL and numerous pretenders. For that matter, think of a C program where the master data structure is a graph of pointers. In a graph like that there is usually a huge number of different edge types such as "is married to", "has yearly average temperature", ... Then there are "graph algorithms" such as PageRank, graph central…

> a universal approach to data, see RDF and SPARQL and numerous pretenders. For that matter, think of a C program where the master data structure is a graph of pointers. A graph of typed pointers. As you likely know, the basic element of RDF is not “ foo has a relationship with bar ”, but “ foo has a relationship with bar of type baz ”. Also, the types themselves can be part of relationships as in “ baz has a relatio…

> foo has a relationship with bar of type baz

Nope, "of type baz" is not required.

Re: Graph Mining Library

#108
post #85

Earlier quoted context omitted.

> a universal approach to data, see RDF and SPARQL and numerous pretenders. For that matter, think of a C program where the master data structure is a graph of pointers. A graph of typed pointers. As you likely know, the basic element of RDF is not “ foo has a relationship with bar ”, but “ foo has a relationship with bar of type baz ”. Also, the types themselves can be part of relationships as in “ baz has a relatio…

> foo has a relationship with bar of type baz Nope, "of type baz" is not required.

Depends on the perspective. The predicate will always be an IRI. The object will either be an IRI or a literal, and all literals in RDF (as of RDF 1.1) are typed , though serialization formats like Turtle work with implied types.

There is also the option of blank nodes for objects, though in almost all implementations they are stand-ins for anonymous IRIs, so in some sense or another almost anything has "a" type.

Re: Graph Mining Library

#109
post #38

No idea where is the hype coming from, who is actually upvoting this? 0 Docs, 0 examples, 0 explanation of how is it useful. Is "Graph Mining" so ubiquitous that people know what this is all about?

We are updating the README to be more descriptive; in the meantime, please see https://gm-neurips-2020.github.io/ or https://research.google/teams/graph-mining/

There are now more documents linked to in the README.md and an example you can try to run: https://github.com/google/graph-mining

Re: Graph Mining Library

#110
post #85

Earlier quoted context omitted.

> a universal approach to data, see RDF and SPARQL and numerous pretenders. For that matter, think of a C program where the master data structure is a graph of pointers. A graph of typed pointers. As you likely know, the basic element of RDF is not “ foo has a relationship with bar ”, but “ foo has a relationship with bar of type baz ”. Also, the types themselves can be part of relationships as in “ baz has a relatio…

> foo has a relationship with bar of type baz Nope, "of type baz" is not required.

God the word "type" is overloaded in common discourse. For a link

   ?s ?p ?o .
you could say this is a link of "type" ?p, but technically in RDF we say ?s is of type ?type if

   ?s  ?type .
which can be abbreviated as

   ?s a ?type .
If you have RDFS inference turned on, notably, just using ?p in a triple will imply

   ?p a rdf:Property .
In plain RDF you can say a property is of some other ?type but I think you can get in trouble with that if you want to do OWL DL inference and you might want to say something like

   ?p rdfs:subPropertyOf :SomeSpecialKindOfProperty .
Post reply on HN