The Wright Brothers' 1908 contract in Akoma Ntoso and LegalRuleML

The Articles of Agreement of February 10, 1908, between the Signal Corps, United States Army, and Wilbur and Orville Wright, for the Army’s first airplane, with Signal Corps Specification No. 486 attached. The price was $25,000, on a sliding scale by the speed attained on trial.

View the contract

The rest of this archive is public law: constitutions, statutes, treaties, declarations and a court decision. This one is an experiment, a private agreement. Akoma Ntoso wasn’t designed for contracts, and extensions in that area are being considered, so this page reports how Claude modeled the contract, what it had to add, and what went wrong. It covers one short contract, so it’s a starting list and not a survey.

What was done

The XML validates against the Akoma Ntoso 2.0 schema, and all 61 eIds are unique. The LegalRuleML was not validated, for the reason given under Issues below.

The overall shape is:

<akomaNtoso>
  <doc name="contract">
    <meta>...</meta>
    <preface>...</preface>
    <preamble>...</preamble>
    <mainBody>articles 1 to 12</mainBody>
    <conclusions>signatures and approval</conclusions>
    <attachments>
      <attachment><doc name="specification">...</doc></attachment>
      <attachment>
        <doc name="legalRuleML">
          <mainBody><foreign><lrml:LegalRuleML>...</lrml:LegalRuleML></foreign></mainBody>
        </doc>
      </attachment>
    </attachments>
  </doc>
</akomaNtoso>

What fit without strain

FeatureMarkup
Articles and numbered paragraphsarticle, paragraph, list, point
Opening recital of the partiespreamble, with party and as
Blanks left emptyfillIn
Text missing from the sourceomissis
Drafting note on the formauthorialNote
Specification made part of the contractattachment holding a doc
Cross-referencesref, rref

The extensions

Nothing outside the schema was added to the Akoma Ntoso. Where it had no element, the generic elements carry the meaning in @name, and foreign markup is in <foreign>.

FeatureGeneric markupWhy it was needed
Document typedoc name="contract"There’s no contract document type.
Completed blankinline name="filled"fillIn models an empty blank. Nothing marks one that has been completed.
Typed text in a printed forminline name="typed", class="typed"The printed form and the entered text are separate layers, with no standard way to tell them apart.
The goodsinline name="item"There’s no element for the subject of a contract.
Receipt stampblock name="receivedStamp", inline name="stampLine"There’s no element for an endorsement or stamp.
Signature blockscontainer name="signatures", container name="signatureBlock"signature exists, but nothing groups a signer with witnesses.
Later approvalcontainer name="approval"There’s no model for approval by a third party after signing.
Rights and dutiesforeign with LegalRuleMLAkoma Ntoso records the text, not who owes what.

Where Akoma Ntoso stretched

LegalRuleML

What it added

Where it was awkward

Embedding it

Issues

The source

The modeling

Questions for an extension

  1. Should contract be a document type, or is doc name="contract" enough?
  2. Should a completed blank be a form of fillIn?
  3. Should quantity have a unit, and date a type?
  4. How should parties appear in the metadata?
  5. Which life cycle events should contracts have?
  6. Should LegalRuleML stay in foreign, or should there be a defined binding?

Files