[Neo4j] Compile error from git
Hi, guys. I try to compile neo4j from sources. I execute following commands and got some error messages. How can I fix it? git clone https://github.com/neo4j/community.git cd community mvn [INFO] Scanning for projects... [INFO] Reactor build order: [INFO] Neo4j - Graph Database Kernel [INFO] Neo4j - JMX support [INFO] Neo4j - Usage Data Collection [INFO] Neo4j - Lucene Index [INFO] Neo4j - Graph Algorithms [INFO] Neo4j - Graph Matching [INFO] Neo4j - Cypher [INFO] Neo4j Community [INFO] Neo4j Community [INFO] Neo4j - Generic shell [INFO] Neo4j Examples [INFO] Neo4j Server API [INFO] Neo4j Server [INFO] Neo4j Server Examples [INFO] Neo4j Community Build [INFO] -- -- [INFO] Building Neo4j - Graph Database Kernel [INFO]task-segment: [compile] [INFO] [INFO] [ERROR] BUILD ERROR [INFO] [INFO] Failed to resolve artifact. Missing: -- 1) com.sun.tools:tools:jar:1.6 Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] Path to dependency: 1) org.neo4j:neo4j-kernel:jar:1.5-SNAPSHOT 2) com.sun.tools:tools:jar:1.6 -- 1 required artifact is missing. for artifact: org.neo4j:neo4j-kernel:jar:1.5-SNAPSHOT from the specified remote repositories: central (http://repo1.maven.org/maven2), sonatype-nexus-snapshots ( https://oss.sonatype.org/content/repositories/snapshots), neo4j-snapshot-repository (http://m2.neo4j.org/snapshots) [INFO] [INFO] For more information, run Maven with the -e switch [INFO] [INFO] Total time: 9 seconds [INFO] Finished at: Tue Jul 19 17:15:06 MSD 2011 [INFO] Final Memory: 27M/152M [INFO] -- С уважением, Николай Ижиков nizhi...@gmail.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Compile error from git
Nikolai, what JDK are you running? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. 2011/7/21 Николай Ижиков nizhi...@gmail.com: Hi, guys. I try to compile neo4j from sources. I execute following commands and got some error messages. How can I fix it? git clone https://github.com/neo4j/community.git cd community mvn [INFO] Scanning for projects... [INFO] Reactor build order: [INFO] Neo4j - Graph Database Kernel [INFO] Neo4j - JMX support [INFO] Neo4j - Usage Data Collection [INFO] Neo4j - Lucene Index [INFO] Neo4j - Graph Algorithms [INFO] Neo4j - Graph Matching [INFO] Neo4j - Cypher [INFO] Neo4j Community [INFO] Neo4j Community [INFO] Neo4j - Generic shell [INFO] Neo4j Examples [INFO] Neo4j Server API [INFO] Neo4j Server [INFO] Neo4j Server Examples [INFO] Neo4j Community Build [INFO] -- -- [INFO] Building Neo4j - Graph Database Kernel [INFO] task-segment: [compile] [INFO] [INFO] [ERROR] BUILD ERROR [INFO] [INFO] Failed to resolve artifact. Missing: -- 1) com.sun.tools:tools:jar:1.6 Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] Path to dependency: 1) org.neo4j:neo4j-kernel:jar:1.5-SNAPSHOT 2) com.sun.tools:tools:jar:1.6 -- 1 required artifact is missing. for artifact: org.neo4j:neo4j-kernel:jar:1.5-SNAPSHOT from the specified remote repositories: central (http://repo1.maven.org/maven2), sonatype-nexus-snapshots ( https://oss.sonatype.org/content/repositories/snapshots), neo4j-snapshot-repository (http://m2.neo4j.org/snapshots) [INFO] [INFO] For more information, run Maven with the -e switch [INFO] [INFO] Total time: 9 seconds [INFO] Finished at: Tue Jul 19 17:15:06 MSD 2011 [INFO] Final Memory: 27M/152M [INFO] -- С уважением, Николай Ижиков nizhi...@gmail.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] OSGi and Neo4j - superbundle approach
So, now, with another merge from Toni, you should be able to build https://github.com/neo4j/neo4j-osgi with just mvn clean install Enjoy! Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Thu, Jul 21, 2011 at 12:05 AM, Toni Menzel t...@okidokiteam.com wrote: btw, sorry about the Tinybundles disruption. The group id org.ops4j.pax was actually wrong since ripping out tinybundles from pax swissbox. Actually there will be just one tinybundles artifact and it will carry 1.0 really soon. Until then you may grab latest artifacts from https://oss.sonatype.org/content/groups/ops4j/ . On Thu, Jul 21, 2011 at 12:00 AM, Peter Neubauer peter.neuba...@neotechnology.com wrote: And, there was a bug in Pax Exam not shutting down the bundles properly. Fixed by Toni Menzel in 5 minutes. Thanks! I added some build instructions to https://github.com/neo4j/neo4j-osgi to get things working. Give it a try! Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Wed, Jul 20, 2011 at 11:12 PM, Peter Neubauer peter.neuba...@neotechnology.com wrote: Ahh, sorry, seems Tinybundles changes groupId and API since my last pull. Pushed the updates. Please try again :) Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Wed, Jul 20, 2011 at 9:39 PM, Jean-Pierre Bergamin jpberga...@gmail.com wrote: Hi Peter When I ran mvn install, I got: ... [WARNING] Warning building bundle org.ops4j.pax.tinybundles:tinybundles:bundle:1.0.0-SNAPSHOT ... [INFO] Installing org/ops4j/pax/tinybundles/tinybundles/1.0.0-SNAPSHOT/tinybundles-1.0.0-SNAPSHOT.jar I think there is a tinybundles to much in between. :-) I moved the 1.0.0-SNAPSHOT folder one level up in the .m2/repository folder structue and at least the tinybundles jar can now be found in the neo4j-osgi projects. I now have compilation errors in the examples project: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile (default-testCompile) on project neo4j-osgi-examples: Compilatio n failure: Compilation failure: [ERROR] \Users\james\Documents\Development\neo4j-osgi\examples\src\test\java\org\neo4j\examples\osgi\OSGiTest.java:[35,46] package org.ops4j.pax.tinybundles.core.builders does not exist [ERROR] \Users\james\Documents\Development\neo4j-osgi\examples\src\test\java\org\neo4j\examples\osgi\OSGiTest.java:[36,46] package org.ops4j.pax.tinybundles.core.builders does not exist [ERROR] \Users\james\Documents\Development\neo4j-osgi\examples\src\test\java\org\neo4j\examples\osgi\OSGiTest.java:[35,46] package org.ops4j.pax.tinybundles.core.builders does not exist [ERROR] \Users\james\Documents\Development\neo4j-osgi\examples\src\test\java\org\neo4j\examples\osgi\OSGiTest.java:[36,46] package org.ops4j.pax.tinybundles.core.builders does not exist [ERROR] \Users\james\Documents\Development\neo4j-osgi\examples\src\test\java\org\neo4j\examples\osgi\OSGiTest.java:[57,39] cannot find symbol [ERROR] symbol : class BndBuilder [ERROR] location: class org.neo4j.examples.osgi.OSGiTest [ERROR] \Users\james\Documents\Development\neo4j-osgi\examples\src\test\java\org\neo4j\examples\osgi\OSGiTest.java:[57,55] cannot find symbol [ERROR] symbol : class SynchronousRawBuilder [ERROR] location: class org.neo4j.examples.osgi.OSGiTest And indeed, the org.ops4j.pax.tinybundles.core.builders package is not in the tinybundles jar I just built and installed, but only ..tinybundles.core and ..tinybundles.core.intern. Any ideas? Best regards, James 2011/7/20 Peter Neubauer peter.neuba...@neotechnology.com: Hi Jean-Pierre, sorry for the inconvenience, the Tinybundles version is not yet released by the OPS4J team, so you can build it yourself from https://github.com/ops4j/org.ops4j.pax.tinybundles with mvn
Re: [Neo4j] Compile error from git
[~/backup/src/neo4j/community] $ mvn -version Apache Maven 2.2.1 (rdebian-4) Java version: 1.6.0_26 Java home: /usr/lib/jvm/java-6-sun-1.6.0.26/jre Default locale: ru_RU, platform encoding: UTF-8 OS name: linux version: 2.6.38-10-generic arch: i386 Family: unix [~/backup/src/neo4j/community] $ java -version java version 1.6.0_26 Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode) [~/backup/src/neo4j/community] $ uname -a Linux niLaptop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 i686 i686 i386 GNU/Linux [ 2011/7/21 Peter Neubauer peter.neuba...@neotechnology.com Nikolai, what JDK are you running? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/- Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. 2011/7/21 Николай Ижиков nizhi...@gmail.com: Hi, guys. I try to compile neo4j from sources. I execute following commands and got some error messages. How can I fix it? git clone https://github.com/neo4j/community.git cd community mvn [INFO] Scanning for projects... [INFO] Reactor build order: [INFO] Neo4j - Graph Database Kernel [INFO] Neo4j - JMX support [INFO] Neo4j - Usage Data Collection [INFO] Neo4j - Lucene Index [INFO] Neo4j - Graph Algorithms [INFO] Neo4j - Graph Matching [INFO] Neo4j - Cypher [INFO] Neo4j Community [INFO] Neo4j Community [INFO] Neo4j - Generic shell [INFO] Neo4j Examples [INFO] Neo4j Server API [INFO] Neo4j Server [INFO] Neo4j Server Examples [INFO] Neo4j Community Build [INFO] -- -- [INFO] Building Neo4j - Graph Database Kernel [INFO]task-segment: [compile] [INFO] [INFO] [ERROR] BUILD ERROR [INFO] [INFO] Failed to resolve artifact. Missing: -- 1) com.sun.tools:tools:jar:1.6 Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] Path to dependency: 1) org.neo4j:neo4j-kernel:jar:1.5-SNAPSHOT 2) com.sun.tools:tools:jar:1.6 -- 1 required artifact is missing. for artifact: org.neo4j:neo4j-kernel:jar:1.5-SNAPSHOT from the specified remote repositories: central (http://repo1.maven.org/maven2), sonatype-nexus-snapshots ( https://oss.sonatype.org/content/repositories/snapshots), neo4j-snapshot-repository (http://m2.neo4j.org/snapshots) [INFO] [INFO] For more information, run Maven with the -e switch [INFO] [INFO] Total time: 9 seconds [INFO] Finished at: Tue Jul 19 17:15:06 MSD 2011 [INFO] Final Memory: 27M/152M [INFO] -- С уважением, Николай Ижиков nizhi...@gmail.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- С уважением, Николай Ижиков nizhi...@gmail.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Compile error from git
Could you please set your JAVA_HOME pointing to the JDK not the JRE? That should help. I wonder how it would compile things w/o a javac :) Cheers Michael Am 21.07.2011 um 08:55 schrieb Николай Ижиков: [~/backup/src/neo4j/community] $ mvn -version Apache Maven 2.2.1 (rdebian-4) Java version: 1.6.0_26 Java home: /usr/lib/jvm/java-6-sun-1.6.0.26/jre Default locale: ru_RU, platform encoding: UTF-8 OS name: linux version: 2.6.38-10-generic arch: i386 Family: unix [~/backup/src/neo4j/community] $ java -version java version 1.6.0_26 Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode) [~/backup/src/neo4j/community] $ uname -a Linux niLaptop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 i686 i686 i386 GNU/Linux [ 2011/7/21 Peter Neubauer peter.neuba...@neotechnology.com Nikolai, what JDK are you running? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/- Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. 2011/7/21 Николай Ижиков nizhi...@gmail.com: Hi, guys. I try to compile neo4j from sources. I execute following commands and got some error messages. How can I fix it? git clone https://github.com/neo4j/community.git cd community mvn [INFO] Scanning for projects... [INFO] Reactor build order: [INFO] Neo4j - Graph Database Kernel [INFO] Neo4j - JMX support [INFO] Neo4j - Usage Data Collection [INFO] Neo4j - Lucene Index [INFO] Neo4j - Graph Algorithms [INFO] Neo4j - Graph Matching [INFO] Neo4j - Cypher [INFO] Neo4j Community [INFO] Neo4j Community [INFO] Neo4j - Generic shell [INFO] Neo4j Examples [INFO] Neo4j Server API [INFO] Neo4j Server [INFO] Neo4j Server Examples [INFO] Neo4j Community Build [INFO] -- -- [INFO] Building Neo4j - Graph Database Kernel [INFO]task-segment: [compile] [INFO] [INFO] [ERROR] BUILD ERROR [INFO] [INFO] Failed to resolve artifact. Missing: -- 1) com.sun.tools:tools:jar:1.6 Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] Path to dependency: 1) org.neo4j:neo4j-kernel:jar:1.5-SNAPSHOT 2) com.sun.tools:tools:jar:1.6 -- 1 required artifact is missing. for artifact: org.neo4j:neo4j-kernel:jar:1.5-SNAPSHOT from the specified remote repositories: central (http://repo1.maven.org/maven2), sonatype-nexus-snapshots ( https://oss.sonatype.org/content/repositories/snapshots), neo4j-snapshot-repository (http://m2.neo4j.org/snapshots) [INFO] [INFO] For more information, run Maven with the -e switch [INFO] [INFO] Total time: 9 seconds [INFO] Finished at: Tue Jul 19 17:15:06 MSD 2011 [INFO] Final Memory: 27M/152M [INFO] -- С уважением, Николай Ижиков nizhi...@gmail.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- С уважением, Николай Ижиков nizhi...@gmail.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Compile error from git
Nikolaj, it seems you are on a JRE, not a JDK, which you need to compile java programs. Try installing apt-cache search jdk apt-get install sun-java6-jdk Does that work? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. 2011/7/21 Николай Ижиков nizhi...@gmail.com: [~/backup/src/neo4j/community] $ mvn -version Apache Maven 2.2.1 (rdebian-4) Java version: 1.6.0_26 Java home: /usr/lib/jvm/java-6-sun-1.6.0.26/jre Default locale: ru_RU, platform encoding: UTF-8 OS name: linux version: 2.6.38-10-generic arch: i386 Family: unix [~/backup/src/neo4j/community] $ java -version java version 1.6.0_26 Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode) [~/backup/src/neo4j/community] $ uname -a Linux niLaptop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 i686 i686 i386 GNU/Linux [ 2011/7/21 Peter Neubauer peter.neuba...@neotechnology.com Nikolai, what JDK are you running? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. 2011/7/21 Николай Ижиков nizhi...@gmail.com: Hi, guys. I try to compile neo4j from sources. I execute following commands and got some error messages. How can I fix it? git clone https://github.com/neo4j/community.git cd community mvn [INFO] Scanning for projects... [INFO] Reactor build order: [INFO] Neo4j - Graph Database Kernel [INFO] Neo4j - JMX support [INFO] Neo4j - Usage Data Collection [INFO] Neo4j - Lucene Index [INFO] Neo4j - Graph Algorithms [INFO] Neo4j - Graph Matching [INFO] Neo4j - Cypher [INFO] Neo4j Community [INFO] Neo4j Community [INFO] Neo4j - Generic shell [INFO] Neo4j Examples [INFO] Neo4j Server API [INFO] Neo4j Server [INFO] Neo4j Server Examples [INFO] Neo4j Community Build [INFO] -- -- [INFO] Building Neo4j - Graph Database Kernel [INFO] task-segment: [compile] [INFO] [INFO] [ERROR] BUILD ERROR [INFO] [INFO] Failed to resolve artifact. Missing: -- 1) com.sun.tools:tools:jar:1.6 Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] Path to dependency: 1) org.neo4j:neo4j-kernel:jar:1.5-SNAPSHOT 2) com.sun.tools:tools:jar:1.6 -- 1 required artifact is missing. for artifact: org.neo4j:neo4j-kernel:jar:1.5-SNAPSHOT from the specified remote repositories: central (http://repo1.maven.org/maven2), sonatype-nexus-snapshots ( https://oss.sonatype.org/content/repositories/snapshots), neo4j-snapshot-repository (http://m2.neo4j.org/snapshots) [INFO] [INFO] For more information, run Maven with the -e switch [INFO] [INFO] Total time: 9 seconds [INFO] Finished at: Tue Jul 19 17:15:06 MSD 2011 [INFO] Final Memory: 27M/152M [INFO] -- С уважением, Николай Ижиков nizhi...@gmail.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- С уважением, Николай Ижиков nizhi...@gmail.com ___ Neo4j mailing list User@lists.neo4j.org
Re: [Neo4j] Cypher request with where clause on relations count
Request is working like a charm and is fast (around 6 objects are checked in my 2M node 6M rel DB). I have to check the result with the corresponding RDBMS KPI. Thanks again ! I definitively have to take more time to learn Gremlin ! -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-Cypher-request-with-where-clause-on-relations-count-tp3172481p3187757.html Sent from the Neo4J Community Discussions mailing list archive at Nabble.com. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cypher request with where clause on relations count
Hey, Request is working like a charm and is fast (around 6 objects are checked in my 2M node 6M rel DB). I have to check the result with the corresponding RDBMS KPI. Nice. Thanks again ! No problem. I definitively have to take more time to learn Gremlin ! You are more than welcome to always ask questions on the Gremlin-users mailing list. http://groups.google.com/group/gremlin-users Or, if you prefer, I'm here too.. and right behind you as well. insert scream/ Have fun, Marko. http://markorodriguez.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Evaluation questions : Neo4j features
Hi, I'm relatively new to graphs and Neo4j but I have gathered a list of questions I hoping this community can answer or point me onward towards them. 1. Typed edges - What is available in Neo4j to tackle semantics (as in hierarchical structure of edge types) - What are the best practices when dealing with semantics? 2. Versioning - What are the best practices when dealing with data versioning? 3. Hypergraphs - What is the practical advantage of supporting multi target edges other than to reduce the edge count in a graph? (I ask only because I'm trying to better understand the architectural difference between Neo4j and HypergraphDB) 4. Property count and property data - Is there a practical limit to the number of properties per node? - Would anyone store binary content in them (are they all loaded into memory as a part of the graph)? 5. MQL I have used MQL (the Freebase.com graph query language) and I have, in my limited use of it, found it quite intuitive. I have tried Cypher and SPARQL as well. - What is the state of single industry wide We don't have to deal with data in the I-have-to-have-automatic-sharding range so I leave performance and scalability issues out for now. We are planing to use Neo4j for a sub-CRMish structure and HBase for event logs (time series etc.) and realtime analytics/statistics. Would anyone claim that a craph database is suitable for that? Best regards and thank's for the great job, -Stefan -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/Evaluation-questions-Neo4j-features-tp3188069p3188069.html Sent from the Neo4J Community Discussions mailing list archive at Nabble.com. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] how many relationships?
We're already on it. Looking through the causes for that issue and will keep you and everyone else informed. Michael Am 21.07.2011 um 06:52 schrieb cyuczi eekc: about this, should I create an issue? ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Compile error from git
Sorry, guys. Silly question :). First time try to use standard ubuntu packages to install java. 2011/7/21 Peter Neubauer peter.neuba...@neotechnology.com Nikolaj, it seems you are on a JRE, not a JDK, which you need to compile java programs. Try installing apt-cache search jdk apt-get install sun-java6-jdk Does that work? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/- Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. 2011/7/21 Николай Ижиков nizhi...@gmail.com: [~/backup/src/neo4j/community] $ mvn -version Apache Maven 2.2.1 (rdebian-4) Java version: 1.6.0_26 Java home: /usr/lib/jvm/java-6-sun-1.6.0.26/jre Default locale: ru_RU, platform encoding: UTF-8 OS name: linux version: 2.6.38-10-generic arch: i386 Family: unix [~/backup/src/neo4j/community] $ java -version java version 1.6.0_26 Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode) [~/backup/src/neo4j/community] $ uname -a Linux niLaptop 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 i686 i686 i386 GNU/Linux [ 2011/7/21 Peter Neubauer peter.neuba...@neotechnology.com Nikolai, what JDK are you running? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/- Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. 2011/7/21 Николай Ижиков nizhi...@gmail.com: Hi, guys. I try to compile neo4j from sources. I execute following commands and got some error messages. How can I fix it? git clone https://github.com/neo4j/community.git cd community mvn [INFO] Scanning for projects... [INFO] Reactor build order: [INFO] Neo4j - Graph Database Kernel [INFO] Neo4j - JMX support [INFO] Neo4j - Usage Data Collection [INFO] Neo4j - Lucene Index [INFO] Neo4j - Graph Algorithms [INFO] Neo4j - Graph Matching [INFO] Neo4j - Cypher [INFO] Neo4j Community [INFO] Neo4j Community [INFO] Neo4j - Generic shell [INFO] Neo4j Examples [INFO] Neo4j Server API [INFO] Neo4j Server [INFO] Neo4j Server Examples [INFO] Neo4j Community Build [INFO] -- -- [INFO] Building Neo4j - Graph Database Kernel [INFO]task-segment: [compile] [INFO] [INFO] [ERROR] BUILD ERROR [INFO] [INFO] Failed to resolve artifact. Missing: -- 1) com.sun.tools:tools:jar:1.6 Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.6 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] Path to dependency: 1) org.neo4j:neo4j-kernel:jar:1.5-SNAPSHOT 2) com.sun.tools:tools:jar:1.6 -- 1 required artifact is missing. for artifact: org.neo4j:neo4j-kernel:jar:1.5-SNAPSHOT from the specified remote repositories: central (http://repo1.maven.org/maven2), sonatype-nexus-snapshots ( https://oss.sonatype.org/content/repositories/snapshots), neo4j-snapshot-repository (http://m2.neo4j.org/snapshots) [INFO] [INFO] For more information, run Maven with the -e switch [INFO] [INFO] Total time: 9 seconds [INFO] Finished at: Tue Jul 19 17:15:06 MSD 2011 [INFO] Final Memory: 27M/152M [INFO] -- С уважением, Николай Ижиков nizhi...@gmail.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Evaluation questions : Neo4j features
Hi, Stefan. FWIW, we use Neo4J for time series data, at reasonably high volumes of near-real-time storage. What storage rates are you looking for/volume of data in your application? Rick From: user-boun...@lists.neo4j.org [user-boun...@lists.neo4j.org] On Behalf Of acmeguy [ste...@gmail.com] Sent: Thursday, July 21, 2011 5:27 AM To: user@lists.neo4j.org Subject: [Neo4j] Evaluation questions : Neo4j features Hi, I'm relatively new to graphs and Neo4j but I have gathered a list of questions I hoping this community can answer or point me onward towards them. 1. Typed edges - What is available in Neo4j to tackle semantics (as in hierarchical structure of edge types) - What are the best practices when dealing with semantics? 2. Versioning - What are the best practices when dealing with data versioning? 3. Hypergraphs - What is the practical advantage of supporting multi target edges other than to reduce the edge count in a graph? (I ask only because I'm trying to better understand the architectural difference between Neo4j and HypergraphDB) 4. Property count and property data - Is there a practical limit to the number of properties per node? - Would anyone store binary content in them (are they all loaded into memory as a part of the graph)? 5. MQL I have used MQL (the Freebase.com graph query language) and I have, in my limited use of it, found it quite intuitive. I have tried Cypher and SPARQL as well. - What is the state of single industry wide We don't have to deal with data in the I-have-to-have-automatic-sharding range so I leave performance and scalability issues out for now. We are planing to use Neo4j for a sub-CRMish structure and HBase for event logs (time series etc.) and realtime analytics/statistics. Would anyone claim that a craph database is suitable for that? Best regards and thank's for the great job, -Stefan -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/Evaluation-questions-Neo4j-features-tp3188069p3188069.html Sent from the Neo4J Community Discussions mailing list archive at Nabble.com. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Evaluation questions : Neo4j features
Hi Stefan, some short answer inline. Am 21.07.2011 um 11:27 schrieb acmeguy: Hi, I'm relatively new to graphs and Neo4j but I have gathered a list of questions I hoping this community can answer or point me onward towards them. 1. Typed edges - What is available in Neo4j to tackle semantics (as in hierarchical structure of edge types) - What are the best practices when dealing with semantics? Right now Neo4j-Edge Types are just a flat structure (i.e. RelationshipTypes). I'm not fully understanding what your use-case / intent is, perhaps you can elaborate. What you perhaps could do is to create nested enum types (that are usable for Rel-Types) and resolve semantics by navigating those. Another idea is just to create a real composite structure of Edge Types (instances of a java class) which form a tree. You could have this structure resolving the semantic meaning of a neo4j - relationship-type and perhaps even use rendering of the tree paths to derive a representation (e.g. dot or slash separated paths to the root) to use in the concrete relationship-type of the graph. Semantics are otherwise derived from the structure of the graph, i.e. paths to category nodes and the relative place of a node in its network. But also node and relationship-properties and relationship-types are used to capture semantic information. 2. Versioning - What are the best practices when dealing with data versioning? Most customers roll their own version of versioning as this is heavily domain specific. A more generic version (PoC) was created by our David Montag (https://github.com/dmontag/neo4j-versioning) 3. Hypergraphs - What is the practical advantage of supporting multi target edges other than to reduce the edge count in a graph? (I ask only because I'm trying to better understand the architectural difference between Neo4j and HypergraphDB) I would let the community answer that, besides reducing edge count and usefulness for some limited modeling purposes I have found no significant advantages for HyperGraphs. 4. Property count and property data - Is there a practical limit to the number of properties per node? In theory they are not limited but in practice it is sensible to limit them to a less than hundred as they would be loaded into the node cache. Most probably a domain having that many properties on a single node lacks some abstractions and should perhaps split those domain entities into a set of related ones. - Would anyone store binary content in them (are they all loaded into memory as a part of the graph)? No, not that I know of, while it is possible it's not very efficient. Rather store it in an optimized blob store and keep the URI/locations in the graph. Then you can also use a CDN or such to deliver the media to wherever it is needed. 5. MQL I have used MQL (the Freebase.com graph query language) and I have, in my limited use of it, found it quite intuitive. I have tried Cypher and SPARQL as well. - What is the state of single industry wide SPARQL is the defacto standard besides than that everyone rolls his own kind of query language. Besides Cypher Neo4j also supports Gremlin an imperative traversal DSL for groovy (http://tinkerpop.com/gremlin) We don't have to deal with data in the I-have-to-have-automatic-sharding range so I leave performance and scalability issues out for now. Good to hear :) We are planing to use Neo4j for a sub-CRMish structure and HBase for event logs (time series etc.) and realtime analytics/statistics. Would anyone claim that a craph database is suitable for that? Neo4j was developed from the need of having a database that can actually store CRM data more efficiently (and even more so traverse it faster). So I'd say this is a sweet spot. Can't say that much about HBase but it seems a good fit. Welcome to the World of Graphs: http://www.youtube.com/watch?v=V68R9siXiEk Cheers Michael Best regards and thank's for the great job, -Stefan -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/Evaluation-questions-Neo4j-features-tp3188069p3188069.html Sent from the Neo4J Community Discussions mailing list archive at Nabble.com. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] OSGi and Neo4j - superbundle approach
Thank you. It worked with mvn -u clean install. Best regards, James 2011/7/21 Peter Neubauer peter.neuba...@neotechnology.com: So, now, with another merge from Toni, you should be able to build https://github.com/neo4j/neo4j-osgi with just mvn clean install Enjoy! Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Thu, Jul 21, 2011 at 12:05 AM, Toni Menzel t...@okidokiteam.com wrote: btw, sorry about the Tinybundles disruption. The group id org.ops4j.pax was actually wrong since ripping out tinybundles from pax swissbox. Actually there will be just one tinybundles artifact and it will carry 1.0 really soon. Until then you may grab latest artifacts from https://oss.sonatype.org/content/groups/ops4j/ . On Thu, Jul 21, 2011 at 12:00 AM, Peter Neubauer peter.neuba...@neotechnology.com wrote: And, there was a bug in Pax Exam not shutting down the bundles properly. Fixed by Toni Menzel in 5 minutes. Thanks! I added some build instructions to https://github.com/neo4j/neo4j-osgi to get things working. Give it a try! Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Wed, Jul 20, 2011 at 11:12 PM, Peter Neubauer peter.neuba...@neotechnology.com wrote: Ahh, sorry, seems Tinybundles changes groupId and API since my last pull. Pushed the updates. Please try again :) Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Wed, Jul 20, 2011 at 9:39 PM, Jean-Pierre Bergamin jpberga...@gmail.com wrote: Hi Peter When I ran mvn install, I got: ... [WARNING] Warning building bundle org.ops4j.pax.tinybundles:tinybundles:bundle:1.0.0-SNAPSHOT ... [INFO] Installing org/ops4j/pax/tinybundles/tinybundles/1.0.0-SNAPSHOT/tinybundles-1.0.0-SNAPSHOT.jar I think there is a tinybundles to much in between. :-) I moved the 1.0.0-SNAPSHOT folder one level up in the .m2/repository folder structue and at least the tinybundles jar can now be found in the neo4j-osgi projects. I now have compilation errors in the examples project: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile (default-testCompile) on project neo4j-osgi-examples: Compilatio n failure: Compilation failure: [ERROR] \Users\james\Documents\Development\neo4j-osgi\examples\src\test\java\org\neo4j\examples\osgi\OSGiTest.java:[35,46] package org.ops4j.pax.tinybundles.core.builders does not exist [ERROR] \Users\james\Documents\Development\neo4j-osgi\examples\src\test\java\org\neo4j\examples\osgi\OSGiTest.java:[36,46] package org.ops4j.pax.tinybundles.core.builders does not exist [ERROR] \Users\james\Documents\Development\neo4j-osgi\examples\src\test\java\org\neo4j\examples\osgi\OSGiTest.java:[35,46] package org.ops4j.pax.tinybundles.core.builders does not exist [ERROR] \Users\james\Documents\Development\neo4j-osgi\examples\src\test\java\org\neo4j\examples\osgi\OSGiTest.java:[36,46] package org.ops4j.pax.tinybundles.core.builders does not exist [ERROR] \Users\james\Documents\Development\neo4j-osgi\examples\src\test\java\org\neo4j\examples\osgi\OSGiTest.java:[57,39] cannot find symbol [ERROR] symbol : class BndBuilder [ERROR] location: class org.neo4j.examples.osgi.OSGiTest [ERROR] \Users\james\Documents\Development\neo4j-osgi\examples\src\test\java\org\neo4j\examples\osgi\OSGiTest.java:[57,55] cannot find symbol [ERROR] symbol : class SynchronousRawBuilder [ERROR] location: class org.neo4j.examples.osgi.OSGiTest And indeed, the org.ops4j.pax.tinybundles.core.builders package is not in the tinybundles jar I just built and installed, but only ..tinybundles.core and ..tinybundles.core.intern. Any ideas? Best regards, James 2011/7/20 Peter Neubauer peter.neuba...@neotechnology.com: Hi Jean-Pierre, sorry for the inconvenience, the Tinybundles version is
[Neo4j] NOSQL article on InfoWorld
Hey Graphistas, there is a new article on NOSQL databases on InfoWorld. The part for Neo4j is badly researched. If anyone of you thinks he could add some useful information for the reader, please do so in the commenting section. Thanks so much Michael http://www.infoworld.com/d/data-explosion/no-sql-new-databases-new-applications-400?page=0,4 ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Eclipse and Neo4J
Hi everybody, I found [1] in the mailing list archive. I'm an eclipse rcp developer, too and thinking about using Neo4J in an RCP application (License: EPL) . Are there any news of the licensing problem? Thank in advance Hannes [1] http://www.mail-archive.com/user@lists.neo4j.org/msg05004.html -- Onotoa - Simply create your Topic Maps schemas. Web: http://onotoa.topicmapslab.de User Group: http://groups.google.com/group/onotoa Code: http://code.google.com/p/onotoa/ http://www.topicmapslab.de/people/Hannes_Niederhausen == Topic Maps Lab http://www.topicmapslab.de == ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Propertiy keys with slashes and spaces in REST server
On Wed, Jul 20, 2011 at 22:06, Michael Hunger michael.hun...@neotechnology.com wrote: what is the concrete error that happens if you send over that space + slash encoded property? Returned by HTTP console on Neo4j server (but the behaviour is the same in my Python client): - Regular property key: http PUT http://localhost:7373/db/sylva/node/3537/properties/pröp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == 204 No Content - Property key with spaces invalidate the URL: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr öp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == Invalid JSON data. I can fix this URL encoding the key and decoding in the client. - Property key with slahs crash the URL: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr/öp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == 404 Not Found I can fix this with safe URL encoding. - Propery key with slash and spaces: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr ö/p€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == Invalid JSON data. I'm not able to fix this becaus If a use safe URL encoding, the spaces are converted into + characters in the server, and that's not the key i want to store. Sorry for the difficulty to reproduce the bug. Regards. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Eclipse and Neo4J
Hi! EPL-licensed software can't be combined with GPL-licensed software, so you'll need a differently licensed version of Neo4j. Get in touch with Neo Technology to find a solution for your case! http://neotechnology.com/contact /anders 2011-07-21 16:05, Hannes Niederhausen skrev: Hi everybody, I found [1] in the mailing list archive. I'm an eclipse rcp developer, too and thinking about using Neo4J in an RCP application (License: EPL) . Are there any news of the licensing problem? Thank in advance Hannes [1] http://www.mail-archive.com/user@lists.neo4j.org/msg05004.html ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Eclipse and Neo4J
Yup, We have done some of these, like the Amanzitel AWE which is RCP based. /peter Sent from my phone. On Jul 21, 2011 4:48 PM, Anders Nawroth and...@neotechnology.com wrote: Hi! EPL-licensed software can't be combined with GPL-licensed software, so you'll need a differently licensed version of Neo4j. Get in touch with Neo Technology to find a solution for your case! http://neotechnology.com/contact /anders 2011-07-21 16:05, Hannes Niederhausen skrev: Hi everybody, I found [1] in the mailing list archive. I'm an eclipse rcp developer, too and thinking about using Neo4J in an RCP application (License: EPL) . Are there any news of the licensing problem? Thank in advance Hannes [1] http://www.mail-archive.com/user@lists.neo4j.org/msg05004.html ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] nested transactions feature ?
Hello. Are nested transaction supported? From what I'm testing here, it looks like unless I specify .failure() on the nested transaction, before it reaches .finish() the transaction is considered to be successful (even if I didn't call .success() on it). Though if I do call .failure() then the root transaction will be rolled back with exception: Exception in thread main org.neo4j.graphdb.TransactionFailureException: Unable to commit transaction at org.neo4j.kernel.TopLevelTransaction.finish(TopLevelTransaction.java:98) at org.neo4j.examples.CalculateShortestPath.main(CalculateShortestPath.java:116) Caused by: javax.transaction.RollbackException: Failed to commit, transaction rolledback at org.neo4j.kernel.impl.transaction.TxManager.rollbackCommit(TxManager.java:811) at org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:645) at org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:109) at org.neo4j.kernel.TopLevelTransaction.finish(TopLevelTransaction.java:85) ... 1 more In the root transaction however, if I don't explicitly call .success() it is considered failure and rolled back on finish. This seem to be the main difference between root transaction and the nested transaction; was this intended? here's a sample program to test: (points 1. and 2. are important to me) 1. run it as it is, to see that nested transaction doesn't default to failure when none of .failure() or .success() are specified before reaching .finish(); is this a feature? (I just remembered that possibly someone told me about this yesterday? I cannot find the message) 2. uncomment // nestyTx.failure(); to see what happens when specifically stating that the nested transaction failed == the root one will rollback with exception, which might be fine, I guess... though maybe I would expect that the root transaction not be affected by a rolled back child transaction, I mean, I might retry the child transaction and succeed the second time, but the root will fail because some child transaction failed before... to get the idea of this, use this code block (you'll know where to put it, replacing the old part): Transaction nestyTx = graphDb.beginTx(); try { Relationship rel = one.createRelationshipTo( graphDb.createNode(), moo ); if ( i % 2 == 0 ) { nestyTx.success();// no need to uncomment this, for nested this is the default, not intended? } else { nestyTx.failure();// XXX: uncomment this to cause rootTx to fail } } finally { nestyTx.finish(); } 3. comment out the rootTx (all of begin/success/finish at once) to see the speed that nestyTx has when it isn't a nested transaction == way slower than when it's nested - though I guess this might make sense, since nothing is really committed unless the root transaction commits. /** * Licensed to Neo Technology under one or more contributor * license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright * ownership. Neo Technology 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. */ package org.neo4j.examples; import java.io.*; import java.text.*; import org.neo4j.graphdb.*; import org.neo4j.graphdb.index.*; import org.neo4j.kernel.*; public class CalculateShortestPath { private static final int SHOWINFO_IF_COUNTING_REL_TOOK_MORE_THAN_ns= 2 * 300; private static final intSHOWINFO_IF_REL_TOOK_MORE_THAN_ns = 3; private static final intSHOWEVERY_xTH_REL = 1; private static final intHOWMANY_RELATIONSHIPS = 9000; private static final StringDB_PATH = neo4j-shortest-path; private static final StringNAME_KEY = name; private static RelationshipTypeKNOWS = DynamicRelationshipType .withName( KNOWS ); private static GraphDatabaseServicegraphDb; private static IndexNodeindexService; private static DecimalFormatcommaDelimitedFormatter = new DecimalFormat( ###,### ); public static String number( double val ) { return commaDelimitedFormatter.format( val ); } public static void main( final String[] args ) { //
Re: [Neo4j] Hyperedges and Objects
i made a start on this. It's not all too difficult to enhance relationships such that relationships can be created upon them, which is a first step towards supporting hypergraphs. In fact hypergraphs are more constrained than an enhanced graph that supports the creation of relationships on relationships. As it stands now, the enhanced graph can work as a drop-in replacement of the standard neo4j API and has enhanced methods that mirror the standard methods. I also added support for typed properties, such that methods like T getPropertyValuePropertyTypeT are possible where T is one of the data types supported by PropertyContainer. I will upload this within the next few days. Niels From: pd_aficion...@hotmail.com To: user@lists.neo4j.org Subject: RE: [Neo4j] Hyperedges and Objects Date: Mon, 18 Jul 2011 17:59:08 +0200 I think a hypergraph would be an interesting collection to support in neo-graph-collections. If I find the time, I will make a start with it this week, unless there are of course other volunteers :wink: willing to do the lifting here. Niels From: michael.hun...@neotechnology.com Date: Sat, 16 Jul 2011 23:37:48 +0200 To: user@lists.neo4j.org Subject: Re: [Neo4j] Hyperedges and Objects I completely agree, hyperedges and the accompanying traversers should be handled in a library. As you probably know the traversal framework currently also uses the core API under the hood to perform the traversals (and no black magic (yet)). So it should be fairly easy to take that approach/code and create a library that abstracts the hyper-edge issues (creation, deletion, traversal). The position semantics based approach sounds interesting. Would love to see that as community contribution. Cheers Michael Am 16.07.2011 um 23:08 schrieb Niels Hoogeveen: The question is how much easier a traverser can become when there were dedicated hyper edges. In a binary relation it is fairly easy to define one end of the relation as the source and the other as the target (start and end node), but in n-ary relationships the roles of the attached nodes become more complicated. Suppose we have the GIVES relationship, where one attached node takes the role of subject (the giver), one node takes the role of direct object (the gift), and another node takes the role of indirect object (the recipient). To traverse such a graph, we need to know these different roles, otherwise we may end up traversing the wrong nodes. Suppose we the following statements: John gives Paul a servant. Paul visited Albania. Paul's servant visited Albania. We now want to know all people that received a gift from John and who visited Albania. Without properly denoting the roles in the ternary relationship stated by John gives Paul a servant, the answer to the query may well be: Paul and Paul's servant. Both are persons, both have visited Albania and both are part of the GIVES relationship defined. When we have to define the exact roles of each part of an n-ary relationship for each traversal, it is just as complicated as defining a traversal based on binary relationships, where different relationship types denote the roles of each part of the n-ary relationship. If hyperedges were to be introduced, either as a library or in core, the entire notion of the graph and how traversals are performed need to be rethought. The concept of an edge as having a start and an end node doesn't translate well into the world of hyper edges. There is not necessarily a start node and an end node, instead there are various nodes that are distinctly attached to the hyper edge. One way to think about an edge in both the graph and in the hypergraph world is as a tuple. A binary relationship can be thought of as the tuple: (node1, node2, RelationshipType, Set(property)) A ternary relationship can be thought of as the tuple: (node1, node2, node3, RelationshipType, Set(property)) etc... Instead of marking a binary relationship as outgoing or incoming, we can use the position in the tuple to denote its role. We can say the first node in the tuple corresponds to the start node, and the second node in the tuple corresponds to the end node. Having two possible permutations relates to the two possible directions an edge can have. Position based definitions of relationships translate well into the domain of n-ary relationships, though the semantics of such relationships can easily become difficult. A ternary relationship already has 6 permutations for the attached nodes, while a 10-ary relationship has 3,628,800 possible permutations. It would be an interesting project to design a tuple-position-based traverser. For binary relationships it should have the exact same features as the current direction based traverser, but it
Re: [Neo4j] Hyperedges and Objects
Perhaps we can also add to this enhanced API: * creation of nodes and rels with a initial map of properties, with optional auto-indexing of some of those properties * a getOrCreate method * fluent, chained API for creating stuff in a readable language * getRelationshipCount() * some more that I forgot :) Michael, pulling his wishlist Am 21.07.2011 um 20:32 schrieb Niels Hoogeveen: i made a start on this. It's not all too difficult to enhance relationships such that relationships can be created upon them, which is a first step towards supporting hypergraphs. In fact hypergraphs are more constrained than an enhanced graph that supports the creation of relationships on relationships. As it stands now, the enhanced graph can work as a drop-in replacement of the standard neo4j API and has enhanced methods that mirror the standard methods. I also added support for typed properties, such that methods like T getPropertyValuePropertyTypeT are possible where T is one of the data types supported by PropertyContainer. I will upload this within the next few days. Niels From: pd_aficion...@hotmail.com To: user@lists.neo4j.org Subject: RE: [Neo4j] Hyperedges and Objects Date: Mon, 18 Jul 2011 17:59:08 +0200 I think a hypergraph would be an interesting collection to support in neo-graph-collections. If I find the time, I will make a start with it this week, unless there are of course other volunteers :wink: willing to do the lifting here. Niels From: michael.hun...@neotechnology.com Date: Sat, 16 Jul 2011 23:37:48 +0200 To: user@lists.neo4j.org Subject: Re: [Neo4j] Hyperedges and Objects I completely agree, hyperedges and the accompanying traversers should be handled in a library. As you probably know the traversal framework currently also uses the core API under the hood to perform the traversals (and no black magic (yet)). So it should be fairly easy to take that approach/code and create a library that abstracts the hyper-edge issues (creation, deletion, traversal). The position semantics based approach sounds interesting. Would love to see that as community contribution. Cheers Michael Am 16.07.2011 um 23:08 schrieb Niels Hoogeveen: The question is how much easier a traverser can become when there were dedicated hyper edges. In a binary relation it is fairly easy to define one end of the relation as the source and the other as the target (start and end node), but in n-ary relationships the roles of the attached nodes become more complicated. Suppose we have the GIVES relationship, where one attached node takes the role of subject (the giver), one node takes the role of direct object (the gift), and another node takes the role of indirect object (the recipient). To traverse such a graph, we need to know these different roles, otherwise we may end up traversing the wrong nodes. Suppose we the following statements: John gives Paul a servant. Paul visited Albania. Paul's servant visited Albania. We now want to know all people that received a gift from John and who visited Albania. Without properly denoting the roles in the ternary relationship stated by John gives Paul a servant, the answer to the query may well be: Paul and Paul's servant. Both are persons, both have visited Albania and both are part of the GIVES relationship defined. When we have to define the exact roles of each part of an n-ary relationship for each traversal, it is just as complicated as defining a traversal based on binary relationships, where different relationship types denote the roles of each part of the n-ary relationship. If hyperedges were to be introduced, either as a library or in core, the entire notion of the graph and how traversals are performed need to be rethought. The concept of an edge as having a start and an end node doesn't translate well into the world of hyper edges. There is not necessarily a start node and an end node, instead there are various nodes that are distinctly attached to the hyper edge. One way to think about an edge in both the graph and in the hypergraph world is as a tuple. A binary relationship can be thought of as the tuple: (node1, node2, RelationshipType, Set(property)) A ternary relationship can be thought of as the tuple: (node1, node2, node3, RelationshipType, Set(property)) etc... Instead of marking a binary relationship as outgoing or incoming, we can use the position in the tuple to denote its role. We can say the first node in the tuple corresponds to the start node, and the second node in the tuple corresponds to the end node. Having two possible permutations relates to the two possible directions an edge can have. Position based definitions of relationships translate well into the domain of n-ary relationships, though the semantics of such relationships can easily become difficult.
Re: [Neo4j] Hyperedges and Objects
Niels, sounds like fun. Looking forward to get a look at this 2011/7/21 Niels Hoogeveen pd_aficion...@hotmail.com i made a start on this. It's not all too difficult to enhance relationships such that relationships can be created upon them, which is a first step towards supporting hypergraphs. In fact hypergraphs are more constrained than an enhanced graph that supports the creation of relationships on relationships. As it stands now, the enhanced graph can work as a drop-in replacement of the standard neo4j API and has enhanced methods that mirror the standard methods. I also added support for typed properties, such that methods like T getPropertyValuePropertyTypeT are possible where T is one of the data types supported by PropertyContainer. I will upload this within the next few days. Niels From: pd_aficion...@hotmail.com To: user@lists.neo4j.org Subject: RE: [Neo4j] Hyperedges and Objects Date: Mon, 18 Jul 2011 17:59:08 +0200 I think a hypergraph would be an interesting collection to support in neo-graph-collections. If I find the time, I will make a start with it this week, unless there are of course other volunteers :wink: willing to do the lifting here. Niels From: michael.hun...@neotechnology.com Date: Sat, 16 Jul 2011 23:37:48 +0200 To: user@lists.neo4j.org Subject: Re: [Neo4j] Hyperedges and Objects I completely agree, hyperedges and the accompanying traversers should be handled in a library. As you probably know the traversal framework currently also uses the core API under the hood to perform the traversals (and no black magic (yet)). So it should be fairly easy to take that approach/code and create a library that abstracts the hyper-edge issues (creation, deletion, traversal). The position semantics based approach sounds interesting. Would love to see that as community contribution. Cheers Michael Am 16.07.2011 um 23:08 schrieb Niels Hoogeveen: The question is how much easier a traverser can become when there were dedicated hyper edges. In a binary relation it is fairly easy to define one end of the relation as the source and the other as the target (start and end node), but in n-ary relationships the roles of the attached nodes become more complicated. Suppose we have the GIVES relationship, where one attached node takes the role of subject (the giver), one node takes the role of direct object (the gift), and another node takes the role of indirect object (the recipient). To traverse such a graph, we need to know these different roles, otherwise we may end up traversing the wrong nodes. Suppose we the following statements: John gives Paul a servant. Paul visited Albania. Paul's servant visited Albania. We now want to know all people that received a gift from John and who visited Albania. Without properly denoting the roles in the ternary relationship stated by John gives Paul a servant, the answer to the query may well be: Paul and Paul's servant. Both are persons, both have visited Albania and both are part of the GIVES relationship defined. When we have to define the exact roles of each part of an n-ary relationship for each traversal, it is just as complicated as defining a traversal based on binary relationships, where different relationship types denote the roles of each part of the n-ary relationship. If hyperedges were to be introduced, either as a library or in core, the entire notion of the graph and how traversals are performed need to be rethought. The concept of an edge as having a start and an end node doesn't translate well into the world of hyper edges. There is not necessarily a start node and an end node, instead there are various nodes that are distinctly attached to the hyper edge. One way to think about an edge in both the graph and in the hypergraph world is as a tuple. A binary relationship can be thought of as the tuple: (node1, node2, RelationshipType, Set(property)) A ternary relationship can be thought of as the tuple: (node1, node2, node3, RelationshipType, Set(property)) etc... Instead of marking a binary relationship as outgoing or incoming, we can use the position in the tuple to denote its role. We can say the first node in the tuple corresponds to the start node, and the second node in the tuple corresponds to the end node. Having two possible permutations relates to the two possible directions an edge can have. Position based definitions of relationships translate well into the domain of n-ary relationships, though the semantics of such relationships can easily become difficult. A ternary relationship already has 6 permutations for the attached nodes, while a 10-ary relationship has 3,628,800 possible permutations. It would be an interesting project to design a tuple-position-based traverser. For
Re: [Neo4j] Hyperedges and Objects
Cool Nils, where should it live? Some own package or? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Thu, Jul 21, 2011 at 8:32 PM, Niels Hoogeveen pd_aficion...@hotmail.com wrote: i made a start on this. It's not all too difficult to enhance relationships such that relationships can be created upon them, which is a first step towards supporting hypergraphs. In fact hypergraphs are more constrained than an enhanced graph that supports the creation of relationships on relationships. As it stands now, the enhanced graph can work as a drop-in replacement of the standard neo4j API and has enhanced methods that mirror the standard methods. I also added support for typed properties, such that methods like T getPropertyValuePropertyTypeT are possible where T is one of the data types supported by PropertyContainer. I will upload this within the next few days. Niels From: pd_aficion...@hotmail.com To: user@lists.neo4j.org Subject: RE: [Neo4j] Hyperedges and Objects Date: Mon, 18 Jul 2011 17:59:08 +0200 I think a hypergraph would be an interesting collection to support in neo-graph-collections. If I find the time, I will make a start with it this week, unless there are of course other volunteers :wink: willing to do the lifting here. Niels From: michael.hun...@neotechnology.com Date: Sat, 16 Jul 2011 23:37:48 +0200 To: user@lists.neo4j.org Subject: Re: [Neo4j] Hyperedges and Objects I completely agree, hyperedges and the accompanying traversers should be handled in a library. As you probably know the traversal framework currently also uses the core API under the hood to perform the traversals (and no black magic (yet)). So it should be fairly easy to take that approach/code and create a library that abstracts the hyper-edge issues (creation, deletion, traversal). The position semantics based approach sounds interesting. Would love to see that as community contribution. Cheers Michael Am 16.07.2011 um 23:08 schrieb Niels Hoogeveen: The question is how much easier a traverser can become when there were dedicated hyper edges. In a binary relation it is fairly easy to define one end of the relation as the source and the other as the target (start and end node), but in n-ary relationships the roles of the attached nodes become more complicated. Suppose we have the GIVES relationship, where one attached node takes the role of subject (the giver), one node takes the role of direct object (the gift), and another node takes the role of indirect object (the recipient). To traverse such a graph, we need to know these different roles, otherwise we may end up traversing the wrong nodes. Suppose we the following statements: John gives Paul a servant. Paul visited Albania. Paul's servant visited Albania. We now want to know all people that received a gift from John and who visited Albania. Without properly denoting the roles in the ternary relationship stated by John gives Paul a servant, the answer to the query may well be: Paul and Paul's servant. Both are persons, both have visited Albania and both are part of the GIVES relationship defined. When we have to define the exact roles of each part of an n-ary relationship for each traversal, it is just as complicated as defining a traversal based on binary relationships, where different relationship types denote the roles of each part of the n-ary relationship. If hyperedges were to be introduced, either as a library or in core, the entire notion of the graph and how traversals are performed need to be rethought. The concept of an edge as having a start and an end node doesn't translate well into the world of hyper edges. There is not necessarily a start node and an end node, instead there are various nodes that are distinctly attached to the hyper edge. One way to think about an edge in both the graph and in the hypergraph world is as a tuple. A binary relationship can be thought of as the tuple: (node1, node2, RelationshipType, Set(property)) A ternary relationship can be thought of as the tuple: (node1, node2, node3, RelationshipType, Set(property)) etc... Instead of marking a binary relationship as outgoing or incoming, we can use the position in the tuple to denote its role. We can say the first node in the tuple corresponds to the start node, and the second node in the tuple corresponds to the end node. Having two possible permutations relates to the two possible directions an edge can
[Neo4j] org.neo4j.kernel.impl.nioneo.store.InvalidRecordException while trying to delete relationships of a node, followed by a delete of the node
Hi, i'm getting the followed stack trace after trying to delete the relationships of a node, followed by the delete of the node (the goal is to remove the node from the store, which must have no relationships, before doing that). org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Record[2592] not in use at org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getRecord(RelationshipStore.java:230) at org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getRecord(RelationshipStore.java:97) at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.disconnectRelationship(WriteTransaction.java:778) at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.relDelete(WriteTransaction.java:729) at org.neo4j.kernel.impl.persistence.PersistenceManager.relDelete(PersistenceManager.java:166) at org.neo4j.kernel.impl.core.NodeManager.deleteRelationship(NodeManager.java:864) at org.neo4j.kernel.impl.core.RelationshipImpl.delete(RelationshipImpl.java:148) at org.neo4j.kernel.impl.core.RelationshipProxy.delete(RelationshipProxy.java:50) at pt.uc.dei.sdic.plugin.knowledge.neo4j.Neo4JRepository.remove(Neo4JRepository.java:1064) The code i implemented to do that is the follow: Node node = indexService.get(SDKE.FIELD_LOCAL_PATH, sdkeID).getSingle(); Transaction t = graphDb.beginTx(); try { indexService.remove(node); for(Relationship relation: node.getRelationships()) { relation.delete(); } node.delete(); t.success(); } catch (Exception e) { t.failure(); LoggerFactory.getLogger(this.getClass()).error(e.getMessage(), e); } finally { t.finish(); } Can anyone figure out a reason for it? I already read questions with similar stack traces on the mailing list, but didn't found a solution to this. Best regards, Joel Filipe Antunes Cordeiro jkorde...@gmail.com j...@student.dei.uc.pt ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Hyperedges and Objects
Good points and worth adding. Let me first finish the work I am doing now, which implements the current API and adds some methods that mirror the current API, then we can start looking at making things even niftier. Niels From: michael.hun...@neotechnology.com Date: Thu, 21 Jul 2011 20:37:52 +0200 To: user@lists.neo4j.org Subject: Re: [Neo4j] Hyperedges and Objects Perhaps we can also add to this enhanced API: * creation of nodes and rels with a initial map of properties, with optional auto-indexing of some of those properties * a getOrCreate method * fluent, chained API for creating stuff in a readable language * getRelationshipCount() * some more that I forgot :) Michael, pulling his wishlist Am 21.07.2011 um 20:32 schrieb Niels Hoogeveen: i made a start on this. It's not all too difficult to enhance relationships such that relationships can be created upon them, which is a first step towards supporting hypergraphs. In fact hypergraphs are more constrained than an enhanced graph that supports the creation of relationships on relationships. As it stands now, the enhanced graph can work as a drop-in replacement of the standard neo4j API and has enhanced methods that mirror the standard methods. I also added support for typed properties, such that methods like T getPropertyValuePropertyTypeT are possible where T is one of the data types supported by PropertyContainer. I will upload this within the next few days. Niels From: pd_aficion...@hotmail.com To: user@lists.neo4j.org Subject: RE: [Neo4j] Hyperedges and Objects Date: Mon, 18 Jul 2011 17:59:08 +0200 I think a hypergraph would be an interesting collection to support in neo-graph-collections. If I find the time, I will make a start with it this week, unless there are of course other volunteers :wink: willing to do the lifting here. Niels From: michael.hun...@neotechnology.com Date: Sat, 16 Jul 2011 23:37:48 +0200 To: user@lists.neo4j.org Subject: Re: [Neo4j] Hyperedges and Objects I completely agree, hyperedges and the accompanying traversers should be handled in a library. As you probably know the traversal framework currently also uses the core API under the hood to perform the traversals (and no black magic (yet)). So it should be fairly easy to take that approach/code and create a library that abstracts the hyper-edge issues (creation, deletion, traversal). The position semantics based approach sounds interesting. Would love to see that as community contribution. Cheers Michael Am 16.07.2011 um 23:08 schrieb Niels Hoogeveen: The question is how much easier a traverser can become when there were dedicated hyper edges. In a binary relation it is fairly easy to define one end of the relation as the source and the other as the target (start and end node), but in n-ary relationships the roles of the attached nodes become more complicated. Suppose we have the GIVES relationship, where one attached node takes the role of subject (the giver), one node takes the role of direct object (the gift), and another node takes the role of indirect object (the recipient). To traverse such a graph, we need to know these different roles, otherwise we may end up traversing the wrong nodes. Suppose we the following statements: John gives Paul a servant. Paul visited Albania. Paul's servant visited Albania. We now want to know all people that received a gift from John and who visited Albania. Without properly denoting the roles in the ternary relationship stated by John gives Paul a servant, the answer to the query may well be: Paul and Paul's servant. Both are persons, both have visited Albania and both are part of the GIVES relationship defined. When we have to define the exact roles of each part of an n-ary relationship for each traversal, it is just as complicated as defining a traversal based on binary relationships, where different relationship types denote the roles of each part of the n-ary relationship. If hyperedges were to be introduced, either as a library or in core, the entire notion of the graph and how traversals are performed need to be rethought. The concept of an edge as having a start and an end node doesn't translate well into the world of hyper edges. There is not necessarily a start node and an end node, instead there are various nodes that are distinctly attached to the hyper edge. One way to think about an edge in both the graph and in the hypergraph world is as a tuple. A binary relationship can be thought of as the tuple: (node1, node2, RelationshipType, Set(property)) A ternary relationship can be thought of as the tuple: (node1, node2, node3, RelationshipType, Set(property)) etc... Instead of marking a
Re: [Neo4j] Hyperedges and Objects
Right now I have it in org.neo4j.collections.graphdb and org.neo4j.collections.graphdb.impl, but maybe it should have a completely separate package and its own repo. Niels From: peter.neuba...@neotechnology.com Date: Thu, 21 Jul 2011 20:38:06 +0200 To: user@lists.neo4j.org Subject: Re: [Neo4j] Hyperedges and Objects Cool Nils, where should it live? Some own package or? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/- Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Thu, Jul 21, 2011 at 8:32 PM, Niels Hoogeveen pd_aficion...@hotmail.com wrote: i made a start on this. It's not all too difficult to enhance relationships such that relationships can be created upon them, which is a first step towards supporting hypergraphs. In fact hypergraphs are more constrained than an enhanced graph that supports the creation of relationships on relationships. As it stands now, the enhanced graph can work as a drop-in replacement of the standard neo4j API and has enhanced methods that mirror the standard methods. I also added support for typed properties, such that methods like T getPropertyValuePropertyTypeT are possible where T is one of the data types supported by PropertyContainer. I will upload this within the next few days. Niels From: pd_aficion...@hotmail.com To: user@lists.neo4j.org Subject: RE: [Neo4j] Hyperedges and Objects Date: Mon, 18 Jul 2011 17:59:08 +0200 I think a hypergraph would be an interesting collection to support in neo-graph-collections. If I find the time, I will make a start with it this week, unless there are of course other volunteers :wink: willing to do the lifting here. Niels From: michael.hun...@neotechnology.com Date: Sat, 16 Jul 2011 23:37:48 +0200 To: user@lists.neo4j.org Subject: Re: [Neo4j] Hyperedges and Objects I completely agree, hyperedges and the accompanying traversers should be handled in a library. As you probably know the traversal framework currently also uses the core API under the hood to perform the traversals (and no black magic (yet)). So it should be fairly easy to take that approach/code and create a library that abstracts the hyper-edge issues (creation, deletion, traversal). The position semantics based approach sounds interesting. Would love to see that as community contribution. Cheers Michael Am 16.07.2011 um 23:08 schrieb Niels Hoogeveen: The question is how much easier a traverser can become when there were dedicated hyper edges. In a binary relation it is fairly easy to define one end of the relation as the source and the other as the target (start and end node), but in n-ary relationships the roles of the attached nodes become more complicated. Suppose we have the GIVES relationship, where one attached node takes the role of subject (the giver), one node takes the role of direct object (the gift), and another node takes the role of indirect object (the recipient). To traverse such a graph, we need to know these different roles, otherwise we may end up traversing the wrong nodes. Suppose we the following statements: John gives Paul a servant. Paul visited Albania. Paul's servant visited Albania. We now want to know all people that received a gift from John and who visited Albania. Without properly denoting the roles in the ternary relationship stated by John gives Paul a servant, the answer to the query may well be: Paul and Paul's servant. Both are persons, both have visited Albania and both are part of the GIVES relationship defined. When we have to define the exact roles of each part of an n-ary relationship for each traversal, it is just as complicated as defining a traversal based on binary relationships, where different relationship types denote the roles of each part of the n-ary relationship. If hyperedges were to be introduced, either as a library or in core, the entire notion of the graph and how traversals are performed need to be rethought. The concept of an edge as having a start and an end node doesn't translate well into the world of hyper edges. There is not necessarily a start node and an end node, instead there are various nodes that are distinctly attached to the hyper edge. One way to think about an edge in both the graph and in the hypergraph world is as a tuple. A binary relationship can be thought of as the tuple: (node1, node2, RelationshipType, Set(property)) A ternary relationship
Re: [Neo4j] org.neo4j.kernel.impl.nioneo.store.InvalidRecordException while trying to delete relationships of a node, followed by a delete of the node
Was your data inserted with the BatchInserter on 1.4.M05 or 1.4.M04 or similar? 2011/7/21 Joel Cordeiro jkorde...@gmail.com Hi, i'm getting the followed stack trace after trying to delete the relationships of a node, followed by the delete of the node (the goal is to remove the node from the store, which must have no relationships, before doing that). org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Record[2592] not in use at org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getRecord(RelationshipStore.java:230) at org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getRecord(RelationshipStore.java:97) at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.disconnectRelationship(WriteTransaction.java:778) at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.relDelete(WriteTransaction.java:729) at org.neo4j.kernel.impl.persistence.PersistenceManager.relDelete(PersistenceManager.java:166) at org.neo4j.kernel.impl.core.NodeManager.deleteRelationship(NodeManager.java:864) at org.neo4j.kernel.impl.core.RelationshipImpl.delete(RelationshipImpl.java:148) at org.neo4j.kernel.impl.core.RelationshipProxy.delete(RelationshipProxy.java:50) at pt.uc.dei.sdic.plugin.knowledge.neo4j.Neo4JRepository.remove(Neo4JRepository.java:1064) The code i implemented to do that is the follow: Node node = indexService.get(SDKE.FIELD_LOCAL_PATH, sdkeID).getSingle(); Transaction t = graphDb.beginTx(); try { indexService.remove(node); for(Relationship relation: node.getRelationships()) { relation.delete(); } node.delete(); t.success(); } catch (Exception e) { t.failure(); LoggerFactory.getLogger(this.getClass()).error(e.getMessage(), e); } finally { t.finish(); } Can anyone figure out a reason for it? I already read questions with similar stack traces on the mailing list, but didn't found a solution to this. Best regards, Joel Filipe Antunes Cordeiro jkorde...@gmail.com j...@student.dei.uc.pt ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] org.neo4j.kernel.impl.nioneo.store.InvalidRecordException while trying to delete relationships of a node, followed by a delete of the node
Yes, the data was inserted with BatchInserter on 1.4M04. Joel Filipe Antunes Cordeiro jkorde...@gmail.com j...@student.dei.uc.pt 2011/7/21 Mattias Persson matt...@neotechnology.com Was your data inserted with the BatchInserter on 1.4.M05 or 1.4.M04 or similar? 2011/7/21 Joel Cordeiro jkorde...@gmail.com Hi, i'm getting the followed stack trace after trying to delete the relationships of a node, followed by the delete of the node (the goal is to remove the node from the store, which must have no relationships, before doing that). org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Record[2592] not in use at org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getRecord(RelationshipStore.java:230) at org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getRecord(RelationshipStore.java:97) at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.disconnectRelationship(WriteTransaction.java:778) at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.relDelete(WriteTransaction.java:729) at org.neo4j.kernel.impl.persistence.PersistenceManager.relDelete(PersistenceManager.java:166) at org.neo4j.kernel.impl.core.NodeManager.deleteRelationship(NodeManager.java:864) at org.neo4j.kernel.impl.core.RelationshipImpl.delete(RelationshipImpl.java:148) at org.neo4j.kernel.impl.core.RelationshipProxy.delete(RelationshipProxy.java:50) at pt.uc.dei.sdic.plugin.knowledge.neo4j.Neo4JRepository.remove(Neo4JRepository.java:1064) The code i implemented to do that is the follow: Node node = indexService.get(SDKE.FIELD_LOCAL_PATH, sdkeID).getSingle(); Transaction t = graphDb.beginTx(); try { indexService.remove(node); for(Relationship relation: node.getRelationships()) { relation.delete(); } node.delete(); t.success(); } catch (Exception e) { t.failure(); LoggerFactory.getLogger(this.getClass()).error(e.getMessage(), e); } finally { t.finish(); } Can anyone figure out a reason for it? I already read questions with similar stack traces on the mailing list, but didn't found a solution to this. Best regards, Joel Filipe Antunes Cordeiro jkorde...@gmail.com j...@student.dei.uc.pt ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] org.neo4j.kernel.impl.nioneo.store.InvalidRecordException while trying to delete relationships of a node, followed by a delete of the node
I'm sad to say that there was a bug in BatchInserter in M04 and M05 which could create some invalid relationship records. Is it a critical data set or is it easy to reinsert it with the BatchInserter of 1.4? 2011/7/21 Joel Cordeiro jkorde...@gmail.com Yes, the data was inserted with BatchInserter on 1.4M04. Joel Filipe Antunes Cordeiro jkorde...@gmail.com j...@student.dei.uc.pt 2011/7/21 Mattias Persson matt...@neotechnology.com Was your data inserted with the BatchInserter on 1.4.M05 or 1.4.M04 or similar? 2011/7/21 Joel Cordeiro jkorde...@gmail.com Hi, i'm getting the followed stack trace after trying to delete the relationships of a node, followed by the delete of the node (the goal is to remove the node from the store, which must have no relationships, before doing that). org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Record[2592] not in use at org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getRecord(RelationshipStore.java:230) at org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getRecord(RelationshipStore.java:97) at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.disconnectRelationship(WriteTransaction.java:778) at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.relDelete(WriteTransaction.java:729) at org.neo4j.kernel.impl.persistence.PersistenceManager.relDelete(PersistenceManager.java:166) at org.neo4j.kernel.impl.core.NodeManager.deleteRelationship(NodeManager.java:864) at org.neo4j.kernel.impl.core.RelationshipImpl.delete(RelationshipImpl.java:148) at org.neo4j.kernel.impl.core.RelationshipProxy.delete(RelationshipProxy.java:50) at pt.uc.dei.sdic.plugin.knowledge.neo4j.Neo4JRepository.remove(Neo4JRepository.java:1064) The code i implemented to do that is the follow: Node node = indexService.get(SDKE.FIELD_LOCAL_PATH, sdkeID).getSingle(); Transaction t = graphDb.beginTx(); try { indexService.remove(node); for(Relationship relation: node.getRelationships()) { relation.delete(); } node.delete(); t.success(); } catch (Exception e) { t.failure(); LoggerFactory.getLogger(this.getClass()).error(e.getMessage(), e); } finally { t.finish(); } Can anyone figure out a reason for it? I already read questions with similar stack traces on the mailing list, but didn't found a solution to this. Best regards, Joel Filipe Antunes Cordeiro jkorde...@gmail.com j...@student.dei.uc.pt ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] org.neo4j.kernel.impl.nioneo.store.InvalidRecordException while trying to delete relationships of a node, followed by a delete of the node
Thank you for the answer. The data set is not critical. It is easy to reinsert with the BatchInserter of 1.4. What is critical on my dataset is to keep it updated at runtime, that's why i need to add and remove nodes, and consequently their relationships. How can i solve that issue? Best regards, Joel Filipe Antunes Cordeiro jkorde...@gmail.com j...@student.dei.uc.pt 2011/7/21 Mattias Persson matt...@neotechnology.com I'm sad to say that there was a bug in BatchInserter in M04 and M05 which could create some invalid relationship records. Is it a critical data set or is it easy to reinsert it with the BatchInserter of 1.4? 2011/7/21 Joel Cordeiro jkorde...@gmail.com Yes, the data was inserted with BatchInserter on 1.4M04. Joel Filipe Antunes Cordeiro jkorde...@gmail.com j...@student.dei.uc.pt 2011/7/21 Mattias Persson matt...@neotechnology.com Was your data inserted with the BatchInserter on 1.4.M05 or 1.4.M04 or similar? 2011/7/21 Joel Cordeiro jkorde...@gmail.com Hi, i'm getting the followed stack trace after trying to delete the relationships of a node, followed by the delete of the node (the goal is to remove the node from the store, which must have no relationships, before doing that). org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Record[2592] not in use at org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getRecord(RelationshipStore.java:230) at org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getRecord(RelationshipStore.java:97) at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.disconnectRelationship(WriteTransaction.java:778) at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.relDelete(WriteTransaction.java:729) at org.neo4j.kernel.impl.persistence.PersistenceManager.relDelete(PersistenceManager.java:166) at org.neo4j.kernel.impl.core.NodeManager.deleteRelationship(NodeManager.java:864) at org.neo4j.kernel.impl.core.RelationshipImpl.delete(RelationshipImpl.java:148) at org.neo4j.kernel.impl.core.RelationshipProxy.delete(RelationshipProxy.java:50) at pt.uc.dei.sdic.plugin.knowledge.neo4j.Neo4JRepository.remove(Neo4JRepository.java:1064) The code i implemented to do that is the follow: Node node = indexService.get(SDKE.FIELD_LOCAL_PATH, sdkeID).getSingle(); Transaction t = graphDb.beginTx(); try { indexService.remove(node); for(Relationship relation: node.getRelationships()) { relation.delete(); } node.delete(); t.success(); } catch (Exception e) { t.failure(); LoggerFactory.getLogger(this.getClass()).error(e.getMessage(), e); } finally { t.finish(); } Can anyone figure out a reason for it? I already read questions with similar stack traces on the mailing list, but didn't found a solution to this. Best regards, Joel Filipe Antunes Cordeiro jkorde...@gmail.com j...@student.dei.uc.pt ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] embedded database means it cannot be simultaneously used by multiple processes?
I think this raises an important point: so it looks like, HA is better than using neo4j server then , but I thought they were both using the same way to access data, via URI and weird messy stuff :) You can use HA whether you embed Neo4j in your process or whether it's embedded within the server process. That is, HA is a completely orthogonal issue to whether you run neo4j as a network daemon (server) or host it in your application. You can have HA either way. Jim ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] org.neo4j.kernel.impl.nioneo.store.InvalidRecordException while trying to delete relationships of a node, followed by a delete of the node
Just start from a fresh database with 1.4 and you wont run into this issue... No other change required. Den torsdagen den 21:e juli 2011 skrev Joel Cordeirojkorde...@gmail.com: Thank you for the answer. The data set is not critical. It is easy to reinsert with the BatchInserter of 1.4. What is critical on my dataset is to keep it updated at runtime, that's why i need to add and remove nodes, and consequently their relationships. How can i solve that issue? Best regards, Joel Filipe Antunes Cordeiro jkorde...@gmail.com j...@student.dei.uc.pt 2011/7/21 Mattias Persson matt...@neotechnology.com I'm sad to say that there was a bug in BatchInserter in M04 and M05 which could create some invalid relationship records. Is it a critical data set or is it easy to reinsert it with the BatchInserter of 1.4? 2011/7/21 Joel Cordeiro jkorde...@gmail.com Yes, the data was inserted with BatchInserter on 1.4M04. Joel Filipe Antunes Cordeiro jkorde...@gmail.com j...@student.dei.uc.pt 2011/7/21 Mattias Persson matt...@neotechnology.com Was your data inserted with the BatchInserter on 1.4.M05 or 1.4.M04 or similar? 2011/7/21 Joel Cordeiro jkorde...@gmail.com Hi, i'm getting the followed stack trace after trying to delete the relationships of a node, followed by the delete of the node (the goal is to remove the node from the store, which must have no relationships, before doing that). org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Record[2592] not in use at org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getRecord(RelationshipStore.java:230) at org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getRecord(RelationshipStore.java:97) at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.disconnectRelationship(WriteTransaction.java:778) at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.relDelete(WriteTransaction.java:729) at org.neo4j.kernel.impl.persistence.PersistenceManager.relDelete(PersistenceManager.java:166) at org.neo4j.kernel.impl.core.NodeManager.deleteRelationship(NodeManager.java:864) at org.neo4j.kernel.impl.core.RelationshipImpl.delete(RelationshipImpl.java:148) at org.neo4j.kernel.impl.core.RelationshipProxy.delete(RelationshipProxy.java:50) at pt.uc.dei.sdic.plugin.knowledge.neo4j.Neo4JRepository.remove(Neo4JRepository.java:1064) The code i implemented to do that is the follow: Node node = indexService.get(SDKE.FIELD_LOCAL_PATH, sdkeID).getSingle(); Transaction t = graphDb.beginTx(); try { indexService.remove(node); for(Relationship relation: node.getRelationships()) { relation.delete(); -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Ask embedded neo4j database with REST api ?
Hello neo4j comunity, I want to create a plugin in netlogo http://ccl.northwestern.edu/netlogo/to access neo4j database. In this future extension of netlogo (java simulation program) i try to write custom function which help to create, delete, traverse a graph stored in an imbedded neo4j database which run in the same JVM of netlogo. For better compatibilty between netlogo and neo4j, is it possible to write REST query into netlogo in string, and transmit this query to embedded neo4j database ?? At this time, i don't know if neo4 embedded database understand / have function for parse REST query ? Ps : i don't want a neo4j server because i execute netlogo and neo4j embedded in a closed environnement, on a computer grid. Best regards, SR. -- http://stackoverflow.com/users/385881/reyman64 ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Ask embedded neo4j database with REST api ?
Why would you then use REST after all? If you want to decouple netlogo from the core Neo4j API, feel free to write a Facade that effectively encapsulates the Neo4J API publishing only what you need and only in the API format you want to support. Cheers Michael Am 21.07.2011 um 23:17 schrieb reyman: Hello neo4j comunity, I want to create a plugin in netlogo http://ccl.northwestern.edu/netlogo/to access neo4j database. In this future extension of netlogo (java simulation program) i try to write custom function which help to create, delete, traverse a graph stored in an imbedded neo4j database which run in the same JVM of netlogo. For better compatibilty between netlogo and neo4j, is it possible to write REST query into netlogo in string, and transmit this query to embedded neo4j database ?? At this time, i don't know if neo4 embedded database understand / have function for parse REST query ? Ps : i don't want a neo4j server because i execute netlogo and neo4j embedded in a closed environnement, on a computer grid. Best regards, SR. -- http://stackoverflow.com/users/385881/reyman64 ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] clean database / unit tests
Boris, Patrik, Javier, sorry that it took so long, I fixed the issues with the plugin: There were two of them - a jar-dependency that got removed around 1.4.M05 and the refusal of Auto-Indexes to be deleted. Please try and report back. Cheers Michael Am 12.07.2011 um 04:11 schrieb Boris Kizelshteyn: Did the clean remote db via REST make it into 1.4? If so how to enable? Many thanks! On Fri, Jul 8, 2011 at 10:37 AM, Jim Webber j...@neotechnology.com wrote: Hi Patrik, Michael Hunger's add-on is what you need: https://github.com/jexp/neo4j-clean-remote-db-addon I believe it'll be packaged by default with our next release (but totally disabled!). Jim On 8 Jul 2011, at 15:32, Patrik Sundberg wrote: Hi, Is there a good way to ensure I have a clean database? I'm thinking in the context of running some unit tests, I'd like to have some setup/teardown hooks that ensures a clean database for various tests. I'm thinking for a client using the REST API here. I can see how I could write a plugin that is exposed via REST that deletes all nodes and rels, was just wondering if someone has already done this? Thanks, Patrik ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Propertiy keys with slashes and spaces in REST server
Javier, I quickly tried it with curl, escaping the space to %20 and the forward slash to %2F worked just fine. Please note, that in your examples the forward slash was never escaped: my example is a/b c for both key and value. ADD: curl -i -H Content-Type:application/json -X POST -d 'http://localhost:7474/db/data/node/0;'son 'http://localhost:7474/db/data/index/node/my_nodes/a%2Fb%20c/a%2Fb%20c' GET: curl -i -H Accept:application/json 'http://localhost:7474/db/data/index/node/my_nodes/a%2Fb%20c/a%2Fb%20c' DELETE: curl -i -X DELETE 'http://localhost:7474/db/data/index/node/my_nodes/a%2Fb%20c/a%2Fb%20c/0' Cheers Michael Am 21.07.2011 um 16:32 schrieb Javier de la Rosa: On Wed, Jul 20, 2011 at 22:06, Michael Hunger michael.hun...@neotechnology.com wrote: what is the concrete error that happens if you send over that space + slash encoded property? Returned by HTTP console on Neo4j server (but the behaviour is the same in my Python client): - Regular property key: http PUT http://localhost:7373/db/sylva/node/3537/properties/pröp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == 204 No Content - Property key with spaces invalidate the URL: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr öp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == Invalid JSON data. I can fix this URL encoding the key and decoding in the client. - Property key with slahs crash the URL: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr/öp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == 404 Not Found I can fix this with safe URL encoding. - Propery key with slash and spaces: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr ö/p€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == Invalid JSON data. I'm not able to fix this becaus If a use safe URL encoding, the spaces are converted into + characters in the server, and that's not the key i want to store. Sorry for the difficulty to reproduce the bug. Regards. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Propertiy keys with slashes and spaces in REST server
I'm so sorry. The problem was a default value in a Python library for URL encoding. Thank you. On Thu, Jul 21, 2011 at 17:41, Michael Hunger michael.hun...@neotechnology.com wrote: Javier, I quickly tried it with curl, escaping the space to %20 and the forward slash to %2F worked just fine. Please note, that in your examples the forward slash was never escaped: my example is a/b c for both key and value. ADD: curl -i -H Content-Type:application/json -X POST -d 'http://localhost:7474/db/data/node/0;'son 'http://localhost:7474/db/data/index/node/my_nodes/a%2Fb%20c/a%2Fb%20c' GET: curl -i -H Accept:application/json 'http://localhost:7474/db/data/index/node/my_nodes/a%2Fb%20c/a%2Fb%20c' DELETE: curl -i -X DELETE 'http://localhost:7474/db/data/index/node/my_nodes/a%2Fb%20c/a%2Fb%20c/0' Cheers Michael Am 21.07.2011 um 16:32 schrieb Javier de la Rosa: On Wed, Jul 20, 2011 at 22:06, Michael Hunger michael.hun...@neotechnology.com wrote: what is the concrete error that happens if you send over that space + slash encoded property? Returned by HTTP console on Neo4j server (but the behaviour is the same in my Python client): - Regular property key: http PUT http://localhost:7373/db/sylva/node/3537/properties/pröp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == 204 No Content - Property key with spaces invalidate the URL: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr öp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == Invalid JSON data. I can fix this URL encoding the key and decoding in the client. - Property key with slahs crash the URL: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr/öp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == 404 Not Found I can fix this with safe URL encoding. - Propery key with slash and spaces: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr ö/p€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == Invalid JSON data. I'm not able to fix this becaus If a use safe URL encoding, the spaces are converted into + characters in the server, and that's not the key i want to store. Sorry for the difficulty to reproduce the bug. Regards. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Officially supported mechanism for J2EE
I have two projects. One is full-on J2EE using Glassfish. The other is Servlet based, using Tomcat. At this point I am not using Spring or Guice - the only injection I get is the standard J2EE injection for my beans. -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/Officially-supported-mechanism-for-J2EE-tp3176938p3189874.html Sent from the Neo4J Community Discussions mailing list archive at Nabble.com. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Officially supported mechanism for J2EE
BTW - I am willing to document what I learn in a cookbook if there are enough people with enough patience to hold my hand as I get everything running. (I wouldn't want to clog up the mail list with the hand holding - especially if I summarize it in a cookbook). -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/Officially-supported-mechanism-for-J2EE-tp3176938p3189880.html Sent from the Neo4J Community Discussions mailing list archive at Nabble.com. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Officially supported mechanism for J2EE
We can fork of the discussion to a thread at help.neo4j.org then it stays separate. I would love if you could do that. Btw. I also meant plain J2EE injection not spring or guice. Michael Am 22.07.2011 um 00:34 schrieb eialbur: BTW - I am willing to document what I learn in a cookbook if there are enough people with enough patience to hold my hand as I get everything running. (I wouldn't want to clog up the mail list with the hand holding - especially if I summarize it in a cookbook). -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/Officially-supported-mechanism-for-J2EE-tp3176938p3189880.html Sent from the Neo4J Community Discussions mailing list archive at Nabble.com. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] How often are Spatial snapshots published?
I'm looking at the Spatial sources from Git, and am seeing lots of versions of SpatialTopologyUtils.findClosestEdges that don't appear to be in the snapshot I'm downloading. For instance, public static ArrayListPointResult findClosestEdges(Point point, Layer layer) { doesn't appear to be in the snapshot build I have--that or my local cache is borken. Are these snapshots rebuilt regularly? Thanks. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Hyperedges and Objects
I uploaded the first edit (still needs to completely be tested - IS-PRE-ALPHA quality) of the enhanced API. See: https://github.com/peterneubauer/graph-collections/tree/master/src/main/java/org/neo4j/collections/graphdb The enhanced API has several new features: 1.) A new interface RelationshipContainer, supporting createRelation, getRelation, and hasRelation methods. 2.) Relationship implements RelationshipContainer so relationships to and from relationships can be created. A relationship property is maintained containing the node ID of an associated node. This node is lazily created (and with that the relationship property is set). Relationships are stored on the associated node, while properties are stored on the relationship itself. 3.) EnhancedRelationshipType implements RelationshipContainer (and with that PropertyContainer) so RelationshipTypes can have properties and relationships. A node associated with a RelationshipType is created lazily. From the reference node a RELTYPE_SUBREF relation points to a node, containing properties corresponding to RelationshipType names. The value of this property is the node ID of the RelationshipType associated node. All relationships creation to and from a EnhancedRelationshipType and all properties setting on a EnhancedRelationshipType are performed on the associated node. All retrievals are done from the associated node. The associated node is created the first time it is needed. 4.) PropertyType implements RelationshipContainer (and with that PropertyContainer). PropertyTypes can be used in getProperty, setProperty and hasProperty style operations. PropertyTypes are parameterized with the datatype of the property. This makes it possible to support methods such as: T getPropertyValue(PropertyType) and setProperty(PropertyTypeT, T) that guard property values added conform to the datatype presumed by the PropertyType and property values are returned typed. A node associated with a PropertyType is created lazily. From the reference node a PROPTYPE_SUBREF relation points to a node, which points to nodes per datatype. These datatype related nodes contain properties corresponding to PropertyType names. All relationships creation to and from a PropertyType and all properties setting on a PropertyType are performed on the associated node. All retrievals are done from the associated node. The associated node is created the first time it is needed. 5.) GraphDatabaseService allows for the lookup of PropertyTypes and RelationshipTypes and enhanced Nodes and Relationships. 6.) Property implements RelationshipContainer (and with that PropertyContainer). //TODO A node associated to a property is created lazily, allowing properties to have relationships and properties. The associated node is created the first time it is needed. With these enhancements, all elements of Neo4j (Node, Relationship, RelationshipType, property name and property value) are unified, sharing a common interface RelationshipContainer (and with that PropertyContainer). Node and Relationship also extend their original interfaces, so the API is a drop-in replacement for the original API. Both ProperyType and RelatioshipType now provide the necessary methods to implement a type/class system on top of Neo4j, but nothing imposes a type/class system. Being able to create Relationships to and from Relationships opens the way to a transparent implementation of n-ary relationships. This is all neat, I believe, but I would be really happy if there could be some support in core to hide the implementation a bit more. Now: 1.) Relationships can have a property containing the node ID of the associated node. This polutes the namespace, so it would be better if there were a setLong and getLong method on Relationship, where the node ID can be stored, keeping the property name away from the property namespace. 2.) Named persistent maps from String to PropertyContainer. This would eliminate the REL_SUBREF related node and the PROP_SUBREF related nodes. It would be nice if these enhancements didn't polute the node space. Named persistent maps from String to PropetyContainer would also be helpful for fast lookup of uris and generally for the creation of unique keys. Niels Date: Thu, 21 Jul 2011 20:38:15 +0200 From: matt...@neotechnology.com To: user@lists.neo4j.org Subject: Re: [Neo4j] Hyperedges and Objects Niels, sounds like fun. Looking forward to get a look at this 2011/7/21 Niels Hoogeveen pd_aficion...@hotmail.com i made a start on this. It's not all too difficult to enhance relationships such that relationships can be created upon them, which is a first step towards supporting hypergraphs. In fact hypergraphs are more constrained than an enhanced graph that supports the creation of relationships on relationships. As it stands now, the enhanced graph can work as a drop-in replacement of the standard neo4j API
Re: [Neo4j] how many relationships?
Hey, btw, the issue was fixed: https://trac.neo4j.org/ticket/356#comment:1 However, github didn't yet sync the git-readonly (ie. git:// github.com/neo4j/community.git ) and looks like I am 3-4 days back, since my HEAD is at: Minor fix to the cypher/identifiers section. https://github.com/neo4j/community/commit/dc260c269ae4e09362ada181d7b9a42e6c86560e nawroth https://github.com/nawroth (author) 3 days ago as seen here: https://github.com/neo4j/community/commits/master/ I guess that is why you didn't say anything yet (because me fetching from git would not be able to get the fix yet, 3 more days geezuz xD) Anyway, I'm only saying this just in case you were not aware this was fixed (apparently by someone else) and you were still working on it. Sorry, I already had made a ticket about this before you last replied. Thank you all, can't wait to test :) On Thu, Jul 21, 2011 at 12:13 PM, Michael Hunger michael.hun...@neotechnology.com wrote: We're already on it. Looking through the causes for that issue and will keep you and everyone else informed. Michael Am 21.07.2011 um 06:52 schrieb cyuczi eekc: about this, should I create an issue? ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] how many relationships?
github has no separate repo for tge readonly url most probably your git pull failed due to local changes git stash them or use git pull --rebase Michael mobile mail please excuse brevity and typos Am 22.07.2011 um 04:32 schrieb cyuczi eekc cyuczie...@gmail.com: Hey, btw, the issue was fixed: https://trac.neo4j.org/ticket/356#comment:1 However, github didn't yet sync the git-readonly (ie. git:// github.com/neo4j/community.git ) and looks like I am 3-4 days back, since my HEAD is at: Minor fix to the cypher/identifiers section. https://github.com/neo4j/community/commit/dc260c269ae4e09362ada181d7b9a42e6c86560e nawroth https://github.com/nawroth (author) 3 days ago as seen here: https://github.com/neo4j/community/commits/master/ I guess that is why you didn't say anything yet (because me fetching from git would not be able to get the fix yet, 3 more days geezuz xD) Anyway, I'm only saying this just in case you were not aware this was fixed (apparently by someone else) and you were still working on it. Sorry, I already had made a ticket about this before you last replied. Thank you all, can't wait to test :) On Thu, Jul 21, 2011 at 12:13 PM, Michael Hunger michael.hun...@neotechnology.com wrote: We're already on it. Looking through the causes for that issue and will keep you and everyone else informed. Michael Am 21.07.2011 um 06:52 schrieb cyuczi eekc: about this, should I create an issue? ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user