a framework for defining languages which establishes common ways of managing syntax and vocabulary.

protocol element

a component shared between multiple protocols or languages.

implementation

A general term used in this wiki to cover modules, systems, agents, components which use, understand, produce, parse, interpret languages, file formats, protocols, etc.

role

In a protocol, a category of parties involved. For a language (or file format, etc.), the roles of reader, writer the primary roles. A protocol involves communication between multiple parties; in most situations, those parties fall into categories over some course of the communication.

specification

a technical document which describes (some part of) a protocol, language, protocol element, file format, and gives rules for how implementations of them are expected to behave (specific to the roles they play).

standard

a specification published by a group, which represents some level of agreement among those planning to build, maintain, or use implementations of the protocols, languages, protocol elements, etc.

instance

For a language or file format, a file (or a transmission by a protocol) intended as an expression in a language. ; conform : For a protocol specification, an implementation of a role conforms to a specification if it behaves in a way that is consistent with the specification's description, and if it meets all of the normative requirements in the specification (for that role). For a language, an instance of the language conforms to a specification if it meets rules of the specification; implicit in this definition is the idea that the instance.

normative requirement

an assertion within a specification (usually using [RFC2119] language of MUST, MAY, SHOULD), which set conformance expectations for one or more roles.

interoperable

For a protocol, an implementation is interoperable with other implementations to the extent that, when acting according to the role it plays in the communication, it communicates with other implementations as expected.

Examples:

HTML, CSS are languages.

JPEG and PNG are file formats.

A URI, the specification of a gradient, a HTTP request method, a date string are protocol elements.

A sender, a reciever, a client, a server, a proxy, an intermediary, a sniffer, a spider, and so forth are roles.

Relationships:

Using the same protocol element in multiple languages and protocols often facilitates linking multiple applications together.

In a distributed system (consisting of multiple agents on a network), each agent uses implementations of the protocols and languages to interact with other agents.

In the Web, for some languages, creation of content in that language involves developers typing out the language (e.g. writing JavaScript code) while in others, content is emitted by an implementation of the language.

HTTP supports transmission of data in a language where the language to be used is indicated by the “content-type” protocol element.

HTML is a language, the primary language used in the web. Other languages used in the Web are JPEG, GIF, and CSS. Note that one of the principle cases for this document is the observation that the languages used in the web are less like formal languages.

A specification for a communication protocol will describe the roles involved and the normative requirements for them, as well as considerations for acheiving interoperability with other implementations.