Important concepts and terms

In order to work with EQL, you need to understand the following concepts.

  • Attribute: An attribute is the basic unit of a record schema. Attributes describe records in the Dgraph. From the point of view of assignments on records, an attribute can be either:
    • Single-assign attribute: An attribute for which a record may have only one value. For example, because a book has only one price, the Price attribute would be single-assign. Single-assign attributes are of the atomic data type (such as mdex:string and mdex:double).
    • Multi-assign attribute: An attribute for which a record may have more than one value. For example, because a book may have more than one author, the Author attribute would be multi-assign. Multi-assign attributes are of the set data type (such as mdex:string-set and mdex:double-set). They are represented in EQL by sets (see Sets and Multi-assign Data).
  • Record: The fundamental unit of data in the Dgraph. Records are assigned attribute values. An assignment indicates that a record has a value for an attribute. A record typically has assignments from multiple attributes. Records in collections can include multiple assignments to the same attribute, as can records in EQL results.
  • Collection: The full body of Dgraph application records is contained in one or more collections (called data sets in Studio). Thus, Dgraph data is collection-based rather than table-based. By using a FROM clause in your statement, you specify a named state. This serves as the record source for your query. (The named state references a collection name and the Dgraph database, for the data set.) Alternatively, theFROM clause can specify a previously-defined statement as the record source. Note that a FROM clause is mandatory in an EQL statement.
  • Statement: A unit of EQL that computes related or independent analytics results. In EQL, a statement starts with DEFINE or RETURN and ends with a semi-colon if it is between statements (the semi-colon is optional on the last statement). The statement also includes a mandatory SELECT clause and, optionally, some other clause(s).
  • Result: Query results are a collection of statement results; statement results are a collection of records.
    • Intermediate results: Results from RETURN statements can also be used as intermediate results for further processing by other statements.
    • Returned results: Set of matching values returned by the query or statement.
  • Query: A request sent to the Dgraph Gateway (and ultimately to the Dgraph). In general, a query consists of multiple statements.