4 ms·
It's a structure for representing Knowledge and optionally reasoning. A relational database is fine for lots of instances of data that are basically the same (i
by captaincaveman 4y ago
It's a structure for representing Knowledge and optionally reasoning.
A relational database is fine for lots of instances of data that are basically the same (i.e. rows in a table), if you want the table to be really flexible to deal with the complexity of modelling a great number of things you end up bastardising the relational model and using strings and other quirks, and the semantics of what this all means isn't in the data but in the applications/humans on how to interpret it ... knowledge graphs deals with this. Additionally ones like RDF support the Open World view of data, where mostly not having information means you just don't have it (the world has a lot of information), rather than assuming in a Closed World that missing data means it's false (not true), and has other affordances for modelling the world, especially where you may have many data sources and need to integrate them together.
It's more than just a graph database, which is typically misunderstood by most devs (including me), when they start looking at this.
However designing an Ontology is hard, just as getting a good database schema is hard, failure of most systems is the data model builds up tension over time, which leads to code complexity/hairballs, effort in adding new concepts to the model, operational work arounds, which then start to poison the data quality (start adding freeform text to store 'data').
There is no god given ontology or one way of modelling the world, crowdsourcing is a good approach, but looking at this one you can see some questionable practices (tradeoffs to be fair), and there is a big gap in people who have skills and experience.