Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Edge Filters in Vertex API -- Looking to the Future of Distributed Graph Databases
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  8 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post will appear after it is approved by moderators
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Marko Rodriguez  
View profile  
 More options Apr 25 2012, 12:33 pm
From: Marko Rodriguez <okramma...@gmail.com>
Date: Wed, 25 Apr 2012 10:33:19 -0600
Local: Wed, Apr 25 2012 12:33 pm
Subject: [Blueprints] Edge Filters in Vertex API -- Looking to the Future of Distributed Graph Databases

Hello,

With theoretical and design help from Matthias Broecheler, the core Blueprints' API has changed to support TinkerPop's future in supporting massive-scale, distributed graph databases. However, do not fear, the API is backwards compatible. Here is the new Vertex API:

        public Iterable<Edge> getOutEdges(Object... filters);
        public Iterable<Edge> getInEdges(Object... filters);

The Object[] can either be Strings (edge labels) and/or a Filter. A Filter is a new class (not an interface) in the core API.

        https://github.com/tinkerpop/blueprints/blob/master/blueprints-core/s...

In this model, you can now filter the edges returned by more than just their label.

        marko.getOutEdges("likes", new Filter().property("stars", 5))
        marko.getOutEdges("likes", new Filter().property("stars", 5).range("date", 1, 100))

Given that the edge label (String) is a "filtering" feature, you can do this.

        marko.getOutEdges(new Filter().label("likes").property("stars",5))

For those graph engines that do not support low-level filtering (i.e. where such filtering must be done in-memory), there is a class called FilteredEdgeIterable. If you are a graph database vendor that is not maintaining your Blueprints implementation with TinkerPop, please contact me if you have trouble updating your implementation to support Filter. For those that do maintain their implementation with TinkerPop, your implementation has already been updated. However, your implementation uses FilteredEdgeIterable. If you can support the "push down" of Filters, then please do so as this will make your implementation faster.

        https://github.com/tinkerpop/blueprints/blob/master/blueprints-core/s...

The benefit of this model is that as we move into supporting distributed, massive-scale graph databases (e.g. in clustered environments), we need to be able to provide more information to the database so that the database can do as much filtering as possible on the edges touched. In this respect, various problems commonly seen in massive-scale graphs are rectified:

        1. Super node problem: with sufficient filtering and intelligent disk layout, there may never be a need to return all edges of vertex and thus a vertex (from a filtered vantage point) is no longer a "super node."
                e.g. marko.getOutEdges("tweeted", new Filter().range("date", tenDaysAgo, today))
        2. Respect the dimensionality of a multi-relational graph: if a graph is layed out on the disk properly, then the spinning platter's retrieval bounds is sufficient to filter edges. In this way, the "Big Data" speed pattern of sequential scans of disk can be respected and taken advantage of.

Finally, not now, but before the release of Blueprints 1.3, there will also be another change to the Vertex API. We plan to support:

                public Iterable<Edge> getOutVertices(Object... filters);
                public Iterable<Edge> getInVertices(Object... filters);

...to allow for vertex-adjacency (and thus, edge jumping).

*** This has been pushed to GitHub and deployed as Blueprints 1.3-SNAPSHOT in SonaType Reo. ***

Thanks everyone,
Marko.

http://markorodriguez.com


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "[Blueprints] Edge Filters in Vertex API -- Looking to the Future of Distributed Graph Databases" by Pierre De Wilde
Pierre De Wilde  
View profile  
 More options Apr 25 2012, 12:46 pm
From: Pierre De Wilde <pierredewi...@gmail.com>
Date: Wed, 25 Apr 2012 18:46:21 +0200
Local: Wed, Apr 25 2012 12:46 pm
Subject: Re: [TinkerPop] [Blueprints] Edge Filters in Vertex API -- Looking to the Future of Distributed Graph Databases

Hi,

Thank you, Marko.

Blueprints' API gets much stronger with this addition. I hope that vendors
will quickly implement their native support.

Regarding the up-coming vertex-adjacency API, do you mean

public Iterable<*Vertex*> getOutVertices(Object... filters);
public Iterable<*Vertex*> getInVertices(Object... filters);

Thanks again for this great addition,
Pierre

On Wed, Apr 25, 2012 at 6:33 PM, Marko Rodriguez <okramma...@gmail.com>wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Marko Rodriguez  
View profile  
 More options Apr 25 2012, 12:47 pm
From: Marko Rodriguez <okramma...@gmail.com>
Date: Wed, 25 Apr 2012 10:47:49 -0600
Local: Wed, Apr 25 2012 12:47 pm
Subject: Re: [TinkerPop] [Blueprints] Edge Filters in Vertex API -- Looking to the Future of Distributed Graph Databases

Hey,

> Regarding the up-coming vertex-adjacency API, do you mean

>    public Iterable<Vertex> getOutVertices(Object... filters);
>    public Iterable<Vertex> getInVertices(Object... filters);

Ah! Yea. Good eye. You are right, <Vertex> not <Edge>.

Thanks Pierre,
Marko.

http://markorodriguez.com


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Luca Garulli  
View profile  
 More options Apr 26 2012, 9:07 am
From: Luca Garulli <l.garu...@gmail.com>
Date: Thu, 26 Apr 2012 15:07:59 +0200
Local: Thurs, Apr 26 2012 9:07 am
Subject: Re: [TinkerPop] [Blueprints] Edge Filters in Vertex API -- Looking to the Future of Distributed Graph Databases

Wow,
I can't wait to support it at low level in OrientDB! This API is simple,
readable, clear and powerful.

Lvc@

On 25 April 2012 18:47, Marko Rodriguez <okramma...@gmail.com> wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Marko Rodriguez  
View profile  
 More options Apr 26 2012, 12:34 pm
From: Marko Rodriguez <okramma...@gmail.com>
Date: Thu, 26 Apr 2012 10:34:09 -0600
Local: Thurs, Apr 26 2012 12:34 pm
Subject: Re: [TinkerPop] [Blueprints] Edge Filters in Vertex API -- Looking to the Future of Distributed Graph Databases

Cool Luca. I knew you would be able to natively support these notions in OrientDB.

Marko.

http://markorodriguez.com

On Apr 26, 2012, at 7:07 AM, Luca Garulli wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
pShah  
View profile  
 More options May 14 2012, 11:53 am
From: pShah <pranav.shah....@gmail.com>
Date: Mon, 14 May 2012 08:53:09 -0700 (PDT)
Local: Mon, May 14 2012 11:53 am
Subject: Re: [TinkerPop] [Blueprints] Edge Filters in Vertex API -- Looking to the Future of Distributed Graph Databases

Has this feature been removed completely or moved to a different module?

Thanks


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Marko Rodriguez  
View profile  
 More options May 14 2012, 11:55 am
From: Marko Rodriguez <okramma...@gmail.com>
Date: Mon, 14 May 2012 09:55:26 -0600
Local: Mon, May 14 2012 11:55 am
Subject: Re: [TinkerPop] [Blueprints] Edge Filters in Vertex API -- Looking to the Future of Distributed Graph Databases

Hi,

This feature is in TinkerPop 2 and is seen in the following method:

        Vertex.query() -> Query

Marko.

http://markorodriguez.com

On May 14, 2012, at 9:53 AM, pShah wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
pShah  
View profile  
 More options May 14 2012, 12:34 pm
From: pShah <pranav.shah....@gmail.com>
Date: Mon, 14 May 2012 09:34:48 -0700 (PDT)
Local: Mon, May 14 2012 12:34 pm
Subject: Re: [TinkerPop] [Blueprints] Edge Filters in Vertex API -- Looking to the Future of Distributed Graph Databases

I did look at Query in Snapshot-1.3.

However, I did not see a method to specify mutiple filters (specially as an
OR) and that's why I was curious.

Thanks


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »