How to make pivot models / rich relationships / edges in Atomic Data
We often want to provide more information about the relationships between resources:
- Say I want to describe the
friendshipbetween two people. I could create afriendshipProperty that simply points from one Person to the next Person. But what if I want to describe details about this friendship, such as when it started? - Alice is a Manager at AcmeInc. Her
roleis what connects her relationship to the organization.
In labeled property graph databases, you'd probably model these in an edge. In Atomic Data (and RDF), relationships can't have their own properties.
This means we need a pivot model.
- The
friendship, for example, could have afromandtoattribute, as well as astartDate. - The
rolecould have anperson,organisation,roleType, andstartDate
Some questions about this:
- How do we deal with relationships where the
fromandtoare really no different? Using two different properties is confusing, and makes it harder to perform queries (we need to run queries in both directions to answer any question). Do we us alinksproperty that is aresourceArraycontaining a maximum of two resources? - Should these relationships be instances of new
Classes? In our examples, aFriendshipandRoleclass would probably make a lot of sense. But maybe a more constrained model is more appropriate for these pivot type models?
To me, a friendship is a a social concept.
In one RDF ontology that model is expressed only indirectly as the existence of two agents mutually "knowing" each other (this is how e.g. FOAF models it), whereas another ontology can choose to express it as an explicit Friendship requires ties to exactly two agents.
Through reasoning, data of the former model can be resolved as matching the latter model.
I don't really understand
How do we deal with relationsships where the
fromandtoare really no different?
Your question makes no sense to me: Assuming you a talking about FOAF-like modelling, as I see it a friendship only exist when it is mutual - i.e. if I know you but you don't know me then it is a case of a fan of a hero.
Maybe friendship isn't that great of an example, as you could indeed argue that friendship only exists if two individuals agree on its existence.
I'll add some more examples in the issue to illustrate the more abstract problem I'm trying to solve.