A graph can consist of arbitrary levels of nesting, with a level that is called a node. Nodes are also called edges. A graph can have any number of edges. A graph is considered to be complete when there is no longer any additional information to retrieve, and a graph can only be visited from the root. We can construct an RDF graph, or RDF graph, in two ways: the first technique is using the RDF class from the RDF1.0 specification, using the Graph constructor, which takes an optional graph parameter called children. The graph parameter is optional in this case, and will default to True if not specified. The second technique is using the following, which is the default RDF1.0 spec method: Graph() ## returns a graph containing the nodes in ascending order The nodes of this graph are arranged in the given order The nodes are in descending order (and the default is ascending order), but can be arranged in arbitrary order. The order of the children is fixed. This is what we get using Graph() for the graph constructed in the previous answer Graph() ## returns a graph containing the nodes in descending order As you see these graphs are quite similar, with the only difference being that graph 1 has a missing root node and that the root nodes are positioned in descending order. If we take a look at the RDF1.1 specification this could be written: Graph() This specification has also been used in the RDF spec, which can be found at . This means that we can create an RDF graph using either the previous technique or using the new RDF 1.1 Specification. However, we cannot get an RDF graph by using graph(), Graph(), Graph(), or a Graph() from the RDF 1.0 Specification. There are a couple of alternative ways that you could get an RDF graph. RDF: The language of RDF Graphs — a review of the design, implementation, and semantics of RDF graph software Jul 9, 2023 — An annotated review of the RDF1.1 specifications: .