rdfgraph-databasesowlgraphdb

How do you determine predicate "direction"?


Perhaps this is intuition and comes with experience but this came up while I was designing an OWL ontology; How does one determine what's an object and what's a subject between two entities?

To clarify through a specific example: Say that you have two users that you want to link together through a mechanism of "following" each other (say that Bob follows Alice).

Should you (generally) model your system so that:

(x:Bob) - x:follows → (x:Alice)

or

(x:Alice) - x:is_followed_by → (x:Bob)

(x is a random ontology name)

I tried searching for a convention or something alike but I couldn't find one.


Solution

  • It makes no difference from a semantic point of view, so you can choose either or, as @Ignazio pointet out, both. There could however be pragmatic reasons to choose one direcions over the other. For example: will typical profile documents list the followers or the followed persons? In many serializations multiple forward properties of the same type can be expressed in a more readable and compact manner. Also, many SPARQL endpoints answer DESCRIBE queries only with the forward properties, so ask yourself for which end the relationship is more important. Is it more important to mention that you're a human when explaining what you are or when explaining what humanity is? Depending on the answer you may choose x:type of x:typeOf.