Rights Layer Specification

Use Case: Driving Licence

Status: Draft v0.1.0 — This section is informative.

Scenario

Alice holds a driver’s licence for ordinary motor vehicles. The licence was granted by a public safety commission as an administrative act under road traffic law, and the grant is recorded in the driver’s licence register operated by that commission. In Rights Layer terms, Alice is the Subject, the vehicle class is the Object, and the administrative act of granting the licence is the Source that grounds a single Right: the right to drive.

The Right itself is binary — it exists or it does not. Everything that people colloquially call “conditions of the licence” attaches not to the Right but to its one Action, drive, as Eligibilities — each stating exactly one requirement. Here there are two: the licence is within its validity period and not suspended or revoked; and the licence condition requiring corrective lenses is satisfied. Each Eligibility is answered by at most one Eligibility Response — a Boolean issued from outside the layer by an identifiable issuer, verifiable in authenticity and integrity. The validity requirement is answered by the public safety commission on the basis of the licence register; the corrective-lenses requirement is answered by a condition attestation issuer. How each issuer evaluates its requirement — what it checks, with what data, by what method — is outside Rights Layer; only the verifiable Boolean answer enters the model.

When Alice drives to work, the exercise chain runs: an ExerciseRequested Event for the Action drive, an EligibilityResponseIssued Event per Eligibility, and — because every Eligibility has exactly one verifiable Response and all are true — a Decision is established (DecisionEstablished Event). The Exercise records the fact of actually driving, bracketed by ExerciseStarted and ExerciseEnded Exercise Events. In everyday road traffic no explicit prior record is made for each trip; the expression shows the conceptual chain that a roadside check or an insurer’s inquiry would reconstruct after the fact.

Mapping

Rights Layer concept Domain instance
Subject Alice, a natural person
Object Vehicle class “ordinary motor vehicles”
Right The right to drive (exists / does not exist)
Source Administrative act: grant of the driver’s licence under road traffic law
Authority The public safety commission (grantor; also a Response issuer)
Action drive
Eligibility (one requirement each) (1) Licence within validity period and not suspended or revoked; (2) licence condition requiring corrective lenses satisfied
Eligibility Response (1:1) (1) answered true by the public safety commission, attested against the licence register; (2) answered true by a condition attestation issuer. How each issuer evaluates is outside the layer.
Evidence / Evidence Source Licence record in the driver’s licence register, referenced by the Response
Decision Established because both Responses are verifiable and true; a false or unanswered Eligibility would simply mean no Decision exists
Exercise / Exercise Event A particular act of driving after the Decision was established; requested, started, ended
Event RightGranted when the licence was issued; suspension or revocation would be later Events

Chain Instantiation

flowchart TD
    S["Source<br/>Administrative act:<br/>licence grant under road traffic law"] --> R["Right<br/>Right to drive<br/>(held by Alice)"]
    R --> A["Action<br/>drive"]
    A --> EL1["Eligibility<br/>licence within validity period"]
    A --> EL2["Eligibility<br/>corrective-lenses condition satisfied"]
    EL1 --> ER1["Eligibility Response: true<br/>issuer: public safety commission"]
    EL2 --> ER2["Eligibility Response: true<br/>issuer: condition attestation issuer"]
    ER1 --> D["Decision<br/>established: all Responses true"]
    ER2 --> D
    D --> EX["Exercise<br/>driving on a public road"]
    EX --> EE["Exercise Event<br/>requested / started / ended"]

What Rights Layer Does Not Model

Example

Machine-readable expression: driving-licence.json