You can edit almost every page by Creating an account and confirming your email.

UQL (Ultipa GQL)

From EverybodyWiki Bios & Wiki



UQL (Ultipa Query Language), or Ultipa GQL, is an all-purpose native Graph Query Language developed by Ultipa, Inc.[1]

UQL is a query and data management language that was designed for Ultipa Graph Database and other products from Ultipa. It is featured with declarativeness derived from its neuromorphic grammar, friendliness to both developers and business personnel, a unique demi-schema infrastructure that allows high availability and efficiency for both deep and big data computing.[2][3] And it is approaching Turing Completeness.[1]

Design basis

The design of UQL is based on the Ultipa team's in-depth understanding of graph and graph databases, with an aspiration to fulfill demands coming from the modern business world and to solve legacy problems that traditional SQL and RDBMS are not able to solve[4]: including SQL’s inability to depict high-dimensional data structures, black-box interpretability, a high threshold for learning, and high complexity and time consumption for deep data extraction.[5][3]

The design principles[1] include:

  • Capability and nativeness to graph databases to operate high-dimensional data and return results in the best way to release graph's potentials in deep data drilling down and value extraction
  • Ambiguity-free definition and construction of data structures, such as subgraphs, nodes, and edges, etc.
  • High-efficiency in effortless expression of subgraph filtering, direct docking, as well as adaptation to maximize the strengths of HPC (High-Performance Computing) engines
  • Least requirement of cognitive efforts in reading, understanding, and outputting
  • Supports diverse functional extensions by smart combination of Chain Statements and Semantic Assembly
  • Advanced functionality to keep in line with increasingly complex demands generated from real-world industries and to allow limitless expansions of functions
  • High customizability to allow users adapt syntax depending on their needs of data computing

Syntax features

UQL has several syntax features similar to SQLs:[1]

  • DQL: Data Query Language, for queries of basic elements such as nodes, edges and paths in the graph;
  • DDL: Data Definition Language, for basic operations such as adding, deletion, modification and views of the content of GraphSet;
  • DML: Data Manipulation Language, for metadata changes as in adding/deleting GraphSet, modifying schema, controlling index etc.;
  • DCL: Data Control Language, mainly for database permission settings, such as authentications, permission grants and revokes etc.

Example

Source[1]

n(1).e({time > prev_e.time})[3].n(as target)
group by target.level with count(target) as quantity
order by quantity desc
return target.level, quantity limit 10
  • n(... ).e(...)[3].n(...) is a chain statement consisting of [command].[parameter].[parameter]... to realize UQL functions of query, modifications, and deletion. Multiple chain statements can be assembled in one UQL statement.
  • group by ..., with ..., order by ..., return ... and limit ... are clauses to further operate the results from a UQL statement.
  • Functions like count(...) realize some most-frequently executed query operations for UQL
  • Aliases like quantity and system aliases prev_n (stands for previous node) pass query results within chain statements and clauses in an UQL statement[1]

Terminology

Source[1]

Name Description
Node Graph Theory's vertex in UQL, standing for entities in the real world.
Edge Same as "Edge" in Graph Theory, it represents the relations between two entities (nodes), all the edges in UQL have directions.
Schema The fundamental metadata of a graphset, composed of a set of properties depicting the structure and content of node or edge. Each node or edge can only belong to one schema.
Property Property describes the characters of node or edge and it supports abundant data types: int32, float, string, data structures such as array, dictionary included.
ID (_id) Node's unique identifier stored as string with maximum length of 128.
UUID (_uuid) Node's or Edge's unique identifier stored as uint64.
Path Path is a sequential combination of alternating nodes and edges with definite initial-node and terminal-node. The sequential order in a path can be regarded as a unique identifier of the path.
Circle If any two nodes correspond via edges in a path then they form a 'circle'.
Shortest Path The path contains the least edges (>=1) to the terminal-node from initial-node. In case of a weighted shortest path, it should be the minimum sum of edges' weights.
Subgraph Subgraph is a defined part of nodes and edges of the whole graph. The result from a node or path query can be regarded as a subgraph.
Filter To exclude certain nodes and edges during graph queries. It functions similarly to IF in programming languages via various conditional operators, logic operators, and numeric operators.
Edge Start (_from, _from_uuid) The ID or UUID of the initial node of an edge.
Edge End (_to, _to_uuid) The ID or UUID of the terminal node of an edge.

Implementation

UQL supports full spectral functions from Ultipa Graph Database system and tools. Users can invoke UQL by using Ultipa CLI (Command Line Tool), Ultipa Manager (a graphical interface that allows 2D/3D data visualization) or SDK (Ultipa Software Development Kits) in Java, Python, NodeJS, Go, etc.[1]

Standardization

With GQL standard expected to be launched in 2022, UQL keeps in pace with GQL international standards in terms of the overall functionality and compatibility.[1] In August 2021, Ultipa joined the Linked Data Benchmark Council (LDBC), the official platform of the international graph database benchmarking for constructing international standards of Graph Query Language.[6]

See also

References

  1. 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 "Basic Concepts - Ultipa Graph Query Language - Ultipa Graph". Ultipa. Retrieved 2022-09-08.
  2. "Ultipa GQL graph query language has made many breakthroughs". copyfuture.com. Retrieved 2022-09-08.
  3. 3.0 3.1 Judd Spicer (2020-10-17). "Ultipa Power". California Business Journal. Retrieved 2022-09-08.
  4. Ultipa featured on CNBC's Advancements TV, retrieved 2022-09-08
  5. "Graph Database and Query Language 101: Speed & Simplicity (Part-II)". Retrieved 2022-09-08 – via LinkedIn.
  6. "Organizational Members". Linked Data Benchmark Council. Retrieved 2022-09-08.

External links



This article "UQL (Ultipa GQL)" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:UQL (Ultipa GQL). Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.