Another Word For It Patrick Durusau on Topic Maps and Semantic Diversity

March 17, 2013

Matching Traversal Patterns with MATCH

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 5:17 am

Cypher basics: Matching Traversal Patterns with MATCH by Wes Freeman.

From the post:

“Because friends don’t let friends write atrocious recursive joins in SQL.” –Max De Marzi

The match clause is one of the first things you learn with Cypher. Once you’ve figured out how to look up your starting bound identifiers with start, you usually (but not always) want to match a traversal pattern, which is one of Cypher’s most compelling features.

The goal of this post is not to go over the syntax for all of the different cases in match–for that the docs do a good job: Cypher MATCH docs. Rather, I hoped to explain more the how of how match works.

First, you need to understand the difference between bound and unbound identifiers (sometimes we call them variables, too, in case I slip up and forget to be consistent). Bound identifiers are the ones that you know the value(s) of–usually you set these in the start clause, but sometimes they’re passed through with with. Unbound identifiers are the ones you don’t know the values of: the part of the pattern you’re matching. If you don’t specify an identifier, and instead just do a-->(), or something of that sort, an implicit unbound identifier is created for you behind the scenes, so Cypher can keep track of the values it’s found. The goal of the match clause is to find real nodes and relationships that match the pattern specified (find the unbound identifiers), based on the bound identifiers you have from the start.

Wes is creating enough of these mini-tutorials that you will find his Cypher page, a welcome collection point.

March 16, 2013

Cypher basics: it all starts with the START

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 2:27 pm

Cypher basics: it all starts with the START by Wes Freeman.

From the post:

“It all starts with the START” -Michael Hunger, Cypher webinar, Sep 2012

The start clause is one of those things that seems quite simple initially. You specify your start point(s) for the rest of the query. Typically, you use an index lookup, or if you’re just messing around, a node id (or list of node ids). This sets the stage for you to match a traversal pattern, or just filter your nodes with a where. Let’s start with a simple example–here we’re going to find a single node, and return it (later we’ll get into why start is sort of like a SQL from):

Wes continues his excellent introduction to Cypher.

March 15, 2013

Cypher for SQL Professionals

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 3:48 pm

Cypher for SQL Professionals by Michael Hunger. (video)

From the webpage:

Cypher is a graph query language used in Neo4j. Much like SQL, it’s a declarative language used for querying databases.

What does a join look like in Cypher? What about an left outer join? There are a lot of similarities between the two, Cypher is heavily influenced by SQL. We’ll talk about what these common concepts and differences are, what Cypher gives you that SQL leaves you wanting. Come along and see how Neo4j and Cypher can make your daily grind much easier and more fun.

You’ll learn how to use your current SQL knowledge to quickly get started using Neo4j and Cypher.

Just in case you get to pick the video for this weekend. 😉

This is work friendly so you might better save it for a lunch break next week.

March 12, 2013

The Mythical WITH (Neo4j’s Cypher query language)

Filed under: Cypher,Neo4j — Patrick Durusau @ 1:17 pm

The Mythical WITH (Neo4j’s Cypher query language) by Wes Freeman.

From the post:

Coming from SQL, I found Cypher a quick learn. The match was new, and patterns were new, but everything else seemed to fit well with SQL concepts. Except with, the way to build a sort of sub-query–it seemed hard to wrap my head around. So, what really happens behind the scenes with a with clause in your query? How does it work? It turns out, almost any complex query ends up needing a with in it, but let’s start with a simple example.

After reading this post, you will be waiting for part 2!

Very good introduction to with in Cypher!

BTW, as an added bonus, Wes blogs about chess as well.

March 7, 2013

Neo4j 1.9.M05 released – wrapping up

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 1:30 pm

Neo4j 1.9.M05 released – wrapping up by Peter Neubauer.

From the post:

We are very proud to announce the next milestone of the Neo4j 1.9 release cycle. This time, we have been trying to introduce as few big changes as possible and instead concentrate on things that make the production environment a more pleasant experience. That means Monitoring, Cypher profiling, Java7 and High Availability were the targets for this work.

Everyone likes improvements, new features, etc.

I am leaning towards profiling cypher statements as my favorite in this release.

What’s yours?

March 5, 2013

“Do Bees” / “Don’t Bees” and Neo4j

Filed under: Cypher,Graphs,Neo4j,Networks — Patrick Durusau @ 1:12 pm

According to Michael Hunger in a Neo4j Google Groups message, the Neo4j team is drowning in its own success!

Now there’s a problem to have!

“Do Bees” for Neo4j will:

…ask questions on Stack Overflow that related to:

Please tag your questions with “neo4j” and “cypher”, “gremlin” or “spring data neo4j” accordingly. See the current list:

http://stackoverflow.com/questions/tagged/neo4j

Currently questions on SO are answered quickly by a group of very active people which we hope you will join. We try to chime in as often as possible (especially with unanswered questions).

So PLEASE post your questions there on Stack Overflow, we will start asking individuals to move their questions to that platform and if they don’t manage it, move them ourselves.

We will also monitor this badge: http://stackoverflow.com/badges/1785/neo4j and award cool stuff for people that make it there.

This google group shall return to its initial goals of having broader discussions about graph topics, modeling, architectures, roadmap, announcements, cypher evolution, open source etc. So we would love everyone who has questions or problems in these areas to reach out and start a conversation.

Hope for your understanding to make more breathing room in this group and more interesting discussions in the future while keeping an interactive FAQ around Neo4j going on SO with quick feedback loops and turnaround times.

The Neo4j community will be healthier if we are all “Do Bees” so I won’t cover the alternative.

If you don’t know “Do Bees” / “Don’t Bees,” see: Romper Room.

See you at Stackoverflow!

February 26, 2013

neo4j/cypher: Combining COUNT and COLLECT in one query

Filed under: Cypher,Neo4j — Patrick Durusau @ 1:52 pm

neo4j/cypher: Combining COUNT and COLLECT in one query by Mark Needham.

From the post:

In my continued playing around with football data I wanted to write a cypher query against neo4j which would show me which teams had missed the most penalties this season and who missed them.

Mark discovers queries with two aggregation expressions have problems but goes on to solve it as well.

January 31, 2013

Facebook Graph Search with Cypher and Neo4j

Filed under: Cypher,Facebook,Graphs,Neo4j — Patrick Durusau @ 7:24 pm

Facebook Ggraph Search with Cypher and Neo4j by Max De Marzi.

From the post:

Facebook Graph Search has given the Graph Database community a simpler way to explain what it is we do and why it matters. I wanted to drive the point home by building a proof of concept of how you could do this with Neo4j. However, I don’t have six months or much experience with NLP (natural language processing). What I do have is Cypher. Cypher is Neo4j’s graph language and it makes it easy to express what we are looking for in the graph. I needed a way to take “natural language” and create Cypher from it. This was going to be a problem.

If you think about “likes” as an association type with role players….

Of course, “like” paints with a broad brush but it is a place to start.

December 26, 2012

Neo4j 1.8.1 – Stability and (Cypher) Performance

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 5:47 pm

Neo4j 1.8.1 – Stability and (Cypher) Performance by Michael Hunger.

A maintenance release for the Neo4j 1.8.* line.

Michael writes:

In particular, Cypher has been extended with support for the new Bidirectional Traverser Framework, meaning query times are in some cases cut down to a third of what they used to be. Also, Andres spent time optimizing memory consumption, so you can run more and larger Cypher queries faster than ever before!

We got started on extending JVM and Java version support by eliminating compilation issues for Java 7 on both Oracle JVM and OpenJDK – a good first step. We still have some way to go, notably rigorous testing as part of our continuous integration pipeline, and community feedback – this is where you come in. We have had some confusion over this, so we have now inserted checks and warnings that state clearly: we currently only support JDK 6.

For our enterprise customers we have added a new consistency checker that both runs faster and catches more problems, to ensure your backups are always in a good state. And we straightened out some behaviours in our HA protocol around cluster formation that were confusing.

Neo4j 1.8.1 (download)

December 21, 2012

Intro to Cypher Console [Live Party Friend of Friend Graph?]

Filed under: Cypher,Humor,Neo4j — Patrick Durusau @ 2:54 pm

Intro to Cypher Console by Peter Neubauer.

Peter has posted a 5 minute video introduction to the Cypher console.

Imagine a dynamic a friend of a friend graph for a Christmas or New Year’s party. Updated every 5 minutes and projected on a big screen.

Or you could allow guests to attach comments to the nodes/edges.

Rife with opportunities for humor. 😉

November 6, 2012

Full power to the Neo4j engines, Mr. Scott!

Filed under: Cypher,Graphs,Java,Neo4j,Networks — Patrick Durusau @ 11:42 am

René’s title: “Get the full neo4j power by using the Core Java API for traversing your Graph data base instead of Cypher Query Language“, makes you appreciate why René’s day job is “computer scientist” and not “ad copy writer.” 😉

René compares working with Neo4j via:

  • Java Core API
  • Traverser Framework
  • Cypher Query Language

And that is the order of their performance, from fastest to slowest:

  • Java Core API – Order of magnitude faster than Cypher
  • Traverser Framework – 25% slower than Java Core
  • Cypher Query Language – Slowest

Order of magnitude improvements tend to attract the attention of commercial customers and those with non-trivial data sets.

That is if you need performance today, not someday.

October 28, 2012

Tips and Tricks for Cypher

Filed under: Cypher,Neo4j — Patrick Durusau @ 8:51 am

some tips and tricks for mutable Cypher by Aseem Kishore.

Aseem has a nice post on mutable Cypher and issues he has encountered.

Will save you time solving the same problems.

October 26, 2012

Neo4j 1.9.M01 – Self-managed HA

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 5:00 pm

Neo4j 1.9.M01 – Self-managed HA by Peter Neubauer.

Welcome everyone to the first Milestone of the Neo4j 1.9 releases! In this release we’re presenting our new HA solution and a set of excellent improvements to our query language, Cypher.

Peter hits the highlights of the first milestone release for Neo4j 1.9.

I suggest you grab the software first and read Peter’s summary while you “play along.” 😉

October 20, 2012

Cheat Sheet: Cypher Query Language for Graph Databases [Marketing Question]

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 1:58 pm

Cheat Sheet: Cypher Query Language for Graph Databases

Cypher is the declarative query language for the Neo4j graph database. Download this cheat sheet to get quickly up to speed on querying graphs and to learn how Cypher:

  • Matches patterns of nodes and relationship in the graph, to extract information or modify the data.
  • Has the concept of identifiers which denote named, bound elements and parameters.
  • Can mutate graph data by creating, updating, and removing nodes, relationships, and properties.

A very good “cheat sheet.”

Up to you to decide if giving up your phone number is worth it for a free cheat sheet.

People get pissed off over passive tracking.

How will they react to overreaching marketing departments collecting phone numbers and addresses?

Something to keep in mind when designing your marketing efforts.

October 16, 2012

Newsfeed feature powered by Neo4j Graph Database

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 4:53 am

Newsfeed feature powered by Neo4j Graph Database

From the post:

Implementation of newsfeed or timeline feature became a must requirement for every social application. Achieving the same result through traditional relational databases would have been cumbersome as well as inefficient due to number of joins in SQL query. Would post an another article on why graph databases especially NEO4J is an apt choice for social application. For now, this post would directly jump into the implementation of simple newsfeed feature using powerful graph database NEO4J. (This article assumes that reader already understands basic concepts of graph databases representation, Neo4j and Cypher query language).

Neo4j Documentation has already given us the data model to represent social network in graph database and queries to retrieve data. Instead of repeating the whole story, this post would compliment the existing doc by giving cypher queries to create and retrieve data for below data model.

Would be Facebook killers will appreciate the example but tying Neo4j to a standard news feed would be more useful.

October 6, 2012

Follow The Data – FEC Campaign Data Challenge

Filed under: Cypher,FEC,Government,Government Data,Graphs,Neo4j — Patrick Durusau @ 5:53 am

Follow The Data – FEC Campaign Data Challenge by Andreas Kollegger.

Take the challenge and you may win a pass to Graph Connect, November 5 & 6 in San Francisco. (Closes 11 October 2012.)

In politics, people are often advised to “follow the money” to understand the forces influencing decisions. As engineers, we know we can do that and more by following the data.

Inspired by some innovative work by Dave Fauth, a Washington DC data analyst, we arranged a workshop to use FEC Campaign data that had been imported into Neo4j.

….

With the data imported, and a basic understanding of the domain model, we then challenged people to write Cypher queries to answer the following questions:

  1. All presidential candidates for 2012
  2. Most mythical presidential candidate
  3. Top 10 Presidential candidates according to number of campaign committees
  4. Find President Barack Obama
  5. Lookup Obama by his candidate ID
  6. Find Presidential Candidate Mitt Romney
  7. Lookup Romney by his candidate ID
  8. Find the shortest path of funding between Obama and Romney
  9. List the 10 top individual contributions to Obama
  10. List the 10 top individual contributions to Romney

Pointers to data, hints await at Andreas’ post.

October 2, 2012

Neo4j 1.8 Release – Fluent Graph Literacy

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 7:08 pm

Neo4j 1.8 Release – Fluent Graph Literacy by Andreas Kollegger.

From the post:

Available immediately, Neo4j 1.8 offers a delightful experience for reading and writing graph data with the simple expressiveness of the Cypher language. Whether you’re just discovering the social power of Facebook’s Open Graph or are building your own Knowledge Graph for Master Data Management, speaking in graph is easy with Cypher. It is the key to making sense of data with Neo4j.

Another major milestone in Neo4j development!

September 26, 2012

Cypher Query Language and Neo4j (webinar)

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 8:22 am

Cypher Query Language and Neo4j (Registration page)

Thursday, Sept 27, 2012
10:00 PDT // 19:00 CEST

From the description:

The Neo4j graph database is all about relationships. It allows to model domains of connected data easily. Querying using a imperative API is cumbersome and bloated. So the Neo Technology team decided to develop a query language more suited to query graph data. Join us to learn the journey of its inception to a being usable tool.

Curious, has anyone compared Cypher to other graph query languages?

September 7, 2012

Neo4j 1.8.RC1 – Really Careful #ftw

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 2:26 pm

Neo4j 1.8.RC1 – Really Careful #ftw

From the post:

As we prepare the Neo4j 1.8 series for General Availability, we’re moving to an RC model of finalizing production ready software. RC of course stands for Really Careful.

Resisting Changes

Every line of code that is committed to github is greeted with exhaustive continuous testing, earning the developer either a deep-fried twinkie or pickled herring – the reward/punishment is flipped depending on the resident country.

For milestone releases, great care is used to QA the packaged artifacts. Download, install, start/stop, go through the motions of normal use, throw sample applications against it, compare benchmarks, try out language bindings. Yet, we haven’t been entirely comfortable going directly from a milestone to general availability, because the milestone often will have introduced new features and possible breaking changes.

Now, we’re adopting a formal Release Candidate strategy: a feature complete release built from a frozen code base which will only accept bug fixes. An RC could be the GA, but introduces a longer public review before getting the final stamp of approval.

Do you have your copy yet?

September 1, 2012

Neo4j-[:LOVES]->Cypher

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 12:52 pm

Neo4j-[:LOVES]->Cypher

Followup to Michael Hunger’s presentation (30 August 2012) on Neo4j and Cypher.

Slides and video have been posted, plus answers to posted questions.

August 13, 2012

Neo4j 1.8.M07 – Sharing is Caring

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 4:51 pm

Neo4j 1.8.M07 – Sharing is Caring

Neo4j 1.8.M07 announcement with a couple of the highlights.

Available immediately, Neo4j 1.8 Milestone 7 sets the stage for responsible data sharing. We’re open source. Naturally we’re mindful about supporting…

Open (Meta) Data

Way back when Neo4j 1.2.M01 was released we introduced the Usage Data Collector (UDC), an optional component which would help us understand how running instance of Neo4j were being used, by reporting back anonymous context information: operating system, runtime, region of the Earth, that kind of thing.

Of course, the source code for the UDC is open and available for inspection. Now, we’re taking some steps to make the meta-data itself available, to make that data useful for everyone in the community, and to do so while being uber sensitive to the slightest hint of privacy concerns.

We’re kinda excited about this, actually. Stay tuned to learn more about what we’re doing, how you can be involved, and how it will be awesome for the community.

Create Unique Data

Earlier in the 1.8 branch, we introduced the RELATE clause, a powerful blend of MATCH and CREATE. With it, you could insist that a pattern of data should exist in the graph, and RELATE would perform the least creations required to uniquely satisfy the pattern.

In discussion, we kept saying things like “uniquely creates” to describe it, finally realizing that we should name the thing with the much more obvious CREATE UNIQUE.

Don’t be the last one on your block to have the latest Neo4j release!

July 31, 2012

Cypher Query Language and Neo4j [Webinar]

Filed under: Cypher,Neo4j — Patrick Durusau @ 2:37 pm

Cypher Query Language and Neo4j [Webinar]

Thursday August 30 10:00 PDT / 19:00 CEST

From the registration page:

The Neo4j graph database is all about relationships. It allows to model domains of connected data easily. Querying using a imperative API is cumbersome and bloated. So the Neo Technology team decided to develop a query language more suited to query graph data.

Taking inspiration from SQL, SparQL and others and using Scala to implement it turned out to be a good decision. The parser-combinator library, functional composition and lazy evaluation helped us to easily go ahead. Join us to learn the journey of its inception to a being usable tool.

Speaker: Michael Hunger, Community Lead and Head of Spring Integration, Neo Technology.

Take a look at the documentation before the webinar. Look for “Cypher Query Language” in the table of contents.

July 1, 2012

Neo4j 1.8.M05 – In the Details

Filed under: Cypher,Neo4j — Patrick Durusau @ 4:49 pm

Neo4j 1.8.M05 – In the Details

A new milestone of Neo4j that merits your attention!

Download a copy today!

Neo4j continues to struggle with documentation issues.

For example, the blog post that announces Neo4j 1.8.M05 reports under Cypher:

  • String literals can now contain some escape characters, like:
    • CREATE (n {text:”single \’ and double \” quotes”});

As a standards editor, I cringe when I see “…some escape characters, like:” What the hell does “…some escape characters…” mean?

I can’t begin to guess.

It gets even worse if you try to find an answer in the documentation.

Using the PDF version, searching for “escape” I found:

16.10.8. Relationship types with uncommon characters

Sometime your database will have types with non-letter characters, or with spaces in them. Use ` to escape these.

and,

16.11.4. Escaping in regular expressions

If you need a forward slash inside of your regular expression, escape it just like you expect to.

And “…just like you expect to.” would be?

The example at that point illustrates using “\” as an escape character, as in “/Some\/thing/.”

and,

19.3.12. Get typed relationships

Note that the “&” needs to be escaped for example when using cURL from the terminal.

Not only bad writing but annoying as well.

Don’t state a problem without the answer or linking to the answer if it is too long to insert in place. BTW, the answer is to write any “&” character as “%26” (without the quotes).

and,

19.7.5. Add node to index

Associates a node with the given key/value pair in the given index.

Note

Spaces in the URI have to be escaped.

I haven’t gone back to the RFC but I think the correct term here is “encoded” and the encoded character is “%20” (without the quotes).

19.7.9 Find Node By Exact Match has the same issue. (There is an Asciidoc escape issue reported in 30.3.5 but it is of no relevance to Cypher escape character issue.)

Having searched all the current documentation, I can’t say for sure what escape characters Cypher uses or under what circumstances.

Having a small group of insiders who know the real score is fine for smallish hacker projects. Not so good if you are aspiring to be a viable commercial product.

May 26, 2012

Neo4j 1.8.M03 – Related Coffee [1st comments on RELATE]

Filed under: Cypher,Neo4j — Patrick Durusau @ 8:00 pm

Neo4j 1.8.M03 – Related Coffee

From the post:

Released today, Neo4j 1.8.M03 introduces the RELATE clause, a two-step dance of MATCH or CREATE. Also, new Transaction support in the shell let’s you call for a do-over in case you misstep.

The blog entry also points you to the Neo4j Manual entry on Cypher RELATE
.

My main machine is still down so I will have to wait to test the latest release (new equipment arrives on Tuesday of the coming week).

But in the mean time, if you read the manual entry, the first paragraph says:

RELATE is in the middle of MATCH and CREATE – it will match what it can, and create what is missing. RELATE will always make the least change possible to the graph – if it can use parts of the existing graph, it will.

I don’t need a working copy of Neo4j/Cypher to say that “RELATE will always make the least change possible to the graph – if it can use part of the existing graph, it will.” is an odd statement.

How is RELATE going to determine the “…least change possible to the graph…”?

That sounds like a very hard problem.

More comments to follow on RELATE.

May 3, 2012

Neo4j 1.8.M01 Release – Vindeln Vy

Filed under: Cypher,Neo4j — Patrick Durusau @ 6:24 pm

Neo4j 1.8.M01 Release – Vindeln Vy

From the post:

Neo4j 1.8 has an eye for expansive views, painting a picture with data and hanging it on the web. In this first milestone release, artful work on the Cypher query language is complemented with live views in the Neo4j documentation.

Take a few minutes to read the interview with “Lead Cypherologist” (their words, not mine) Andrés Taylor. Sets high expectations for the future of Cypher!

Then jump to the download page!

😉

March 30, 2012

Neo4j – Hyperedges and Cypher – Suggested Revisions

Filed under: Cypher,Graphs,Hyperedges,Hypergraphs,Neo4j — Patrick Durusau @ 4:40 pm

Recently “Hyperedges and Cypher” was cited to illustrate “improvements” to Neo4j documentation. It is deeply problematic.

The first paragraph and header read:

5.1 Hyperedges and Cypher

Imagine a user being part of different groups. A group can have different roles, and a user can be part of different groups. He also can have different roles in different groups apart from the membership. The association of a User, a Group and a Role can be referred to as a HyperEdge. However, it can be easily modeled in a property graph as a node that captures this n-ary relationship, as depicted below in the U1G2R1 node.

This is the first encounter of hyperedge (other than in the table of contents) for the reader. The manual offers no definition for or illustration of a “hyperedge.”

When terms are introduced, they need to be defined.

Here is the Neo4j illustration for the preceding description (from the latest milestone release):

Neo4j-Cypher-HyperEdge

I don’t get that graph from the description in the text.

This graph comes closer:

User-Roles-Group

You may object that role1 and role2 should be nodes rather than an edges, but that is a modeling decision, another area where the Neo4j manual is weak. The reader doesn’t share in that process, nodes and edges suddenly appear and the reader must work out why?

If the current prose were cleaned up, by providing a better prose description, modeling choices and alternatives could be illustrated, along with Cypher queries.

On hypergraphs/hyperedges:

A user having different roles in different groups could be modeled with a hyperedge, but not necessarily so. If Neo4j isn’t going to support hyperedges, why bring it up? Show the modeling that Neo4j does support.

If I were going to discuss hyperedges/hypergraphs at all, I would point out examples of where they are used, along with citations to the literature.

March 27, 2012

Neo4j 1.7.M02 – Cache Cachet, Matching Matchers, and Debian Debs

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 7:18 pm

Neo4j 1.7.M02 – Cache Cachet, Matching Matchers, and Debian Debs by Peter Neubauer.

Just the highlights to temp you into reading the full post:

Neo4j 1.7 Milestone 2 introduces a trio of interesting advances: a new cache scheme, targeted pattern matching in Cypher, and Debian install packages. Faster, smarter, and more accessible.

Atomic Array Cache – GC resistant, 10x faster, 10x more capacity

Under the hood, Neo4j runs on the JVM (that’s the ‘J’ in ‘Neo4j’). And as every java developer knows: the Garbage Collector is your friend, the Garbage Collector is your enemy. The Garbage Collector (GC) helpfully relieves the developer from worrying about memory management. Unhelpfully, garbage collection introduces unpredictability in an application’s responsiveness. While partial garbage collection can be a nuisance, full garbage collection can be disastrous, pausing an application for uncomfortably long durations (from a few to far too many seconds). Sadly, there are no really good solutions to consistently avoid full GC pauses or to even prevent the GC from kicking in at inconvenient times.

….

Cypher matching matchers

By describing what you want and leaving the how-to-do-it up to someone else, a declarative language like Cypher presents many opportunities for optimizations. Our brilliant Michael Hunger recently joined Cypher master Andres Taylor for a hard look at pattern matching, initiating a classification of common use cases. Then the duo targeted different pattern matcher implementations to fit each type of query. The results are promising.

….

Got Debian? apt-get neo4j

Ops people rejoice, because Neo4j is now a simple `apt-get` away for any Debian-based Linux distro (like the ever popular Ubuntu). The debian installer is now part of the regular build and deploy chain, pushing out to our own debian repository. See http://debian.neo4j.org/ for details, following these steps to install:

….

Download Neo4j 1.7.M02 today!

Cypher Query Language

Filed under: Cypher,Graphs,Neo4j — Patrick Durusau @ 7:18 pm

Cypher Query Language

Slides by Max De Marzi at Chicago Graph Database Meet-up.

Great set of slides.

Illustrates the syntax and its “ascii art” perspective before moving into more complex queries.

Saw this first at Alex Popescu’s myNoSQL.

March 16, 2012

Neo4j 1.7.M01 – “Bastuträsk Bänk”

Filed under: Cypher,Neo4j — Patrick Durusau @ 7:35 pm

Neo4j 1.7.M01 – “Bastuträsk Bänk”

The first milestone for Neo4j 1.7 has a number of new features, including improvement to the Cypher query language.

See the post or better yet, grab a copy of the milestone release!

JUNG in Neo4j – Part 2

Filed under: Cypher,D3,Graphs,Neo4j,Visualization — Patrick Durusau @ 7:35 pm

JUNG in Neo4j – Part 2

Max De Marzi writes:

A few weeks ago I showed you how to visualize a graph using the chord flare visualization and how to visualize a network using a force directed graph visualization from D3.js.

Not content to rest on his laurels, Max points to additional resources on non-traditional graph visualizations and starts work on a matrix visualization of a graph (one step on the way to a node quilt).

I better post this quickly before Max posts another part. 😉

« Newer PostsOlder Posts »

Powered by WordPress