Copyright © 2008 WC3®, All Rights Reserved. WC3 liability, trademark and document use rules apply.
The Hyper Text Coffee Pot Control Protocol (HTCPCP) is a protocol for controlling, monitoring and diagnosing coffee pots over a network. The Resource Description Framework (RDF) is a general-purpose language for representing information in the Web.
This document defines HTCPCP Vocabulary in RDF in order to allow HTCPCP headers that have been exchanged between a client (in other words, a coffee addict) and a server (a networked device that can brew, store and deliver heated coffee beverages) to be recorded in RDF format. The objective of this vocabulary is to support quality assurance testing, and to serve as a machine-readable component in conformance claims and in reporting languages such as the Evaluation and Report Language (EARL) [EARL Schema].
This section describes the status of this document at the time of its publication. Other documents may supersede this document.
This WC3 First Public RFC Draft of HTCPCP Vocabulary in RDF was published on 1 April 2008. This document is expected to be published as a WC3 RFC Document after more brewing experience, tasting and refinement.
Publication as a RFC Draft does not imply endorsement by the WC3 Membership. This is a draft document and may be rebrewed, repoured or become stale at any time. It is inappropriate to cite this document as other than brewing in progress.
Coffee is one of the most popular beverages worldwide [Villanueva] and is the second most traded commodity in the world (after oil) [Jerome 2007]. Worldwide, more 1400 millions cups of coffee are drunk every day [Jerome 2007]. Internet World Stats estimates that there are over 1.13 billion internet users worldwide (1,139,872,109 in December 2007) [Internet World Stats]. Thus, there is dark, strong demand for a protocol designed expressoly for controlling networked devices that can brew, store and deliver heated coffee beverages. The Hyper Text Coffe Pot Control Protocol (HTCPCP) [RFC2324] addressed this demand by extending HTTP with commands such as BREW, GET and WHEN.
This document defines a representation of the Hyper Text Coffe Pot Control Protocol (HTCPCP) using the Resource Description Framework (RDF). It defines a collection of RDF classes and properties that represent the HTCPCP vocabulary as defined by the HTCPCP specification. These RDF terms can be used to record HTCPCP request and response messages in RDF format, for example by automated coffee quality evaluation tools to describe servings of caffeinated beverages, including the various headers exchanged between the client and server during coffee negotiation. Since HTCPCP is defined as an extension of HTTP, the current draft is defined as an extension of HTTP in RDF [HTTP-RDF].
The RDF representation of the HTCPCP vocabulary defined by this document uses the following namespaces:
Vocabulary | Namespace URI | Prefix |
---|---|---|
HTCPCP | http://purl.org/NET/xp/HTCPCP-in-RDF-rfc# |
coffee |
HTTP | http://www.w3.org/2006/http# |
http |
HTTP headers | http://www.w3.org/2006/http-header# |
http-header |
Note: the namespace URI for HTCPCP is temporary and will be updated when HTCPCP Vocabulary in RDF is finalized.
The coffee:Connection
class represents a connection that is
used for HTCPCP control. The
following properties may appear in nodes of type Connection
:
http:connectionAuthority
representing the connected
authority (server host and port), andhttp:request
representing an HTTP request.Example: An instance of the
coffee:Connection
class.
<coffee:Connection rdf:ID="conn"> <http:connectionAuthority>arabica.example.org:80</http:connectionAuthority> <http:request rdf:resource="#req0"/> </coffee:Connection>
When the coffee:Connection
class is used to record more than
one request sent to a coffee pot, the order of these requests (usually coffee
cups) may be significant. For such cases, an RDF collection can be used
as follows:
Example: An instance of the
coffee:Connection
class with two coffee cup requests.
<coffee:Connection rdf:ID="conn2"> <http:connectionAuthority>arabica.example.org:80</http:connectionAuthority> <http:request rdf:parseType="Collection"> <http:Request rdf:about="#espresso"/> <http:Request rdf:about="#lungo"/> </http:request> </coffee:Connection>
This section defines RDF terms for the HTCPCP/1.0 specification according to [RFC 2324].
HTTP Vocabulary in RDF [HTTP-RDF]
already defines a Request
class. There are several
HTCPCP subclasses that derive from the
Request
class.
Brew
ClassThe Brew
class represents an HTCPCP BREW
request.
Example: An instance of the
coffee:BrewRequest
class.
<coffee:BrewRequest rdf:ID="req0"> <http:abs_path>/</http:abs_path> <htcpcp:version>1.0</htcpcp:version> <htcpcp:header rdf:resource="#headerSafe"/> <htcpcp:response rdf:resource="#responseCup"/> </http:BrewRequest>
PropFind
Class(TBB)
When
Class(TBB)
Safe
Property(TBB)
(TBB)
HTTP Vocabulary in RDF [HTTP-RDF]
already defines a Response
class.
Class name | Label | Allowable types | Suggested types | Required properties | Optional properties |
---|---|---|---|---|---|
htcpcp:ResponseCode |
Response Code | htcpcp:406 (Not Acceptable), htcpcp:418
(I’m a Teapot) |