The invalid Object-Role Model (ORM) above contains an Objectified Fact Type with two Link Fact Types. It is ambiguous as to which link fact type relates to the first role of the Parenthood objectified fact type and is an invalid Object-Role Model given that there are two link fact types off the Parenting and Person object types with both having the same Fact Type Readings.
If you were to assume that the rightmost link fact type relates to the the rightmost role of the Parenthood objectified fact type and the leftmost link fact type relates to the left hand role…
My business is called FactEngine, which is an initiative to radically change the way people think of databases and knowledge graph query languages.
Imagine that you wanted to book a seat at a cinema that uses a database to track those bookings. If you wanted to find that seat you should just be able to ask:
The picture above shows a transitive relationship expressed within an Object-Role Model (ORM), and rules expressed within a derived fact type.
In some data science exercises, transitive relationships are required. Transitive relationships in Object-Role Modeling are expressed by the symbol below:
I was doing some research into how dedicated graph databases handle uniqueness constraints over relations/edges and was surprised by what I found…
Let us say we had a dedicated graph database with Person nodes and Car nodes and with a schema where Persons drive Car is a type of relation.
How do you limit a Person node to ‘driving’ one Car node in that schema’s graph database?
Putting value on relationships.
I have been working with databases as graph databases for a little while now and have looked seriously at the directed graph concept of graphs. My view is that directed graphs are a rather primitive way of looking at graphs.
The image above is a Property Graph Schema for a simple order management database. Orders are placed by People and each order contains Items in a certain Quantity. Order, Person and Item are nodes/vertices in a graph of graph theory joined by edges/relationships. Directed Graphs are graphs where each edge/relationship has a direction, as below:
FactEngine (www.factengine.ai) is an initiative to radically change the way people look at databases. The essence of the initiative is to reveal how all databases can be viewed as multi-model databases (graph or relational). As the first of its kind it is hard to talk of the science without referencing the initiative. But let’s get to the science…
Dedicated Graph databases are somewhat famous now for working under/over a property graph schema, which looks like the following:
Version 5.5 of the Boston Object-Role Modeling conceptual modelling tool marks the first time a database can be created, modified and queried over using Object-Role Modeling and a hypergraph query language.
Object-Role Modeling (ORM) was first formalised as a conceptual modelling language for database analysis and design in 1989 as output of Terry Halpin’s doctoral thesis. Originally called Niam (Natural-language Information Analysis Method), ORM was viewed as a separate from but necessary for the manifestation of a well structured database. When Halpin moved to Microsoft to work with their database teams in the 1990s, there was a glimmer of hope…
Dedicated graph databases that operate over directed graphs handle ternary or greater (n-ary) relationships quite poorly even though n-ary relationships manifest in many serious data modelling exercises. Take the diagram above for example, where each Stocked Item represents a Part in a Bin in a Warehouse. The ternary relationship is implied by a series of three binary relationships (as directed graphs) as in Stocked Item is for Part.
To help visualise the scenario, picture a warehouse that stocks items (parts) that a storeman has to pack and pick from, as below:
State Transition Diagrams capture the states of a Value Type and the events (as transitions) that cause the values of a Value Type to change from one state to another.
If you’ve been following my articles for a while now you will have seen Object-Role Models morphing to Entity Relationship Diagrams (ERDs) and Property Graph Schemas (PGSs) (as below). This is all very interesting and reaffirms that if you have an Object-Role Model (ORM) you automatically have an ER diagram or a PGS.
The FactEngine initiative (www.factengine.ai) is designed to radically rethink the notion of a database and give you the tools to work with the technology you already have to build your knowledge graph…because you already have one.
The architecture is one of ranging a knowledge representation model over your existing database, no matter what that database is. In this manner you get to keep your existing database and work with a model representing a knowledge graph as if you had migrated to one purpose built. …
Founder, FactEngine. Architect, data scientist and independent researcher