In the era of ‘big data’ software systems are commonly dealing with large amounts of complex data which may be generated by a diverse range of sources. Conventional relational databases require specifying the structure of the data up-front, and the complexity of the database design rapidly increases with the complexity of the relationships between concepts in the data. Alternatively, a graph database can come closer to modeling the real-life relationships between data and represent data in a structure that more closely models real world relationships between concepts.

Profium Sense stores data as an RDF (Resource Description Framework) graph. RDF is an open standard model for data. It was originally developed by the W3C to model data on the internet for the semantic web.

RDF is structured as triples with each triple consisting of two graph nodes (called the subject, and object) and a directed edge called a predicate which links them. The predicate specifies a semantic relationship between the nodes.

Rule-based inferencing and Semantic AI for real time content distribution

Storing data as an RDF graph provides flexibility. Any data can be added at run-time as long as it can be expressed as RDF. Schemas or ontologies can be used to specify an expected structure of the data, but unlike a typical traditional relational database it is not mandatory. This flexibility is useful for dealing with data where the complete set of properties are not known up front and the inevitable changes to requirements that happen during system development. Constraints such as the type or range of object values permitted for a specific predicate can be specified and used to validate incoming data to the desired degree.

For applications, which must process real-time flows of data

The RDF data stored in Profium Sense can be queried by using the standard RDF query language SPARQL, which allows you to retrieve and manipulate the data stored in the system. Additionally, Sense supports evaluating SPARQL against data as it is inserted, to trigger real time events. In this manner Sense can be used for applications which must process real-time flows of data, either manipulating the data or generating real-time events based on it.

With the ever-increasing maturation of AI in software it is not only important to query data but also to analyze it and calculate new data based on it. In addition to traditional querying using SPARQL, Sense also supports Inference.

Rules can be changed at runtime

Inference means analyzing the relationships between the nodes in the graph and inferring some new relationships based on them. For example, a simple rule to infer a grandparent relationship is: if ‘a’ is a parent of ‘b’ and ‘b’ is a parent of ‘c’, we can infer that ‘a’ is a grandparent of ‘c’. Rules can be added and changed at run-time giving a powerful framework for enhancing data in real-time and retroactively.

Profium customers benefit from interoperability

Since RDF is an open standard we benefit from interoperability. Any existing RDF data or ontologies such as the OWL Web Ontology Language can be used with Sense. It also means we can leverage third party RDF tools during development such as Protégé to ease defining ontologies. Conversely the data from Sense can also be easily exported as RDF in various syntactic forms for re-use in any other applications which support RDF data.

 

First published on March 30, 2017 in LinkedIn
Written in cooperation with Profium technical team.