Graph
rdf:List

🧾rdf:List

NEW

RDF class used to encode ordered lists via rdf:first and rdf:rest.

DESCRIPTION

rdf:List is the RDF class for representing ordered collections using linked-list structure with rdf:first and rdf:rest, terminated by rdf:nil. It supports predictable traversal, modeling OWL constructs, and serializations like Turtle. Lists are preferred over legacy RDF containers for deterministic order and clearer semantics, though they can be verbose and costly to update in large graphs.

ALTERNATIVE DEFINITIONS

W3C RDF Schema 1.1

rdf:List — The class of RDF Lists.

Defines rdf:List formally as a class in the collection vocabulary.

Source

W3C RDF 1.1 Concepts

Collections are used to represent ordered lists of items in RDF, typically encoded with rdf:first, rdf:rest, and rdf:nil.

Emphasizes ordered nature and the encoding properties of RDF collections.

Source

Wikipedia

Collections in RDF are represented using rdf:List together with the properties rdf:first and rdf:rest.

Concise summary linking rdf:List to its key properties.

Source

RDF RDF Schema rdf:first rdf:rest rdf:nil SPARQL Turtle OWL Simple Knowledge Organization System

COMPETING TERMS

rdf:Seq SKOS Collection

KNOWLEDGE AREAS

Semantic & Knowledge Modeling Data Modeling Data Integration & Interoperability

TARGET AUDIENCE

Data Modeler Data Architect Data Engineer Information Analyst Data Steward

EXTERNAL SOURCES

  • Wikipedia - RDF Schema
  • W3C - RDF Schema collection vocabulary
  • W3C - Turtle syntax for RDF collections
  • Apache Jena - Developer tutorial on RDF collections

TOP QUESTIONS

What is rdf:List in RDF modeling?

rdf:List is the RDF class for ordered collections, represented via linked nodes using rdf:first, rdf:rest, and terminated by rdf:nil. It enables deterministic sequence modeling in graphs.

Category: Definition

How does rdf:List differ from rdf:Seq?

rdf:List encodes order through linked-list structure, while rdf:Seq uses container membership properties (rdf:_1, rdf:_2). Lists are preferred for clearer semantics and standard traversal.

Category: Comparison

When should I use rdf:List?

Use rdf:List when order matters and you need portable, standard-compliant modeling across RDF tools. It’s ideal for OWL constructs and deterministic order in serializations.

Category: Usage

How do I query rdf:List with SPARQL?

Traverse list nodes iteratively via rdf:first and rdf:rest until rdf:nil. SPARQL property paths (e.g., rdf:rest*) simplify navigation and extraction of sequence elements.

Category: HowTo

What are common mistakes with rdf:List?

Breaking the chain (missing rdf:rest), failing to terminate with rdf:nil, or mixing rdf:List with container properties can cause traversal errors and inconsistent order.

Category: Mistakes

What are performance concerns with rdf:List?

Updates and insertions in the middle of lists require pointer rewrites, which can be verbose and costly on large lists. Consider sequences only when necessary.

Category: Risks

Yes. Lists provide deterministic order and consistent semantics, while containers are legacy and less predictable. Most modern RDF tooling favors lists.

Category: Opinion

Can rdf:List represent nested structures?

Yes. Elements can be lists themselves, enabling nested sequences. Careful traversal logic and validation are needed to maintain integrity.

Category: Capabilities

How is rdf:List serialized in Turtle?

Turtle provides a concise syntax using parentheses, e.g., (a b c), which expands to the rdf:first/rdf:rest linked-list structure under the hood.

Category: Syntax