From W3C Wiki
This Wiki section about evolution uses some terms which have broad and varying applications, but in specific ways.
- the way in which multiple modules, systems, agents, components, implementations interact with each other.
- a kind of interface that involves interaction. A general term for a way in which agents interact, according to some set of rules and meaning. See [communication protocol]
- file format
- a kind of interface in which one party writes out a file and other reads it; a file format has rules for how files are written and what they mean. See [file format].
- a kind of file format [formal languages] and s used communication.
- a framework for defining languages which establishes common ways of managing syntax and vocabulary.
- protocol element
- a component shared between multiple protocols or languages.
- A general term used in this wiki to cover modules, systems, agents, components which use, understand, produce, parse, interpret languages, file formats, protocols, etc.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- XML and JSON are meta-languages.
- Internet Explorer, Apache HTTP, Squid are implementations (of HTTP)
- An 'editor's draft', Internet draft, proposed standard are specifications.
- A Recommendation and a IETF standards-track document are standards.
- A sender, a reciever, a client, a server, a proxy, an intermediary, a sniffer, a spider, and so forth are roles.
- 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.
- 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.