Starting with v1.31.6, this file will contain a record of major features and updates made in each release of graph-notebook.
- Added
--connection-protocol
option to%%gremlin
(Link to PR)
- Added
%reset_graph
line magic (Link to PR) - Added
%get_graph
line magic, support%status
for Neptune Analytics (Link to PR) - Added
%%oc --plan-cache
support for Neptune DB (Link to PR) - Upgraded to Gremlin-Python 3.7 (Link to PR)
- New notebooks showing Telco examples leveraging GNN and LLM (Link to PR)
- Path: 03-Neptune-ML > 03-Sample-Applications > 04-Telco-Networks
- Added KMS encryption support to NeptuneDB Notebook CloudFormation template (Link to PR)
- Added warnings for usage of
%%oc
with incompatible Neptune Analytics parameters (Link to PR) - Added download and copy buttons to results table widgets (Link to PR)
- Improved handling of mixed type Gremlin results (Link to PR)
- Upgraded
rdflib
to 7.0.0 andSPARQLWrapper
to 2.0.0 (Link to PR) - Upgraded
requests
to 2.32.x (Link to PR) - Upgraded
itables
to 2.x (Link to PR) - Fixed formatting of query magic
--help
entries listing valid inputs (Link to PR) - Fixed endpoint creation bug in People-Analytics-using-Neptune-ML sample (Link to PR)
- Fixed deprecated usage of Pandas
DataFrameGroupBy.mean
in NeptuneML SPARQL utils (Link to PR) - Updated default %graph_notebook_config to display Neptune-specific fields (Link to PR)
- New Neptune Analytics notebooks - SBOM (Link to PR)
- Path: 02-Neptune-Analytics > 03-Sample-Use-Cases > 03-Software-Bill-Of-Materials
- Added
--store-format
option to query magics (Link to PR) - Added
--export-to
CSV file option to query magics (Link to PR) - Added
%graph_pg_info
line magic (Link to PR) - Added
@neptune_graph_only
magics decorator (Link to PR) - Added documentation for FontAwesome 5 settings (Link to PR)
- Updated
create-graph
CLI commands in Neptune Analytics samples (Link to PR) - Updated NeptuneDB Notebook CloudFormation template (Link to PR)
- Fixed unintended formatting in
%%oc explain
widget (Link to PR) - Fixed serialization of NoneType for
%%oc
query parameters (Link to PR) - Changed
%load
parameter and default value for failOnError (Link to PR)
- New Neptune Analytics notebook - Vector Similarity Algorithms (Link to PR)
- Path: 02-Neptune-Analytics > 02-Graph-Algorithms > 06-Vector-Similarity-Algorithms
- Updated various Neptune magics for new Analytics API (Link to PR)
- Added
%graph_notebook_service
line magic (Link to PR) - Added unit abbreviation support to
--max-content-length
(Link to PR) - Deprecated Python 3.7 support (Link to PR)
- Fixed
neptune_ml_utils
imports in03-Neptune-ML
samples (Link to PR) - Enable Gremlin
message_serializer
config field for Neptune endpoints (Link to PR)
- Fixed @neptune_db_only magics decorator (Link to PR)
- Added support for Neptune Analytics (Link to PR)
- Added Air-Routes and EPL sample seed datasets for openCypher (Link to PR)
- New Gremlin Language Tutorial notebooks (Link to PR)
- Path: 06-Language-Tutorials > 03-Gremlin
- Added
--explain-type
option to%%gremlin
(Link to PR) - Added general documentation for
%%graph_notebook_config
options (Link to PR) - Added support for Gremlin proxy hosts and visualization of Neptune HTTP results (Link to PR)
- Modified Dockerfile to support Python 3.10 (Link to PR)
- Updated Docker documentation with platform-specific run commands (Link to PR)
- Fixed deprecation warnings in GitHub workflows (Link to PR)
- Fixed seed dataset unzip path in Identity Graph sample notebook (Link to PR)
- Fixed unit test workflows failing on type check assertion (Link to PR)
- Fixed bad queries in openCypher Language Tutorial samples (PR #1) (PR #2)
- Fixed kernel crashing with ZMQ errors on magic execution (Link to PR)
- Fixed truncated descriptions for some
%seed
fields (Link to PR) - Unpinned
boto3
andbotocore
to support NeptuneData SDK (Link to PR)
- New Sample Applications - Healthcare and Life Sciences notebooks (Link to PR)
- Path: 03-Sample-Applications > 05-Healthcare-and-Life-Sciences-Graphs
- Added local file path and openCypher query support to
%seed
(Link to PR) - Added S3 path support to
%seed
(Link to PR) - Added samples options for openCypher to
%seed
(Link to PR) - Added support for openCypher parameterized queries (Link to PR)
- Added
%toggle_traceback
line magic (Link to PR) - Added support for setting
%graph_notebook_vis_options
from a variable (Link to PR) - Pinned JupyterLab<4.x to fix Python 3.8/3.10 builds (Link to PR)
- Changed datatype of "amount" from String to numeric for "Transaction" vertices in Fraud Graph sample notebook (Link to PR)
- Replaced usages of deprecated DataFrame.append method in ML samples (Link to PR)
- Set Gremlin as default language for PropertyGraph samples in
%seed
(Link to PR) - Suppress InsecureRequestWarning if SSL verification is disabled (Link to PR)
- Reinstate Python 3.7 support for compatibility with legacy AL1 Neptune Notebooks (Link to PR)
- Added support for Python 3.10 (Link to PR)
- Deprecated Python 3.7 support (PR #1) (PR #2)
- Patched nbextensions loader timeouts for large notebooks (PR #1)
- Fixed Dockerfile builds breaking with AL2023 (Link to PR)
- Fixed
--store-to
option for several magics (Link to PR) - Fixed broken documentation links in Neptune ML notebooks (PR #1) (PR #2)
- Fixed Gremlin graph tab not rendering with UUID type IDs (Link to PR)
- Fixed detailed mode output for graph summary requests (Link to PR)
- Added more helpful error messaging for
%statistics
/%summary
(Link to PR) - Added Neptune Notebook CloudFormation template (Link to PR)
- New Neptune ML notebook - Real Time Fraud Detection using Inductive Inference (Link to PR)
- Path: 04-Machine-Learning > Sample-Applications > 03-Real-Time-Fraud-Detection-Using-Inductive-Inference.ipynb
- New openCypher Language Tutorial notebooks
- Path: 06-Language-Tutorials > 02-openCypher
- Added support for Neptune Summary API (Link to PR)
- Added
--profile-misc-args
option to%%gremlin
(Link to PR) - Added error messaging for incompatible host-specific
%%graph_notebok_config
parameters (Link to PR) - Ensure default assignments for all Gremlin nodes when using grouping (Link to PR)
- Fixed nbextensions loader timeout on large notebooks (Link to PR)
- Added ECR auto-publish workflow (Link to PR)
- Added support for list/tuple element access in cell variable injection (Link to PR)
- Fixed failing endpoint creation step in 01-People-Analytics/People-Analytics-using-Neptune-ML (Link to PR)
- Fixed browser-specific issues with fullscreen graph widget (Link to PR)
- Fixed IAM authenticated Bolt queries failing on certain Neptune engine versions (Link to PR)
- Fixed query status magics failing with a TypeError (Link to PR)
- Pinned
numpy<1.24.0
to fix conflicts withnetworkx
dependency during installation (Link to PR) - Pinned version ceiling for all dependencies (Link to PR)
- Excluded certain
itables
versions causing errors in query magics (PR #1) (PR #2) - Truncated metadata request/query time metrics (Link to PR)
- Enabled unit test workflow runs for external pull requests (Link to PR)
- Added Neo4J section to
%%graph_notebook_config
(Link to PR) - Added custom Gremlin authentication and serializer support (Link to PR)
- Added
%statistics
magic for Neptune DFE engine (Link to PR) - Added option to disable TLS certificate verification in
%%graph_notebook_config
(Link to PR) - Improved
%load
status output, fixed region option (Link to PR) - Updated
01-About-the-Neptune-Notebook
for openCypher (Link to PR) - Fixed results not being displayed for SPARQL ASK queries (Link to PR)
- Fixed
%seed
failing to load SPARQL EPL dataset (Link to PR) - Fixed
%db_reset
status output not displaying in JupyterLab (Link to PR) - Fixed
%%gremlin
throwing error for result sets with multiple datatypes Link to PR) - Fixed edge label creation in
02-Using-Gremlin-to-Access-the-Graph
(Link to PR) - Fixed igraph command error in
02-Logistics-Analysis-using-a-Transportation-Network
(Link to PR) - Bumped typescript to 4.1.x in graph_notebook_widgets (Link to PR)
- Pinned
ipywidgets==7.7.2
andjupyterlab_widgets<3
(Link to PR) - Pinned
nbclient<=0.7.0
(Link to PR)
- New Sample Applications - Security Graphs notebooks (Link to PR)
- Path: 03-Sample-Applications > 04-Security-Graphs
- Update sample notebooks with parallel, same-direction edges example (Link to PR)
- Fixed a Gremlin widgets error caused by empty individual results (Link to PR)
- Fixed
%db_reset
timeout handling, made timeout limit configurable (Link to PR) - Fixed Sparql visualizations occasionally failing with VisJS group assignment error (Link to PR)
- Fixed
start jupyterlab
command in README (Link to PR) - Fixed interface rendering issue in classic notebooks (Link to PR)
- Added
--hide-index
option for query results (Link to PR) - Added result media type selection for SPARQL queries (Link to PR)
- New Language Tutorials - SPARQL Basics notebook (Link to PR)
- Path: 06-Language-Tutorials > 01-SPARQL > 01-SPARQL-Basics
- New Neptune ML - Text Encoding Tutorial notebook (Link to PR)
- Path: 04-Machine-Learning > Sample-Applications > 02-Job-Recommendation-Text-Encoding.ipynb
- Added
--store-to
option to%%graph_notebook_config
(Link to PR) - Added loader status details options to
%load_ids
(Link to PR) - Added
--all-in-queue
option to%cancel_load
(Link to PR) - Deprecated Python 3.6 support (Link to PR)
- Added support for literal property values in Sparql visualization options (Link to PR)
- Various results table improvements (Link to PR)
- Disabled automatic collapsing of large explain results (Link to PR)
- Fixed version-specific steps in SageMaker installation script (Link to PR)
- Added new SageMaker installation script for China regions (Link to PR)
- Docker support. Docker image can be built using the command
docker build .
and through Docker'sbuildx
, this can support non-x86 CPU Architectures like ARM. (Link to PR)- Fix
service.sh
conditional checks, SSL parameter can now be changed. Fix permissions error onservice.sh
experienced by some users. (Link to PR)
- Fix
- Added
%%neptune_config_allowlist
magic (Link to PR) - Added check to remove whitespace in
%graph_notebook_config
host fields (Link to PR) - Added silent output option to additional magics (Link to PR)
- Fixed %sparql_status magic to return query status without query ID (Link to PR)
- Fixed incorrect Gremlin query --store-to output (Link to PR)
- Fixed certain characters not displaying correctly in results table (Link to PR)
- Fixed extra index column displaying in Gremlin results table on older Pandas versions (Link to PR)
- Reverted Gremlin console tab to single results column (Link to PR)
- Bumped jquery-ui from 1.13.1 to 1.13.2 ((Link to PR)
- Improved the
%stream_viewer
magic to show the commit timestamp andisLastOp
information, if available. Also added additional hover (help) text to the stream viewer. (Link to PR) - Added
--max-content-length
option to%%gremlin
(Link to PR) - Added
proxy_host
andproxy_port
options to the%%graph_notebook_config
options. (Link to PR)- This allows for proxied connections to your Neptune instance from outside your VPC. Supporting the patterns seen here.
- Fixed results table formatting in JupyterLab (Link to PR)
- Fixed several typos in the Neptune ML 00 notebook (Link to PR)
- Renamed the Knowledge Graph application notebooks for clarity (Link to PR)
- Identity Graph - ETL notebook (Link to PR)
- Path: 03-Identity-Graphs>03-Jumpstart-Identity-Graphs-Using-Canonical-Model-and-ETL
- Files: scripts/, glue_utils.py and 3-Identity-Graphs>03-Jumpstart-Identity-Graphs-Using-Canonical-Model-and-ETL notebook
- Support variable injection in
%%graph_notebook_config
magic (Link to PR) - Added three notebooks to show data science workflows with Amazon Neptune (Link to PR)
- Added JupyterLab startup script to auto-load magics extensions (Link to PR)
- Added includeWaiting option to %oc_status, fix same for %gremlin_status (Link to PR)
- Added
--store-to
option to %status (Link to PR) - Fixed handling of empty nodes returned from openCypher
DELETE
queries (Link to PR) - Fixed rendering of openCypher widgets for empty result sets (Link to PR)
- Fixed graph search overriding physics setting (Link to PR)
- Fixed browser-specific bug in results pagination options menu (Link to PR)
- Fixed invalid queries in Gremlin sample notebooks (Link to PR)
- Removed
requests-aws4auth
requirement (Link to PR)
- Support rendering of widgets in JupyterLab (Link to PR)
- Fixed ASCII encoding error in Profile/Explain generation (Link to PR)
- Fixed inaccessible data URL in NeptuneML utils (Link to PR)
- Fixed integration tests to address updated air routes data and other changes (Link to PR)
- Bumped jinja2 from 2.10.1 to 3.0.3 (Link to PR)
- Added documentation for JupyterLab installation (Link to PR)
- Added new notebooks: guides for using SPARQL and RDF with Neptune ML (Link to PR)
- Added the ability to run explain plans to openCypher queries via
%%oc explain
. (Link to PR) - Added the ability to download the explain/profile plans for openCypher/Gremlin/SPARQL. (Link to PR)
- Changed the
%stream_viewer
magic to usePropertyGraph
andRDF
as the stream types. This better aligns with Gremlin and openCypher sharing thePropertyGraph
stream. (Link to PR) - Updated the airports property graph seed files to the latest level and suffixed all doubles with 'd'. (Link to PR)
- Added grouping by depth for Gremlin and openCypher queries (PR #1)(PR #2)
- Added grouping by raw node results (Link to PR)
- Added loading from file path with
%seed
(Link to PR) - Added
--no-scroll
option for disabling truncation of query result pages (Link to PR) - Added
--results-per-page
option (Link to PR) - Added relaxed seed command error handling (Link to PR)
- Renamed Gremlin profile query options for clarity (Link to PR)
- Suppressed default root logger error output (Link to PR)
- Fixed Gremlin visualizer bug with handling non-string node IDs (Link to PR)
- Fixed error in openCypher Bolt query metadata output (Link to PR)
- Fixed handling of Decimal type properties when rendering Gremlin query results (Link to PR)
- Added new dataset for DiningByFriends, and associated notebook (Link to PR)
- Added new Neptune ML Sample Application for People Analytics (Link to PR)
- Added graph customization support for SPARQL queries (Link to PR)
- Added graph reset and search refinement buttons to the graph output tab (Link to PR)
- Added support for setting custom edge and node tooltips (Link to PR)
- Added edge tooltips, and options for specifying edge label length (Link to PR)
- Updated NeptuneML pre-trained model resources for CN regions (Link to PR)
- Fixed inaccurate help message being displayed for certain GremlinServerErrors (Link to PR)
- Fixed error causing query autocompletion to fail (Link to PR)
- Fixed Jupyter start script for cases where the nbconfig directory is missing (Link to PR)
- Added support for specifying the Gremlin traversal source (Link to PR)
- Added edge tooltips, and options for specifying edge label length (Link to PR)
- Fixed configuration options missing when using a CN region Neptune host (Link to PR)
- Correct naming of ID parameter for NeptuneML Endpoint command (Link to PR)
- Added full support for NeptuneML API command parameters to
%neptune_ml
(Link to PR) - Allow
%%neptune_ml
to accept JSON blob as parameter input for most phases (Link to PR) - Added
--silent
option for suppressing query output (PR #1) (PR #2) - Added all
parserConfiguration
options to%load
(Link to PR) - Upgraded to Gremlin-Python 3.5 and Jupyter Notebook 6.x (Link to PR)
- Resolved smart indent bug in openCypher magic cells (Link to PR)
- Removed default
/sparql
path suffix from non-Neptune SPARQL requests (Link to PR)
- Added a new
%stream_viewer
magic that allows interactive exploration of the Neptune CDC stream (if enabled). (Link to PR) - Added support for multi-property values in vertex and edge labels (Link to PR)
- Added new visualization physics options, toggle button (Link to PR)
- Fixed TypeError thrown for certain OC list type results (Link to PR
- Documentation fixes for additional databases (Link to PR)
- Disabled SigV4 signing for non-IAM AWS requests (Link to PR)
- Added new
--nopoll
option to%load
to disable status polling (Link to PR) - Made Neptune specific parameters optional for
%%graph_notebook_config
(Link to PR) - Upgraded Jupyter Notebook dependency to 5.7.13 for security fix (Link to PR)
- Improved usability of %load Edge IDs option (Link to PR)
- Gremlin visualization bugfixes (PR #1) (PR #2) (PR #3)
- Updated the airport data loadable via %seed to the latest version (Link to PR)
- Added support for Gremlin Profile API parameters (Link to PR)
- Improved %seed so that the progress bar is seen to complete (Link to PR)
- Added helper functions to neptune_ml utils to get node embeddings, model predictions and performance metrics (Link to PR)
- Changed visualization behavior to add all group-less nodes to a default group (Link to PR)
- Fixed a bug causing ML Export requests to fail (Link to PR)
- Add new Knowledge Graph use case notebook for openCypher usage (Link to PR)
- Fixed incorrect visualizations of some Gremlin results returned by valueMap (Link to PR)
- Fixed error with Gremlin visualizer incorrectly identifying some query results as elementMaps (Link to PR)
- Pin RDFLib version in README (Link to PR)
- Fixed inconsistent node tooltips in openCypher visualizations (Link to PR)
openCypher Support:
With the release of support for the openCypher query language in Amazon Neptune's lab mode, graph-notebook can now be used to execute and visualize openCypher queries with any compatible graph database.
Two new magic commands have been added:
%%oc
/%%opencypher
%%oc_status
/%%opencypher_status
These openCypher magic commands inherit the majority of the query and visualization customization features that are already available in the Gremlin and SPARQL magics.
For more detailed information and examples of how you can execute and visualize openCypher queries through graph-notebook, please refer to the new Air-Routes-openCypher
and EPL-openCypher
sample notebooks.
Other major updates:
- Added visualization support for elementMap Gremlin step (Link to PR)
- Added support for additional customization of edge node labels in Gremlin (Link to PR)
- Refactored %load form display code for flexibility; fixes some descriptions being cut off
- Updated Neptune ML notebooks, utils, and pretrained models config (Link to PR)
- Added support for
modeltransform
commands in%neptune_ml
(Link to PR) - Overhauled Gremlin visualization notebooks with example usage of new customization options and elementMap step (Link to PR)
- Added new notebook to explain Identity Graph data modeling (Link to PR)
Minor updates:
- Included index operations metrics in metadata results tab for Gremlin Profile queries(Link to PR)
- Updated SPARQL EPL seed dataset file (Link to PR)
- Updated documentation on using
%%graph_notebook_config
with an IAM enabled Neptune cluster (Link to PR)
Bugfixes:
- Fixed improper handling of Blazegraph status response (Link to PR)
- Fixed Gremlin node tooltips being displayed incorrectly (Link to PR)
- Fixed bug in using Gremlin explain/profile with large result sets (Link to PR)
- Pinned RDFLib version (Link to PR)
- Added support for additional customization of graph node labels in Gremlin (Link to PR)
- Added support for dictionary value access in variable injection(Link to PR)
- Pinned gremlinpython to
<3.5.*
(Link to PR) - Added support for notebook variables in Sparql/Gremlin magic queries (Link to PR)
- Added support for grouping by different properties per label in Gremlin (Link to PR)
- Fixed missing Boto3 dependency in setup.py (Link to PR)
- Updated %load execution time to HH:MM:SS format if over a minute (Link to PR)
- Fixed bug in
%neptune_ml export ...
logic where the iam setting for the exporter endpoint wasn't getting picked up properly
- Added support for Mode, queueRequest, and Dependencies parameters when running %load command (Link to PR)
- Added support for list and dict as map keys in Python Gremlin (Link to PR)
- Refactored modules that call to Neptune or other SPARQL/Gremlin endpoints to use a unified client object (Link to PR)
- Added an additional notebook under 02-Visualization demonstrating how to use the visualzation grouping and coloring options in Gremlin. (Link to PR)
- Added metadata output tab for magic queries (Link to PR)
- Added default parameters for
get_load_status
(Link to PR) - Added ipython as a dependency in
setup.py
(Link to PR) - Added parameters in
load_status
fordetails
,errors
,page
, anderrorsPerPage
(Link to PR)
- Print execution time when running %load command (Link to PR)
- Fixed issue where --ignore-groups was not being honored Link to PR
- Changed SPARQL path parameter in %%graph-notebook-config command to no longer append /sparql to the end, which should give support to more SPARQL 1.1 endpoints Link to PR
Added new sample application notebooks and %seed
datasets under 03-Sample-Applications for the following use cases:
- Fraud Graph
- Knowledge Graph
- Identity Graph
- Added "What’s Next" sections to 01-Getting-Started notebooks to suggest users to relevant notebook tutorials Link to PR
- Added missing init to notebook directories to they get installed correctly
- Updated list of available magics in notebook documentation Link to PR
- Enhanced Gremlin Visualization output to group vertices and color-code them based on groups. When not specified it will group by the label (if it exists). You can also specify the property to groupby using the switch --groupby or -g followed by the property name Link to PR
- Added the functionality to sort the values in the details box by key
- Updated Air-Routes-Visualization notebook to discuss the group by functionality
- Added new tutorial notebooks for Neptune ML functionality Link to PR
This release features integration with the Neptune ML feature set in AWS Neptune. Link to PR
- Added helper library to perform Sigv4 signing for %neptune_ml export ..., we will move our other signing at a later date.
- Swapped how credentials are obtained for ROLE iam credentials provider such that it uses a botocore session now instead of calling the ec2 metadata service. This should make the module more usable outside of Sagemaker.
- Added sub-configuration for sparql to allow specifying path to sparql endpoint
%neptune_ml export status
%neptune_ml dataprocessing start
%neptune_ml dataprocessing status
%neptune_ml training start
%neptune_ml training status
%neptune_ml endpoint create
%neptune_ml endpoint status
%%neptune_ml export start
%%neptune_ml dataprocessing start
%%neptune_ml training start
%%neptune_ml endpoint create
NOTE: If a cell magic is used, its line inputs for specifying parts of the command will be ignore such as--job-id
as a line-param.
Inject variable as cell input:
Currently this will only work for our new cell magic commands details above. You can now specify a variable to use as the cell input received by our neptune_ml
magics using the syntax ${var_name}. For example...
# in one notebook cell:
foo = {'foo', 'bar'}
# in another notebook cell:
%%neptune_ml export start
${foo}
NOTE: The above will only work if it is the sole content of the cell body. You cannot inline multiple variables at this time.
- Support to allow namespace specification for Blazegraph endpoints by specify the prefix to the sparql endpoint being queried.
- Add new config section for sparql-specific items Link to PR
- Specify explain prefix_path param explicitly in
%%sparql explain
magic variant Link to PR
- Fixed bug in argparser for load_status and cancel_load line magics Link to PR
- Expanded loader status values that terminate load line magic
- Added support for storing query results to a variable for use in other notebook cells Link to PR
- Removed %query_mode magic in favor of query parameterization Link to PR
- Fix compatibility with Windows by using path join instead of building paths using strings Link to PR
- Added hooks to install nbextensions using the jupyter nbextension ... syntax
- Fix issue preventing Gremlin results that contain a datetime object from being rendered properly
- Added a dependency revision for graph-notebook compatibility with Amazon Sagemaker. Link to PR
See here for a quick guide on launching graph-notebook using a SageMaker lifecycle configuration file.
First release of graph-notebook on GitHub and to PyPI
The graph notebook is a Python library for Jupyter Notebooks that can run on local desktops and be used with databases that support either the RDF/SPARQL open standard or the open-source Apache TinkerPop graphs.
See here for a list of major features.