this is for holding javascript data
Josh Peek added figure figures/annotation-architecture/annotation-architecture.svg to article
over 9 years ago
Commit id: 9a675ad3ce78c3280b82cbceb5a0f81942f61723
deletions | additions
diff --git a/figures/annotation-architecture/annotation-architecture.svg b/figures/annotation-architecture/annotation-architecture.svg
new file mode 100644
index 0000000..a78c639
--- /dev/null
+++ b/figures/annotation-architecture/annotation-architecture.svg
...
xmlns:xlink="http://www.w3.org/1999/xlink"
width="100%" height="100%" viewBox="0 0 1612 880"
onload="init()">
0 0 1612 880
700 70 100 100
W3C Annotation Architecture proposal
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#">
License: CC-0 (public domain)
W3C Annotation Architecture proposal
image/svg+xml
text {
font-family: Verdana, sans-serif;
}
.outlines {
stroke: black;
fill: none;
}
.icon {
stroke: white;
stroke-width: 1px;
stroke-dasharray: none;
stroke-linejoin: round;
stroke-linecap: round;
fill: white;
fill-rule: evenodd;
}
.process {
/* filter: url(#drop-shadow);*/
}
path.text-icon {
stroke-width: 6px;
}
path.process {
fill: none;
stroke: peru;
stroke-width: 8px;
marker-start: url(#dot);
marker-end: url(#endArrow);
}
marker.process {
stroke: peru;
fill: peru;
stroke-linejoin: round;
stroke-linecap: round;
stroke-dasharray: none;
}
marker.white {
stroke: white;
fill: white;
}
path.no-arrow {
marker-end: none;
}
path.icon-write {
marker-start: url(#icon-write);
}
path.icon-publish {
marker-start: url(#icon-publish);
}
path.icon-read {
marker-start: url(#icon-read);
}
path.icon-notify {
marker-start: url(#icon-notify);
}
path.icon-api-request {
marker-start: url(#icon-api-request);
}
path.icon-api-download {
marker-start: url(#icon-api-download);
}
path.icon-discover {
marker-start: url(#icon-discover);
}
path.icon-subscribe {
marker-start: url(#icon-subscribe);
}
path.icon-share {
marker-start: url(#icon-share);
}
path.icon-attribution {
marker-start: url(#icon-attribution);
}
path.icon-dot {
marker-start: url(#icon-dot);
}
path.icon-annotate {
marker-start: url(#icon-annotate);
}
.notify {
stroke-dasharray: 2,16;
stroke-linejoin: round;
stroke-linecap: round;
}
.attribution {
stroke-dasharray: 7,9;
stroke-linejoin: round;
stroke-linecap: round;
}
.paper {
fill: mintcream;
fill-rule: nonzero;
stroke: black;
stroke-width: 3px;
stroke-linejoin: round;
stroke-linecap: round;
}
.annotation-connector {
stroke:firebrick;
stroke-width:3px;
stroke-dasharray:5,6;
stroke-linecap:round;
fill:none;
}
.annotation-anchor {
stroke:firebrick;
stroke-width:13px;
}
.label {
font-family: Verdana, sans-serif;
font-size: 22px;
text-anchor: middle;
}
.details {
font-family: Verdana, sans-serif;
fill: navy;
font-size: 23px;
text-anchor: start;
}
.subheading, .stage {
font-weight: bold;
}
#cloud {
fill: gainsboro;
stroke: dimgray;
stroke-linejoin: round;
stroke-width: 3px;
}
refX="-4" refY="0" markerWidth="10" markerHeight="20" orient="auto"
class="process">
refX="-4" refY="0" markerWidth="10" markerHeight="20" orient="auto"
class="process white">
refX="-4" refY="0" markerWidth="10" markerHeight="20" orient="auto"
class="connection-2way" style="stroke:none; fill:black;">
refX="0" refY="0" markerWidth="5" markerHeight="5"
class="process">
refX="0" refY="0" markerWidth="5" markerHeight="5"
class="process">
refX="0" refY="0" markerWidth="5" markerHeight="5"
class="process">
refX="0" refY="0" markerWidth="5" markerHeight="5"
class="process">
refX="0" refY="0" markerWidth="5" markerHeight="5"
class="process">
refX="0" refY="0" markerWidth="5" markerHeight="5"
class="process">
refX="0" refY="0" markerWidth="5" markerHeight="5"
class="process">
refX="0" refY="0" markerWidth="5" markerHeight="5"
class="process">
refX="0" refY="0" markerWidth="5" markerHeight="5"
class="process">
refX="0" refY="0" markerWidth="5" markerHeight="5"
class="process">
refX="0" refY="0" markerWidth="5" markerHeight="5"
class="process">
refX="0" refY="0" markerWidth="5" markerHeight="5"
class="process">
d="M-8,0 L-5,-2 Q-5,-5 -2,-5 H4 Q7,-5 7,-2 V2 Q7,5 3,5 H-2 Q-5,5 -5,2 Z
M-4,-4.5 H3.5 V-1.5 H-4 Z
M-4,-1.5 H3.5 V1.5 H-4 Z
M-4,1.5 H3.5 V4.5 H-4 Z
M3.5,-1.5 H6.5 V1.5 H3.5 Z"/>
Cloud Icon
Web Annotation Architecture
This interactive infographic explains a proposed
architecture of W3C Web Annotations, as part of an
ongoing conversation with the annotation community.
To read the detailed explanations of this diagram,
use the “down” key to move to the next step,
and the “up” key to move to the previous step.
Content Creator
The Content Creator makes the original text,
images, and other resources, often collaboratively or
with review cycles. There may be more than one Content
Creator responsible for a single work.
Publisher
The Publisher (which may be the same entity as the
Content Creator) distributes the content on the Web,
in ebooks, etc.
The content is published in near-final form, with a URL or
other unique locator (such as an ISBN for an ebook).
Footnotes & Comments
Footnotes and comments may be added to the content.
Both may be considered as a kind of annotation, being
meta-content, and both are implicitly published by the
same publisher as the content, at the same location.
Footnotes may be anchored to a particular section of
the content, and may or may not have different
provenance than the main content, such as a different
author, or a different publication time and date.
Reader comments on the content traditionally lack an
anchor to a specific section of the content; some modern
commenting systems allow comments at the paragraph or
sentence level. Quality comments increase the value of
the original content through corrections, additional
information, or relevant links, and increase reader and
community engagement. Publishers control which
comments are published, which is often hard to manage.
Reader
The Reader plays a critical role in the content ecosystem,
interacting with the content in a number of ways.
The Reader reads, analyzes, and thinks about the
content. But this is only the beginning.
Creating Web Annotations
Annotations provide a more powerful way for an
active Reader to comment, correct, highlight, or
categorize content selections.
With annotations, a Reader can target a discrete
selection.
A selection can be text, a section of an image, a location on
an interactive map, a timestamp of a video or audio, or
a data representation that has an underlying data source.
A Reader can even annotate a footnote ...
... or a traditional site comment. (Very meta.)
Other readers can annotate sections of content that
overlap existing annotations ...
... and even annotate annotations themselves, in
threaded replies.
Distributed publication of Web Annotations
When a Reader creates a Web annotation, they don't
have to publish it on the original content site; the
Reader can publish their annotation content on one or
more third-party “annotation services”, or on the Reader's
local device.
This decentralization is one of the key features of Web
Annotations, giving the Reader (who is now a Content
Creator) their choice of Publishers, reader communities,
and publishing policies. This helps promote healthy
competition between services and discourages publisher
lock-in. Individuals or special-interest communities can
even host their own annotation services.
Notifications of annotation sent to Publisher
The Publisher receives a notification for any
annotations made on their site which are explicitly
published publicly.
There are two proposed mechanisms for this:
1) a client-side event which informs the
page of the annotation's publication URLs;
2) a server-side notification sent to the publisher's
“well-known” contact address.
Either or both of these mechanisms may be used, each
with its own use cases.
Publisher queries, fetches, & republishes annotation
Once notified of an annotation, the Publisher can
request more information about the annotation from
the annotation service through the proposed HTTP API,
including author credentials, the reputation of the
annotation (“karma” or “up-votes”), publication license,
and other details that might lead to an informed decision
about the value of the annotation. If the Publisher
wishes, they can fetch the annotation itself.
Once requested, the annotation service sends the
Publisher the annotation.
The Publisher can then publish the annotation as a
comment. This maintains the Reader-provided value
for Publishers, while still allowing distributed annotation
publication.
Reader discovers and subscribes to annotation feeds
Annotation services offer a better way for a Reader to
discover new primary content, new discussion about
content, new individuals or communities, and new
annotation services. Web annotations are ideally seen in
the context of their target content, but annotation
services can offer a view of each annotation alone or in a
collection or stream (as with services like Reddit, Twitter,
or Facebook). Readers can do faceted searches that span
multiple annotated sites, for specific topics or hashtags,
for content from a particular person, or more tasks that
would be difficult with siloed site-specific comment
systems.
Once a Reader discovers an interesting person, topic,
community, or service, they can then subscribe to
have those annotations delivered to their browser when
they visit a relevant URL. Annotation subscriptions may be
proxied by aggregators or federated annotation services.
Web Annotations loaded when user visit target page
Each annotation includes the annotated content's original
URL, so a Reader with annotations enabled can read any
of these annotations when visiting that URL. The
annotations are loaded from one or more annotation
services, displayed on the page (such as in a sidebar),
and dynamically anchored to the specific content
selection, showing the annotation in context, and
enabling discussion even for sites without native
comments.
Currently, this functionality is only available through
JavaScript browser extensions (like the open-source
Annotator project), but the ultimate aim is native
browser support, both for loading annotations for any
URL, and for anchoring them to the selected content.
Other readers share annotations, with provenance
When someone finds an annotation that they like (or
dislike), they can share it with others, by sharing the
annotation's unique permalink, republishing the
annotation, or annotating the annotation with their own
content; even “up-voting” or tagging an annotation is an
act of annotation and sharing. The Open Annotation data
model provides a standardized way to represent an
annotation, so any Web annotation can be shared on the
same annotation service or on a different interoperable
annotation service.
Shared Web annotations include provenance, so they
will always have a link back to its original URL, and
even a chain of attribution that shows everyone who
shared it in a sequence. This is an important way to
spread content while rewarding the original Content
Creator.
d="M265,300 H275 Q285,300 285,310 V330 Q285,340 275,340 H45 Q35,340 35,350 V360"/>
contentcreator
publisher
reader
web annotation services
write
send-to-publisher
publish
publish
read
annotate
publish annotation
publish annotation
publish annotation
notification
notification
HTTP API request
HTTP API
publish comment
discover
subscribe
subscribe
subscribe
subscribe
load annotations
load annotations
load annotations
share
attribution chain
diff --git a/figures/annotation-architecture/caption.md b/figures/annotation-architecture/caption.md
new file mode 100644
index 0000000..a8a1b0c
--- /dev/null
+++ b/figures/annotation-architecture/caption.md
...
Replace this text with your caption
diff --git a/figures/annotation-architecture/size.md b/figures/annotation-architecture/size.md
new file mode 100644
index 0000000..2fcf78b
--- /dev/null
+++ b/figures/annotation-architecture/size.md
...
height = 700\nwidth = 500