Roll Edition Format

Schema documentation for the linked-rolls piano roll edition format. The vocabulary behind it is the Roll Edition Ontology with its type vocabulary. The library that reads and writes the format has an API reference and recipes.

Edition object

Describes the specific digital edition of a piano roll.

Maps to lrmoo:F2 Expression

PropertyTypeDescription
copies requiredarray of RollCopy

The physical roll copies on which this edition is based.

Maps to reo:witness

creation requiredEditionCreation

Information about the creation of this edition, including publisher and publication date.

Maps to lrmoo:R17i was created by

license requiredstring

The license under which the edition is published.

Maps to dcterms:license

Example: "https://creativecommons.org/licenses/by/4.0/"

motivationsarray of Motivation

The editor's motivations, each a reason for musical changes in words, stated once and named by the edits of any version (Edit.motivation). The motivations the vocabulary publishes are named by IRI and not stated here (musicalChange, technicalChange).

referenceCopystring

The copy whose millimetres are the edition's axis, by id: every place the edition gives along the roll is a place on this copy's paper, counted from where its scan begins, and every other copy is aligned onto it. Choosing it is the one editorial decision the alignment leaves; a copy scanned whole and without tears serves best, since its places are what notes and readers cite. Left out, it is the first copy with features that is not aligned (referenceCopyOf).

Maps to reo:referenceCopy

roll requiredRoll

The roll which is edited in this edition.

Maps to lrmoo:R3i realises

title requiredstring

The title of the edition.

Maps to dcterms:title

Example: "Alfred Grünfeld spielt Robert Schumann, Träumerei"

versionstring

The version of the edition, which a citation names together with the publication date. The editor raises it for each release and sets the publication date with it, so that what a reader cited can be told from what has changed since. An edition published before this field existed states none.

Maps to owl:versionInfo

Example: "1.0"

versions requiredarray of Version

The different versions of the roll on which this edition is based.

Maps to lrmoo:R75 incorporates

RollCopy object

A physical copy of a roll, held at a specific location. Each roll copy has its own measurements, conditions and modifications, and states its features in the act that brought each of them about. Multiple copies of the same roll may exist across different archives or collections.

Maps to reo:RollCopy

PropertyTypeDescription
@id requiredstring

A unique identifier for this object.

@type required"RollCopy"

The type discriminator for this object.

Maps to rdf:type

carriesarray of ReferenceAssumption

The versions this copy is held to carry, where its features are not read into symbols, as for a copy known only from a recording. Each statement carries the belief it rests on.

Maps to crm:P128 carries

conditions requiredarray of RollConditionAssignment

Condition assessments of this roll copy (e.g. paper stretch, general wear, a tear). Each condition is an assumption annotatable with a belief.

Maps to crm:P44 has condition

keeperKeeperAssignment

The institution or person holding this copy. Left out where it is not known, as for a copy known only from a recording. An object assumption, so that a keeper read off a file header or adopted from a letter can say where it comes from. Who held the copy before is not stated here: P50 names the current keeper.

Maps to crm:P50 has current keeper

measurements requiredobject

Physical measurements of this roll copy: its dimensions, hole separation and margins, the resolution of its scan, and how it lies on the edition's axis. What the perforations tell about the machine that cut them is stated with the production. A value the edition exports is an object assumption, so that it can say what took it: a measurement naming the program and its version, the scan or analysis it was taken on, and the day.

Maps to crm:P39i was measured by

measurements.alignmentAlignment

How the copy's places are carried onto the edition's axis. Left out for the reference copy, whose places are the axis, and for a copy not aligned yet. Not exported to RDF.

measurements.dimensionsObjectAssumption<RollDimensions>

The physical dimensions of the roll.

Maps to reo:dimensions

measurements.holeSeparationObjectAssumption<(Measure<"px">|Measure<"mm">)>

The distance across the roll from the centre of one track to the next, the track pitch or Teilung, in the unit the scan was measured in. It is fixed by the tracker bar the roll was cut for, and is another thing than the chain pitch, which runs along the roll.

Maps to reo:holeSeparation

measurements.marginsMargins<"px"> | Margins<"mm">

The margins on the treble and bass sides of the roll. Not exported to RDF.

measurements.readerExtensionobject

What a pneumatic reader added to this copy's chains of holes, where it was taken off again. Such a reader reports how long a valve stayed open, which exceeds the perforation that opened it, so its chains are overlong by a constant while its onsets agree. Nothing for a copy read by other means, whose chains are the punched ones themselves. Not exported to RDF.

measurements.readerExtension.leavingarray of string

The chains it was not taken off, by @id, being no longer than it is. The constant reaches its limit there rather than the copy being wrong, and why they were left is for the edition to state about the features themselves; this only records that they stand as the reader gave them, so that putting the extension back does not lengthen a chain nothing was taken from.

measurements.readerExtension.length requiredMillimeters

How much longer the reading of a chain ran than the perforation that caused it.

measurements.scanResolutionObjectAssumption<Measure<"px/in">>

The resolution this copy's scan was read at, along the roll. It is what the measurements given in pixels are to be read against, and what every conversion between a place in the scan and one on the paper goes through. A scanner may read across the roll at another resolution, which the analysis files do not state.

Maps to reo:scanResolution

measurements.trackCalibrationTrackCalibration

Relates this copy's scan to the tracker bar: how the scanning software's hole numbering was shifted onto the bar, and where the track grid sits in the image. Not exported to RDF.

modifications requiredarray of Modification

Maps to crm:P31i was modified by

productionProductionEvent

The production event that created this roll copy.

Maps to lrmoo:R28i was produced by

readFromFeatureSource

What this copy's features were read from. A copy that states no source is one whose features reached the edition by a way that was not written down.

Maps to reo:capture

sameAsarray of string

The same copy as others name it: the record its keeper gives it, such as Stanford's PURL for a copy of the Condon collection. It names the copy as the GND names a pianist, and takes over nothing the record says about it; what the edition holds of the copy it states itself.

Maps to owl:sameAs

scanstring

The scan URL or IIIF URL of the roll.

Maps to crm:P138i has representation

siglumstring

A short siglum to identify the copy, e.g. "St1" or "Wi1": letters for the collection the copy was read in, and a number counting the copies of the roll held there. A copy without one is named by its keeper.

Maps to reo:siglum

Used in Edition.copies

EditionCreation object

This type describes the creation of an edition: the editors, publisher and publication date, the editorial principles the edition follows, and the programs it was made with.

Maps to lrmoo:F28 Expression Creation

PropertyTypeDescription
editorsarray of Editor

The persons who prepared the edition, each with the part they took in the editorial work. An edition written before this field existed carries none.

Maps to crm:P14 carried out by

principlesarray of string

The editorial principles the edition follows, by IRI: the published rules its stemma and its edits rest on, whether the editor applied them or a program did, such as that the same addition at the same place is not made twice independently (stemmaRules, editRules). Adopting a proposal names those it follows. An edition that names none leaves it out.

Maps to crm:P33 used specific technique

publicationDate requiredstring (date)

The date on which the edition was published: where it states a version, the date of that version.

Maps to dcterms:date

publisher requiredPerson

The person or institution responsible for publishing the edition.

Maps to crm:P14 carried out by

softwarearray of Software

The programs the edition was made with, each with its release: the release of this library that found its stemma and grouped its edits, which finds them again with the defaults it has. Adopting a proposal names it, and saving the edition does not, so that the release named is the one that found what the edition states.

Maps to crm:P16 used specific object

Used in Edition.creation

Motivation object

A reason for a musical change, in the editor's words. The edition states its motivations once (Edition.motivations), and an edit of any version names the one it was made for. Every change of a version that derives from another states a motivation: a program states whether it is musical or technical (musicalChange, technicalChange), and the editor puts a reason of their own in place of a musical one. Speculating about why a change was made is kept to the musical changes.

Maps to crm:E33 Linguistic Object

PropertyTypeDescription
@id requiredstring

A unique identifier for this object.

@type required"motivation"

The type discriminator for this object.

Maps to rdf:type

notestring

A free-text note providing additional context.

Maps to crm:P3 has note

Used in Edition.motivations

Roll object

The abstract concept of a roll, identified by its catalogue number.

Maps to lrmoo:F1 Work

PropertyTypeDescription
catalogueNumber requiredstring

The catalogue number of the roll.

Maps to dcterms:identifier

Example: "WM 225"

recordingEvent requiredRecordingEvent

Maps to lrmoo:R19i was realised through

Used in Edition.roll

Version object

A version is defined by the sum of edits applied to the version it is based on. What it is called is not stored with it: siglaOf reads the sigla off the stemma, so that a label never outlives the arrangement it describes.

Maps to lrmoo:F2 Expression

PropertyTypeDescription
@id requiredstring

A unique identifier for this object.

basedOnarray of Derivation

The versions this one is held to derive from, each under the belief it rests on. The text is read against the principal one (principalDerivationOf); the others stand as hypotheses, such as a contamination. A version that names none represents the mother roll.

Maps to lrmoo:R76 is derivative of

creationVersionCreation

The act that made this version, where it is known: who carried it out, when, and by what rule. The export states the act for every version, stating nothing of it where nothing is known, so that the axioms of reo.ttl can place it in time: it started after the recording and the creation of every version it derives from had started, and ended no later than the punching of any copy carrying a symbol it added. A date stated here stands beside those; which of them bounds the act closest is for a query to pick.

Maps to lrmoo:R17i was created by

editsarray of Edit

The list of edits that, applied to the base version, produce this version. A hypothetical version whose changes nobody can state leaves it out; it then reads as the version it derives from.

Maps to reo:involvedEdit

system requiredConcept

The reproducing system this version is coded for. One roll was often issued for several of them, and a version is a reading in one system's words: its expression types are that system's vocabulary and its notes sit on that bar's positions. A system the type vocabulary knows carries the IRI of its concept as id, from which the export takes the system's own context.

Maps to crm:P2 has type

Used in Edition.versions, RecordingEvent.created

ReferenceAssumption object

A reference assumption wraps a reference (by @id) with an optional annotation. Used when pointing to another entity whose association may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

@id requiredstring

A unique identifier for this object.

Used in RollCopy.carries, Note.after, Note.alignedWith, Note.before, Note.carriers, Note.pairedWith, Expression.after, Expression.alignedWith, Expression.before, Expression.carriers, Expression.pairedWith, Text.carriers

RollConditionAssignment alias

An assignment of a condition (general, paper-stretch or a tear) to a roll copy, annotatable with a belief about its certainty.

Same as ObjectAssumption<(GeneralRollCondition|PaperStretch|Tear)>

Used in RollCopy.conditions

KeeperAssignment alias

The keeper a copy is held by, as an object assumption, so that the statement can carry the belief it rests on and the reasons for it.

Same as ObjectAssumption<Agent>

Used in RollCopy.keeper

Alignment object

How the copy's own places are carried onto the edition's axis, which is the millimetres of its reference copy (Edition.referenceCopy): x_axis = (x + shift.horizontal) · scale track_axis = track + shift.vertical It is found, not given: alignCopy matches the copy's notes with the reference copy's and records what it found, and can find it again. The document holds the copy's features and tears at its own places, as they were read, and this beside them; importJsonLd puts them onto the axis and asJsonLd takes them back, so that within the library every place along the roll is a place on the axis. What the scale is put down to, the paper or the speed the copy was cut for, is worked out from all the alignments together (paperOf). Not exported to RDF.

PropertyTypeDescription
againststring

The copy it was found against, by id: the edition's reference copy at the time. Left out by alignments recorded before this was.

foundByobject

The software that found it, and when.

foundBy.date requiredstring (date)

The day it was found.

foundBy.software requiredstring

The name of the method.

foundBy.version requiredstring

Its revision (ALIGNMENT_METHOD).

matchednumber

How many notes of the copy found their counterpart on the reference copy.

residualMillimeters

How far the counterparts still lie apart, as a root mean square in millimetres of the axis.

scale requirednumber

Own millimetres to the axis's, applied after the shift.

scaleErrornumber

The standard error of the scale: the residual over the spread of the matched notes along the roll, as for a line of least squares.

shift requiredShift

Applied before the scale.

Used in RollCopy.measurements.alignment

ObjectAssumption<RollDimensions> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

height requiredMillimeters

The total height (length) of the roll.

Maps to reo:height

unit required"mm"

The unit of measurement.

Maps to crm:P91 has unit

width requiredMillimeters

The width of the roll.

Maps to reo:width

Used in RollCopy.measurements.dimensions

ObjectAssumption<(Measure<"px">|Measure<"mm">)> one of

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

One of

Used in RollCopy.measurements.holeSeparation

Margins<"px"> object

The margins on the treble and bass sides of the roll, in the unit the scan was measured in.

PropertyTypeDescription
bass requiredQuantity<"px">
treble requiredQuantity<"px">
unit required"px"

Used in RollCopy.measurements.margins

Margins<"mm"> object

The margins on the treble and bass sides of the roll, in the unit the scan was measured in.

PropertyTypeDescription
bass requiredQuantity<"mm">
treble requiredQuantity<"mm">
unit required"mm"

Used in RollCopy.measurements.margins

Millimeters alias

A place along the roll, or any length on the paper.

Same as Quantity<"mm">

Used in RollCopy.measurements.readerExtension.length, Alignment.residual, ObjectAssumption<RollDimensions>.height, ObjectAssumption<RollDimensions>.width, Shift.horizontal, ObjectAssumption<CollationTolerance>.offsetEnd, ObjectAssumption<CollationTolerance>.offsetStart, ObjectAssumption<CollationTolerance>.toleranceEnd, ObjectAssumption<CollationTolerance>.toleranceStart, HorizontalSpan.from, HorizontalSpan.to, ObjectAssumption<ChainPitch>.bridge, ObjectAssumption<ChainPitch>.slot

ObjectAssumption<Measure<"px/in">> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

unit required"px/in"

The unit of measurement.

Maps to crm:P91 has unit

value requiredQuantity<"px/in">

The measured value.

Maps to crm:P90 has value

Used in RollCopy.measurements.scanResolution

TrackCalibration object

Relates a scan to the tracker bar it was read with. Scanning software numbers the hole columns it finds by their position in the image, so its numbering is offset by however far the roll lay from the edge of the scanner bed. Calibrating means finding that offset, usually from a landmark such as the rewind perforation. column = offset + scannerTrack * separation trackerBar = scannerTrack + shift

PropertyTypeDescription
offset requiredPixels

Image column of the scanning software's track 0.

separation requiredPixels

Distance between the centres of adjacent tracks.

shift requiredTrack

Added to the scanning software's numbering to reach the tracker bar.

unit required"px"

Used in RollCopy.measurements.trackCalibration

Modification one of

An identifiable act that changed the roll copy after it was punched. Three kinds of act are told apart, because the CRM tells them apart. E79 Part Addition asks that what is added be "a separate identifiable whole prior to" the act, which a label glued on is and a pencil line is not: drawing, writing and punching bring a feature into being and are productions.

Maps to crm:E79 Part Addition, crm:E80 Part Removal, crm:E12 Production

One of

Used in RollCopy.modifications

ProductionEvent object

Describes the production of a roll copy: the manufacturer, the paper used, the date, and the system and paper speed the copy was cut for.

Maps to lrmoo:F32 Item Production Event

PropertyTypeDescription
companyObjectAssumption<Agent>

The company that produced the roll copy (e.g. "M. Welte & Söhne"). An object assumption, so that a company read off a box label or adopted from a letter can say where it comes from.

Maps to crm:P14 carried out by

dateDateAssignment

The date of production, if known.

Maps to crm:P4 has time-span

paperObjectAssumption<Concept>

The paper the roll copy was cut on. An object assumption, so that what the paper is taken to be can say how that was found and serve as a premise, e.g. of a dating.

Maps to crm:P126 employed

perforatorPerforator

The perforator the copy was punched on, with the drive and the setting its perforations show.

Maps to crm:P16 used specific object

producedarray of AnyFeature

The features the copy came from its punching with: the note and expression perforations, and now and then a mark the perforator left. A reading of a scan finds every chain of holes on the paper at once and states it here, and a feature an editor reads as the work of a later hand belongs in the act that made it, whichever kind of feature it is.

Maps to reo:produced

speedObjectAssumption<PaperSpeed>

The paper speed the copy was cut for, as the speed at the beginning of the roll: a tempo marking states it so, and the take-up spool accelerates from there. A performance of a version the copy bears witness to starts at it (paperSpeedOf). A copy cut from the same master for another speed comes out longer or shorter than the roll it is aligned with by the ratio of the speeds. The alignment measures that ratio far more closely than a label states a speed, so the speed is held against what the alignments give (alignmentProblems) rather than used to find it.

Maps to reo:paperSpeed

systemConcept

The reproducing system the copy was cut for. Left out, it is the roll's own; a Licensee re-cut of a T-100 roll names the Licensee here. A system the type vocabulary knows carries the IRI of its concept as id.

Maps to crm:P32 used general technique

Used in RollCopy.production

FeatureSource object

The capture by which a copy's features became data: what they were read from, who read them, on what device, with what software and when. It states where the numbers of the edition come from and says nothing about the state of the paper, which is a condition. What is not known is left out. A reader is told about the gap by reservationsAbout, which works out what a copy cannot vouch for from what it states here.

Maps to crm:E7 Activity

PropertyTypeDescription
actorActorAssignment

Who carried out the capture.

Maps to crm:P14 carried out by

dateDateAssignment

When the capture took place.

Maps to crm:P4 has time-span

deviceConcept

The make and model of the scanner, camera or player the capture ran on.

Maps to crmdig:L12 happened on device

instrumentObjectAssumption<Instrument>

The instrument the copy was played on, where the capture is a recording of it.

Maps to crm:P16 used specific object

kind requiredSourceKind

What the features were read from.

Maps to crm:P2 has type

notestring

A free-text note providing additional context.

Maps to crm:P3 has note

outputstring

The file the capture produced, where it has an address.

Maps to crmdig:L11 had output

softwarearray of Software

The software the capture ran, each with its version.

Maps to crmdig:L23 used software or firmware

Used in RollCopy.readFrom

Editor object

A person who took part in preparing the edition.

PropertyTypeDescription
@idstring

A unique identifier for this object.

name requiredstring

The name, e.g. "Grünfeld, Alfred", "Wien", "M. Welte & Söhne".

Maps to rdfs:label

role requiredEditorialRole

The part this person took in the editorial work.

Maps to crm:P2 has type

sameAs requiredarray of string

Authority records for the same thing: GND, Wikidata, geonames or similar.

Maps to owl:sameAs

Example: "https://d-nb.info/gnd/116888652"

Used in EditionCreation.editors

Person alias

An agent that is a person.

Same as Agent

Used in EditionCreation.publisher, RecordingEvent.recorded.pianist, MeaningComprehension.actor, Inference.actor, BeliefAdoption.actor, Measurement.actor, Argumentation.actor

Software object

Software that captured a copy or measured it: the transcriber that read a recording into notes, the emulator that wrote a MIDI file, the program that found the holes on a scan or aligned two copies. Or the software an edition was made with, such as the release of this library that found its stemma.

Maps to crmdig:D14 Software

PropertyTypeDescription
name requiredstring

Maps to rdfs:label

versionstring

The release, the commit, or the model checkpoint of a transcriber.

Maps to owl:versionInfo

Used in EditionCreation.software, FeatureSource.software, Measurement.software

RecordingEvent object

Describes the event of recording and documents the persons involved in the process (e.g. pianist), the place, and the date of the recording.

Maps to lrmoo:F28 Expression Creation

PropertyTypeDescription
createdVersion

The version of the roll which was created in the recording. Since it is usually not handed down, this is an optional property.

Maps to lrmoo:R17 created

date requiredDateAssignment

The recording date of the roll. This is a date assignment so that we can state e.g. the catalogue or the roll label which indicates the date of the recording.

Maps to crm:P4 has time-span

place requiredPlace

The place where the recording took place.

Maps to crm:P7 took place at

recorded requiredobject

Documents the performance which was recorded.

Maps to lrmoo:R81 recorded

recorded.pianist requiredPerson

The pianist who gave the recorded performance.

Maps to crm:P14 carried out by

recorded.playing requiredstring

This property should point to a standard URI, e.g. the GND.

Maps to lrmoo:R80 performed

Used in Roll.recordingEvent

Derivation object

A derivation names the version another one was derived from, together with the tolerance the two were collated at. How precisely the copies put a symbol depends on what they are and on how their features were obtained, so the tolerance can differ from derivation to derivation.

Maps to lrmoo:R76 is derivative of

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

@id requiredstring

A unique identifier for this object.

collationToleranceObjectAssumption<CollationTolerance>

The tolerance at which the derived version was collated against the one it is based on. A derivation written before the tolerance was held here states none. Not exported to RDF. It is an object assumption, so that a tolerance calculated from the scatter of the readings can carry the inference it was drawn by. It is the one quantity in the edition that decides what counts as a reading at all, and a number arrived at by a method should say so.

Used in Version.basedOn

VersionCreation object

How a version was made, where that is known and worth stating. A roll issued for another system was re-punched by an editor of the publisher's, and that was an editorial act rather than a conversion: Lawson names Kähle as the man who corrected second masters for the green system. The rule he worked by is the procedure named here, and the version's edits carry it out, so the mechanical part of a transfer is stated once instead of being spelled out per note.

Maps to lrmoo:F28 Expression Creation

PropertyTypeDescription
actorActorAssignment

Who carried the act out. An ObjectAssumption, so an attribution can carry the belief it rests on and the reasons for it.

Maps to crm:P14 carried out by

dateDateAssignment

When it took place.

Maps to crm:P4 has time-span

lengthRatioObjectAssumption<LengthRatio>

How long the act made the version's paper for a length of the paper of the version it derives from. A re-cut for a system whose paper runs slower comes out shorter by the ratio of the speeds, and the alignments of the copies measure that ratio more closely than any label states a speed (lengthRatioOf). It is stated where the edition holds to it, as a measurement naming the copies it used and the program that found it, so that it can serve as a premise. A speed follows from it only together with a premise about the speed of the other version.

Maps to reo:lengthRatio

procedureConcept

The rule followed, as a term of the vocabulary: the notes stand at their pitch, the expression is re-spelled in the other system's words.

Maps to crm:P33 used specific technique

Used in Version.creation

Edit object

A set of edits transforms a version of a roll into another version. Edits insert or delete symbols, or both (= replace). What kind of change an edit is follows from its motivation (kindOfChange). If an edit is the interpretation of a metamark, such as a pencil mark, this should be made explicit using a meaning comprehension on the @annotation field. An edit states no date. That it ended no later than the act that made a feature carrying a symbol it inserts, a reasoner derives with the axioms of reo.ttl; which of those dates bounds it closest is for a query to pick.

Maps to reo:Edit

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

@id requiredstring

A unique identifier for this object.

@type required"edit"

The type discriminator for this object.

Maps to rdf:type

deletearray of string

References (by @id) to the symbols to be deleted by this edit.

Maps to reo:removed

insertarray of AnySymbol

The symbols to be inserted by this edit.

Maps to reo:added

motivationstring

Why the edit was made: one of the edition's motivations, by id, or one the vocabulary publishes, by IRI (musicalChange, technicalChange). An edit of a version that derives from none states none.

Maps to crm:P17 was motivated by

Used in Version.edits

Concept one of

A term from a vocabulary, such as a roll system, a procedure or a kind of paper. A term the type vocabulary declares is named by its IRI, and what it is called stands in the vocabulary rather than in the edition, so it needs no name of its own; nameOf reads one either way. A term the vocabulary does not have is given by name, which is then all there is to go on.

Maps to crm:E55 Type

One of

Used in Version.system, ProductionEvent.system, FeatureSource.device, VersionCreation.procedure, Measurement.procedure

Belief object

A belief is a temporal object and associates a proposition (i.e. a statement) with a certainty. It comes into existence through argumentations (reasons).

Maps to crminf:I2 Belief

PropertyTypeDescription
@id requiredstring

A unique identifier for this object.

@type required"belief"

The type discriminator for this object.

Maps to rdf:type

certainty requiredCertainty

The level of certainty associated with this belief.

Maps to crminf:J5 holds to be

reasons requiredarray of AnyArgumentation

The argumentations providing reasons for this belief.

Maps to crminf:J2i was concluded by

Used in ReferenceAssumption.@annotation.belief, ObjectAssumption<RollDimensions>.@annotation.belief, ObjectAssumption<(Measure<"px">|Measure<"mm">)>.1.@annotation.belief, ObjectAssumption<(Measure<"px">|Measure<"mm">)>.2.@annotation.belief, ObjectAssumption<Measure<"px/in">>.@annotation.belief, Derivation.@annotation.belief, Edit.@annotation.belief, ObjectAssumption<(GeneralRollCondition|PaperStretch|Tear)>.1.@annotation.belief, ObjectAssumption<(GeneralRollCondition|PaperStretch|Tear)>.2.@annotation.belief, ObjectAssumption<(GeneralRollCondition|PaperStretch|Tear)>.3.@annotation.belief, ObjectAssumption<Agent>.@annotation.belief, DateAssignment.1.@annotation.belief, DateAssignment.2.@annotation.belief, DateAssignment.3.@annotation.belief, ObjectAssumption<Concept>.1.@annotation.belief, ObjectAssumption<Concept>.2.@annotation.belief, ObjectAssumption<PaperSpeed>.1.@annotation.belief, ObjectAssumption<PaperSpeed>.2.@annotation.belief, ObjectAssumption<Instrument>.@annotation.belief, ObjectAssumption<CollationTolerance>.@annotation.belief, ObjectAssumption<LengthRatio>.@annotation.belief, ObjectAssumption<Person>.@annotation.belief, ObjectAssumption<ConditionState<("detaching"|"ripped")>>.@annotation.belief, ObjectAssumption<Drive>.@annotation.belief, ObjectAssumption<ConditionState<"general">>.@annotation.belief, ObjectAssumption<ConditionState<("partially-torn"|"missing-perforation")>>.@annotation.belief, ObjectAssumption<ConditionState<("illegible")>>.@annotation.belief, ObjectAssumption<Transcription>.@annotation.belief, ObjectAssumption<ConditionState<("faded")>>.@annotation.belief, ObjectAssumption<Advance>.@annotation.belief, ObjectAssumption<ChainPitch>.@annotation.belief, ObjectAssumption<Measure<"mm">>.@annotation.belief

ObjectAssumption<(GeneralRollCondition|PaperStretch|Tear)> one of

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

One of

Used in RollConditionAssignment

ObjectAssumption<Agent> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

@idstring

A unique identifier for this object.

name requiredstring

The name, e.g. "Grünfeld, Alfred", "Wien", "M. Welte & Söhne".

Maps to rdfs:label

roleAgentRole

The role of the agent in the context of the edition.

Maps to crm:P2 has type

sameAs requiredarray of string

Authority records for the same thing: GND, Wikidata, geonames or similar.

Maps to owl:sameAs

Example: "https://d-nb.info/gnd/116888652"

Used in KeeperAssignment, ProductionEvent.company

Shift object

How far an alignment moves a copy's places before it scales them: along the roll, in the copy's own millimetres, and across it, in tracks.

PropertyTypeDescription
horizontal requiredMillimeters

Along the roll.

vertical requiredTrack

Across the tracker bar.

Used in Alignment.shift

Quantity<"px"> number

number

Used in ObjectAssumption<(Measure<"px">|Measure<"mm">)>.1.value, Margins<"px">.bass, Margins<"px">.treble, Pixels

Quantity<"mm"> number

number

Used in ObjectAssumption<(Measure<"px">|Measure<"mm">)>.2.value, Margins<"mm">.bass, Margins<"mm">.treble, Millimeters, Measure<"mm">.value, ObjectAssumption<Advance>.value, ObjectAssumption<ChainPitch>.value, ObjectAssumption<Measure<"mm">>.value

Quantity<"px/in"> number

number

Used in ObjectAssumption<Measure<"px/in">>.value

Pixels alias

A place in a scan. Comparable within one scan only, since the resolution is the scan's.

Same as Quantity<"px">

Used in TrackCalibration.offset, TrackCalibration.separation

Track alias

A position across the roll, numbered as the tracker bar does.

Same as Quantity<"track">

Used in TrackCalibration.shift, Shift.vertical, VerticalSpan.from, VerticalSpan.to

ActorAssignment alias

An actor assignment associates a person with an action. It is an object assumption so that the attribution can be annotated with a belief about its certainty.

Same as ObjectAssumption<Person>

Used in Modification.1.actor, Modification.2.actor, Modification.3.actor, FeatureSource.actor, VersionCreation.actor

Patch object

A piece of paper or tape glued onto the roll: a label naming it, a strip covering perforations, or a patch reinforcing a tear. A patch may itself carry other features, such as writings or holes.

Maps to reo:Patch

PropertyTypeDescription
@id requiredstring

A unique identifier for this object.

@type required"Patch"

The type discriminator for this object.

Maps to rdf:type

conditionObjectAssumption<ConditionState<("detaching"|"ripped")>>

This can be used e.g. to indicate a perforation which is torn out or in any other way damaged.

Maps to crm:P44 has condition

depictionstring

IIIF region pointing to a depiction of this feature in the scan.

Maps to crm:P138i has representation

featuresarray of NestedFeature

The features the patch itself carries. They need not be positioned explicitly.

Maps to crm:P46 is composed of

horizontal requiredHorizontalSpan

Horizontal span of the feature on the roll.

Maps to crm:P43 has dimension

material required"paper" | "tape"

What the patch is made of.

Maps to crm:P45 consists of

rotationMeasure<"deg">

How far the patch was stuck on askew. At zero its edges stand square to the roll, and the angle turns them towards the end of it, as a writing's reading direction turns.

Maps to reo:rotation

side"recto" | "verso"

The face of the roll it lies on: the side that faces the reader as the roll plays, or the back of it.

Maps to reo:side

vertical requiredVerticalSpan

Vertical span of the feature on the roll.

Maps to crm:P43 has dimension

Used in Modification.1.added

DateAssignment one of

When something happened, as far as the edition can state it, and as an assumption, so that a dating can carry the belief it rests on: the day it falls within, or the bounds it lies between. A bound nobody can give is left out, so after alone says "not before".

Maps to crm:E52 Time-Span

One of

Used in Modification.1.date, Modification.2.date, Modification.3.date, ProductionEvent.date, FeatureSource.date, RecordingEvent.date, VersionCreation.date

ModificationPurpose enumeration

What a modification of a copy was for, as far as it can be told.

Used in Modification.1.purpose, Modification.2.purpose

AnyFeature one of

The features proper: a chain of holes, a writing and a mark are all human-made features, and each of them is borne by whatever it sits on. A patch is an object glued onto the paper and stands apart from them.

One of

Used in Modification.2.produced, ProductionEvent.produced

ObjectAssumption<Concept> one of

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

One of

Used in ProductionEvent.paper

Perforator object

The machine that punched the copy. It stands for this production alone. Whether it is the one another copy was punched on is left to a statement of identity made about it elsewhere, which its id allows.

Maps to crm:E22 Human-Made Object

PropertyTypeDescription
@id requiredstring

A unique identifier for this object.

@type required"Perforator"

The type discriminator for this object.

Maps to rdf:type

conditionPerforatorSetting

Maps to crm:P44 has condition

driveObjectAssumption<Drive>

How its punches were driven, as the rows of its chains show it: in line across the tracks where one ram head drove them all, and staggered where each punch had a driver of its own. It is part of how the machine was built and so no part of its setting.

Maps to reo:drive

Used in ProductionEvent.perforator

ObjectAssumption<PaperSpeed> one of

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

One of

Used in ProductionEvent.speed

ObjectAssumption<Instrument> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

conditionObjectAssumption<ConditionState<"general">>

Maps to crm:P44 has condition

name requiredstring

The name, e.g. "Grünfeld, Alfred", "Wien", "M. Welte & Söhne".

Maps to rdfs:label

sameAs requiredarray of string

Authority records for the same thing: GND, Wikidata, geonames or similar.

Maps to owl:sameAs

Example: "https://d-nb.info/gnd/116888652"

Used in FeatureSource.instrument

SourceKind enumeration

A kind of source a copy's features can be read from, from the paper itself to a sound recording of the copy being played.

Used in FeatureSource.kind

EditorialRole enumeration

The part an editor took in the editorial work.

Used in Editor.role, AgentRole

Agent object

A person or a group: a pianist, an editor, a publisher, a manufacturer, a library.

Maps to crm:E39 Actor

PropertyTypeDescription
@idstring

A unique identifier for this object.

name requiredstring

The name, e.g. "Grünfeld, Alfred", "Wien", "M. Welte & Söhne".

Maps to rdfs:label

roleAgentRole

The role of the agent in the context of the edition.

Maps to crm:P2 has type

sameAs requiredarray of string

Authority records for the same thing: GND, Wikidata, geonames or similar.

Maps to owl:sameAs

Example: "https://d-nb.info/gnd/116888652"

Used in Person

Place object

A place, e.g. a recording location, publishing location, etc.

Maps to crm:E53 Place

PropertyTypeDescription
name requiredstring

The name, e.g. "Grünfeld, Alfred", "Wien", "M. Welte & Söhne".

Maps to rdfs:label

sameAs requiredarray of string

Authority records for the same thing: GND, Wikidata, geonames or similar.

Maps to owl:sameAs

Example: "https://d-nb.info/gnd/116888652"

Used in RecordingEvent.place

ObjectAssumption<CollationTolerance> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

offsetEndMillimeters

The same at the end of a feature, in the same direction.

offsetStartMillimeters

How much later the derived version puts the start of a feature than the version it is read against, where the two differ systematically. Nothing where they do not. The direction is the one a collation measures in, the child less the parent, and it is not symmetric: stored the other way round the window sits on the wrong side of the readings and merges what it should separate. A measurement taken over the parent's copies gives the negative of this, which is what toleranceAcross asks the side for.

toleranceEnd requiredMillimeters

How far they may lie apart at the end, measured from offsetEnd.

toleranceStart requiredMillimeters

How far the two readings may lie apart at the start of a feature, measured from offsetStart.

Used in Derivation.collationTolerance

ObjectAssumption<LengthRatio> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

uncertaintynumber

The standard uncertainty of the value, one standard deviation.

Maps to reo:uncertainty

value requirednumber

Maps to crm:P90 has value

Used in VersionCreation.lengthRatio

AnySymbol one of

A symbol can be either a note, an expression, or a text. Notes and expressions are commands; texts are carried by writings.

One of

Used in Edit.insert

Certainty enumeration

Certainty levels for beliefs, ranging from 'true' to 'false' and some values in between.

Used in Belief.certainty

AnyArgumentation one of

An argumentation can be either a plain argumentation, a meaning comprehension, an inference, a belief adoption or a measurement.

One of

Used in Belief.reasons

Strain object

How far the paper has stretched, or shrunk where it is negative, since it was perforated, as a share of its length then: the strain ΔL / L. It is a ratio of two lengths and so has no unit of its own, and it is stated in per cent because what paper does is a matter of tenths of one. It is taken in one direction, along the roll or across it, since machine-made paper does not stretch the same way in both.

Maps to crm:E54 Dimension

PropertyTypeDescription
uncertaintyPercent

The standard uncertainty of the value, one standard deviation. Left out where the measurement gave none, which leaves it no more precise than paper is known to vary.

Maps to reo:uncertainty

unit required"percent"

The unit of measurement.

Maps to crm:P91 has unit

value requiredQuantity<"percent">

The measured value.

Maps to crm:P90 has value

Used in ObjectAssumption<(GeneralRollCondition|PaperStretch|Tear)>.2.across, ObjectAssumption<(GeneralRollCondition|PaperStretch|Tear)>.2.along

Measure<"mm"> object

A value together with the unit it was measured in, as a record states it.

Maps to crm:E54 Dimension

PropertyTypeDescription
unit required"mm"

The unit of measurement.

Maps to crm:P91 has unit

value requiredQuantity<"mm">

The measured value.

Maps to crm:P90 has value

Used in ObjectAssumption<(GeneralRollCondition|PaperStretch|Tear)>.3.depth

HorizontalSpan object

Describes the horizontal extent of a feature on the roll, measured in millimeters from the beginning of the roll. The from value is the start position and to is the end position.

Maps to crm:E54 Dimension

PropertyTypeDescription
from requiredMillimeters

The start position of the feature in millimeters from the beginning of the roll.

Maps to reo:from

to requiredMillimeters

The end position of the feature in millimeters from the beginning of the roll.

Maps to reo:to

unit required"mm"

The unit of measurement for horizontal positions. Always 'mm' (millimeters).

Maps to crm:P91 has unit

Used in ObjectAssumption<(GeneralRollCondition|PaperStretch|Tear)>.3.horizontal, Patch.horizontal, NestedFeature.1.horizontal, NestedFeature.2.horizontal, NestedFeature.3.horizontal, NestedFeature.4.horizontal, HoleChain.horizontal, Writing.horizontal, Mark.horizontal

AgentRole one of

The role an agent plays in the context of the edition.

One of

Used in ObjectAssumption<Agent>.role, Agent.role, ObjectAssumption<Person>.role

Quantity<"track"> number

number

Used in Track

ObjectAssumption<Person> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

@idstring

A unique identifier for this object.

name requiredstring

The name, e.g. "Grünfeld, Alfred", "Wien", "M. Welte & Söhne".

Maps to rdfs:label

roleAgentRole

The role of the agent in the context of the edition.

Maps to crm:P2 has type

sameAs requiredarray of string

Authority records for the same thing: GND, Wikidata, geonames or similar.

Maps to owl:sameAs

Example: "https://d-nb.info/gnd/116888652"

Used in ActorAssignment

ObjectAssumption<ConditionState<("detaching"|"ripped")>> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

conditionType required"detaching" | "ripped"

The kind of condition, from the list the roll or the kind of feature allows.

Maps to crm:P2 has type

descriptionstring

A free-text description of the condition, providing details beyond the type classification.

Maps to crm:P3 has note

Used in Patch.condition, NestedFeature.4.condition

NestedFeature one of

A feature borne by another feature. It states no place of its own, the feature bearing it standing in one.

One of

Used in Patch.features, NestedFeature.4.features

Measure<"deg"> object

A value together with the unit it was measured in, as a record states it.

Maps to crm:E54 Dimension

PropertyTypeDescription
unit required"deg"

The unit of measurement.

Maps to crm:P91 has unit

value requiredQuantity<"deg">

The measured value.

Maps to crm:P90 has value

Used in Patch.rotation, NestedFeature.2.rotation, NestedFeature.4.rotation, Writing.rotation

VerticalSpan object

Describes the vertical extent of a feature on the roll, measured in track numbers. Track numbers correspond to positions on the tracker bar.

Maps to crm:E54 Dimension

PropertyTypeDescription
from requiredTrack

The start track number of the feature.

Maps to reo:from

toTrack

The end track number, if the feature spans multiple tracks. If omitted, the feature occupies a single track.

Maps to reo:to

unit required"track"

The unit of measurement for vertical positions.

Maps to crm:P91 has unit

Used in Patch.vertical, NestedFeature.1.vertical, NestedFeature.2.vertical, NestedFeature.3.vertical, NestedFeature.4.vertical, HoleChain.vertical, Writing.vertical, Mark.vertical

HoleChain object

A chain of holes punched along the roll, which the tracker bar reads as it passes. The perforator cuts a held note or function as a row of punches with bridges of paper left between them, so most perforations are chains; one without a bridge is a chain of a single hole. The holes are the chain's parts and are not stated one by one. A punched chain is a human-made feature: CRM counts "the information encoding features on mechanical or digital carriers" among the features purposely created by human activity.

Maps to reo:HoleChain

PropertyTypeDescription
@id requiredstring

A unique identifier for this object.

@type required"HoleChain"

The type discriminator for this object.

Maps to rdf:type

conditionObjectAssumption<ConditionState<("partially-torn"|"missing-perforation")>>

This can be used e.g. to indicate a perforation which is torn out or in any other way damaged.

Maps to crm:P44 has condition

depictionstring

IIIF region pointing to a depiction of this feature in the scan.

Maps to crm:P138i has representation

horizontal requiredHorizontalSpan

Horizontal span of the feature on the roll.

Maps to crm:P43 has dimension

vertical requiredVerticalSpan

Vertical span of the feature on the roll.

Maps to crm:P43 has dimension

Used in AnyFeature

Writing object

A piece of writing found on the roll, such as a label, catalogue number, or annotation. Writings state how they were made and a transcription of their content.

Maps to reo:Writing

PropertyTypeDescription
@id requiredstring

A unique identifier for this object.

@type required"Writing"

The type discriminator for this object.

Maps to rdf:type

conditionObjectAssumption<ConditionState<("illegible")>>

This can be used e.g. to indicate a perforation which is torn out or in any other way damaged.

Maps to crm:P44 has condition

depictionstring

IIIF region pointing to a depiction of this feature in the scan.

Maps to crm:P138i has representation

horizontal requiredHorizontalSpan

Horizontal span of the feature on the roll.

Maps to crm:P43 has dimension

mediumMedium

What it was put on with, where it can be told. A date may be known to be handwritten where the pencil cannot be told from the ink, and a stamp leaves its ink as much as a pen does, which is why the two are stated apart.

Maps to reo:medium

rotationMeasure<"deg">

How far the writing stands askew. At zero it reads across the roll, from the bass side towards the treble, and the angle turns that reading direction towards the end of the roll, so that a right angle leaves it reading along the roll. A stamp pressed crooked and a label written lengthwise are both stated here.

Maps to reo:rotation

side"recto" | "verso"

The face of the roll it lies on: the side that faces the reader as the roll plays, or the back of it.

Maps to reo:side

technique requiredTechnique

A writing always states how it was put on the paper, which can be read off it where the medium cannot.

Maps to reo:technique

transcription requiredObjectAssumption<Transcription>

A transcription of the text content of the writing. This is an object assumption so that the transcription can be annotated with a belief about its correctness.

Maps to crm:P128 carries

vertical requiredVerticalSpan

Vertical span of the feature on the roll.

Maps to crm:P43 has dimension

Used in AnyFeature

Mark object

A visible mark on the roll, such as a pencil circle, an ink stroke, or other non-textual annotation. What a mark was meant to say is a reading of it (crminf:I16 Meaning Comprehension) rather than a property of the feature, so its shape is not stated here.

Maps to reo:Mark

PropertyTypeDescription
@id requiredstring

A unique identifier for this object.

@type required"Mark"

The type discriminator for this object.

Maps to rdf:type

conditionObjectAssumption<ConditionState<("faded")>>

This can be used e.g. to indicate a perforation which is torn out or in any other way damaged.

Maps to crm:P44 has condition

depictionstring

IIIF region pointing to a depiction of this feature in the scan.

Maps to crm:P138i has representation

horizontal requiredHorizontalSpan

Horizontal span of the feature on the roll.

Maps to crm:P43 has dimension

mediumMedium

What it was put on with, where it can be told. A date may be known to be handwritten where the pencil cannot be told from the ink, and a stamp leaves its ink as much as a pen does, which is why the two are stated apart.

Maps to reo:medium

side"recto" | "verso"

The face of the roll it lies on: the side that faces the reader as the roll plays, or the back of it.

Maps to reo:side

techniqueTechnique

How the trace was put on the paper.

Maps to reo:technique

vertical requiredVerticalSpan

Vertical span of the feature on the roll.

Maps to crm:P43 has dimension

Used in AnyFeature

PerforatorSetting object

How the perforator was set when it punched the copy, as far as the perforations show it. No time is stated: how long a machine kept a setting is for a comparison across rolls to find out.

Maps to crm:E3 Condition State

PropertyTypeDescription
advanceObjectAssumption<Advance>

Maps to reo:advance

chainPitchObjectAssumption<ChainPitch>

Maps to reo:chainPitch

conditionType required"setting"

The kind of condition, from the list the roll or the kind of feature allows.

Maps to crm:P2 has type

descriptionstring

A free-text description of the condition, providing details beyond the type classification.

Maps to crm:P3 has note

punchDiameterObjectAssumption<Measure<"mm">>

The diameter of the round punch. Taken across the roll, it is the one value of the setting that neither the scale along the roll nor the shrinkage of the paper enters.

Maps to reo:punchDiameter

Used in Perforator.condition

ObjectAssumption<Drive> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

@id requiredDriveId

The IRI the type vocabulary gives the drive.

Used in Perforator.drive

Quantity<"ft/min"> number

number

Used in ObjectAssumption<PaperSpeed>.1.value

Quantity<"m/min"> number

number

Used in ObjectAssumption<PaperSpeed>.2.value

ObjectAssumption<ConditionState<"general">> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

conditionType required"general"

The kind of condition, from the list the roll or the kind of feature allows.

Maps to crm:P2 has type

descriptionstring

A free-text description of the condition, providing details beyond the type classification.

Maps to crm:P3 has note

Used in ObjectAssumption<Instrument>.condition

Note object

A note symbol, representing a single pitched musical event on the roll. The pitch is encoded via the tracker bar position (track number).

Maps to reo:Note

PropertyTypeDescription
@id requiredstring

A unique identifier for this object.

@type required"note"

The type discriminator for this object.

Maps to rdf:type

afterReferenceAssumption

A command whose onset this one follows when the roll is performed, the counterpart of before. This points to the command by its @id.

Maps to reo:after

alignedWithReferenceAssumption

In piano rolls, commands are often aligned with other commands, e.g. a "crescendo off" might be logically aligned to the start of a note. This points to the command by its @id.

Maps to reo:alignedWith

beforeReferenceAssumption

A command whose onset this one precedes when the roll is performed, without saying by how much: a "crescendo off" ends before the note it leads to begins, even where the copies disagree on it. Where the measurement has it so, nothing moves; where it does not, this one is placed before the reference as far as the copies that agree put it. This points to the command by its @id.

Maps to reo:before

carriers requiredarray of ReferenceAssumption

References to the physical features (e.g. chains of holes) on the roll copies that carry this symbol. Since the association might be debatable, it can be annotated. There might be e.g. doubts about the meaning and correct transcription of a feature on a physical roll. This points to a feature by its @id.

Maps to crm:P128i is carried by

pairedWithReferenceAssumption

The command this one forms a pair with, e.g. a "forzando on" with its "forzando off". Any two commands may be paired. The distance between the two is fixed: whatever displaces the one displaces the other. The relation is symmetric and is stated on one side only. This points to the command by its @id.

Maps to reo:pairedWith

pitch requirednumber

The MIDI pitch number of the note (e.g. 60 for middle C).

Maps to reo:pitch

Used in AnySymbol

Expression object

An expression symbol, representing a command that governs dynamics, pedaling, or mechanical functions of the reproducing piano rather than sounding a note. Each expression has a scope (bass or treble) and a specific expression type.

Maps to reo:Expression

PropertyTypeDescription
@id requiredstring

A unique identifier for this object.

@type required"expression"

The type discriminator for this object.

Maps to rdf:type

afterReferenceAssumption

A command whose onset this one follows when the roll is performed, the counterpart of before. This points to the command by its @id.

Maps to reo:after

alignedWithReferenceAssumption

In piano rolls, commands are often aligned with other commands, e.g. a "crescendo off" might be logically aligned to the start of a note. This points to the command by its @id.

Maps to reo:alignedWith

beforeReferenceAssumption

A command whose onset this one precedes when the roll is performed, without saying by how much: a "crescendo off" ends before the note it leads to begins, even where the copies disagree on it. Where the measurement has it so, nothing moves; where it does not, this one is placed before the reference as far as the copies that agree put it. This points to the command by its @id.

Maps to reo:before

carriers requiredarray of ReferenceAssumption

References to the physical features (e.g. chains of holes) on the roll copies that carry this symbol. Since the association might be debatable, it can be annotated. There might be e.g. doubts about the meaning and correct transcription of a feature on a physical roll. This points to a feature by its @id.

Maps to crm:P128i is carried by

expressionType requiredstring

The kind of command, named as the reproducing system of the roll names it: "SustainPedalOn", "ForzandoOff" and so on for the Welte-Mignon T-100. The tracker bar of the system lists the values it reads.

Maps to crm:P2 has type

pairedWithReferenceAssumption

The command this one forms a pair with, e.g. a "forzando on" with its "forzando off". Any two commands may be paired. The distance between the two is fixed: whatever displaces the one displaces the other. The relation is symmetric and is stated on one side only. This points to the command by its @id.

Maps to reo:pairedWith

scope requiredExpressionScope

Whether this expression applies to the bass or treble register.

Maps to reo:scope

Used in AnySymbol

Text object

A textual symbol, e.g. a label or annotation found on the roll.

Maps to crm:E33 Linguistic Object

PropertyTypeDescription
@id requiredstring

A unique identifier for this object.

@type required"text"

The type discriminator for this object.

Maps to rdf:type

carriers requiredarray of ReferenceAssumption

References to the physical features (e.g. chains of holes) on the roll copies that carry this symbol. Since the association might be debatable, it can be annotated. There might be e.g. doubts about the meaning and correct transcription of a feature on a physical roll. This points to a feature by its @id.

Maps to crm:P128i is carried by

text requiredstring

The text content of the symbol.

Maps to crm:P190 has symbolic content

Used in AnySymbol

MeaningComprehension object

A meaning comprehension interprets or disambiguates the meaning of symbols or features. For example, interpreting a pencil mark as an instruction to add or remove a perforation or as the dating of the roll.

Maps to crminf:I16 Meaning Comprehension

PropertyTypeDescription
@type required"meaningComprehension"

The type discriminator for this object.

Maps to rdf:type

actorPerson

The person who carried out this activity.

Maps to crm:P14 carried out by

comprehends requiredarray of string

References (by @id) to the symbols or features whose meaning is being interpreted.

Maps to crminf:J22 interpreted meaning of

notestring

A free-text note providing additional context.

Maps to crm:P3 has note

Used in AnyArgumentation

Inference object

An inference draws a conclusion from given premises.

Maps to crminf:I5 Inference Making

PropertyTypeDescription
@type required"inference"

The type discriminator for this object.

Maps to rdf:type

actorPerson

The person who carried out this activity.

Maps to crm:P14 carried out by

appliesarray of string

The rules the inference draws its conclusion by, by IRI: a regularity of how the rolls were edited, such as that the same addition at the same place is not made twice independently, a default, such as that copies were not made from two exemplars, or a method, such as how the tolerance of a collation is found. The rules are stated once where they are published, and each inference names those it follows, so that a reader can see what a conclusion rests on besides its premises, and which conclusions rest on a rule.

Maps to crminf:J3 applied

notestring

A free-text note providing additional context.

Maps to crm:P3 has note

premises requiredarray of string

References (by @id) to the beliefs from which the conclusion is drawn. A belief the editor holds and publishes elsewhere under an IRI of its own, such as a bound from a catalogue of premises the editor keeps, is named by that IRI. Someone else's belief is not: it is adopted first, and the belief of the edition's own that the adoption concludes is named instead.

Maps to crminf:J1 used as premise

usedarray of string

References (by @id) to what the inference worked on besides beliefs, such as the versions it compared, the analysis output it cites, or the document holding a premise named by IRI, in the state it was read in, since a belief published elsewhere may move after the edition has used it.

Maps to crm:P16 used specific object

Used in AnyArgumentation

BeliefAdoption object

A belief adoption takes over someone else's belief without checking it: knowledge through private communication, from the secondary literature, or from another edition. Like every reason, it concludes the belief it is a reason of, which is the edition's own and holds of the edition's statement what the adopted belief held. An inference that relies on it names that belief among its premises. The editor's own beliefs need no adoption, wherever they are published: an inference names them directly (see Inference).

Maps to crminf:I7 Belief Adoption

PropertyTypeDescription
@type required"beliefAdoption"

The type discriminator for this object.

Maps to rdf:type

actorPerson

The person who carried out this activity.

Maps to crm:P14 carried out by

adoptedarray of string

The beliefs this adoption takes over, by IRI, where they are published with one. They are someone else's, and stay theirs: what the edition holds is the belief the adoption concludes.

Maps to crminf:J6 adopted

note requiredstring

A note describing the source of the adopted belief, e.g. a bibliographic reference or personal communication. Where the belief is adopted by its IRI, the note says in which state it was taken over, since a belief published elsewhere may move after the edition has taken it.

Maps to crm:P3 has note

Used in AnyArgumentation

Measurement object

A measurement takes a value off an object by a stated procedure: the period the slot lengths of a copy keep, the median pitch of its held notes. It concludes the belief in that value by itself, with no premises. CRMinf counts observations, and a measurement is one, among the ways a belief comes about, so the value does not have to be passed off as an inference. A measurement a program took names the program and its version, so that the value can be taken again and a value taken by a program later found wanting can be told from the rest. Naming software makes it a digital measurement event in the sense of CRMdig.

Maps to crmsci:S21 Measurement

PropertyTypeDescription
@type required"measurement"

The type discriminator for this object.

Maps to rdf:type

actorPerson

The person who carried out this activity.

Maps to crm:P14 carried out by

dateTimeSpan

When the measurement was taken. It is part of the reason and carries no belief of its own.

Maps to crm:P4 has time-span

notestring

A free-text note providing additional context.

Maps to crm:P3 has note

procedureConcept

The method followed, where it has a name apart from the program that carries it out, such as a line of Theil and Sen through the matched notes of two copies.

Maps to crm:P33 used specific technique

softwarearray of Software

The programs that took the measurement, each with its version.

Maps to crmdig:L23 used software or firmware

usedarray of string

References (by @id or URL) to what the measurement was taken on or with, such as the scan, the analysis output or the script.

Maps to crm:P16 used specific object

Used in AnyArgumentation

Argumentation object

An argumentation provides reasons for a belief and may be associated with a person carrying out that argumentation.

Maps to crminf:I1 Argumentation

PropertyTypeDescription
@type required"simpleArgumentation"

The type discriminator for this object.

Maps to rdf:type

actorPerson

The person who carried out this activity.

Maps to crm:P14 carried out by

notestring

A free-text note providing additional context.

Maps to crm:P3 has note

Used in AnyArgumentation

Percent alias

A share of a length, such as how far the paper has stretched: dimensionless, in hundredths.

Same as Quantity<"percent">

Used in Strain.uncertainty

Quantity<"percent"> number

number

Used in Strain.value, Percent

ObjectAssumption<ConditionState<("partially-torn"|"missing-perforation")>> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

conditionType required"partially-torn" | "missing-perforation"

The kind of condition, from the list the roll or the kind of feature allows.

Maps to crm:P2 has type

descriptionstring

A free-text description of the condition, providing details beyond the type classification.

Maps to crm:P3 has note

Used in NestedFeature.1.condition, HoleChain.condition

ObjectAssumption<ConditionState<("illegible")>> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

conditionType required"illegible"

The kind of condition, from the list the roll or the kind of feature allows.

Maps to crm:P2 has type

descriptionstring

A free-text description of the condition, providing details beyond the type classification.

Maps to crm:P3 has note

Used in NestedFeature.2.condition, Writing.condition

Medium enumeration

What a trace was put on with.

Used in NestedFeature.2.medium, NestedFeature.3.medium, Writing.medium, Mark.medium

Technique enumeration

How a trace was put on the paper.

Used in NestedFeature.2.technique, NestedFeature.3.technique, Writing.technique, Mark.technique

ObjectAssumption<Transcription> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

@id requiredany

A unique identifier for this object.

@type required"text"

The type discriminator for this object.

Maps to rdf:type

text requiredstring

The text content of the symbol.

Maps to crm:P190 has symbolic content

Used in NestedFeature.2.transcription, Writing.transcription

ObjectAssumption<ConditionState<("faded")>> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

conditionType required"faded"

The kind of condition, from the list the roll or the kind of feature allows.

Maps to crm:P2 has type

descriptionstring

A free-text description of the condition, providing details beyond the type classification.

Maps to crm:P3 has note

Used in NestedFeature.3.condition, Mark.condition

Quantity<"deg"> number

number

Used in Measure<"deg">.value

ObjectAssumption<Advance> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

nnumber

How many slot lengths were folded.

Maps to reo:sampleSize

strengthnumber

How closely the lengths keep the period, from 0 where they scatter to 1 where every one falls on the comb: the mean resultant length of the lengths folded onto it. A period found weakly is the result of a search all the same; the belief it is stated with says how far it is held to be the machine's step.

Maps to reo:strength

unit required"mm"

The unit of measurement.

Maps to crm:P91 has unit

value requiredQuantity<"mm">

The measured value.

Maps to crm:P90 has value

Used in PerforatorSetting.advance

ObjectAssumption<ChainPitch> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

bridgeMillimeters

The paper left standing between two slots of a chain. Slot and bridge are medians of their own and need not add up to the pitch.

Maps to reo:bridge

nnumber

How many pitches the median was taken over.

Maps to reo:sampleSize

slotMillimeters

The length along the roll of one slot of a chain.

Maps to reo:slot

unit required"mm"

The unit of measurement.

Maps to crm:P91 has unit

value requiredQuantity<"mm">

The measured value.

Maps to crm:P90 has value

Used in PerforatorSetting.chainPitch

ObjectAssumption<Measure<"mm">> object

An object assumption wraps a complex object with an optional annotation. Used for structured values (e.g. persons, conditions) whose properties may be uncertain.

PropertyTypeDescription
@annotationobject

An optional annotation expressing a belief about this assumption. Uses the JSON-LD-star @annotation mechanism to attach epistemic metadata (certainty and reasons) to any triple. A statement that carries none is stated plainly, and what a program concluded is stated so too: an edition asserts its stemma and its edits, as a printed edition does, and its creation names the principles and the release they were found by (EditionCreation). A belief is kept for what the editor doubts.

@annotation.@id requiredstring

A unique identifier for this object.

@annotation.belief requiredBelief

The belief held about the annotated statement.

Maps to crminf:J4i is subject of

unit required"mm"

The unit of measurement.

Maps to crm:P91 has unit

value requiredQuantity<"mm">

The measured value.

Maps to crm:P90 has value

Used in PerforatorSetting.punchDiameter

DriveId enumeration

The IRI of a drive the type vocabulary declares.

Used in ObjectAssumption<Drive>.@id

ExpressionScope enumeration

The scope of an expression command, indicating whether it applies to the bass or treble register of the piano.

Maps to reo:scope

Used in Expression.scope

TimeSpan one of

When something happened: the day it falls within, or the bounds it lies between. A bound nobody can give is left out, so after alone says "not before".

Maps to crm:E52 Time-Span

One of

Used in Measurement.date