Coder Social home page Coder Social logo

neo4j-bloom's Introduction

neo4j-bloom

A public repository for informal docs, problem reporting and content sharing related to Neo4j Bloom.

neo4j-bloom's People

Contributors

akollegger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

neo4j-bloom's Issues

Bloom not seeing correct property type listed in Browser

Problem: When a property type is set to Long, Bloom sees it (and all other types as string)

Description: I loaded my data and set the property type to be an integer using the toInteger function but when trying to have Bloom resize the Nodes to the range of data in that property, it see that integer property as a string not a `Long'

Screenshot of browser showing type for raised_amount_usd for node Round:
image

Screenshot of type Bloom is reporting in RuleBased symbology dropdown:
image

Steps to reproduce:

  1. Load attached data using following command: LOAD CSV WITH HEADERS FROM "file:/rounds.csv" AS line MERGE (:ROUND {raised_amount_usd:toInteger(line.raised_amount_usd)})
  2. Issues following command to ensure field is set to Long (this is done because the LOAD_CSV will make the property a dual type ([Long],[String]) when using the toInteger function):
    MATCH (n:ROUND) SET n.raised_amount_usd = toInteger(n.raised_amount_usd) RETURN n.raised_amount_usd
  3. Issue following command to view if type is Long: call db.schema.nodeTypeProperties
  4. Open Bloom and create a new Perspective by searching for ROUND node
  5. Try to apply a rule-based symbology to change the size of the node to be based on the raised_amount_usd

Bloom will not let you because it thinks it is a string

Versions

  • Neo4j db: 4.04
  • Neo4j Browser: 4.0.8
  • Neo4j Desktop 1.2.8
  • Bloom: 1.3.1

Sample Data:
rounds.zip

"Import project from file" does not work

"Import project from file" does not work: it results in a new project with .json files, not a new project with the perspectives and db already set up.

To reproduce:

  1. Create some perspective in Bloom
  2. "Experimental features" > "Export all perspectives"
  3. Now try and import this .zip file in Bloom: CTRL+I

Result: in Neo Desktop a new project is added with .json file(s) - no way to open these as a Bloom perspective

Expected: perspective(s) added to Bloom

Neo4J Desktop (WIndows) 1.3.11

Relationship CRUD

Re. Create / Update / Delete of relationship

  • How do you specify order of relationship (only one way is ever available until you create that relationship and then the order way is available from menu) -e.g with nodes A & B "Connect A to B" but no way to get "Connect B to A"
  • How do you delete a relationship?
  • How do you add properties to a relationship?

Extend node menu

Hi,

I would like to be able to extend the right-button-click menues for nodes. My data origins from different sources that are available trough URLs. Based on eg the node type I would like to construct a parameterised URL containing selected node properties and have a menu item with a friendly name.

Example:
Node type: PCAclass
Attribute idPCA: RDS1008629

Nodes of type "PCAclass" should have a menu item "PCA Definition"

Behind the scenes the URL should be constructed like this:
http://data.posccaesar.org/rdl/RDS1008629

and when clicked, the url is opened in the default browser.

A simpler alternative would be to allow a attribute type URL that could be clicked in the Inspect-taskpane

Regards,
Bent

Expand nodes when zoomin in

I'm currently looking for an option to explore huge graphs more intuitive. I really like the visualization of Bloom and I thougt about the feature to automatically expand neigboured nodes and relations when zooming in (maybe while the mouse hovers over the desired node). Like an equivalent of zooming on a geographical map: the further u zoom in - the more detailes u receive of the specific area without the need to manually expanding a node. Is there any already excisting implementation that I missed? Else I would really appreciate a feature like that.

Relationships not drawn

I've worked quite a lot with Neo4j Bloom lately. It works great. But there are some strange things happening.

Relationships are not drawn consistently. I think I've found the minimal scenario to run into this issue.

  • Run a pattern query.
    • Result is shown correctly.
  • select all (CMD + A)
  • hide all (CMD + H)
  • run same patthern
    • Nodes are shown, relationships not
  • refresh the application (CMD + R)
    • Result is shown correctly

Versions:
Bloom: 1.0.1
Neo4j: 3.4.1 Enterprise
OS: OSX (Have the feeling that on Ubuntu there are more scenarios to run into this)

deep link URLs for search phrases doesnt clear output of older searches

We have created deep link URLs for search phrases in Bloom , but whenever those URLs are opened it doesn't clears the output of earlier history results from output screen of bloom.
so what I have to do go to search box press enter to get fresh output of that particular search phrase ,which then works fine, but clearing old output is very much needed.

Bloom Perspective ICONs and Text settings are not setting permanently

Bloom Perspective settings done by me are not same if I access it from another browser or from another session or from another system.
lets say I have done some settings for ICONs in EDIT MODE for nodes under one_perspective though I am referring to the same perspective but trying to access it from another system rest all settings of NODES are as it is but ICONs are not visible

Bolt connection on non-default port - different behavior between neo4j server and desktop

To avoid opening neo4j ports on firewall, I'm trying to use nginx to port forward port 80 traffic to neo4j. This works in browser but not in Desktop

ie.
project-neo4j.domain.com:80 to local neo4j server on 7474
project-bolt.domain.com:80 to local neo4j server on 7687

So I can then access browser via web server on

http://project-neo4j.domain.com/browser/

once I've changed Connect URL to
bolt://project-bolt.domain.com:80

(default port not accessible through firewall but this works)

HOWEVER in Bloom you get this error if you specify a different port

ServiceUnavailable: WebSocket connection failure. Due to security constraints in your web browser, the reason for the failure is not available to this Neo4j Driver. Please use your browsers development console to determine the root cause of the failure. Common reasons include the database being unavailable, using the wrong connection URL or temporary network problems. If you have enabled encryption, ensure your browser is configured to trust the certificate Neo4j is configured to use. WebSocket readyState is: 3

Ideally what I'd like to do is configure the server so that the default settings specify my non-standard ports in the connection settings in the client WITHOUT changing the server's listening ports (which I haven't changed from the defaults).

Enable a Dark mode for Bloom

Most modern applications now have a Dark mode. It would be a nice enhancement to allow users to switch to Dark mode

Feature Request: Option to expand nodes based on Search phrases

In some cases you would want to expand a node based on a query defined in a Search phrase. It would be great if that could be done through the expand menu on the node. The Search phrases relevant to a node could be determined by the input options to a Search phrase.

Cannot use LOAD CSV in created search

Hi

I have been trying to find a way to restore a session in bloom, i.e. have some way for the user to pull up the graph they have created without having to manually recreate it. Since I saw no integrated way to do this (please correct me if I am wrong), I thought I could do so by creating a custom cypher search to load the exported CSV file. I placed the export file 'bloom-relationships-export.csv' in the import folder and the following code executed in the browser does what i want it to:

LOAD CSV FROM 'file:///bloom-relationships-export.csv' AS line MATCH (n1) - [r] - (n2) WHERE ID(r) = toInteger(line[0]) RETURN n1,n2,r

However, when I make a custom search in bloom and use the exact same chunk of code, I get the following error:

AN ERROR OCCURRED WHILE EXECUTING SEARCH: Unexpected end of input: expected '\', ANY or ''' (line 4, column 32 (offset: 110)) "RETURN n1,n2,r SKIP 0 LIMIT 500"

I assume additional code is being appended to the executed code chunk, could this be causing errors? Can this code even be run in bloom?

Information about releases not available

Dear Neo4j-bloom developers,

Today Neo4j informed me of a new version of Neo4j-bloom.
This new version solved a bug related to making connection and having short time outs.

I installed this version, yet I am no longer able to reread the text.

Also on this website, I can find no information on version 1.6.2.
version 1.6.1 seems to be the latest version according to this link: https://github.com/neo4j-devtools/neo4j-bloom/releases

For Neo4j I can query the release notes in the tool:
image
image

I would like to have the same functionality for Neo4j-bloom.
Somewhere in this menu:
image

Thanks in advance!

Greetings,
Pierre

Issues with search bar suggestions after turning on "case insensitive search and suggestions" and creating full-text indexes

After turning on "case insensitive search and suggestions" and creating full-text indexes, there are issues with the suggestions in the search bar. In many instances where there should be clear matches, suggestions do not appear.

Full text indexes were created like this:
CALL db.index.fulltext.createNodeIndex("nameIndex", ["Name"], ["name"]);

If I then search this index using Cypher for a specific name, it returns correctly:
e.g. CALL db.index.fulltext.queryNodes('nameIndex', 'first5lettersofname')

But typing these same 5 letters in the Bloom search bar does not result in this name being shown as a suggestion.

Bloom 1.6, Neo4j 4.1.3

Feature Request: Ability to narrow down a scene with a search

Currently, when I submit multiple consecutive searches, bloom's default behavior is to expand the scene to show all nodes returned by any of my searchers (like a boolean OR).

In many cases, I would like to start with a more general search (e.g., all directors) and then start searches that narrow down the scene (e.g., that have directed movies after 2020), like a boolean AND.

Deeplinks fail to work

Hi,

ever since an upgrade to Neo4j Desktop 1.3.8 I cannot get deep links into Bloom to work. The database version is 4.1.1. Here are some of the deep link examples I have been using:
neo4j://graphapps/neo4j-bloom/%5b?search=MRG002&perspective=NewFoundation%5d
neo4j://graphapps/neo4j-bloom/%5b?search=Event%20by%2024734&perspective=NewFoundation%5d
neo4j://graphapps/neo4j-bloom/%5b?search=SourceReference%20by%2024726&perspective=NewFoundation%5d

Pre-defined searches in Bloom work fine, but just cannot get them to initiate via a hyperlink.

Any idea what might wrong here? Am I doing something wrong? Was hoping the latest upgrade would solve the issues, but it didn't. Any help is appreciated.

Wolfgang - Live Data Concepts

Problem using Bloom in docker

Hi, I am trying to use docker (concretely docker-compose) to deploy a neo4j database including the bloom plugin. I'm using the concerning environment variable to do this as follows:
NEO4JLABS_PLUGINS: '["apoc", "graph-data-science", "bloom"]'
In theory, the graph database will contain the three plugins listed above. I am also using the enterprise docker image 'neo4j:4.4.4-enterprise', and it seems to be working. However, when I try to access the bloom interface at http://localhost:7474/browser/bloom/, I get the following error after I write the user and password:
imagen

I have found this post commenting this issue, but no solution is provided there.

Are you aware of this problem? Is there any workaround for this?

Thanks in advance,
Francisco Abad.

Case insensitive search & suggestions does not appear to work

In settings there is an option "Case insensitive search & suggestions". With this option turned on, the suggestions in the search bar still are case sensitive. The name "John" is not shown as a suggestion when one types "joh". It is when one types "Joh".

Bloom 1.4.0 running on Linux.

Expanding Deep links by default

Submitting a deep link query to Bloom, is there a way to have the found node(s) appear totally expanded without user interaction (i.e. user does not have to hit return to see the resulting graph)?

Bloom can get Double characters correctly?

I followed below northwind importing guide and the only difference is uploading "Korean" northwind CSV files.
https://neo4j.com/developer/guide-importing-data-and-etl/
Tutorial: Import Data Into Neo4j
From “Bloom getting started.pdf”, I knew Bloom can get some data with [Beverages / Supplier of Product Beverages / Beverages Product Supplier / Employee with lastName Fuller / who reports to Fuller] as search words.
So I tried 음료, that is Korean Words of "Beverages", but failed.

  1. I tried with 음료, and then changed from 음료 to ‘음료’, automatically, and the displayed bloom1.jpg
    bloom1

  2. I tried with "음료", and then displayed bloom2.jpg
    bloom2

  3. I can see 음료 category correctly from Neo4j Browser. You can refer bloom3.jpg
    bloom3

  4. I attached categories.zip with a categories.csv which was from Korean Microsoft Access.
    categories.zip

Please enlighten me what are wrong with my Bloom.

WANT Bloom: edit "Rule Style" names

It's great you can create style rules in Bloom which changes what nodes look like.

But... you can't seem to change the name from "Rule Style N" to something more meaningful. Also clicking on the x to delete the Rule Style doesn't have a confirmation that you really want to do that... Maybe the icon should be a garbage can because you're deleting something.

Have preloaded color ramps for gradients

If my graph has a large amount results from the Degree Centrality, I would like to visualize that using a standard scientific sequential or diverging colors ramp like Viridis or plasma. It would be nice to be able to have a dropdown apply that across my entire data range .

image
image

WANT: Better handling of Node Titles in Bloom

If a node name is very long, such as the movie title "Persecution and Assassination of Jean-Paul Marat As Performed by the Inmates of the Asylum of Charenton Under the Direction of the Marquis de Sade"

The Bloom inspect elides the title. The eliding could be more generous. With the current implementation, I see only "Persecution and Assa..." (you could also use the UTF-8 Ellipsis character "…" U+2026 ).

In addition, it would be a nice settings option to allow the user to specify how many lines the Inspect can use for the title.

(I originally posted this in the community BB)
https://aws1.discourse-cdn.com/business4/uploads/neo4jcommunity/optimized/2X/a/a3bf14102fede521a1dd337abca279d0a5972f24_2_1380x854.jpeg

Test

Please ignore

Bloom full-text search doesn't return all nodes

I have a neo4j database (version 4, free aura tier) with ~10K nodes, 10K relationships, and a single full-text index indexing two node types and 6 properties in total.

When I type a single-word keyword search in bloom, I get back 3 nodes. When I type the same keyword search via the query below, I get 25.

Cypher query: CALL db.index.fulltext.queryNodes('full_text', $search)

Add ability to create a perspective based on a subgraph

I would like to be able to apply a filter to data when creating a perspective.

Examples:

  • I have data for the last 5 years in my graph, but I want to be able to only display the current year in my perspective.
  • I have data for all regions in my graph, but I only want to see data related to the western region in my perspective.

I could write a cypher query defining the subgraph that I want to include.

Allow label display formatting

Problem:
Bloom allows users to label a node based on a property. It also allows the user to apply Rule-based styling to adjust the size of the node based on a property as well. The latter functionality requires the data to be an int type. The problem arises when you want to label and style on the same node but want the label to appear more human friendly.

For example, in the image below I have data on Theranos which is the investors, rounds, etc and the amounts raised. In order to apply rule-based styling to have the node size be the size of investment so they are an int. Just showing the int value doesn't look good and I would rather it look like "$34,850,000". Currently there is no way to apply label styling to have it look at a property and say "Display As: Currency".

Theranos Graph
image

Workaround
I know I can created another property on the node that is string that has that formatting in there to label on and use the int to symbolize but that seems 'hacky' and duplication of data.

Enhancement
I propose 2 different enhancements:

  • Add a basic 'Display As:' dropdown similar to Excel where user can say "this should look like currency"
    Excel type dropdown
    image

-Add Advanced labeling section where users could enter in JavaScript (or other formatting code) and format however they like. This would be beneficial if users want to combine multiple properties into one label
Example using JS formatter

// Create our number formatter.
var formatter = new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'USD',
});

Clicking the color boxes for min, mid and max point of Degree Centrality does not update color gradient box

When you apply the color schema after you ran DegreeCentrality, if you go into the Rules based symbology, the color gradient selector does not update when you click the color in the minpoint, midpoint and maxpoint boxes.

Steps to reproduce:

  1. Load a graph into Bloom
  2. Open the Data Science pane and click Add Algorithm
  3. Choose Degree Centrality then click Apply
  4. Click Color Gradient in the bottom under Rules-based styling
  5. Expand the Node and Relationship pane by clicking the expand arrow in the top right
  6. Click on you node that has a blue circle on it indicating it has rules-based symbology
  7. Click on any of the color boxes next to Minpoint, Midpoint or Maxpoint and you will see the position of the color pixel does not update in the big color gradient rectangle below them

As you can see, I have the Maxpoint selected but the color that is selected is from the Minpoint
image

Error Message when creating a Search Phrase

If you create a search phrase without the query and you run it, you will get an "alert" message like this one:

AN ERROR OCCURRED WHILE EXECUTING SEARCH Invalid input 'I': Expected 'o/O' (line 1, column 3 (offset: 2)) "LIMIT 10000"

We know what this is about, but I think this should not happen. I see two options here, the search phrase couldn't be saved without a query, or the error should be explicit.

Version: Bloom 1.0.2, Neo4j Desktop 1.1.10

Clickable external links do not work for file:// URI or other non-web URI schemes

Bloom version: 2.1.1
OS: macOS Monterey 12.3.1

image

Properties named "link" correctly render as clickable URLs. However they only seem to actually work if the URL is a web URL (which opens the link in the default browser), they do not work for opening other sorts of links such as file:/// or even vscode:// etc. Clicking on one of these links does not appear to do anything at all, though they do appear as links with a pointer cursor and all.

Size based rule is reversing result

I have a single node rule with default size 1x. I have refreshed the range and set it to a single integer property. I have added the property,"power" to the captions on the nodes. The large numbers are appearing small and low values large. This is counter to the rule.
The Bloom version is 2.1.0
image

Andy

Search Phrase does not work

When working in neo4j Browser, the following statement returns 1 node.

MATCH (a0 { Id: '10000'})
return a0

The statement above will not return any node when entering directly into the search field. (Error Message: Sorry, we couldn't find any results for this search.)

The same statement will return one node, when I use the Search Phrase and enter the statement in the 'Cypher query' field.

Now I want to use the query dynamically:

Search phrase: Show $id
Cypher query: MATCH (a0 { Id: $id})
return a0

When using this search phrase in the search field/command field, I do not receive any result/node.

Layout will often not go back to "normal" after using hierarchical

To reproduce: make sure there is a nice number of nodes (say >200) on your screen. Then press the "hierarchical" layout button. Wait until the layout has changed. Then press the button again to go back to the "normal" layout.

Result: often the layout is now still (partially?) hierarchical.

Property set via CYPHER not shown in Bloom

Properties set on a node in the database via CYPHER are not showing up for that node in Bloom.

ie. this node is in db (values changed for here)
{
"name": "XXX",
"website": "XXX",
"twitter": "XXX",
"image_url": "XXX",
"slug": "XXX",
"facebook": "XXX"
}

node id 867 is the only one using properties "website" and "facebook"

In Browser this query returns the node in results
MATCH (n) WHERE EXISTS(n.website) RETURN n

In Bloom, searching for the node by full text search, returns the node but these two properties
"website" and "facebook" are not shown or accessible

Bloom connections issues

Bloom's connection to AuraDB (professional, not free) sometimes becomes unstable/unusable. Opening bloom in a different tab seems to fix this.

Sometimes I see the following error:

AN ERROR OCCURRENCE WHILE RETRIEVING SUGGESTIONS:
Connection acquisition timed out in 6000ms. Pool status: Active conn count = 6, Idle conn count = 0.

Search results dropdown sticks

The search results dropdown sometimes sticks open showing search results on the left side. Even if I open any other side pane on the left side the search results overlay those.

The only way to fix this is to restart Bloom it seems

Version: 1.3.8 on Win10

Relationships of a node may be missing in the Inspect and/or Expand menus

Issues with the Inspect and Expand functionality: relations that definitely exist sometimes are just not displayed here.

I am aware that the Expand menu should only display relations that have not yet been expanded - this is not the issue I am reporting.

The Inspect menu should contain all relations of a node, but as stated: that is not always the case. I'm aware that by default the top "filter" part of the window only displays a few relations, indicated by a fading bottom row, where a down arrow appears upon mouse over - so I am not referring to this.

When encountering this issue, there were vast (thousands) of relations attached to the node. It appears that the Inspect window gathers a semi-random selection of a little over 1000 of these. The info in the filter subwindow is then incorrect: not all relation types are displayed, and the numbers displayed are in the hundreds rather than in the thousands as they should be. Obviously I don't expect thousands of relations to be browsable, but I do expect all relation types to be displayed in the filter subwindow, and the number summaries to be correct.

Bloom v1.3.11 (Linux)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.