From 71ea39cb38770186b8a96054c87f08029050dbd5 Mon Sep 17 00:00:00 2001 From: Mike Kelly Date: Thu, 17 Nov 2011 02:16:27 +0000 Subject: [PATCH] tweak wording, add info model image, tweak styling --- hal.css | 9 +++++++++ hal_specification.html | 3 ++- info-model.png | Bin 0 -> 24667 bytes 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 info-model.png diff --git a/hal.css b/hal.css index 05f6050..2f33f44 100644 --- a/hal.css +++ b/hal.css @@ -50,6 +50,7 @@ table { /* HAL.css */ body { font-family: sans-serif; + font-size: 20px; } h1, h2, h3 { @@ -97,6 +98,10 @@ ul { list-style-type: disc; } +strong { + font-weight: bold; +} + #wrapper { margin: 30px; width: 960px; @@ -114,3 +119,7 @@ ul { background-color: #E3E3E3; border: 1px solid #999; } + +#examples .gist { + font-size: 14px; +} diff --git a/hal_specification.html b/hal_specification.html index 3a75bab..ed26b36 100644 --- a/hal_specification.html +++ b/hal_specification.html @@ -56,8 +56,9 @@

General Description

The difference between HTML and HAL is that the former is GUI based and designed to be consumed by people, and the latter is machine-readable and designed to be consumed by automated 'agents'.

- HAL consists of two reserved elements: Resource and Link. Any and all elements are legal in a HAL representation provided they do not conflict with HAL's reserved elements. + HAL has two main components: Resources and Links. Resources have their own state, links, and embedded resources (which are resources in their own right). Links map link relations to href values/URIs, in a key/value fashion. Below is an image illustrating this information model:

+

HAL is a media type with which applications are described and controlled via link relations. It encourages the use of link relations to:

diff --git a/info-model.png b/info-model.png new file mode 100644 index 0000000000000000000000000000000000000000..1758a729b9e8b25cd0c449d7cafc6d3323292b1f GIT binary patch literal 24667 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