Skip to content

Linked Description

A linked description describes one resource and names the rest. Ask for an Instance and you get that Instance: its own properties, and a bare URI wherever it points at another resource. Send one when whoever reads it can follow those URIs, or has no need to, which covers a record on its way to an editor, a feed of what changed, or a resource moving between two systems that already hold the rest.

When the reader cannot follow them, send a bounded description instead, which embeds the Work the Instance instantiates so that nothing needs fetching. linked.json checks a linked description and bounded.json checks a bounded one, and the only structural difference between them is whether instanceOf holds a URI or the Work itself.

As a quick illustration here is an abridged JSON Instance:

{
"@context": "https://bibframe-json.org/v0.1/context/bibframe.jsonld",
"@id": "http://id.loc.gov/resources/instances/23867197",
"@type": ["Instance"],
"instanceOf": ["http://id.loc.gov/resources/works/23867197"],
"title": [
{
"@type": ["Title"],
"mainTitle": ["Minority voices from the academic superstructure"]
}
],
"identifiedBy": [
{ "@type": ["Lccn"], "rdf:value": [" 2024038899"] },
{
"@type": ["Isbn"],
"qualifier": ["hardcover"],
"rdf:value": ["9781668499092"]
}
],
"provisionActivity": [
{
"@type": ["Publication"],
"bflc:simplePlace": ["Hershey, PA"],
"bflc:simpleDate": ["[2025]"]
}
]
}

Note that instanceOf has a bare URI, because the context declares it @type: @id. Seven properties are written that way: instanceOf, hasInstance, itemOf, hasItem, electronicLocator, generationProcess, descriptionLevel.

The schema requires @context on the document. Carry it as a URL or carry it inlined; the URI below is provisional while this proposal is worked out.

"@context": "https://bibframe-json.org/v0.1/context/bibframe.jsonld"

The requirement reaches the document and nothing else. A nested node carries no context of its own, and neither does the Work a bounded description embeds.

Without a context the document is JSON that happens to match this shape. With one it is also JSON-LD, and instanceOf means BIBFRAME’s instanceOf property rather than the string “instanceOf”. Reading it as plain JSON works the same either way.

A literal keeps its language or its datatype when it has one:

"title": [
{
"@type": ["Title"],
"mainTitle": ["Trudy Instituta Obshchcei Fiziki"]
},
{
"@type": ["Title"],
"mainTitle": [
{
"@value": "Труды Института Общц̳еи Физики",
"@language": "ru-cyrl"
}
]
}
],
"date": [
{
"@value": "199X",
"@type": "http://id.loc.gov/datatypes/edtf"
}
]

Those two titles are one title in two scripts, and the language tag is all that tells them apart. date carries three datatypes in real records: xsd:date, xsd:dateTime, and EDTF. EDTF encodes uncertainty, so nothing parses 199X as a date.

A resource is checked by linked.json, which comes in two forms from one build: a single bundled file, and one file per definition. The split files are the source. Each has a page of its own, listing the properties it names and what BIBFRAME says each of them is.

DefinitionWhat it isIn the model
WorkThe thing itself, apart from any published edition of it.primer
InstanceOne published edition of a Work.primer
HubThe record gathering everything said about a single work.primer
ItemOne physical or electronic copy of an Instance.primer
AdminMetadataHow the record itself came to be, rather than what it describes.primer
ClassificationA call number, and who assigned it.
ContributionAn agent's part in making the resource, and what that part was.primer
IdentifierA number that names the resource, and the scheme it belongs to.primer
ProvisionActivityA publication, distribution or manufacture: who, where and when.primer
Ref
RelationHow one resource points at another, and what the pointing means.primer
ResourceWhat a Work, Instance, Hub and Item have in common.
Text
TitleA title, or one of the variant forms of it a record carries.primer

Start at https://bibframe-json.org/v0.1/schema/linked/main.json. It dispatches on @type with if/then, so a failure is reported against the resource type the record claims rather than as “the document matched none of four types”.