Ultipa Graph Query Language, or UQL, is a high-performance query and management language exclusive to Ultipa Graph Database and Graph Computing Engine.
UQL supports the insertion, deletion, and updating of metadata, querying of graph data (metadata, paths, and subgraphs), management of graphset, schema, property, index, process and task, user, privilege and policy, and other features within the Ultipa Graph system.
UQL can be invoked via Ultipa CLI (Command Line Tool), Ultipa Manager (a highly visualized graph database query and management interface), Ultipa Drivers (Ultipa SDKs and APIs), and the Visual Studio Code.
When a formatted UQL statement is sent to the Ultipa server, it undergoes parsing and optimization before being assigned to the high-performance graph computing engine for execution. The query result is then processed, assembled, and ultimately returned to the user.

The design of UQL is rooted in a profound comprehension of graphs and the industry's requirements for scalable graph systems. It embraces a semantic assembly logic that mirrors the cognitive processes of the human brain, making it easy to read, write, and learn.
NOTEUQL vs. SQL
UQL naturally addresses SQL's limitations in expressing high-dimensional data and its combinations, as well as the complexity and inefficiency in path filtering. It also tackles the challenges associated with understanding and maintaining code.
Like most database languages, UQL encompasses features for DQL, DDL, DML and DCL:
As a graph query language, UQL aligns with the GQL international standard in terms of overall functionality and compatibility. The development of the GQL standard is spearheaded by LDBC (Linked Data Benchmark Council) and is expected to be released in 2024.
NOTEUltipa is a member of LDBC and has been actively involved in the development of the GQL standard.
This is an example of a UQL statement:
n({_id == "CA001"}).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
Which contains,
[command].[method].[method]..., such as n(...).e(...)[3].n(...). This clause is commonly used for retrieving data from the graph or executing insertion, update or deletion.NOTEUQL supports escape character
\, tab\t, carriage return line feed\r\n, and comment delimiters//,/*and*/.
percentileCont() and percentileDisc().toGraph().graph() to subgraph()The UQL (Ultipa Query Language) is created and designed by Ultipa Team.
Documentation license: Creative Commons 4.0