Worked examples¶
Basic steps are as follows:
Create an Object → give it a Class (what kind of thing it is) → give it Properties (the facts about it).
A property value comes in one of two shapes:
- Literal: a value you type in directly, such as a number or a date (
"1921","A street protest"). - Link: a pointer to another Item (Creator points at a Person, License points at a License document).
A Person, a Collection, even a License are themselves just Items with a Class, so a link always means "Item → Item." Everything is the same shape.
Here is the pattern, followed by five examples.
The power of links¶
A link is the archive's defense against drift. When you use a link as a value, you point at another Item that carries its own metadata, so that one record is reused everywhere instead of being retyped (and slowly diverging) in each place.
A person is the clearest example. "Jane Smith" can be the author of a book and the plaintiff in a court transcript. Both point at the same Jane Smith Item, and every link enriches that one record.
How a link is stored
The Item #5 notation below is a teaching shorthand. Under the hood a value
is recorded as either a literal or a URI in a single property table, so a link
is a URI rather than a foreign key the database enforces. Nothing guarantees
the target Item exists or stays put, which is why a link is a convention the
archive maintains rather than a constraint it imposes.
Pattern¶
[ empty Item ]
├─ Class: <pick one type> ← e.g. Image, Book, Person, Collection
└─ Properties:
dcterms:title = "…" (literal)
dcterms:creator → Item #… (link to a Person)
dcterms:date = "…" (literal)
…
Example 1: a photograph¶
Item #101
Class: dctype:Image
Props:
dcterms:title = "Dockworkers' strike, harbor front" (literal)
dcterms:creator → Item #5 (link → a Person)
dcterms:date = "1921-08" (literal)
dcterms:subject = "Labor movements" (literal)
dcterms:format = "image/jp2" (literal)
dcterms:rights → Item #9 (link → a License)
Example 2: a person (what Creator pointed at)¶
A creator is its own Item, not loose text:
Item #5
Class: dcterms:Agent (the "person/organization" class)
Props:
dcterms:title = "Jane Smith" (literal, her name)
dcterms:date = "1888/1955" (lifespan, literal)
Now every item Jane made just links to #5. Fix her name once, it's fixed
everywhere.
Example 3: a book or article¶
Same move, a different class and a few bibliographic properties:
Item #210
Class: bibo:Book
Props:
dcterms:title = "The General Strike" (literal)
dcterms:creator → Item #5 (link → Person)
dcterms:publisher = "Red Press" (literal)
dcterms:issued = "1923" (literal)
dcterms:language = "en" (literal)
dcterms:bibliographicCitation = "Smith, J. (1923)…" (literal)
Example 4: a collection (the container that holds other Items)¶
A collection is also just an Item with a class, and membership is a link:
Item #300
Class: dctype:Collection
Props:
dcterms:title = "Labor History Archive, 1900/1950" (literal)
dcterms:hasPart → Item #101 (link → the photo)
dcterms:hasPart → Item #210 (link → the book)
And each member can point back up: