-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.txt
72 lines (51 loc) · 2.96 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Introduction
============
uu.record manages record objects inside a content management system using
the ZODB, Zope Component Architecture, and the Zope CMF frameworks.
Records are just uniquely locatable and identifiable objects.
uu.record is a library for managing persistent data record objects within a
Zope CMF (or Plone) context. This library provides base interfaces for
record objects and utility and adpapter components related to them, with
some basic key assumptions:
1. Records have unique ids -- specifically RFC 4122 UUIDs -- at a known
reliable attribute/property name directly accessible on the object.
* For simplicity, presented as attribute in string representation.
* The simplicity of string format is usually a pragmatic win over
the storage/comparison optimization of storing binary UUIDs.
* Implementations may use properties or descriptors to store
binary (uuid.UUID) objects and present callers with string
format.
2. Records have some adaptation context or contained 'placeful' location
in some software / data-management system. Therefore, records should
implement zope.location.interfaces.ILocation with:
* a __parent__ attribute pointing to the container or context
that is managing the record. The key assumption here is that
records are 'managed' by some external controller or container
that is responsible for some aspect of CRUD operations on the
records contained within.
3. Records are typically contained in a mapping-like container, which
may be (and usually is) ordered.
4. Records need to be resolvable by their UUID from any context within
a software system (or within a "site" / application). This is a
necessary condition for many information retrieval functions.
5. It should be possible to index records keyed by their UUID in
some system. Since many search/index/catalog systems use integer
ids for returned results of a query, it may make sense to maintain
a mapping utility that is a two-way index of UUIDs to integer ids.
6. Records, at their core, are schema-less. Higher-level frameworks
may impose schema on instances or containers, but the core
operations of records can operate without schema dictating fields
contained within. Records are just uniquely locatable and
identifiable objects.
License
-------
This is a framework-level component that does not depend on upstream GPL
code; as such it is licensed under an MIT-style open-source license that
is compatible with the GNU GPL v2 used in many packages inside Plone.
All GPL-dependent code using this framework should be packaged in products
and libraries using this package, not within it.
--
Author: Sean Upton <[email protected]>
Copyright 2011, The University of Utah.
Released as free software under an MIT-style license, please see
docs/COPYING.txt within this package for details of the license.