Verb/noun/type

From eg

Jump to: navigation, search

A REST protocol emerges from use in a verb/noun/type sequence:

  1. REST requires agreeing on the verb list quite early, as all nouns will be required to support these verbs.
    1. e.g. if pages change only via wiki protocol this involves defining user editable web pages and redefining such functions as delete into verb:redirect.
    2. Mechanical command verbs become distinct from social control verb
  2. As nouns emerge out of control of the protocol author, e.g. from the GFDL corpus, applicability of verbs will be tested and refinements made to the protocol.
    1. Standards, e.g. GFDL corpus namespace, including accredited standards, will intersect with both the noun and verb list, requiring refactoring
    2. Most interaction remains manual, but may include human command verbs (that imply roles, deference and usually command hierarchy, e.g. based on infrastructure owners trust) as some of the nouns describe elements of more reflective processes.
    3. A defining vocabulary specifies construction of complex nouns from the simplest ones.
    4. A taxonomy specifies relationships between nouns relative to each process, e.g. steps required to join a web service may require login or suggest you use real name.
  3. Associating verbs to nouns implies types.
    1. Simply observing what verbs are being applied to what nouns creates a weak ontology. This can often be done statistically with web server statistics. HTTP errors can be a rich source of information on what verbs were expected to work with what nouns and should always recover cleanly - similar to the missing method redirect in Smalltalk. This is one justification for replacing delete with verb:redirect.
    2. Functions and protocols already automated should be integrated into a firm ontology suitable for routine use and reports, but not for mission-critical functions necessarily
    3. Full quality control discipline involves a reflexive process in which every aspect of a type definition and refinement process is subject to the same investigation/refinement.

Contents

[edit] precedents: minimizing the effort of associating verbs, nouns and types

Developers must uderstand the precedents that apply to any given application domain. REST tries to keep nouns, verbs and types (which associate many verbs or operators with each noun) in separate development silos, in part because the precedents are so different. A common view is that MIME types exist independently of nouns and verbs, but all such types result from previous efforts to identify nouns, e.g. a document, and associated verbs, e.g. print.

Major sources of precedent include HTTP and GIS (most important), DAML+OIL, AJAX.

[edit] = distinguishing human command from machine command

A particularly thorny problem is to keep ontological distinctions made by authority out of definitions so that no particular deference is required. Ideally users must agree only on operational distinctions. Each role implies its own set of verbs defined by a job description or other contract.

Diligent ontologists will find all control verbs, role-implied types, and associated human commands, e.g. issued by user boss to user, conditions laid by host to operator, threats from sysop to trolls. Differentiating command, control and human command.

[edit] wiki protocol

Craig Hubley's wiki protocol proposal uses verbs: GET, PUT and POST (includes watch and patch), REDIRECT (includes delete), LOCK (includes publish). No means to verb:authenticate is required, as it can be considered an atomic combination of REDIRECT/LOCK/PUT (assuming one attempts to do something and then must login or otherwise authenticate - see verb:try for more on this.

He says "LOCK and PUBLISH relate much like PUT and POST and could be more differentiated - a published version is locked, but to lock anything is to say it's better in this form than alternatives trolls are proposing, so you could be assumed to be publishing it or something about it (like warnings). DELETE only serves to create HTTP error 404 so it is actually a form of REDIRECT (to an error page, but in wiki best practice to edit this page and in web best practice to find pages that might have been intended)." From a post on humanitarian-ict.

[edit] mobility

In the long term mobile applications used to make real decisions are going to need more verbs than HTTP or wiki and will require much more integration with where/when/who information. Hubley suggests using "ACT" as "a separate verb to report actions taken based on the instructions on a page, with LINK transit as an act. A really good implementation would defer/refer/infer as three different types of links." Perhaps.

A closely related issue is that worn devices radically simplify verbs involved in initiating and ending transactions, and the verb:lock may apply to streams such as the "mute" which makes other parties to conversations listeners only.