{"id":19297514,"url":"https://github.com/grapheco/interactivegraph-neo4j","last_synced_at":"2025-09-01T03:36:23.176Z","repository":{"id":30276658,"uuid":"120999359","full_name":"grapheco/InteractiveGraph-neo4j","owner":"grapheco","description":"a graph server serves backend neo4j, virtosuo as an InteractiveGraph","archived":false,"fork":false,"pushed_at":"2022-05-20T20:47:18.000Z","size":5243,"stargazers_count":114,"open_issues_count":10,"forks_count":40,"subscribers_count":11,"default_branch":"master","last_synced_at":"2023-11-07T15:40:43.422Z","etag":null,"topics":["graph","interactivegraphprotocol","neo4j"],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grapheco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-02-10T08:43:53.000Z","updated_at":"2023-08-15T03:19:50.000Z","dependencies_parsed_at":"2022-07-28T01:17:18.300Z","dependency_job_id":null,"html_url":"https://github.com/grapheco/InteractiveGraph-neo4j","commit_stats":null,"previous_names":[],"tags_count":4,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grapheco%2FInteractiveGraph-neo4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grapheco%2FInteractiveGraph-neo4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grapheco%2FInteractiveGraph-neo4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grapheco%2FInteractiveGraph-neo4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grapheco","download_url":"https://codeload.github.com/grapheco/InteractiveGraph-neo4j/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223893163,"owners_count":17220834,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graph","interactivegraphprotocol","neo4j"],"created_at":"2024-11-09T23:05:10.958Z","updated_at":"2024-11-09T23:05:11.509Z","avatar_url":"https://github.com/grapheco.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# InteractiveGraph-neo4j\n\n[![GitHub releases](https://img.shields.io/github/release/grapheco/InteractiveGraph-neo4j.svg)](https://github.com/grapheco/InteractiveGraph-neo4j/releases)\n[![GitHub downloads](https://img.shields.io/github/downloads/grapheco/InteractiveGraph-neo4j/total.svg)](https://github.com/grapheco/InteractiveGraph-neo4j/releases)\n[![GitHub issues](https://img.shields.io/github/issues/grapheco/InteractiveGraph-neo4j.svg)](https://github.com/grapheco/InteractiveGraph-neo4j/issues)\n[![GitHub forks](https://img.shields.io/github/forks/grapheco/InteractiveGraph-neo4j.svg)](https://github.com/grapheco/InteractiveGraph-neo4j/network)\n[![GitHub stars](https://img.shields.io/github/stars/grapheco/InteractiveGraph-neo4j.svg)](https://github.com/grapheco/InteractiveGraph-neo4j/stargazers)\n[![GitHub license](https://img.shields.io/github/license/grapheco/InteractiveGraph-neo4j.svg)](https://github.com/grapheco/InteractiveGraph-neo4j/blob/master/LICENSE)\n\nInteractiveGraph-neo4j serves GSON files(see https://github.com/grapheco/InteractiveGraph#GSON), Neo4j databases, RDF stores as `InteractiveGraph` providers, it generates `InteractiveGraph`s for remote frontend `InteractiveGraph` clients on demand. Known `InteractiveGraph` clients includes GraphNavigator, GraphBrowser, and RelFinder (see https://github.com/grapheco/InteractiveGraph).\n\nThe interaction architecture looks like:\n![architecture](./arch.png)\n\n# Quick Start\n\n1. download latest `graphserver.war` and `igraph.war` file from release page: https://github.com/grapheco/InteractiveGraph-neo4j/releases  and https://github.com/grapheco/InteractiveGraph/releases \n\n`graphserver.war`: graph server app\n`igraph.war`: interactive graph clients, including GraphNavigator, GraphBrowser, and RelFinder.\n\n1. move war files into your `webapps` folder of Web server (Tomcat, for example)\n\n1. start Web server, we assume the web app url is http://yourhost:8080\n\n1. explore InteractiveGraph/GraphBrowser in Web browser:\n```\nhttp://yourhost:8080/igraph/example12.html\n```\n\n# Accessing servers in InteractiveGraph apps\n\n1. If you are using a remote graph app, GraphBrowser, for example. To access IGP servers, you may click the `load remote IGP server` tool, in the dialog input connector url like: `http://yourhost:8080/graphserver/connector-gson`, InteractiveGraph/GraphBrowser will load and visualize graph from graphserver.\n\n![architecture](./igptool.png)\n\n1. To access IGP servers programmly, you may use `app.connect()` method. Here is an example:\n```\n    var app = new igraph.GraphNavigator(document.getElementById('graphArea'));\n    app.connect(\"http://yourhost:8080/graphserver/connector-neodb\");\n```\n\nNOTE: `graphserver` provides 3 servlets: `/connector-gson`, `/connector-bolt`, `/connector-neodb`. Because the `/connector-bolt` depends on `/connector-neodb`, so note that `/connector-neodb` should be accessed before accessing `/connector-bolt`.\n\n# Configuration\n\nInterativeGraphServer is able to connect several kinds of backend data sources: `neo4j-gson`, `neo4j-db`, `neo4j-bolt`.\n\n## web.xml\n\n`ConnectorServlet`s should be defined in web.xml. Each servlet requires a `configFile` parameter:\n\n```\n    \u003cservlet\u003e\n        \u003cservlet-name\u003econnector3\u003c/servlet-name\u003e\n        \u003cservlet-class\u003eorg.interactivegraph.server.ConnectorServlet\u003c/servlet-class\u003e\n        \u003cinit-param\u003e\n            \u003cparam-name\u003econfigFile\u003c/param-name\u003e\n            \u003cparam-value\u003eWEB-INF/conf3.properties\u003c/param-value\u003e\n        \u003c/init-param\u003e\n    \u003c/servlet\u003e\n    \u003cservlet-mapping\u003e\n        \u003cservlet-name\u003econnector3\u003c/servlet-name\u003e\n        \u003curl-pattern\u003e/connector-gson\u003c/url-pattern\u003e\n    \u003c/servlet-mapping\u003e\n```\n\nHere, a `connector1` is defined with a configuration file `conf3.properties`, it responds to clients when requested as `http://yourhost/graphserver/connector-gson`.\n\n\u003ca href='web/WEB-INF/web.xml'\u003eexample web.xml\u003c/a\u003e\n\n## configuration file\n\nConfiguration files are written in properties file format, there are some common properties and other specific properties according to different backend kinds.\n\n### common properties\n|name|description|type|example|\n|-|-|-|-|\n|allowOrigin|allowed domains, `*` means allow all remote clients|string|`http://192.168.1.1:8080` |\n|backendType|backend source type|one of `neo4j-gson`, `neo4j-bolt` or `neo4j-db` | neo4j-gson |\n|neo4j.nodeCategories|categories of nodes in name/title pair format|  | person:人物,event:事件,location:地点 |\n|visNodeProperty.label|an expression to be evaluated as caption of a visualized node|string as a VelocityExpr, if it starts with a `=` then it is a Velocity expression, else it is a Velocity template, see http://velocity.apache.org/engine/devel/vtl-reference.html| `=$prop.name`, or `#if($prop.name) $prop.name #else \u003cempty\u003e #end`|\n|visNodeProperty.value|an expression to be evaluated as value (size) of a visualized node | string as a VelocityExpr | `=$prop.value` |\n|visNodeProperty.image|an expression to be evaluated as path of image of a visualized node | string as a VelocityExpr | `=$prop.image`, or `http://.../images/${prop.id}` |\n|visNodeProperty. info|an expression to be evaluated as HTML-formated infomation (description in detailed) of a visualized node | string as a VelocityExpr | `\u003cp align=center\u003e #if($prop.image) \u003cimg width=150 src=\"${prop.image}\"\u003e\u003cbr\u003e #end \u003cb\u003e${prop.name}[${prop.id}]\u003c/b\u003e\u003c/p\u003e\u003cp align=left\u003e${node.info}\u003c/p\u003e` |\n|neo4j.regexpSearchFields|fields used to perform a full text search|string array sperated by , | name,address |\n|neo4j.strictSearchFields|strict match fields mapping|array of : sperated pairs, for example: `label:name`, this tells search information in `name` property when asked to search in `label` property,   | label:name |\n\n#### backendType=neo4j-bolt\n\n|name|description|type|example|\n|-|-|-|-|\n|neo4j.boltUrl|url of bolt server|string|`bolt://localhost:7688` |\n|neo4j.boltUser|user acount|string | admin |\n|neo4j.boltPassword|user password|string | admin |\n\n\u003ca href='web/WEB-INF/conf1.properties'\u003eexample properties file\u003c/a\u003e\n\n#### backendType=neo4j-db\n\n|name|description|type|example|\n|-|-|-|-|\n|neo4j.dataDir|file path of a neo4j database, often in `\u003cneo4j-home\u003e/data/databases/` |string | `WEB-INF/databases/data.db` |\n|neo4j.boltPort|a bolt server will be startup on the database, this parameter specify the port of bolt server|number | 7689 |\n\n\u003ca href='web/WEB-INF/conf2.properties'\u003eexample properties file\u003c/a\u003e\n\n#### backendType=neo4j-gson\n\n|name|description|type|example|\n|-|-|-|-|\n|gson.path|relative/abslute path of GSON file|string|`WEB-INF/honglou.json` |\n|gson.tempDir|a temporary database will be created for the GSON file, this parameter specify where we create the database |string | `/dev/shm`, or `/tmp` |\n|neo4j.boltPort| a bolt server will be startup on the temporary database, this parameter specify the port of bolt server | 7689 |\n\n\u003ca href='web/WEB-INF/conf3.properties'\u003eexample properties file\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrapheco%2Finteractivegraph-neo4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrapheco%2Finteractivegraph-neo4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrapheco%2Finteractivegraph-neo4j/lists"}