Recap: Neo4j GraphTour Berlin 2018
(To be honest, I quickly put my notes together into a more structured form. So please, don’t expect a sophisticated text)
On 27th of February, Neo4j, the company behind the popular graph database with the same name, hosted their GraphTour event in Berlin. The opening keynote of both the CEO and the Director of Product Management for Neo4j Cloud was refreshing with a lot of charm and passion.
During the conference, it was stated that the growth of graph databases outperforms every other type of db and that >50% of enterprise already use a graph db in production – a number that also surprised them. The advantage of graph dbs really kicks in when the dataset is highly connected as can be seen in the following two images.
SQL Query (left) and equivalent in Cypher (right; Neo4j’s own query language). When they talked about who supports the Cypher language, also SAP Hana showed up
During the conference, Neo4j announced their Cypher for Gremlin plugin. It enables others to write Cypher queries and execute them on Gremlin-enabled dbs. Gremlin is a query language based on the Apache TInkerPop standard and is supported by a variety of databases.
~”Context will increase the precision of machine learning systems”
Machine Learning was also mentioned during several presentations and they stated that (knowledge) graphs are an important aspect for ML as context information can increase the precision of systems. As an example they mentioned the Google Knowledge Graph … the graph that already inspired us to work on an internal Enterprise Knowledge Graph In the future, those graphs will be even more important as the world is becoming increasingly connected.
Other example: eBay leveraging knowledge graphs as the base for shopping bots
The trend, especially in Enterprises, is going from bringing tabular data to connected data, from disconnected silos to bridged silos (EKG…), and on top of that a single lake to perform analytics on.
Besides employees of Neo4j, Daimler and Generali went on stage and presented their use-cases for Neo4j. Daimler started in the past to have a swarm structure (an announcement Dieter Zetsche already mentioned in a talk “Das Nashorn-Prinzip: Groß und trotzdem alles andere als träge – wie sich ein Weltkonzern den Pioniergeist bewahrt” I saw at the KIT 2016): having teams without a strict hierarchy. Despite the lack of a hierarchy, Daimler is still interested in how persons are connected to each other and they use Neo4j to make this analyzable. Generali spoke about using Neo4j to get context information to detect fraud in insurance cases.
A different topic they mentioned was the upcoming GDPR law and how Neo4j can be used to be compliant.
It was followed by a presentation about how extensions can be easily developed for Neo4j to perform analytics and ml such as NLP, where GraphAware already put some effort into: GitHub Repo
~”We suck at being a key-value store or a document store, but we are completely focused on graphs”
The day closed with a presentation by the Chief Data Scientist of Neo4j: it was interesting and funny – a good end! He talked about the advantages of graph native systems vs. graph engines on top of non-graph dbs.
With beer and wine it was called a day, with the mission the CEO gave everyone: to connect with each other!
—
With from Berlin
Twitter http://bit.ly/2pJ0VZB #SAP #SAPCloud #AI
ABAP Meets #Blockchain
Yesterday I was reading about Blockchain, its architecture and other technical detail. I being from ABAP background thought of coding a basic blockchain in ABAP. Please note that intent here is to build a basic blockchain so that its understanding can be increased. Implementation of the blockchain may differ based on the requirements but basic concept remains the same.
The other features such as power of distributed data management and sync, validation of blocks etc. is out of scope of this blog.
Blockchain Basics
As the name suggests Blockchain is basically chain or collection of blocks. Typically a block comprises of a header which has different fields, a hash (cryptic value) of previous block and Transactions Data in hashed form (we will dig into this in our next blog). The first block in the blockchain is known as genesis block. N number of transactions together make a block. These all block are distributed over the network as local copy on each connected node.
Once the maximum number of transactions in a block is reached, the three parts of the block which are header, data(detail of transactions) & previous block hash are combined and hashed(encrypted ) with a key known as proof of work or nonce. The correct key or proof of work is determined based on the difficulty level. For example we say a generated hash is valid only and only if it contains 5 leading zero’s. So this leading 5 zero’s is known as the difficulty level.
The process of determining the right key consumes the major time and is known as mining. Depending on which currency it is, rewards are given accordingly to the one who finds a valid Proof of Work. The moment someone finds a valid proof of work all the connected nodes are informed and if 50% of the nodes agreed then this new hash is added as a new block to the chain.
What we are planning to build
* A basic prototype of Blockchain, where a report will take input as difficulty level and number of blocks to be generated and then output will be hash and nonce for value for each hash. In the current blog our focus is to highlight how it works. In next blog we will focus on how the transactions are arranged in a block:)
ABAP Implementation of basic Blockchain
* Created a basic report with below mentioned selection screen parameter
* A Type for basic blockchain structure
* Genesis block
* First step is to add genesis block, we are using SHA1 algorithm for encryption.
* Determine Next Block Hash
* An iterative loop to repeat number of blocked needed – 1 since genesis block is already added.
* Inside block loop have another loop to concatenate current and previous hash data along with Nonce value and generate a hash. Validate the hash as per difficulty if valid exit and append the block
* Output Display
What is expected next?
* Deep dive into Block transactions arrangement – Merkel tree
* Implementing Blockchain using BOPF – This will be more like learning BOPF by implementing a blockchain using it
* Adding flavor of CDS to Blockchains with annotations:)
* Finally if time permits a HCP UI5 app to display and run this chain rather than traditional report
Feel free to provide your feedback,open to all ears:). Lets share and learn. http://bit.ly/2G3nm5H #SAP #SAPCloud #AI

