Actually, a 4D approach where a part of a person plays the role of being employed by the company is a better, more flexible approach than reifying relationships in this 3.5D approach.
Making relations into classes is useful in some situations, and ridiculous in others - depends on what you're trying to accomplish.
Cheers, David
UK +44 7788 561308
US +1 336 283 0606
Jack describes here an important aspect of relationships that is not directly captured in graphs that treat the predicates as edges: the attributes associated with the relationships. Consider the triple {CompanyX employs Person1} using a predicate called "employs". The triple implicitly describes what an English speaker would conceptualize as an "employment", with attributes such as "start date", "end date", a location, etc. In RDF, you have to reify the relationship to associate such attributes. In UML, you could use an association class for this. In SBVR, you can define an "employment" concept (with its attributes) and say that every instance of "employs" is an instance of "employment". These approaches are needed so they can support queries such as "who is employed at xyz location", as well as "what is the employment location of Person1").
Making predicates into first-class components of a graph certainly helps model the "objectification" aspects of relationships. Even more important is to permit the predicates to relate more than just subject and object, so as to directly associate the attributes.
Mark H. Linehan www.linkedin.com/in/MarkHLinehan -----Original Message----- From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On Behalf Of Jack Park Sent: Wednesday, June 11, 2014 12:21 PM To: [ontolog-forum] Subject: Re: [ontolog-forum] Requesting Opinions on the Benefits of Predicates as Nodes
I see an additional benefit, but not necessarily affiliated with the way you describe an 'implicit node' -- where a predicate appears, still, to be a second-class citizen in the graph.
Let me explain.
Mostly, it would seem that a predicate in a triple performs the task of linking subject and object; it has no other reason for being there other than to complete the assertion, e.g. A relates to B.
But, consider this: if a specific *instance* of a predicate exists as a connective between two objects, then it can be said to carry the full semantics of the assertion itself. The instance is not an 'implicit' node: it is a vertex like any other in a graph.
If I say: A cause B, then the node which is the 'cause' predicate can carry the full semantics of the triple itself. It's not just your father's predicate anymore; it's a first class citizen.
Why do I care?
Consider that said predicate has entails a possibly complex biography. Who discovered it? What evidence supports it? What debates are in play about it?
I can't assign or otherwise link that biography to either A or B, but only to the specific predicate that ties them together.
If I might add, I will assert that predicates as first class citizens is perhaps the only difference between an RDF graph and a topic map. I've built topic maps with RDF using the BigData RDF store; they work just fine, can import and export from, e.g. OWL documents, but with a loss of information when the topic map becomes OWL.
On Wed, Jun 11, 2014 at 8:59 AM, Frank Guerino <Frank.Guerino@xxxxxxxxx> wrote:
Hi All,
For a number of years, we've been working with Data Driven Synthesis as a means of rapidly generating Data Networks/Graphs and the Knowledge Constructs (e.g. Library Catalogs, Indexes, Taxonomies, Visualizations, etc.) that help humans make easier & better sense of them (If interested, see NOUNZ). Like many other Graph representations, we use "triples" or "triplets" to help represent Semantic Relationships, where descriptive Predicates are used as the binding between Subject Nodes and Object Nodes.
To date, we've only treated Subjects and Objects as "Nodes" but we've always known that we can (and have planned to) implement and treat Predicates as a special type of "implicit" Node, as well. (Time didn’t' allow us to get to doing so, until now.) We believe that doing so grants users of Graphs certain benefits. We've identified three (3)…
#1: The first and obvious advantage is that users can now enter a Graph from any Edge/Predicate as easily as they can enter from any Node, and start to traverse the Graph based on that point of entry.
#2: The second advantage of treating Predicates as Nodes is that a Predicate can now be used as an "Index" or "Pointer" that allows users to quickly find all Nodes which are tied to said Predicate (or any Predicates that match certain traits). In other words, it's a way of asking the Graph to quickly identify all Nodes that are connected to a specific Edge/Link/Predicate (or any of a common set of Predicate traits). This means that, in addition to being able to ask "Node-oriented" questions of the Graph, you can now also ask "Predicate/Edge-oriented" questions of the Graph, as well. This leads to even more complex scenarios of being able to ask questions of, both, Nodes and Edges.
#3: The third advantage (based on the second) is that traversal of a Graph can be even quicker, leading to even shorter paths, because instead of only traversing a Graph from Node-to-Node-to-Node, through Nodes, users can now traverse from any Edge/Predicate to any other Edge/Predicate, through Edges/Predicates.
My question to the Community: Aside from the above three, do you see any other benefits that we're missing?
Thanks for your help.
My Best,
Frank -- Frank Guerino, Chairman The International Foundation for Information Technology (IF4IT) http://www.if4it.com 1.908.294.5191 (M)
_________________________________________________________________ Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/ Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/ Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx Shared Files: http://ontolog.cim3.net/file/ Community Wiki: http://ontolog.cim3.net/wiki/ To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
_________________________________________________________________ Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/ Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/ Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx Shared Files: http://ontolog.cim3.net/file/ Community Wiki: http://ontolog.cim3.net/wiki/ To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
_________________________________________________________________ Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/ Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/ Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx Shared Files: http://ontolog.cim3.net/file/ Community Wiki: http://ontolog.cim3.net/wiki/ To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
|