The skunkworks project that I've been working on for the past month or so incorporates the idea of relationships between entities to enable automatic discovery and data recommendations
In said project there is a bit of code that watches the database for changes to an entity, and when it sees a change to that entity it automatically re-evaluates it against nearby, similar entities. I want to keep a record of the entities that are being compared against one another, so I create a relationship and store it for future reference.
This is pretty standard stuff. It's basically exactly what a relational database does. However, I ran up against one concept which I haven't seen much about.
That is, I realized that there is a whole gradient of similarities between entities, from "exactly the same" to "completely different". If you turn this into a binary value, either related or not, you lose that entire piece of information.
This seems like quite a waste because if you're looking at entities that are related to a specific one that you're looking at, it makes sense to prioritize them based on their similarity. And if you're doing something like, say, using those similar entities to come up with a market price for the entity you're interested in, you probably want to use something like a weighted average based on how similar the other entities are.
As far as I know there is no way right now to store that relationship strength in existing data systems. Relational databases in particular do nothing for you here, you can either choose related, or not related. RDF-based systems could, I suppose, accomodate this, but what you really want in this case is a "strength" attribute on the "sameAs" property, and I have never encountered such a thing in the wild.
Anyway, I thought it was an interesting and useful idea. Since I'm da boss on my project and it sounded fun I went ahead and spent a day adding it in while I was in that bit of the code, so I'll let you know how it works out.








