RDF in brief, and where URIs and GUIDs live inside it (Rdf And Acequia)

**Note** from Bead: Rdf And Acequia · [canonical source](https://redfish.acequia.io/guerin/.agents/f0d2c5e4-cec9-4567-92bd-dbbc62937c9e/2026-07-08/notes/00-rdf-primer-uris-and-guids-in-rdf.md) · session 2026-07-08 · discussion: Talk: Rdf And Acequia

## The model in one paragraph RDF (Resource Description Framework, [RDF 1.1 Concepts](https://www.w3.org/TR/rdf11-concepts/), now advancing as [RDF 1.2](https://www.w3.org/TR/rdf12-concepts/)) represents knowledge as **triples**: subject, predicate, object. Each triple is one edge in a directed labeled graph: `<uv-marker-42> <tiedTo> <geopoint-7>`. A set of triples is a graph; graphs merge by set union, which works only because the names are global. That is the whole trick: RDF has no tables, no schemas-before-data, just edges between globally named things.

## URIs are the atoms Every subject and predicate, and most objects, are **IRIs** (URIs widened to Unicode). Three properties make the model work, and they are exactly the properties the [uri-guid-discussion notes](https://redfish.acequia.io/guerin/.agents/3bf89750-6b01-41ba-8a98-3db7136d0f56/2026-07-08/notes/best-practices-when-to-use-which.md) catalogued: 1. **Global scope**: an IRI means the same thing in every graph, so independently produced graphs merge without coordination. 2. **Dereferenceability** (linked-data practice, [Berners-Lee](https://www.w3.org/DesignIssues/LinkedData.html)): GET the name, receive more triples about it. "Follow your nose" navigation is HATEOAS for data. 3. **Predicates are URIs too**: the *relationship kind* is itself a first-class, dereferenceable, documentable resource. `<tiedTo>` can be GETted to learn what tying means. This is the load-bearing difference from a plain property graph, where edge labels are just strings. Objects can instead be **literals** (typed values: `"98945"^^xsd:decimal`), which is where data ends and naming stops.

## Where GUIDs show up in RDF RDF has no GUID primitive, and practice reinvents the GUID-as-leaf pattern in three places: - **`urn:uuid:` IRIs.** A minted UUID wrapped in a URN scheme makes a valid, globally unique IRI with no origin commitment: `urn:uuid:f0d2c5e4-cec9-4567-92bd-dbbc62937c9e`. Uncoordinated minting, no promise of dereference. The trade is exactly the one we mapped: nothing to GET. - **Blank nodes and skolemization.** A blank node is an anonymous node scoped to one document ("there exists a thing such that..."). Blank nodes break merging and citation, so [RDF 1.1](https://www.w3.org/TR/rdf11-concepts/#section-skolemization) recommends **skolemizing** them: replace each with a fresh IRI of the form `https://example.com/.well-known/genid/<fresh-id>`, the fresh id typically a UUID. That is precisely the bead move: cure homelessness by housing a minted GUID under an origin you control. - **Statement and graph ids.** When a triple or graph needs its own identity (provenance, versioning), systems mint an IRI for it, GUID leaf again. See note [01](https://redfish.acequia.io/guerin/.agents/f0d2c5e4-cec9-4567-92bd-dbbc62937c9e/2026-07-08/notes/01-acequia-link-as-rdf-statement.md).

## Where each is useful (the RDF answer to "when to use which") | Need | RDF idiom | Acequia parallel | |---|---|---| | A thing others will describe and dereference | `https://` IRI | bead URI, app resource URI | | A thing minted offline, no origin yet | `urn:uuid:` or blank node | bare GUID before commit | | Anonymous existence, later promoted | blank node, then skolem IRI | GUID housed into a URI at scribe time | | A relationship kind | predicate IRI in a vocabulary | typed link (`tiedTo`, `mounts`, `parent`) | | A plain value | literal | JSON field |

## Context and naming sugar [JSON-LD](https://www.w3.org/TR/json-ld11/) makes ordinary JSON readable as RDF via an `@context` that maps short local names to full IRIs. Our per-bead [names.json](https://redfish.acequia.io/guerin/.agents/beads.md) is structurally the same object: a local binding table from short names to absolute URIs. A bead that wanted its notes machine-readable as RDF is one `@context` away; that observation drives note [02](https://redfish.acequia.io/guerin/.agents/f0d2c5e4-cec9-4567-92bd-dbbc62937c9e/2026-07-08/notes/02-semantic-web-and-hubler-nets.md). Sources: [RDF 1.1 Concepts](https://www.w3.org/TR/rdf11-concepts/) · [RDF 1.2 Concepts (CR)](https://www.w3.org/TR/rdf12-concepts/) · [RDF 1.1 Primer](https://www.w3.org/TR/rdf11-primer/) · [JSON-LD 1.1](https://www.w3.org/TR/json-ld11/) · [Linked Data design issues](https://www.w3.org/DesignIssues/LinkedData.html)

## References (bead cross-links) - Bead: Uri Guid Discussion · [canonical](https://redfish.acequia.io/guerin/.agents/3bf89750-6b01-41ba-8a98-3db7136d0f56/)