Before Going Further

Before Going Further… #

This page gathers important information about SemSpect that you should be aware of before using SemSpect for the first time.

SemSpect is a Snapshot Explorer #

The label tree, all SemSpect labels, the exploration, etc. consist of aggregated information from the graph data. Any modification of the graph data while using SemSpect might lead to statistics and/or the current exploration getting out of sync with the real data.

In its Enterprise Version, Neo4j provides a way to monitor any changes in the DBMS. SemSpect takes advantage of this feature and will alert the user in case the data has changed since the last interaction. The latter is the default for all versions of Neo4j Enterprise except for 4.2.0 and 4.2.1 for which you have to explicitly expose the JMX MBeans metrics (Neo4j docs) by providing metrics.jmx.enabled=true in the DBMS settings (Neo4j docs).

Remark: If your data undergoes frequent small changes not relevant for your explorations and the prompts get annoying, you may want to disable this monitoring (by setting metrics.jmx.enabled=false in the DBMS settings (Neo4j docs)).

If you are using a Community Version of Neo4j or if the monitoring of the transactions is switched off, you can use the refresh button in the interface to reinitialize the plugin manually when you are aware of relevant changes in the data.

SemSpect Sync Button

SemSpect can take some Time to Initialize #

The SemSpect plugin runs an initialization process on first use after each restart of the DBMS. It gathers statistical information to build the label tree and rebuilds the SemSpect labels defined by the user. Depending on the size of your graph and the number and complexity of your SemSpect labels, this may take several minutes.

We provide a procedure that you can integrate into your workflow to initialize SemSpect in the background instead of waiting for the first interactive use of the Graph App:

:use your_database // in case of multiple databases 
call semspect.init

Remark: as each user gets his own context, this call has to be executed with the user that will be used to explore the database.