Pattern:Agreement Pattern

From City Data Model Project Collaboratory
Jump to navigation Jump to search


Description

An English description of the definition (what distinguishes this sense of the term?).

An agreement exists between two or more agents. It is established at some point in time and it may be considered valid only in some Location and/or for some interval in time. An agreement may be defined at varying levels of detail, this is supported with the introduction of the ComplexAgreement and AtomicAgreement class. A complex agreement may be decomposed into sub-agreements, whereas an atomic agreement cannot. Similar to the approach taken for the representation of activities, a complex agreement may be decomposed into disjunctive or conjunctive sub-agreements. This allows for the representation of both types of agreement composition. At their simplest level, the AtomicAgreement describes a commitment to some activity; this is captured with the commitsToActivity property. Finally, agreements involve some specification of rights or commitments of the involved parties. This is represented as a relationship between the involved Agent and a particular activity. The precise nature of the relationship indicates the type of agreement. The possible relationships are defined according to the elements of the so-called primary rules[20] of the Hohfeldian analytical system[21], (and their opposites): claim and privilege.

Key Concepts and Classes

— involvesAgent: identifies the Agents that are party to the Agreement. — validIn: identifies the location where the agreement is valid. — establishedOn: specifies the Instant of time at which the Agreement was created. — validFor: specifies the time Interval during which the Agreement is in force. ComplexAgreement is a subclass of Agreement and has one additional property: — hasSubAgreement: identifies two or more Agreements that comprise the Agreement. Elements of the Hohfeldian analytical system are used to define the following subproperties of the inverse of involvesAgent (agentInvolvedIn) in order to represent the nature of the agreement between two (or more) agents in greater detail: — hasClaim: the hasClaim property indicates that an Agent is the beneficiary of an Activity fulfilled by another Agent in the Agreement (i.e., the Agent with the duty to fulfil the Activity), e.g. payment of wages, provision of services. — hasNoClaim: the hasNoClaim property indicates that an Agent has no claim on (i.e. has no right to) the described Activity. For example, under certain circumstances an Agent may have no claim to a service provided by another Agent (e.g. a person under the legal drinking age has no claim to any services provided by a bar). — hasPrivilege: the hasPrivilege property indicates that an Agent is not required to fulfil the described Activity. For example, if gratuities are left to an person’s discretion then they have the right (privilege) not to include a tip in their payment. — hasDuty: the hasDuty property indicates that an Agent is required to fulfil the described Activity. Contrary to the example above, if gratuities are mandatory, then the person is required (has a duty) to include the tip in their payment. The relationship between these properties in a given Agreement can be summarized by the following opposites and correlatives, as originally identified by Hohfeld[21]: — If agent A hasClaim, then A lacks a hasNoClaim — If agent A hasPrivilege, then A lacks a hasDuty — If agent A hasClaim, then some agent B hasDuty — If agent A hasPrivilege, then some agent B hasNoClaim AtomicAgreement is a subclass of Agreement. It has no decomposition and specifies the “essence” of an agreement. In particular, it identifies how Agents participating in the Agreement are involved: — forActivity: identifies the Activity the AtomicAgreement is for. — inverse hasClaim: links the Agreement to any Agent that has a claim. — inverse hasNoClaim: links the Agreement to any Agent that does not have a claim. — inverse hasDuty: links the Agreement to any Agent that has a duty to perform the Activity. — inverse hasPrivilege: links the Agreement to any Agent that has the privilege to perform the Activity.

Has Class(es)

Agreement, ComplexAgreement, AtomicAgreement


Status

Pending Approval


Supplementary Figures

Figure Caption
Agreement-Pattern.jpeg
Agreement Pattern Example