<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Datablend &#187; blueprints</title>
	<atom:link href="http://datablend.be/?cat=35&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://datablend.be</link>
	<description>Big Data Simplified</description>
	<lastBuildDate>Mon, 07 Sep 2015 09:04:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6.1</generator>
		<item>
		<title>Graphs, Graphs, Graphs, &#8230;</title>
		<link>http://datablend.be/?p=271</link>
		<comments>http://datablend.be/?p=271#comments</comments>
		<pubDate>Tue, 24 Jul 2012 09:54:22 +0000</pubDate>
		<dc:creator>Davy Suvee</dc:creator>
				<category><![CDATA[blueprints]]></category>
		<category><![CDATA[datomic]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[tinkerpop]]></category>

		<guid isPermaLink="false">http://datablend22.lin3.nucleus.be/?p=271</guid>
		<description><![CDATA[Last week, Datablend open-sourced two new Tinkerpop Blueprints implementations: blueprints-mongodb-graph and blueprints-datomic-graph. Tinkerpop is an open source project that provides an entire stack of technologies within the Graph Database space. At the core of this stack is the Blueprints framework. Blueprints can be considered as the JDBC of Graph Databases. By providing a collection of<p><a href="http://datablend.be/?p=271">Continue Reading →</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Last week, Datablend open-sourced two new <a href="http://www.tinkerpop.com/" target="_blank">Tinkerpop</a> <a href="https://github.com/tinkerpop/blueprints/wiki" target="_blank">Blueprints</a> implementations: <a href="https://github.com/datablend/blueprints-mongodb" target="_blank">blueprints-mongodb-graph</a> and <a href="https://github.com/datablend/blueprints" target="_blank">blueprints-datomic-graph</a>. Tinkerpop is an open source project that provides an entire stack of technologies within the Graph Database space. At the core of this stack is the Blueprints framework. Blueprints can be considered as the <span class="highlight">JDBC</span> of Graph Databases. By providing a collection of generic interfaces, it allows to develop graph-based applications without introducing explicit dependencies on concrete Graph Database implementations. Additionally, Blueprints provides concrete bindings for the <a href="http://neo4j.org" target="_blank">Neo4J</a>, <a href=" http://www.orientechnologies.com" target="_blank">OrientDB</a> and <a href=" http://www.sparsity-technologies.com/dex" target="_blank">Dex</a> Graph Databases. On top of Blueprints, the Tinkerpop team developed an entire range of graph technologies, including <a href="https://github.com/tinkerpop/gremlin/wiki" target="_blank">Gremlin</a>, a powerful, domain-specific language designed for traversing graphs. Hence, once a Blueprints binding is available for a particular Graph Database, an entire range of technologies can be leveraged.</p>
<p>&nbsp;</p>
<h3>1. mongoDB Graph</h3>
<p style="text-align: justify;">The <a href="http://www.mongodb.org/" target="_blank">mongoDB</a> Blueprints implementation provides users with a <span class="highlight"><em>scalable</span>, <span class="highlight">distributed</em></span> Graph Database implementation.  mongoDB graph does not require any information on the underlying physical mongoDB setup, so read/write scalability can easily be achieved through mongoDB&#8217;s natively supported <span class="highlight"><em>replication</em></span> and <span class="highlight"><em>sharding</em></span> functionalities. Some initial benchmarks (writing/reading 100.000 vertices where each 2 vertices are connected through an edge) on a single mongoDB node shows the following performance:</p>
<script src="https://gist.github.com/3169096.js"></script>
<p style="text-align: justify;">Not too shabby for running it on a single mongoDB instance. Currently, each write is executed as a singular commit to the mongoDB store. Although this process could be improved by performing writes through optimized <span class="highlight"><em>batches</em></span>,  we need to ensure that the transactional semantics of the Blueprints stack are still respected. Further performance optimizations will be released soon, so keep an eye on the <a href="https://github.com/datablend/blueprints-mongodb" target="_blank">blueprints-mongodb-graph </a>github project.</p>
<p>&nbsp;</p>
<h3>2. Datomic Graph</h3>
<p style="text-align: justify;"><a href="http://datomic.com" target='_blank'>Datomic</a> is a novel distributed database system designed to enable scalable, flexible and intelligent applications, running on next-generation cloud architectures. Datomic employs a powerful data model (based upon the concept of <span class="highlight"><em>Datoms</em></span>) and an expressive query language (based upon the concept of <span class="highlight"><em>Datalog</em></span>. Additionally, it introduces an explicit notion of <span class="highlight"><em>time</em></span>, which allows for the execution of queries against both the <span class="highlight"><em>previous</em></span> and <span class="highlight"><em>future states</em></span> of the database. The RDF and SPARQL feel of the Datomic data model and query approach makes it an ideal target for implementing a property graph. Hence, the <a href="https://github.com/datablend/blueprints" target="_blank">blueprints-datomic-graph</a> Blueprints implementation.</p>
<p style="text-align: justify;">Clever use the time-aware nature of the Datomic datastore, makes Datomic Graph the very first <span class="highlight"><em>distributed</em></span>, <span class="highlight"><em>temporal graph database</em></span>: users can perform queries against a specific version of the graph in the past. The code sample below illustrates how a time-aware social graph can be created, stored and queried through the Datomic Graph implementation.</p>
<script src="https://gist.github.com/3169442.js"></script>
<p>&nbsp;</p>
<p style="text-align: justify;">As one would expect, this outputs the following information:</p>
<script src="https://gist.github.com/3169500.js"></script>
<p>&nbsp;</p>
<p style="text-align: justify;">Datomic Graph does not only support versioning of the vertices and edges, but also on the properties of individual vertices/edges. Pretty slick, not? We are currently enhancing the implementation with additional time-based operations, including the <span class="highlight"><em>easy comparison of subgraphs</em></span> over time. So stay tuned!</p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://datablend.be/?feed=rss2&#038;p=271</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
