Tag: neo4j

将猫头鹰映射到neo4j(java示例)

我想将本体从OWL映射到Neo4j数据库。 我在这里找到了一些例子。 如果我理解得很好,我需要创建包含OWL API库的Java程序。 我不需要任何推理引擎(根据这个: 从OWL本体映射到Neo4j图数据库 )。 我在Eclipse中创建了项目添加OWL API(和oboformat)库并粘贴代码 private void importOntology(OWLOntology ontology) throws Exception { OWLReasoner reasoner = new Reasoner(ontology); if (!reasoner.isConsistent()) { logger.error(“Ontology is inconsistent”); // Throw your exception of choice here throw new Exception(“Ontology is inconsistent”); } Transaction tx = db.beginTx(); try { … } } 我有一个错误:新推理(本体); – 没有类推理器,我不明白我是否需要使用像Hermit或Pellet这样的推理器推理引擎? 我在行Transaction tx = […]

Cineasts的错误Spring数据neo4j的例子

我将cineast maven项目导入eclipse,但我面临配置问题…… cvc-complex-type.4: Attribute ‘base-package’ must appear on element ‘neo4j:config’ 以下是出现此错误的配置文件。 applicationContext.xml中 电影测试的context.xml

禁用Neo4j图形数据库的锁定?

我的应用程序在/tmp/import.db填充Neo4j图形数据库。 除了我的unit testing,我还想使用Neo4j浏览器(AKA Neo4j社区)在同一个数据库中进行一些挖掘。 当浏览器运行时,我的应用程序在运行时崩溃,因为它被锁定的数据库: Exception in thread “main” java.lang.RuntimeException: Error starting org.neo4j.kernel.EmbeddedGraphDatabase, /tmp/import.db at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:330) at org.neo4j.kernel.EmbeddedGraphDatabase.(EmbeddedGraphDatabase.java:63) at org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:92) at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:198) at org.neo4j.graphdb.factory.GraphDatabaseFactory.newEmbeddedDatabase(GraphDatabaseFactory.java:69) at no.marcello.cmdb.Import.(Import.java:34) at no.marcello.cmdb.Main.main(Main.java:10) Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component ‘org.neo4j.kernel.StoreLockerLifecycleAdapter@5d20e46’ was successfully initialized, but failed to start. Please see attached cause exception. at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:509) at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:307) … 6 more Caused […]

Neo4j SPARQL-plugin REST用法

我试图通过使用REST API在我的neo4j数据库上运行SPARQL查询。 为了获得SPARQL端点,我安装了Noe4j SPARQL插件( https://github.com/neo4j-contrib/sparql-plugin )。 我的系统现在公开了这些sparql-endpoints: http://localhost:7474/db/data/ext/SPARQLPlugin/graphdb/insert_quad http://localhost:7474/db/data/ext/SPARQLPlugin/graphdb/execute_sparql 我试图使用sencond执行查询。 HTTP POST请求应该与http://neo4j-contrib.github.io/sparql-plugin/中的 “示例2”类似,但查询稍微容易一些。 这是源代码: private static final String ENDPOINT = “http://localhost:7474/db/data/ext/SPARQLPlugin/graphdb/execute_sparql”; private static String query = “SELECT ?x WHERE {?x ?y ?z} LIMIT 5”; public static void main(String[] args) { try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(ENDPOINT); // Request parameters […]

增加JVM可用的堆空间:OutOfMemoryError:请求的数组大小超过VM限制Ubuntu 64Bit Neo4j 2.0

我的规格: -Ubuntu 64bit -Neo4j 2.0 -32 GB的Ram -AMD FX-8350八核处理器 问题: 我正在使用以下查询向我的Neo4j服务器发出请求: MATCH (being:my_label_2) RETURN being 并给我这个错误: OutOfMemoryError Requested array size exceeds VM limit StackTrace: java.lang.StringCoding$StringEncoder.encode(StringCoding.java:300) java.lang.StringCoding.encode(StringCoding.java:344) java.lang.String.getBytes(String.java:916) org.neo4j.server.rest.repr.OutputFormat.toBytes(OutputFormat.java:194) org.neo4j.server.rest.repr.OutputFormat.formatRepresentation(OutputFormat.java:147) org.neo4j.server.rest.repr.OutputFormat.response(OutputFormat.java:130) org.neo4j.server.rest.repr.OutputFormat.ok(OutputFormat.java:67) org.neo4j.server.rest.web.CypherService.cypher(CypherService.java:101) java.lang.reflect.Method.invoke(Method.java:606) org.neo4j.server.rest.transactional.TransactionalRequestDispatcher.dispatch(TransactionalRequestDispatcher.java:139) org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112) 这适用于“my_label_1”,返回大约30k的结果 我认为是问题所在: 我没有足够的内存分配给我的JVM 尝试修复/我在网上找到的东西: 我阅读了手册所说的内容 Ubuntu论坛说要做什么 所以我试着去我的neo4文件夹(像往常一样使用cd)并以这种方式运行它: sudo bin/neo4j start -Xmx4096M 但是那没用。 当Neo4j启动时它确实警告我,我可能没有足够的空间: WARNING: Max 1024 open files allowed, minimum […]

在有限的时间内进行多个查询的最佳解决方案

对于MORPG Hack’n’Slash游戏,我目前正在使用Neo4j,其模式如下: 我有一个Neo4J连接器类,创建我的连接并实现Singleton,每个xxxMapper类使用此实例,调用Neo4jConnetor.getInstance()。query(String query),它返回queryresult的迭代器。 Atm我问自己一个问题,游戏每秒会有大量的查询(比如每秒每位玩家5次)。 所以我不知道,就perfs而言,使用哪种模式,如果我应该继续使用我的Singleton系统或使用另一个像Neo4jConnector池或其他我还不知道的东西。 这是连接器类: public class Neo4jConnector{ private String urlRest; private String url = “http://localhost:7474″; protected QueryEngine engine; protected static Neo4jConnector INSTANCE = new Neo4jConnector(); private Neo4jConnector(){ urlRest = url+”/db/data”; final RestAPI graphDb = new RestAPIFacade(urlRest); engine = new RestCypherQueryEngine(graphDb); } public static Neo4jConnector getInstance(){ if (INSTANCE == null) { INSTANCE = […]

TransactionEventHandler在Node.setProperty()上给出javax.transaction.SystemException

我正在尝试实现一个类似于neo4j-versioning中使用的TransactionEventHandler ,以便创建一个时间机器样式,版本化的Neo4j数据库,现在使用Neo4j 2.x. 它失败并带有以下无限堆栈跟踪: javax.transaction.SystemException: TM has encountered some problem, please perform necessary action (tx recovery/restart) at org.neo4j.kernel.impl.transaction.TxManager.assertTmOk(TxManager.java:349) at org.neo4j.kernel.impl.transaction.TxManager.setRollbackOnly(TxManager.java:758) at org.neo4j.kernel.TransactionEventHandlers.beforeCompletion(TransactionEventHandlers.java:120) at org.neo4j.kernel.impl.core.TransactionEventsSyncHook.beforeCompletion(TransactionEventsSyncHook.java:68) at org.neo4j.kernel.impl.transaction.TransactionImpl.doBeforeCompletion(TransactionImpl.java:368) at org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:398) at org.neo4j.kernel.impl.core.IsolatedTransactionTokenCreator.getOrCreate(IsolatedTransactionTokenCreator.java:61) at org.neo4j.kernel.impl.core.TokenHolder.createToken(TokenHolder.java:114) at org.neo4j.kernel.impl.core.TokenHolder.getOrCreateId(TokenHolder.java:102) at org.neo4j.kernel.impl.api.store.DiskLayer.propertyKeyGetOrCreateForName(DiskLayer.java:367) at org.neo4j.kernel.impl.api.store.CacheLayer.propertyKeyGetOrCreateForName(CacheLayer.java:370) at org.neo4j.kernel.impl.api.StateHandlingStatementOperations.propertyKeyGetOrCreateForName(StateHandlingStatementOperations.java:939) at org.neo4j.kernel.impl.api.DataIntegrityValidatingStatementOperations.propertyKeyGetOrCreateForName(DataIntegrityValidatingStatementOperations.java:67) at org.neo4j.kernel.impl.api.OperationsFacade.propertyKeyGetOrCreateForName(OperationsFacade.java:397) at org.neo4j.kernel.impl.core.NodeProxy.setProperty(NodeProxy.java:205) … 这是我的测试: @Test public void test() { GraphDatabaseService graphDb […]

确定Neo4j数据库版本

当我打电话时,Neo4j Java API会自动将过时的数据库更新为当前版本 new GraphDatabaseFactory().newEmbeddedDatabase(File storeDir) 我想在执行此操作之前检查数据库的版本。 有没有办法用Java API做到这一点? 或者:存储数据库版本在哪里,以便我可以手动读出它?

启用非托管扩展配置后,Neo4J服务器启动错误

我在Windows OS 10上使用Neo4J社区版2.3.0。一切正常,直到我将neo4j-server.properties文件的配置更改为: org.neo4j.server.thirdparty_jaxrs_classes=org.neo4j.examples.server.unmanaged=/examples/unmanaged 服务器启动时的错误是: 启动Neo4j失败:org.neo4j.server.web.NeoServletContainer-5b85e832 @ 73766070 == org.neo4j.server.web.NeoServletContainer,-1,false 如果我禁用此更改,则服务器启动非常好。 我正在尝试运行Neo4J教程中给出的非托管扩展的HelloWorld示例,并按照所有说明操作。 用于构建Jar的Java编译器是1.7,我正在使用STS工具。 早期的反应会很有帮助。 控制台日志如下 [onsdLifecycleManagingDatabase] Successfully started database 2016-01-04 16:49:08.036+0530 INFO [onsCommunityNeoServer] Starting HTTP on port 7474 (4 threads available) 2016-01-04 16:49:08.038+0530 INFO [onsmThirdPartyJAXRSModule] Mounted unmanaged extension [org.neo4j.examples.server.unmanaged] at [/examples/unmanaged] 2016-01-04 16:49:08.039+0530 INFO [onswJetty9WebServer] Mounting static content at /webadmin 2016-01-04 16:49:08.040+0530 INFO [onswJetty9WebServer] Mounting […]

Gremlin获取所有传入和传出的顶点,包括它们的边缘和方向

我花了一个星期在Gremlin shell尝试编写一个查询来获取所有传入和传出的顶点,包括它们的边缘和方向。 我尝试了一切。 gV(“name”,”testname”).bothE.as(‘both’).select().back(‘both’).bothV.as(‘bothV’).select(){it.map()} 我需要的输出是(只是示例结构): [V { ‘名称’: “测试名”}] ___ [啉{edge_name: “nameofincomingedge”}] ____ [V {名称: ‘nameofconnectedvertex’] [V { ‘名称’: “测试名”}] ___ [欧特{edge_name: “nameofoutgoingedge”}] ____ [V {名称: ‘nameofconnectedvertex’] 所以我只想获得1)具有确切名称的所有顶点,每个顶点的边缘(包括inE或outE类型)和连接的Vertex。 理想情况下,我想得到他们的map()所以我得到完整的对象属性。 我不关心输出风格,我只需要所有信息,所以我可以用它来操纵它。 我需要这个训练我的Gremlin,但欢迎Neo4j的例子。 谢谢!