Live data from Hacker News

What Is a Knowledge Graph?

neo4j.com

31–40 of 60 posts

Re: What Is a Knowledge Graph?

#31
post #4

Good article on the high level concepts of a knowledge graph, but some concerning mischaracterizations of core functions of ontologies supporting the class schema and continued disparaging of competing standards-based (RDF triple-store) solutions. That the author omits the updates for property annotations using RDF* is probably not an accident and glosses over the issues with their proprietary clunky query language.…

>better standards-based options are available.

Which ones would you recommend?

Re: What Is a Knowledge Graph?

#32

It will be quite a plot twist if Graph RAG paves the way for making knowledge graphs / semantic networks and the like cutting edge again... New "AI" meets old "AI" etc.

There is some research done recently from Google on Graph Reasoning that includes Graph encodings piped through a vanilla LLM.

Re: What Is a Knowledge Graph?

#33

Earlier quoted context omitted.

It has been a while so maybe things have changed, but the main reasons I remember are 1) lists stored as a property must be a homogeneous list of simple builtin datatypes so no mixing of types, custom types, or language tagging like RDF has as first class concepts. 2) indexes on lists are much more limited ( exact match only iirc) so depending on the size of the data and the search parameters it could be a big perfor…

What would you recommend as an RDF database to explore?

If you just want to try some queries, there is a public sparql wikidata endpoint at https://query.wikidata.org . If you press on the file folder icon there are example queries, which let you get a feel for the query language.

Re: What Is a Knowledge Graph?

#34
Wrote this a while ago. KGs are definitely the next new old thing.

https://aneeshsathe.com/2024/05/10/dancing-on-the-shoulders-...

With LLMs enabling easy, if noisy, KG creation extracting knowledge into a computable form will lead to advances.

Drug discovery already uses the tech heavily, wouldn’t be surprised if it expands to more domains quickly now.

Re: What Is a Knowledge Graph?

#35

A rant about Chrome Bookmarks Manager (it's on-topic, I promise). A few years ago, a Good Samaritan on HN told me my bookmarks (I had about 10,000 at the time) were my "knowledge graph". I had no idea what that was, but upon researching the concept, I was mind-blown by the simple truth of what I had been told. Since then I became even more rapacious with my bookmarking (and especially editing their "Name" field to ad…

I know its a third party extension, but I created an open-source browser extension that helps me with a lot of that (I also use my bookmarks extensively for this):

https://github.com/Fannon/search-bookmarks-history-and-tabs#...

If you're afraid that it goes 404: This extension is open-source, very easy to build and use locally and it does not make any external request or relies on external dependencies.

Re: What Is a Knowledge Graph?

#36
post #3

Earlier quoted context omitted.

> Performance has been very for how many records?

During our initial testing, ~1m nodes on a local Docker container with 1G RAM and 1vCPU. But here I mean "performance" in both retrieval time and the overall quality of the fragments retrieved for RAG compared to a `pgvector` only implementation. It is possible to "simulate" these types of graph traversals in pg as well, you'll have to work much harder to get the performance (we tried it first).

number of nodes mean nothing. what matters to measure performance is how much interconnected your network is and how complex are the relationships you want to extract.

Re: What Is a Knowledge Graph?

#37
post #28
post #4

Good article on the high level concepts of a knowledge graph, but some concerning mischaracterizations of core functions of ontologies supporting the class schema and continued disparaging of competing standards-based (RDF triple-store) solutions. That the author omits the updates for property annotations using RDF* is probably not an accident and glosses over the issues with their proprietary clunky query language.…

While I'm all for standards-based options, I think the fetishization does a disservice to anyone dipping their toes into graph databases for the first time. For someone with no prior experience, Cypher is everywhere and implements a ton of common graph algorithms which are huge pain points. AuraDB provides an enterprise-level fully-managed offering which is table stakes for, say, relational databases. Obviously the a…

I can attest to that, or at least to the inverse situation. We have a giant data pile that would fit well onto a knowledge graph, and we have a lot of potential use cases for graph queries. But whenever I try to get started, I end up with a bunch of different technologies that seem so foreign to everything else we’re using, it’s really tough to get into. I can’t seem to wrap my head around SPARQL, Gremlin/TinkerPop has lots of documentation that never quite answers my questions, and the whole Neo4J ecosystem seems mostly a sales funnel for their paid offerings.

Do you by chance have any recommendations?

Re: What Is a Knowledge Graph?

#38

Earlier quoted context omitted.

It has been a while so maybe things have changed, but the main reasons I remember are 1) lists stored as a property must be a homogeneous list of simple builtin datatypes so no mixing of types, custom types, or language tagging like RDF has as first class concepts. 2) indexes on lists are much more limited ( exact match only iirc) so depending on the size of the data and the search parameters it could be a big perfor…

What would you recommend as an RDF database to explore?

GraphDB is the one I usually use. It has a web interface that eases the first steps. Virtuoso (especially Virtuoso 7, which is open source) is also an option. [a bit more command line based].

In case you want to have a look a the SPARQL client I maintain, Datao.net, you can go to the website and drop me a mail. [i really need to update the video there as the tool has evolved a lot since that time]

Re: What Is a Knowledge Graph?

#39
post #12

What's great about knowledge graphs and property graphs in general is once you really get it (and it's not too difficult, especially if you come from a CS background) you start to see graphs all over the place. It's a really nice way to work with data for certain classes of problems. Once you get "enough" data in and "enough" of a variety of things connected, you start to see remarkable relationships emerge.

What sort of relationships have you seen in the data you've worked with that you'd describe as remarkable? I've explained a similar thing to friends before, but I was always at a loss for relationships/insights that have led to concrete outcomes

You know active directory? It's basically a graph of objects, accounts and computers all with their own complex permissions and relationships. During pentests it's VERY common to use a tool called bloodhound which imports an active directory graph into neo4j. You then use graph algorithms to find miss configuration and paths to traverse to become domain admin, which pretty much always reveals something "unexpected".

https://github.com/BloodHoundAD/BloodHound

Re: What Is a Knowledge Graph?

#40
post #3

Earlier quoted context omitted.

> Performance has been very for how many records?

During our initial testing, ~1m nodes on a local Docker container with 1G RAM and 1vCPU. But here I mean "performance" in both retrieval time and the overall quality of the fragments retrieved for RAG compared to a `pgvector` only implementation. It is possible to "simulate" these types of graph traversals in pg as well, you'll have to work much harder to get the performance (we tried it first).

Huh. I've had the opposite experience. Neo4j has a pretty nice interface and package overall, but I was not impressed with the performance, and the developer experience was about on-par with Elasticsearch (not comparing the two databases, just the developer resources and communities). For general purpose use I've still not found anything better than Postgres (and yes, knowledge graphs I would consider general purpose). For my day-to-day work I'm constantly querying a regularly-updated knowledge graph consisting of >10M active, highly-connected nodes - I keep previous versions in the same database so I can traverse backwards through time. This is all on my laptop. No problems with latency or performance.

I'm always curious what people's use cases are with graph databases; do people find Cypher and SPARQL helpful? I've tried several times, but SQL is just so expressive. Postgres is still my favorite graph database (and CRUD RDBMS, and filesystem, and "data conversion tool").

Post reply on HN