JanusGraph project at The Linux Foundation

2017-01-12 Thread Jason Plurad
Today, The Linux Foundation announced
 the
creation of the JanusGraph  project. We're excited
to push forward the open source, collaborative effort on scalable graph
databases that was initiated by the Aurelius team with Titan. JanusGraph
will continue to be a native Apache TinkerPop implementation. The first
effort definitely includes finally upgrading beyond 3.0.1-incubating :)

There are janusgraph-users
 and
janusgraph-dev 
Google Groups created for public mailing list collaboration, but as is the
case with other providers in the TinkerPop ecosystem, I'd expect
cross-traffic to continue with the TinkerPop lists.

If you will be in Austin this weekend for Graph Day Texas
, there is a great lineup of graph-related talks. Ted
Wilmes and I from Apache TinkerPop will be there, and so will others
involved in getting JanusGraph established. After the Graph Day happy hour,
we will gather up for an informal meetup/birds-of-a-feather with anybody
interested.


Have a good one,
Jason


How to do Partitions correctly in 3.3.0?

2017-01-12 Thread Marko Rodriguez
Hello,

One of the things that I’m working on for TinkerPop 3.3.0 is the ability for 
any GraphComputer or GraphActors to work against any Graph. That is, 
TinkerGraphComputer over Neo4jGraph, SparkGraphComputer over TinkerGraph, 
AkkaGraphActors over HadoopGraph, etc. In order to do this, we needed the 
concept of Graph partitions. A Graph partition simply allows you to iterate all 
the vertices and edges out of a “partition” (subgraph of the full graph). 
Moreover, it has methods to check for the existence of an element in that 
partition.


https://github.com/apache/tinkerpop/blob/TINKERPOP-1564/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Partition.java
 


Next, we have the concept of a Partitioner which contains all the Partitions.


https://github.com/apache/tinkerpop/blob/TINKERPOP-1564/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Partitioner.java
 


The problem I’m struggling with right now is how to specify a Partitioner. For 
instance, right now Graph.partitioner() returns the “default partitioner” for 
the Graph. For TinkerGraph, this partitioner has one partition (single a 
TinkerGraph is single machine). However, it is possible to create splits so 
that you can thread processing — e.g. 5 concurrent threads processing a 
TinkerGraph in TinkerGraphComputer. How is this done?

partitioner = new HashPartitioner(graph.partitioner(),5)

This sorta sucks to have to start specifying programmatically such things. I 
was thinking it would be nice to have Graph.partitioner() do all the work. For 
instance:

Graph.partitioner(Function partitionerMaker)

The above function would start with the “default partitioner” of the Graph and 
then create new partitioners from that. Now, we can have some “non-lambda” 
based default functions for people to use.

Graph.partitioner(Maker.splits(5).centricity(Vertex.class))

Anywho…trying to think it through so we have a nice clean API with serializable 
and Configuration(able) objects.

Thoughts?,
Marko.

http://markorodriguez.com





[GitHub] tinkerpop pull request #531: Added more recipes

2017-01-12 Thread dkuppitz
Github user dkuppitz commented on a diff in the pull request:

https://github.com/apache/tinkerpop/pull/531#discussion_r95836475
  
--- Diff: docs/src/recipes/appendix.asciidoc ---
@@ -0,0 +1,226 @@
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Appendix
+
+
+Many of the recipes are based on questions and answers provided on the 
gremlin-users mailing list. This section
+contains a number of traversals from the mailing list that do not easily 
fit any particular pattern (i.e. a recipe),
+but are nonetheless interesting and thus remain good tools for learning 
Gremlin.
+
+[[appendix-a]]
+_For each person in a "follows" graph, determine the number of followers 
and list their names._
+
+[gremlin-groovy]
+
+g.addV('name','marko').as('marko').
+  addV('name','josh').as('josh').
+  addV('name','daniel').as('daniel').
+  addV('name','matthias').as('matthias').
+  addE('follows').from('josh').to('marko').
+  addE('follows').from('matthias').to('josh').
+  addE('follows').from('daniel').to('josh').
+  addE('follows').from('daniel').to('marko').iterate()
+g.V().as('p').
+  map(__.in('follows').values('name').fold()).
+  group().by(select('p').by('name')).
+  by(project('numFollowers','followers').
+   by(count(local)).by()).next()
+
+
+[[appendix-b]]
+_In the "modern" graph, show each person, the software they worked on and 
the co-worker count for the software and
+the names of those co-workers._
+
+[gremlin-groovy,modern]
+
+g.V().hasLabel("person").as("p").
+  out("created").as("s").
+  map(__.in("created").
+where(neq("p")).values("name").fold()).
+  group().by(select("p").by("name")).
+by(group().by(select("s").by("name")).
+by(project("numCoworkers","coworkers").
+ by(count(local)).by())).next()
+
+
+[[appendix-c]]
+_Assuming a graph of students, classes and times, detect students who have 
a conflicting schedule._
+
+[gremlin-groovy]
+
+g.addV(label, "student", "name", "Pete").as("s1").
+  addV(label, "student", "name", "Joe").as("s2").
+  addV(label, "class", "name", "Java's GC").as("c1").
+  addV(label, "class", "name", "FP Principles").as("c2").
+  addV(label, "class", "name", "Memory Management in C").as("c3").
+  addV(label, "class", "name", "Memory Management in C++").as("c4").
+  addV(label, "timeslot", "date", "11/25/2016", "fromTime", "10:00", 
"toTime", "11:00").as("t1").
+  addV(label, "timeslot", "date", "11/25/2016", "fromTime", "11:00", 
"toTime", "12:00").as("t2").
+  addE("attends").from("s1").to("c1").
+  addE("attends").from("s1").to("c2").
+  addE("attends").from("s1").to("c3").
+  addE("attends").from("s1").to("c4").
+  addE("attends").from("s2").to("c2").
+  addE("attends").from("s2").to("c3").
+  addE("allocated").from("c1").to("t1").
+  addE("allocated").from("c1").to("t2").
+  addE("allocated").from("c2").to("t1").
+  addE("allocated").from("c3").to("t2").
+  addE("allocated").from("c4").to("t2").iterate()
+g.V().hasLabel("student").as("s").
+  out("attends").as("c").
+  out("allocated").as("t").
+  select("s").
+  out("attends").
+  where(neq("c")).
+  out("allocated").
+  where(eq("t")).
+  group().
+by(select("s").by("name")).
+by(group().by(select("t").by(valueMap("fromTime","toTime"))).
+   by(select("c").dedup().values("name").fold())).next()
+
+
+[[appendix-d]]
+_In the "modern" graph, with a duplicate edge added, find the vertex pairs 
that have more than one edge between them._
--- End diff --

Another way for undirected edges:

```
gremlin> g.V().where(without("x")).as("a").
..1>   outE().as("e").inV().as("b").
..2>   
filter(bothE().where(neq("e")).otherV().where(eq("a"))).store("x").
..3>   select("a","b").dedup()
==>[a:v[1],b:v[3]]
```

@okram I thought the following query should have the same 

[GitHub] tinkerpop pull request #494: TINKERPOP-1443 - Introduce API check into the b...

2017-01-12 Thread metlos
Github user metlos closed the pull request at:

https://github.com/apache/tinkerpop/pull/494


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Closed] (TINKERPOP-1545) IncidentToAdjacentStrategy is buggy

2017-01-12 Thread Daniel Kuppitz (JIRA)

 [ 
https://issues.apache.org/jira/browse/TINKERPOP-1545?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Kuppitz closed TINKERPOP-1545.
-
Resolution: Fixed

> IncidentToAdjacentStrategy is buggy
> ---
>
> Key: TINKERPOP-1545
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1545
> Project: TinkerPop
>  Issue Type: Bug
>  Components: process
>Affects Versions: 3.1.4, 3.2.3
>Reporter: Daniel Kuppitz
>Assignee: Daniel Kuppitz
> Fix For: 3.1.6
>
>
> {{IncidentToAdjacentStrategy}} turns {{outE().inV().simplePath()}} into 
> {{out().simplePath()}}, which will return a wrong result as soon as there is 
> more than 1 edge between a pair of vertices.
> The set {{INVALIDATING_STEP_CLASSES}} should only contain 
> {{PathProcessor.class}} and {{LambdaHolder.class}} Furthermore 
> {{SimplePathStep}} should implement {{PathProcessor}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TINKERPOP-1545) IncidentToAdjacentStrategy is buggy

2017-01-12 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1545?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15821104#comment-15821104
 ] 

ASF GitHub Bot commented on TINKERPOP-1545:
---

Github user asfgit closed the pull request at:

https://github.com/apache/tinkerpop/pull/526


> IncidentToAdjacentStrategy is buggy
> ---
>
> Key: TINKERPOP-1545
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1545
> Project: TinkerPop
>  Issue Type: Bug
>  Components: process
>Affects Versions: 3.1.4, 3.2.3
>Reporter: Daniel Kuppitz
>Assignee: Daniel Kuppitz
> Fix For: 3.1.6
>
>
> {{IncidentToAdjacentStrategy}} turns {{outE().inV().simplePath()}} into 
> {{out().simplePath()}}, which will return a wrong result as soon as there is 
> more than 1 edge between a pair of vertices.
> The set {{INVALIDATING_STEP_CLASSES}} should only contain 
> {{PathProcessor.class}} and {{LambdaHolder.class}} Furthermore 
> {{SimplePathStep}} should implement {{PathProcessor}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TINKERPOP-1545) IncidentToAdjacentStrategy is buggy

2017-01-12 Thread Daniel Kuppitz (JIRA)

 [ 
https://issues.apache.org/jira/browse/TINKERPOP-1545?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Kuppitz updated TINKERPOP-1545:
--
Fix Version/s: 3.1.6

> IncidentToAdjacentStrategy is buggy
> ---
>
> Key: TINKERPOP-1545
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1545
> Project: TinkerPop
>  Issue Type: Bug
>  Components: process
>Affects Versions: 3.1.4, 3.2.3
>Reporter: Daniel Kuppitz
>Assignee: Daniel Kuppitz
> Fix For: 3.1.6
>
>
> {{IncidentToAdjacentStrategy}} turns {{outE().inV().simplePath()}} into 
> {{out().simplePath()}}, which will return a wrong result as soon as there is 
> more than 1 edge between a pair of vertices.
> The set {{INVALIDATING_STEP_CLASSES}} should only contain 
> {{PathProcessor.class}} and {{LambdaHolder.class}} Furthermore 
> {{SimplePathStep}} should implement {{PathProcessor}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TINKERPOP-1545) IncidentToAdjacentStrategy is buggy

2017-01-12 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1545?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15821105#comment-15821105
 ] 

ASF GitHub Bot commented on TINKERPOP-1545:
---

Github user asfgit closed the pull request at:

https://github.com/apache/tinkerpop/pull/525


> IncidentToAdjacentStrategy is buggy
> ---
>
> Key: TINKERPOP-1545
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1545
> Project: TinkerPop
>  Issue Type: Bug
>  Components: process
>Affects Versions: 3.1.4, 3.2.3
>Reporter: Daniel Kuppitz
>Assignee: Daniel Kuppitz
> Fix For: 3.1.6
>
>
> {{IncidentToAdjacentStrategy}} turns {{outE().inV().simplePath()}} into 
> {{out().simplePath()}}, which will return a wrong result as soon as there is 
> more than 1 edge between a pair of vertices.
> The set {{INVALIDATING_STEP_CLASSES}} should only contain 
> {{PathProcessor.class}} and {{LambdaHolder.class}} Furthermore 
> {{SimplePathStep}} should implement {{PathProcessor}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[GitHub] tinkerpop pull request #525: TINKERPOP-1545 IncidentToAdjacentStrategy is bu...

2017-01-12 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/tinkerpop/pull/525


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop pull request #526: TINKERPOP-1545 IncidentToAdjacentStrategy is bu...

2017-01-12 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/tinkerpop/pull/526


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop pull request #531: Added more recipes

2017-01-12 Thread dkuppitz
Github user dkuppitz commented on a diff in the pull request:

https://github.com/apache/tinkerpop/pull/531#discussion_r95785972
  
--- Diff: docs/src/recipes/appendix.asciidoc ---
@@ -0,0 +1,226 @@
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Appendix
+
+
+Many of the recipes are based on questions and answers provided on the 
gremlin-users mailing list. This section
+contains a number of traversals from the mailing list that do not easily 
fit any particular pattern (i.e. a recipe),
+but are nonetheless interesting and thus remain good tools for learning 
Gremlin.
+
+[[appendix-a]]
+_For each person in a "follows" graph, determine the number of followers 
and list their names._
+
+[gremlin-groovy]
+
+g.addV('name','marko').as('marko').
+  addV('name','josh').as('josh').
+  addV('name','daniel').as('daniel').
+  addV('name','matthias').as('matthias').
+  addE('follows').from('josh').to('marko').
+  addE('follows').from('matthias').to('josh').
+  addE('follows').from('daniel').to('josh').
+  addE('follows').from('daniel').to('marko').iterate()
+g.V().as('p').
+  map(__.in('follows').values('name').fold()).
+  group().by(select('p').by('name')).
+  by(project('numFollowers','followers').
+   by(count(local)).by()).next()
+
+
+[[appendix-b]]
+_In the "modern" graph, show each person, the software they worked on and 
the co-worker count for the software and
+the names of those co-workers._
+
+[gremlin-groovy,modern]
+
+g.V().hasLabel("person").as("p").
+  out("created").as("s").
+  map(__.in("created").
+where(neq("p")).values("name").fold()).
+  group().by(select("p").by("name")).
+by(group().by(select("s").by("name")).
+by(project("numCoworkers","coworkers").
+ by(count(local)).by())).next()
+
+
+[[appendix-c]]
+_Assuming a graph of students, classes and times, detect students who have 
a conflicting schedule._
+
+[gremlin-groovy]
+
+g.addV(label, "student", "name", "Pete").as("s1").
+  addV(label, "student", "name", "Joe").as("s2").
+  addV(label, "class", "name", "Java's GC").as("c1").
+  addV(label, "class", "name", "FP Principles").as("c2").
+  addV(label, "class", "name", "Memory Management in C").as("c3").
+  addV(label, "class", "name", "Memory Management in C++").as("c4").
+  addV(label, "timeslot", "date", "11/25/2016", "fromTime", "10:00", 
"toTime", "11:00").as("t1").
+  addV(label, "timeslot", "date", "11/25/2016", "fromTime", "11:00", 
"toTime", "12:00").as("t2").
+  addE("attends").from("s1").to("c1").
+  addE("attends").from("s1").to("c2").
+  addE("attends").from("s1").to("c3").
+  addE("attends").from("s1").to("c4").
+  addE("attends").from("s2").to("c2").
+  addE("attends").from("s2").to("c3").
+  addE("allocated").from("c1").to("t1").
+  addE("allocated").from("c1").to("t2").
+  addE("allocated").from("c2").to("t1").
+  addE("allocated").from("c3").to("t2").
+  addE("allocated").from("c4").to("t2").iterate()
+g.V().hasLabel("student").as("s").
+  out("attends").as("c").
+  out("allocated").as("t").
+  select("s").
+  out("attends").
+  where(neq("c")).
+  out("allocated").
+  where(eq("t")).
+  group().
+by(select("s").by("name")).
+by(group().by(select("t").by(valueMap("fromTime","toTime"))).
+   by(select("c").dedup().values("name").fold())).next()
+
+
+[[appendix-d]]
+_In the "modern" graph, with a duplicate edge added, find the vertex pairs 
that have more than one edge between them._
--- End diff --

I think it's important to note that this is only for edge that point into 
the same direction (`OUT` in the example). The solution for undirected edges is 
pretty complicated (if we take into account that ids are not necessarily 
sortable).

```
g.V().as("a").both().as("b").
  groupCount().by(select("a","b")).unfold().
  

[jira] [Commented] (TINKERPOP-1443) Use an API checker during build

2017-01-12 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15820992#comment-15820992
 ] 

ASF GitHub Bot commented on TINKERPOP-1443:
---

Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
I've set up the branch internal to TinkerPop:

https://github.com/apache/tinkerpop/tree/TINKERPOP-1443

@dkuppitz I tried to apply your patch but it still wouldn't build for me. 
Not sure if I did something wrong. Would you mind applying it yourself and 
pushing the fix when you get a minute?

@metlos Feel free to close this PR at this point. If you have future 
updates you can submit PRs against that branch (until it's merged). Thanks.


> Use an API checker during build
> ---
>
> Key: TINKERPOP-1443
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1443
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: build-release
>Affects Versions: 3.2.2
>Reporter: Lukas Krejci
>
> Tinkerpop 3.2.2 changed the signature of the method 
> {{GraphTraversal.hasLabel}} from {{(String...)}} to {{(String, String...)}}. 
> While this is certainly an improvement, it is both source and binary 
> incompatible change.
> I.e. even if every usage of {{hasLabel}} had at least one parameter in the 
> user code, none of those calls will work until all the user code is 
> recompiled using Tinkerpop 3.2.2.
> I don't know the versioning policy of Tinkerpop but changes like the above in 
> a micro/patch release are generally unexpected.
> Please consider API checkers like http://revapi.org to warn about such 
> incompatible API changes...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2017-01-12 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
I've set up the branch internal to TinkerPop:

https://github.com/apache/tinkerpop/tree/TINKERPOP-1443

@dkuppitz I tried to apply your patch but it still wouldn't build for me. 
Not sure if I did something wrong. Would you mind applying it yourself and 
pushing the fix when you get a minute?

@metlos Feel free to close this PR at this point. If you have future 
updates you can submit PRs against that branch (until it's merged). Thanks.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (TINKERPOP-1545) IncidentToAdjacentStrategy is buggy

2017-01-12 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1545?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15820971#comment-15820971
 ] 

ASF GitHub Bot commented on TINKERPOP-1545:
---

Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/525
  
VOTE +1


> IncidentToAdjacentStrategy is buggy
> ---
>
> Key: TINKERPOP-1545
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1545
> Project: TinkerPop
>  Issue Type: Bug
>  Components: process
>Affects Versions: 3.1.4, 3.2.3
>Reporter: Daniel Kuppitz
>Assignee: Daniel Kuppitz
>
> {{IncidentToAdjacentStrategy}} turns {{outE().inV().simplePath()}} into 
> {{out().simplePath()}}, which will return a wrong result as soon as there is 
> more than 1 edge between a pair of vertices.
> The set {{INVALIDATING_STEP_CLASSES}} should only contain 
> {{PathProcessor.class}} and {{LambdaHolder.class}} Furthermore 
> {{SimplePathStep}} should implement {{PathProcessor}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[GitHub] tinkerpop issue #525: TINKERPOP-1545 IncidentToAdjacentStrategy is buggy

2017-01-12 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/525
  
VOTE +1


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (TINKERPOP-1545) IncidentToAdjacentStrategy is buggy

2017-01-12 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/TINKERPOP-1545?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15820969#comment-15820969
 ] 

ASF GitHub Bot commented on TINKERPOP-1545:
---

Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/526
  
VOTE +1


> IncidentToAdjacentStrategy is buggy
> ---
>
> Key: TINKERPOP-1545
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1545
> Project: TinkerPop
>  Issue Type: Bug
>  Components: process
>Affects Versions: 3.1.4, 3.2.3
>Reporter: Daniel Kuppitz
>Assignee: Daniel Kuppitz
>
> {{IncidentToAdjacentStrategy}} turns {{outE().inV().simplePath()}} into 
> {{out().simplePath()}}, which will return a wrong result as soon as there is 
> more than 1 edge between a pair of vertices.
> The set {{INVALIDATING_STEP_CLASSES}} should only contain 
> {{PathProcessor.class}} and {{LambdaHolder.class}} Furthermore 
> {{SimplePathStep}} should implement {{PathProcessor}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[GitHub] tinkerpop issue #526: TINKERPOP-1545 IncidentToAdjacentStrategy is buggy

2017-01-12 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/526
  
VOTE +1


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop pull request #531: Added more recipes

2017-01-12 Thread dkuppitz
Github user dkuppitz commented on a diff in the pull request:

https://github.com/apache/tinkerpop/pull/531#discussion_r95783275
  
--- Diff: docs/src/recipes/appendix.asciidoc ---
@@ -0,0 +1,226 @@
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Appendix
+
+
+Many of the recipes are based on questions and answers provided on the 
gremlin-users mailing list. This section
+contains a number of traversals from the mailing list that do not easily 
fit any particular pattern (i.e. a recipe),
+but are nonetheless interesting and thus remain good tools for learning 
Gremlin.
+
+[[appendix-a]]
+_For each person in a "follows" graph, determine the number of followers 
and list their names._
+
+[gremlin-groovy]
+
+g.addV('name','marko').as('marko').
+  addV('name','josh').as('josh').
+  addV('name','daniel').as('daniel').
+  addV('name','matthias').as('matthias').
+  addE('follows').from('josh').to('marko').
+  addE('follows').from('matthias').to('josh').
+  addE('follows').from('daniel').to('josh').
+  addE('follows').from('daniel').to('marko').iterate()
+g.V().as('p').
--- End diff --

`group()` is actually not needed here. `p` will be unique in the result, 
hence it's just a projection:

```
g.V().as('p').map(__.in('follows').values('name').fold()).
  
project('person','followers','numFollowers').by(select('p')).by('name')).by().by(count(local))
```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop pull request #531: Added more recipes

2017-01-12 Thread spmallette
Github user spmallette commented on a diff in the pull request:

https://github.com/apache/tinkerpop/pull/531#discussion_r95781687
  
--- Diff: docs/src/recipes/appendix.asciidoc ---
@@ -0,0 +1,226 @@
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Appendix
+
+
+Many of the recipes are based on questions and answers provided on the 
gremlin-users mailing list. This section
--- End diff --

i misread - got it


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


FOSDEM 2017 Open Source Conference - Brussels

2017-01-12 Thread Sharan F

Hello Everyone

This email is to tell you about ASF participation at FOSDEM. The event 
will be held in Brussels on 4^th & 5^th February 2017 and we are hoping 
that many people from our ASF projects will be there.


https://fosdem.org/2017/

Attending FOSDEM is completely free and the ASF will again be running a 
booth there. Our main focus will on talking to people about the ASF, our 
projects and communities.


*_Why Attend FOSDEM?_*
Some reasons for attending FOSDEM are:

1. Promoting your project: FOSDEM has up to 4-5000 attendees so is a
   great place to spread the word about your project
2. Learning, participating and meeting up: FOSDEM is a developers
   conference so includes presentations covering a range of
   technologies and includes lots of topic specific devrooms

_*FOSDEM Wiki *_
A page on the Community Development wiki has been created with the main 
details about our involvement at conference, so please take a look


https://cwiki.apache.org/confluence/display/COMDEV/FOSDEM+2017

If you would like to spend some time on the ASF booth promoting your 
project then please sign up on the FOSDEM wiki page. Initially we would 
like to split this into slots of 3-4 hours but this will depend on the 
number of projects that are represented.


We are also looking for volunteers to help out on the booth over the 2 
days of the conference, so if you are going to be there and are willing 
to help then please add your name to the volunteer list.


_*Project Stickers*_
If you are going to be at FOSDEM and do not have any project stickers to 
give away then we may (budget permitting) be able to help you get some 
printed. Please contact me with your requirements.


_*Social Event*_
Some people have asked about organising an ASF social event / meetup 
during the conference. This is possible but we will need know how many 
people are interested and which date works best. The FOSDEM wiki page 
also contains an 'Arrival / Departure' section so so please add your 
details if you would like to participate.


I hope this helps people see some of the advantages of attending FOSDEM 
and we are looking forward to seeing lots of people there from our ASF 
communities.


Thanks
Sharan

Apache Community Development
http://community.apache.org/


Re: [TinkerPop] Tinkerpop3 on GraphX

2017-01-12 Thread Stephen Mallette
I don't think the conversation ever went any further after this. Others can
correct me if I'm wrong, but I don't recall that discussion moving to dev.

On Wed, Jan 11, 2017 at 1:11 AM, Georg Heiler 
wrote:

> What is the current status of graphX or graphframes integration?
>
> Am Donnerstag, 29. Januar 2015 02:02:23 UTC+1 schrieb Marko A. Rodriguez:
>>
>> Hi Kushal,
>>
>> Lets move this conversation over to d...@tinkerpop.incubator.apache.org
>> (cc:d) and discuss matters there.
>>
>> Stoked,
>> Marko.
>>
>> http://markorodriguez.com
>>
>> On Jan 28, 2015, at 5:06 PM, Kushal Datta  wrote:
>>
>> Thanks Marko. My intuition is that the side-effects in chains of Gremlin
>> traversals which are currently executed using map-reduce can be faster in
>> Spark. I am interested in this work, but will need help with the
>> implementation. But before jumping into it, I think sharing a design
>> document is a better idea.
>>
>> @Nick - thanks for sharing the code. If interested, you can also see my
>> initial work at https://github.com/kdatta/tinkerpop3/tree/graphx-gremlin
>>
>> Best,
>> -Kushal.
>>
>> On Wednesday, January 28, 2015 at 2:04:45 PM UTC-8, Marko A. Rodriguez
>> wrote:
>>>
>>> Hello Kushal,
>>>
>>> A few of us in the GraphX community are looking at bindings for
>>> Tinkerpop3.
>>> The idea was to execute Gremlin traversals in a distributed fashion, but
>>> use GraphX operators instead of Giraph.
>>>
>>>
>>> Sounds like a good thing to do.
>>>
>>> At the same time, in the Apache Incubator project I found that one of
>>> the items is to deliver Tinkerpop3 over Spark.
>>>
>>>
>>> Yea, I think the Spark guys having something on that:
>>> https://issues.apache.org/jira/browse/SPARK-4279
>>>
>>> Are we talking about the same thing? If so, is there a way a JIRA ticket
>>> for this that I can refer to?
>>>
>>>
>>> I haven't done anything with Spark/GraphX, but am willing to help on the
>>> TinkerPop-side with anyone wanting to dive into an implementation.
>>>
>>> Thanks Kushal,
>>> Marko.
>>>
>>> http://markorodriguez.com
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Gremlin-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to gremlin-users+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit https://groups.google.com/d/ms
>> gid/gremlin-users/5386fc90-d9dd-492b-9c9f-921168c623b1%40googlegroups.com
>> 
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>