Skip to content

Commit bdab91d

Browse files
committed
Update the web site.
1 parent e239cae commit bdab91d

File tree

7 files changed

+350
-5
lines changed

7 files changed

+350
-5
lines changed

feeds/all.atom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<feed xmlns="http://www.w3.org/2005/Atom"><title>Structured Commons</title><link href="http://www.structured-commons.org/" rel="alternate"></link><link href="http://www.structured-commons.org/feeds/all.atom.xml" rel="self"></link><id>http://www.structured-commons.org/</id><updated>2014-06-16T09:23:33Z</updated></feed>
2+
<feed xmlns="http://www.w3.org/2005/Atom"><title>Structured Commons</title><link href="http://www.structured-commons.org/" rel="alternate"></link><link href="http://www.structured-commons.org/feeds/all.atom.xml" rel="self"></link><id>http://www.structured-commons.org/</id><updated>2014-06-16T10:18:43Z</updated></feed>

scep0000.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ <h1><a href="http://www.structured-commons.org">Structured Commons <strong></str
6262
<tr class="field"><th class="docinfo-name">Status:</th><td class="field-body">Active</td></tr>
6363
<tr class="field"><th class="docinfo-name">Type:</th><td class="field-body">Informational</td></tr>
6464
<tr class="field"><th class="docinfo-name">Created:</th><td class="field-body">2014-06-15</td></tr>
65-
<tr class="field"><th class="docinfo-name">Source:</th><td class="field-body"><a href="scep0000.rst">scep0000.rst</a> (<tt>fp:jXjB85Usj_icyGx6KgZ0OiMhmxr9-zOu1KnmqmdOMeroIw</tt>)</td></tr>
65+
<tr class="field"><th class="docinfo-name">Source:</th><td class="field-body"><a href="scep0000.rst">scep0000.rst</a> (<tt>fp:Kdy5o5H2PEycEWfClUaykSIb9Z9GjdP0P6BwTPsKWy4I7A</tt>)</td></tr>
6666
</tbody></table>
6767

6868
<div class="section" id="introduction">
@@ -124,6 +124,9 @@ <h3>Draft&nbsp;SCEPs</h3>
124124
<tr><td><span class="raw-html"><a href="scep0102.html">102</a></span></td>
125125
<td>Certificates of existence</td>
126126
</tr>
127+
<tr><td><span class="raw-html"><a href="scep0103.html">103</a></span></td>
128+
<td>Standard filesystem representation method</td>
129+
</tr>
127130
</tbody>
128131
</table>
129132
</div>

scep0000.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ Num Title
4545
|100| Structured Commons Model Overview
4646
|101| Structured Commons Object Model and Fingerprints
4747
|102| Certificates of existence
48+
|103| Standard filesystem representation method
4849
====== ===================
4950

5051

@@ -62,3 +63,4 @@ References
6263
.. |100| replace:: :raw-html:`<a href="scep0100.html">100</a>`
6364
.. |101| replace:: :raw-html:`<a href="scep0101.html">101</a>`
6465
.. |102| replace:: :raw-html:`<a href="scep0102.html">102</a>`
66+
.. |103| replace:: :raw-html:`<a href="scep0103.html">103</a>`

scep0101.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@ <h1><a href="http://www.structured-commons.org">Structured Commons <strong></str
6262
<tr class="field"><th class="docinfo-name">Status:</th><td class="field-body">Draft</td></tr>
6363
<tr class="field"><th class="docinfo-name">Type:</th><td class="field-body">Standards Track</td></tr>
6464
<tr class="field"><th class="docinfo-name">Created:</th><td class="field-body">2014-06-16</td></tr>
65-
<tr class="field"><th class="docinfo-name">Source:</th><td class="field-body"><a href="scep0101.rst">scep0101.rst</a> (<tt>fp:EtKaGwLxVg2TNzQh94ckuUAqRZlQPI5LHRxsIknWW1y-VA</tt>)</td></tr>
65+
<tr class="field"><th class="docinfo-name">Source:</th><td class="field-body"><a href="scep0101.rst">scep0101.rst</a> (<tt>fp:Py491rKIVazfq54w5IEAYe1I6uNamwgTKn95SEp0oZRXTg</tt>)</td></tr>
6666
</tbody></table>
6767

6868
<p>This <span class="caps">SCEP</span> describes the lowest level of the Structured
6969
Commons model and infrastructure: how document
7070
and digital objects are structured and&nbsp;fingerprinted.</p>
7171
<div class="section" id="object-model">
7272
<h2>Object&nbsp;model</h2>
73-
<p>An Aca2 <em>object</em> is&nbsp;either:</p>
73+
<p>A Structured Commons <em>object</em> is&nbsp;either:</p>
7474
<ul class="simple">
7575
<li>a <em>file</em>, ie. an array of bytes (which may be empty and/or contain <span class="caps">NUL</span> bytes);&nbsp;or</li>
7676
<li>a <em>dictionary</em> that maps <em>names</em> to either objects (inclusion) or

scep0101.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ and digital objects are structured and fingerprinted.
1212
Object model
1313
============
1414

15-
An Aca2 *object* is either:
15+
A Structured Commons *object* is either:
1616

1717
- a *file*, ie. an array of bytes (which may be empty and/or contain NUL bytes); or
1818
- a *dictionary* that maps *names* to either objects (inclusion) or

scep0103.html

Lines changed: 217 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,217 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
5+
<title>Structured Commons :: SCEP0103 - Standard filesystem representation&nbsp;method </title>
6+
<meta charset="utf-8" />
7+
<link href="http://www.structured-commons.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Structured Commons Full Atom Feed" />
8+
9+
10+
<!-- Mobile viewport optimized: j.mp/bplateviewport -->
11+
<meta name="viewport" content="width=device-width,initial-scale=1, maximum-scale=1">
12+
13+
<link rel="stylesheet" type="text/css" href="http://www.structured-commons.org/theme/gumby.css" />
14+
<link rel="stylesheet" type="text/css" href="http://www.structured-commons.org/theme/style.css" />
15+
<link rel="stylesheet" type="text/css" href="http://www.structured-commons.org/theme/pygment.css" />
16+
17+
<script src="http://www.structured-commons.org/theme/js/libs/modernizr-2.6.2.min.js"></script>
18+
19+
20+
21+
22+
23+
24+
</head>
25+
26+
<body id="index" class="home">
27+
28+
29+
<div class="container">
30+
31+
<div class="row">
32+
33+
<header id="banner" class="body">
34+
<h1><a href="http://www.structured-commons.org">Structured Commons <strong></strong></a></h1>
35+
</header><!-- /#banner -->
36+
37+
<div id="navigation" class="navbar row">
38+
<a href="#" gumby-trigger="#navigation &gt; ul" class="toggle"><i class="icon-menu"></i></a>
39+
40+
<ul class="columns">
41+
42+
<li><a href="http://www.structured-commons.org/index.html">About</a></li>
43+
<li><a href="http://www.structured-commons.org/mission.html">Mission&nbsp;statement</a></li>
44+
<li><a href="http://www.structured-commons.org/online-forum.html">Forum</a></li>
45+
<li><a href="http://www.structured-commons.org/org.html">Organization</a></li>
46+
<li><a href="http://www.structured-commons.org/participating.html">Participating</a></li>
47+
<li><a href="http://www.structured-commons.org/scep0000.html">SCEPs</a></li>
48+
49+
</ul>
50+
</div>
51+
52+
53+
<!--<h1>SCEP0103 – SCEP0103 - Standard filesystem representation&nbsp;method</h1>-->
54+
55+
<table class="docinfo"><col class="docinfo-name" /><col class="docinfo-content" />
56+
<tbody valign="top">
57+
<tr class="field"><th class="docinfo-name">SCEP:</th><td class="field-body">103</td></tr>
58+
<tr class="field"><th class="docinfo-name">Title:</th><td class="field-body">Standard filesystem representation&nbsp;method</td></tr>
59+
<tr class="field"><th class="docinfo-name">Version:</th><td class="field-body">e239cae08c2d6f32e7b8628474dc9e113317cdc4</td></tr>
60+
<tr class="field"><th class="docinfo-name">Last modified:</th><td class="field-body">2014-06-16 11:18:38 (Mon, 16 June 2014)</td></tr>
61+
<tr class="field"><th class="docinfo-name">Author:</th><td class="field-body">Raphael ‘kena’ Poss</td></tr>
62+
<tr class="field"><th class="docinfo-name">Status:</th><td class="field-body">Draft</td></tr>
63+
<tr class="field"><th class="docinfo-name">Type:</th><td class="field-body">Standards Track</td></tr>
64+
<tr class="field"><th class="docinfo-name">Created:</th><td class="field-body">2014-06-16</td></tr>
65+
<tr class="field"><th class="docinfo-name">Source:</th><td class="field-body"><a href="scep0103.rst">scep0103.rst</a> (<tt>fp:WF94wYqmlRVeaYl8Q7MtBg7Fduo0AzHiw64yjpE1H8AgQQ</tt>)</td></tr>
66+
</tbody></table>
67+
68+
<p>The Structured Commons object model is defined semantically in <span class="caps">SCEP</span>
69+
101 [#<span class="caps">SCEP</span>-101], independently from its particular representation in a
70+
computer system. Conversely, there may exist multiple valid
71+
representations for an&nbsp;object.</p>
72+
<p>This <span class="caps">SCEP</span> defines the canonical representation of Structured
73+
Commons objects in a filesystem, with method name &#8220;<strong>fs</strong>&#8220;.</p>
74+
<div class="section" id="overview">
75+
<h2>Overview</h2>
76+
<p>The <tt class="docutils literal">fs</tt> representation maps objects to a filesystem (eg. on&nbsp;disk).</p>
77+
<p>Object files are represented by filesystem&nbsp;files.</p>
78+
<p>Object dictionaries are represented by filesystem&nbsp;directories.</p>
79+
<p>Names in dictionaries are translated using <span class="caps">UTF</span>-8 <a class="footnote-reference" href="#utf" id="id1">[1]</a> to file/directory
80+
names, with an optional percent-encoding <a class="footnote-reference" href="#urlq" id="id2">[2]</a> to support characters
81+
that are not acceptable in file names on a particular&nbsp;platform.</p>
82+
<p>For example, the name &#8220;helló / world?&#8221; can be translated
83+
&#8220;<tt class="docutils literal">hell%C3%B3 %2F world?</tt>&#8221; on a Unix filesystem or
84+
to &#8220;<tt class="docutils literal">hell%C3%B3%20%2F%20world%3F</tt>&#8221; for a directory served
85+
over&nbsp;<span class="caps">HTTP</span>.</p>
86+
<p>Dictionary names that map to objects are represented by directory
87+
entries that point to either files or&nbsp;directories.</p>
88+
<p>Dictionary names that map to fingerprints are represented by a regular
89+
file containing the binary representation of the fingerprint, with a
90+
filesystem name that prepends &#8220;%00&#8221; to the dictionary name&nbsp;representation.</p>
91+
<div class="caution">
92+
<p class="first admonition-title">Caution!</p>
93+
<p class="last">The names &#8220;.&#8221; and &#8220;..&#8221; are valid dictionary names
94+
in Structured Commons dictionaries, however they are (usually)
95+
not valid filesystem entry names. In general,
96+
names starting with a &#8220;.&#8221; should always be encoded to a
97+
filesystem name starting with&nbsp;&#8221;%2E&#8221;.</p>
98+
</div>
99+
</div>
100+
<div class="section" id="encoding-algorithm">
101+
<h2>Encoding&nbsp;algorithm</h2>
102+
<pre class="literal-block">
103+
PROCEDURE encode(path, object) BEGIN
104+
IF object IS-A FILE-OBJECT THEN
105+
SAVE BYTE-DATA(object) TO path
106+
ELSE
107+
MAKE-DIRECTORY name
108+
FOR name IN DICTIONARY-LABELS(object) DO
109+
item := DICTIONARY-VALUE(object, name)
110+
npath = URL-QUOTE(UTF-8-ENCODE(name))
111+
IF item IS-A FINGERPRINT THEN
112+
fpath := path + '/%00' + npath
113+
SAVE BYTE-DATA(item) TO fpath;
114+
ELSE
115+
fpath := path + '/' + npath
116+
CALL encode(fpath, item)
117+
END IF
118+
END FOR
119+
END IF
120+
END PROCEDURE
121+
</pre>
122+
</div>
123+
<div class="section" id="decoding-algorithm">
124+
<h2>Decoding&nbsp;algorithm</h2>
125+
<pre class="literal-block">
126+
FUNCTION decode(path) BEGIN
127+
IF IS-REGULAR-FILE(path) THEN
128+
data := LOAD-BYTES-FROM(path)
129+
ELSE
130+
data := MAKE-EMPTY-DICTIONARY()
131+
FOR fname IN DIRECTORY-LISTING(path) DO
132+
IF fname STARTS-WITH &quot;%00&quot; THEN
133+
label := UTF-8-DECODE(DROP-FIRST-CHAR(URL-UNQUOTE(fname)))
134+
fpdata := FINGERPRINT-VALUE(LOAD-BYTES-FROM(fname))
135+
SET data KEY label VALUE fpdata
136+
ELSE
137+
label := UTF-8-DECODE(URL-UNQUOTE(fname))
138+
data := CALL decode(path + '/' + fname)
139+
SET data KEY label VALUE data
140+
END IF
141+
END FOR
142+
END IF
143+
RETURN data
144+
END FUNCTION
145+
</pre>
146+
</div>
147+
<div class="section" id="example-reference-implementation">
148+
<h2>Example/reference&nbsp;implementation</h2>
149+
<p>Example code in Python is provided&nbsp;separately:</p>
150+
<p><a class="reference external" href="https://github.com/structured-commons/tools">https://github.com/structured-commons/tools</a></p>
151+
</div>
152+
<div class="section" id="references">
153+
<h2>References</h2>
154+
<table class="docutils footnote" frame="void" id="utf" rules="none">
155+
<colgroup><col class="label" /><col /></colgroup>
156+
<tbody valign="top">
157+
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td><span class="caps">RFC</span> 3629. &#8220;<span class="caps">UTF</span>-8, a transformation format of <span class="caps">ISO</span> 10646&#8221;.
158+
(<a class="reference external" href="https://tools.ietf.org/html/rfc3629">https://tools.ietf.org/html/rfc3629</a>)</td></tr>
159+
</tbody>
160+
</table>
161+
<table class="docutils footnote" frame="void" id="urlq" rules="none">
162+
<colgroup><col class="label" /><col /></colgroup>
163+
<tbody valign="top">
164+
<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td><span class="caps">RFC</span> 3986, &#8220;Uniform Resource Identifier (<span class="caps">URI</span>): Generic Syntax&#8221;.
165+
(<a class="reference external" href="https://tools.ietf.org/html/rfc3986">https://tools.ietf.org/html/rfc3986</a>)</td></tr>
166+
</tbody>
167+
</table>
168+
<!-- Local Variables:
169+
mode: rst
170+
indent-tabs-mode: nil
171+
sentence-end-double-space: t
172+
fill-column: 70
173+
coding: utf-8
174+
End: -->
175+
</div>
176+
177+
178+
</div><!-- /.row -->
179+
</div><!-- /.container -->
180+
181+
182+
<div class="container.nopad bg">
183+
184+
185+
<footer id="credits" class="row">
186+
<div class="seven columns left-center">
187+
188+
<address id="about" class="vcard body">
189+
Proudly powered by <a href="http://getpelican.com/">Pelican</a>,
190+
which takes great advantage of <a href="http://python.org">Python</a>.
191+
<br />
192+
Based on the <a target="_blank" href="http://gumbyframework.com">Gumby Framework</a>
193+
</address>
194+
</div>
195+
196+
197+
<div class="seven columns">
198+
<div class="row">
199+
<ul class="socbtns">
200+
201+
202+
203+
204+
205+
</ul>
206+
</div>
207+
</div>
208+
</footer>
209+
210+
</div>
211+
212+
213+
<script src="http://www.structured-commons.org/theme/js/libs/jquery-1.9.1.min.js"></script>
214+
<script src="http://www.structured-commons.org/theme/js/libs/gumby.min.js"></script>
215+
<script src="http://www.structured-commons.org/theme/js/plugins.js"></script>
216+
</body>
217+
</html>

0 commit comments

Comments
 (0)