ISO/IEC 39075:2024
(Main)Information technology — Database languages — GQL
Information technology — Database languages — GQL
This document defines data structures and basic operations on property graphs. It provides capabilities for creating, accessing, querying, maintaining, and controlling property graphs and the data they comprise. This document specifies the syntax and semantics of a data management language for specifying and modifying the structure of property graphs and collections thereof. This document provides a vehicle for portability of data definitions and manipulation among GQL-implementations. Implementations of this document can exist in environments that also support application programming languages, end-user query facilities, and various tools for database design, data administration, and performance optimization.
Technologies de l'information — Langages de base de données — GQL
General Information
Standards Content (Sample)
International
Standard
ISO/IEC 39075
First edition
Information technology — Database
2024-04
languages — GQL
Technologies de l'information — Langages de base de
données — GQL
Reference number
© ISO/IEC 2024
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on
the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below
or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
© ISO/IEC 2024 – All rights reserved
ii
ISO/IEC39075:2024(en)
Contents Page
Foreword.xiv
Introduction.xv
1 Scope.1
2 Normativereferences.2
3 Termsanddefinitions.3
3.1 Generaltermsanddefinitions.3
3.2 GQL-environmenttermsanddefinitions.4
3.3 GQL-catalogtermsanddefinitions.6
3.4 Graphtermsanddefinitions.7
3.5 Procedureandcommandtermsanddefinitions.9
3.6 Generalsyntaxtermsanddefinitions.12
3.7 Graphpatterntermsanddefinitions.14
3.8 Valuetermsanddefinitions.15
3.9 Typetermsanddefinitions.17
3.10 Temporaltermsanddefinitions.19
4 Concepts.21
4.1 Useofterms.21
4.2 GQL-environmentsandtheircomponents.21
4.2.1 GeneraldescriptionofGQL-environments.21
4.2.2 GQL-agents.22
4.2.3 GQL-implementations.22
4.2.3.1 IntroductiontoGQL-implementations.22
4.2.3.2 GQL-clients.23
4.2.3.3 GQL-servers.23
4.2.4 Basicsecuritymodel.24
4.2.4.1 Principals.24
4.2.4.2 Authorizationidentifiersandprivileges.24
4.2.5 GQL-catalog.24
4.2.5.1 GeneraldescriptionoftheGQL-catalog.24
4.2.5.2 GQL-directories.25
4.2.5.3 GQL-schemas.26
4.2.6 GQL-data.27
4.3 GQL-objects.27
4.3.1 GeneralintroductiontoGQL-objects.27
4.3.2 ReferencestoGQL-schemasandGQL-objects.27
4.3.3 Primaryobjectsandsecondaryobjects.28
4.3.4 Propertiesandsupportedpropertyvaluetypes.28
4.3.5 Graphs.29
©ISO/IEC2024–Allrightsreserved
iii
ISO/IEC39075:2024(en)
4.3.5.1 Introductiontographs.29
4.3.5.2 Graphdescriptors.30
4.3.6 Bindingtables.30
4.4 Values.32
4.4.1 Generalinformationaboutvalues.32
4.4.2 Comparable values.32
4.4.3 Propertiesofdistinctvalues.32
4.4.4 Referencevalues.33
4.4.5 Materialvaluesandthenullvalue.33
4.5 GQL-sessions.33
4.5.1 GeneraldescriptionofGQL-sessions.33
4.5.2 Session contexts.34
4.5.2.1 Introductiontosessioncontexts.34
4.5.2.2 Sessioncontextcreation.35
4.5.2.3 Sessioncontextmodification.35
4.6 GQL-transactions.35
4.6.1 GeneraldescriptionofGQL-transactions.35
4.6.2 Transactiondemarcation.36
4.6.3 Transaction isolation.37
4.6.4 Encompassingtransactionbelongingtoanexternalagent.37
4.7 GQL-requestsandGQL-programs.38
4.7.1 GeneraldescriptionofGQL-requestsandGQL-programs.38
4.7.2 GQL-requestcontexts.38
4.7.2.1 IntroductiontoGQL-requestcontexts.38
4.7.2.2 GQL-requestcontextcreation.38
4.7.2.3 GQL-requestcontextmodification.39
4.7.3 ExecutionofGQL-requests.39
4.7.4 Workingschemareferences.40
4.7.5 Workinggraphsite.41
4.7.6 Executionstack.41
4.7.7 Operations.41
4.8 Execution contexts.42
4.8.1 Generaldescriptionofexecutioncontexts.42
4.8.2 Executioncontextcreationandinitialization.44
4.8.3 Executioncontextmodification.45
4.8.4 Execution outcomes.45
4.9 Diagnosticinformation.46
4.9.1 Introductiontodiagnosticinformation.46
4.9.2 GQL-status objects.46
4.9.3 Conditions.47
4.10 Proceduresandcommands.49
4.10.1 Generaldescriptionofproceduresandcommands.49
4.10.2 Procedures.49
4.10.2.1 Generaldescriptionofprocedures.49
4.10.2.2 Namedproceduredescriptors.50
4.10.2.3 Procedureexecution.50
4.10.2.4 Proceduresclassifiedbykindofsideeffects.50
©ISO/IEC2024–Allrightsreserved
iv
ISO/IEC39075:2024(en)
4.10.3 Commands.51
4.10.4 GQL-procedures.51
4.10.4.1 IntroductiontoGQL-procedures.51
4.10.4.2 Bindingvariablesandgeneralparameters.51
4.10.4.3 Statements.52
4.10.4.4 Statementsclassifiedbyuseofworkinggraphsites.52
4.10.4.5 Statementsclassifiedbyfunction.52
4.11 Graphpatternmatching.53
4.11.1 Summaryofgraphpatternmatching.53
4.11.2 Paths.53
4.11.3 Pathpatterns.54
4.11.4 Graphpatternvariables.55
4.11.5 Referencestographpatternvariables.56
4.11.6 Pathpatternmatching.57
4.11.7 Path modes.58
4.11.8 Selectivepathsearchprefixes.59
4.11.9 Matchmodes.59
4.12 Data types.59
4.12.1 Generalintroductiontodatatypesandbasetypes.59
4.12.2 Majorclassesofdatatypes.60
4.12.3 Datatypedescriptors.62
4.12.4 Namingofdatatypesandbasetypes.62
4.12.5 Material,nullable,andimmaterialdatatypes.63
4.12.6 Mostspecificstaticvaluetypeandstaticbasetype.63
4.12.7 Openandcloseddatatypes.63
4.12.8 Additionalterminologyrelatedtodatatypes.64
4.13 GQL-objecttypes.64
4.13.1 IntroductiontoGQL-objecttypesandrelatedbasetypes.64
4.13.2 Graphtypesandgraphelementtypes.65
4.13.2.1 Introductiontographtypesandgraphelementtypes.65
4.13.2.2 Graphtypedescriptors.65
4.13.2.3 Node types.66
4.13.2.4 Edgetypes.67
4.13.2.5 Property types.68
4.13.2.6 Keylabelsets.69
4.13.2.7 Structuralconsistencyofelementtypes.69
4.13.3 Bindingtabletypes.70
4.14 Dynamicuniontypes.71
4.14.1 Introductiontodynamicuniontypesandthedynamicbasetype.71
4.14.2 Dynamicuniondatatypedescriptors.71
4.14.3 Characteristicsofdynamicuniontypes.71
4.14.4 Dynamicgenerationoftypetestsandcasts.72
4.14.4.1 Introductiontodynamicgenerationoftypetestsandcastsfors.72
4.14.4.2 Dynamicgenerationoftypetestsandstrictcastsforawithoutoperands.72
4.14.4.3 Dynamicgenerationoftypetestsandstrictcastsforawithoperands.73
4.14.4.4 Dynamicgenerationofadditionaltypetestsandlaxcastsfora.75
4.15 Constructedvaluetypes.75
©ISO/IEC2024–Allrightsreserved
v
ISO/IEC39075:2024(en)
4.15.1 Introductiontoconstructedvaluetypesandrelatedbasetypes.75
4.15.2 Pathvaluetypes.76
4.15.3 Listvaluetypes.76
4.15.4 Record types.77
4.16 Predefinedvaluetypes.79
4.16.1 Introductiontopredefinedvaluetypesandrelatedbasetypes.79
4.16.2 Boolean types.81
4.16.3 Characterstringtypes.82
4.16.3.1 Introductiontocharacterstrings.82
4.16.3.2 Collations.83
4.16.4 Bytestringtypes.84
4.16.5 Numerictypes.85
4.16.5.1 Introductiontonumbers.85
4.16.5.2 Characteristicsofnumbers.85
4.16.5.3 Binaryexactnumerictypes.87
4.16.5.4 Decimalexactnumerictypes.88
4.16.5.5 Approximatenumerictypes.89
4.16.6 Temporaltypes.90
4.16.6.1 Introductiontotemporaldata.90
4.16.6.2 Temporalinstanttypes.90
4.16.6.3 Temporaldurationtypes.91
4.16.6.4 Operatorsinvolvingvaluesoftemporaltypes.92
4.16.7 Referencevaluetypes.93
4.16.8 Immaterialvaluetypes:nulltypeandemptytype.94
4.17 Sites.94
4.17.1 Generaldescriptionofsites.94
4.17.2 Staticanddynamicsites.95
4.17.3 Assignmentandstoreassignment.95
4.17.4 Nullability.95
4.17.4.1 Introductiontonullability.95
4.17.4.2 Nullability requirements.96
4.17.4.3 Nullabilityinference.96
5 Notationandconventions.97
5.1 NotationtakenfromTheUnicode®Standard.97
5.2 Notation.97
5.3 Conventions.98
5.3.1 Specificationofsyntacticelements.98
5.3.2 Useofterms.99
5.3.2.1 Syntactic containment.99
5.3.2.2 Keywordsands.100
5.3.2.3 Termsdenotingrulerequirements.100
5.3.2.4 Ruleevaluationorder.100
5.3.2.5 Conditional rules.101
5.3.2.6 Syntactic substitution.102
5.3.3 Descriptors.102
5.3.4 Subclausesusedassubroutines.103
5.3.5 Document typography.103
©ISO/IEC2024–Allrightsreserved
vi
ISO/IEC39075:2024(en)
5.3.6 Index typography.103
5.3.7 FeatureIDandFeatureName.104
6 .105
7 Sessionmanagement.107
7.1 .107
7.2 .111
7.3 .113
7.4 .114
8 Transaction management.115
8.1 .115
8.2 .116
8.3 .117
8.4 .118
9 Procedure specification.119
9.1 .119
9.2 .121
10 Variable definitions.125
10.1 .125
10.2 .127
10.3 .129
11 Object expressions.131
11.1 .131
11.2 .133
11.3 .135
12 Catalog-modifyingstatements.136
12.1 .136
12.2 .137
12.3 .138
12.4 .139
12.5 .142
12.6 .143
12.7 .145
12.8 .146
13 Data-modifyingstatements.147
13.1 .147
13.2 .149
13.3 .154
13.4 .158
13.5 .160
13.6 .162
14 Query statements.163
14.1 .163
14.2 .164
14.3 and.168
14.4 .170
©ISO/IEC2024–Allrightsreserved
vii
ISO/IEC39075:2024(en)
14.5 .173
14.6 .174
14.7 .175
14.8 .177
14.9 .180
14.10 .182
14.11 .185
14.12 .190
15 Procedure calling.199
15.1 and.199
15.2 .201
15.3 .203
16 Common elements.205
16.1 .205
16.2 .206
16.3 .208
16.4 .213
16.5 .219
16.6 .222
16.7 .226
16.8








Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...