We’re sorry. We could not find a match for your search.

We suggest you try the following to help find what you’re looking for:

  • Check the spelling of your keyword search.
  • Use synonyms for the keyword you typed, for example, try "application" instead of "software."
  • Start a new search.
Cloud Account Sign in to Cloud
Oracle Account

Welcome to Parallel Graph AnalytiX (PGX)

Graph analysis lets you reveal latent information that is not directly apparent from fields in your data, but is encoded as direct and indirect relationships - metadata - between elements of your data. This connectivity-related information is not obvious to the naked eye, but can have tremendous value once uncovered.

What is PGX?

PGX is a toolkit for graph analysis, supporting both efficient graph algorithms and fast SQL-like graph pattern matching queries.

The tools included as part of the PGX distribution include:

  • A Java API to load graphs and perform analysis.
  • The PGX shell - an interactive REPL that offers a jshell environment for interactive analysis.
  • A large collection of built-in algorithms which are part of the Analyst API - covering domains such as community detection, ranking, partitioning, recommendation generation and more.
  • PGX Algorithm: a domain-specific-language for writing graph analysis algorithms in a simple and readable form, which the the PGX runtime can transparently optimize and execute.
  • PGQL - Property Graph Query Language - an SQL-like language for graph pattern-matching, which includes both SQL-like value-based constraints and topological constraints.

The typical usage pattern in PGX is to

  • Start the shell, or write a Java program against the PGX Java API.
  • Load a graph from some data source (e.g., an Oracle Database or CSV files).
  • Run one or more algorithms against the data.
  • Query the graph using PGQL and referencing properties added by the algorithms previously run.

In addition, PGX offers features for filtering graphs, extracting subgraphs and much more.

What's new in the PGX Runtime

Check out our what's new page for the latest features in each PGX release.

How can I use PGX? What does the PGX API look like?

PGX can be used in several ways:

  • In a Java (or Scala or Groovy or other JVM language) application:The entire runtime, PGX or the PGX client (talking to a remote PGX server) can be used as a library embedded in a Java application.

  • Interactively from the shell: The user can also make use of PGX, as if it is a separate application, by using the PGX shell. Once the user starts up the PGX shell, they can load graphs, invoke algorithms, and browse/export results in a very simple manner using the shell.

  • Remote usage: For both use cases above, you can either use PGX locally or remotely. In the remote case you need to start PGX on a webserver and provide the client with a hostname and port to connect to. If you use PGX locally, it will simply spin up a local PGX instance on which you can work without any HTTP overhead.

Refer to our programming guides or the specific product documentation for more information on how to use PGX.

What is the license of PGX? How can I get it?

PGX is provided to Oracle customers as part of several products; see more details at this page. The standalone OTN version of PGX is retired as of early 2020. You can still get a preview version under the OTN license by downloading the Oracle Graph Server and Client preview package.

PGX Community

There is an OTN Community forum for the purpose of gathering feedback and to provide a space for users of PGX to communicate. We encourage you to discuss issues and use cases related to PGX there. We especially welcome suggestions for improvement and interesting features you would like us to add in future releases. This community is also a great place to discuss novel graph algorithms with fellow PGX users and developers.

Additional Resources

Oracle Labs PGX project page