smart objects and dumb (but open!) archives
DESCRIPTION
Smart Objects and Dumb (but Open!) Archives. Michael L. Nelson NASA Langley Research Center & University of North Carolina [email protected] http://www.ils.unc.edu/~mln/ Cornell University CS 502 – Computing Methods for DLs Guest Lecture April 20, 2001. Outline. - PowerPoint PPT PresentationTRANSCRIPT
Smart Objects and Dumb (but Open!) Archives
Michael L. NelsonNASA Langley Research Center &
University of North Carolina
[email protected]://www.ils.unc.edu/~mln/
Cornell University
CS 502 – Computing Methods for DLs
Guest Lecture
April 20, 2001
Outline
• History / problem statement / motivation• Buckets: smart objects• Bucket implementation • Smart objects, dumb archives (SODA)• Open Archive Initiative (OAI)• Bucket Communication Space (BCS)• Future work• Conclusions
NASA Scientific and Technical Information
• Formal publications cover a decreasing percentage of NASA’s STI output– most DLs focus only on formal publications
• Informal STI is maintained by only by a network of collegial distribution– aging and shrinking workforce weakens this network
• Customers want much more than formal publication– rather than stretch the meaning of “report” or “document”, define a
new object for DL transactions
NASA LaRC Publications 1991-1999
1730 1736
1472
1333
11091053
909 875954
0
200
400
600
800
1000
1200
1400
1600
1800
2000
1991 1992 1993 1994 1995 1996 1997 1998 1999
STI Observations• Media formats are instantiations of a more general
class of information• Most DLs are uni-format, following the obsolete
media boundaries of their non-digital predecessors• “Separate but equal” DLs considered harmful
– customer should not have to re-integrate what should never have been de-integrated...
– institutional knowledge being lost because we don’t have a publishing vector established
Information Lost Over Time
Project
manuscript
software
raw data
images
library
ftp site
thrown away
filing cabinent
User NewProject
Figure 7: STI Lost in Project / Archival / Reuse Process
Pyramid of Scientific and Technical Information (STI)
Journal Articles
Conference Papers
Technical Reports
time
software raw data notes video / images
Information is created in a variety of formats. Formal publications, the focus of
most DL projects, are supported by a pyramid of informal information.
The Tyranny of the Archive(Content is King)
The information content is more important than the systems used for its storage, management and retrieval
Objects should not be “locked” in specific DLs or archives
Buckets
• Aggregation + intelligence = buckets• metadata + data + methods = buckets• Object-oriented, intelligent agent archival entities• A collection of all information about a project:
– manuscripts - software– data - images– video - etc.
• Customizable, heterogeneous– buckets can “learn”, “talk”, and “coordinate”– buckets control terms and conditions, display, etc. -- not the
archive that holds them
Design Goals
• Aggregation– DLs should be shielded from the transient
nature of file formats– Prevent information hemorrhaging by archiving
all data types
• Intelligence– Aggregation (above) implies code, why stop at
passive objects? Make objects smart...– Bucket-bucket & bucket-tool intelligence
Design Goals
• Self-Sufficiency– Maximum autonomy & survivability: fully self-
sufficient buckets– Option to internally store all needed materials
• Mobility– Why should an information object be stuck in
one place?– Mobility for replication, workflow, data
collection
Design Goals
• Heterogeneity– One size does not fit all...– Different buckets for different applications, sites,
disciplines, etc.
• Archive Independence– Focus is on information, not yet another DL “system”
• does not require an archive to function
– “Work with everything; break nothing”
Bucket Architecture
Access MethodsCNRI Handle(unique id)
Terms and Conditions
Metadata (RFC 1807, Dublin Core)
Manuscript .ps .pdf .tex .doc
Software .tar .c .java
images .gif .jpeg
data sets .xls .tar
. . .
Figure 8: A Typical Bucket Architecture
Packagesinside thebucket
Elements insidethe package
A Typical NASA DL Bucket -- Other Bucket Types Possible!
A Sample Bucket
4 packages:- report (4 elements)- appendix (2 elements)- contact information (2 elements)- translation (1 element)
Another Sample Bucket
2 packages:- pre-print (2 elements)- pointer to SFX reference
linking service for published and pre-print versions (2 elements)
this bucket display for the Universal Preprint Service
https://ups.cs.odu.edu/
Heterogeneous Buckets
• Buckets are envisioned to locally modifiable and extensible
• There is a default set of public methods defined for buckets– additional methods can be locally defined
• Buckets can “learn” new methods– new “default” methods, or locally defined extensions
– override default methods
Bucket Messages• Sample bucket messages:
http://home.larc.nasa.gov/~mln/bucket/http://home.larc.nasa.gov/~mln/bucket/?method=display
invokes the default display method
http://home.larc.nasa.gov/~mln/bucket/?method=metadatareturns the metadata for the bucket
http://home.larc.nasa.gov/~mln/bucket/?method=display&pkg_name=report&element_name=tr1253.pdf
displays a single element
http://home.larc.nasa.gov/~mln/bucket/?method=list_methodslists all the methods that this bucket implements
Bucket Methods
supersedes Table 1 in NASA TM 1998 208419
add/delete_package add/delete_element
add/delete/list_principal(s) metadata/set_metadata
add/delete/list_method(s) list_source
add/delete/list_tc delete_bucket
get/set_state display
get/delete/list_log(s) id
lint version/set_version
get/set_preference pack/unpack
most methods take various arguments; see Appendix B in dissertation http://home.larc.nasa.gov/~mln/phd/
BUCKET DEMO
Bucket Metadata• Due to Dienst heritage, uses RFC-1807 format
– this is likely to change in the future
• Metadata defines the content and appearance of the bucket– bibliographic and control information
• But can store any format of metadata– bucket does not need to “understand” all formats
• special purpose, legacy or obscure formats – COSATI, MARC– http://foo.edu/bucket-27/?method=metadata&format=cosati
Current Implementation• File system semantics:
– 1 bucket = 1 directory– 1 package = 1 directory in bucket– 1 element = 1 file in package directory– index.cgi is the bucket “lid”
• http dependency for access• index.cgi written in Perl 5.0
• Methods should not change when the implementation changes– still use http as transport protocol– Oracle, Lotus Notes implementations being developed
• Java, PHP, Tcl, etc. implementations possible too
Bucket StructureBucket
_method.pkg _http.pkg _log.pkg _tc.pkg
_md.pkg _state.pkg
source filesfor methods
http dependencyfiles
logstermsand conditions
metadata bucketstate
default bucket packages sample bucket payload
index.cgi
report.pkg appendix.pkg
software.pkg testdata.pkg
Systems Tested
Architecture Operating System Perl http server
Sparc Solaris 2.7 5.005_03 Apache 1.3.9
Sparc Solaris 2.7 5.005_03 NCSA httpd 1.5.2
Sparc Red Hat 6.0 (Linux
2.2.5-15)
5.005_03 Apache 1.3.6
Intel x86 Windows NT 4.0
(1381 / SP 5)
Active Perl 5.005_03 Apache 1.3.12
Intel x86 Mandrake Linux 6.2 5.005_03 Apache 1.3.6
MIPS R10000 IRIX 6.5 5.004_04 Apache 1.3.4
RS/6000 AIX 4.2 5.002 Apache 1.3.12
PowerPC 604 Linux 2.0.33
(MkLinux)
5.004_01 Apache 1.2.6
• Objects are more important than the archive that holds them– The object should be the authority on its
contents, not an archive
• We envision a general shift of intelligence from archives to the objects themselves– DL protocols should find, index, and search --
not know about file formats, policy, terms and conditions, etc.
SODA:Smart Objects, Dumb Archives
Presentation Responsibility Shifts From Dienst to Buckets
userindex holdingssearch / retrieve holdingsdisplay holdings
Dienst Archive
userindex holdingssearch / retrieve holdings
display holdings
Dienst Archive
Bucket
Dienst Operation in NCSTRL
Dienst / Bucket Operation in NCSTRL+
Figure 10: Buckets, Not Dienst, Handle Display in NCSTRL+
SODA
• Current DLs have tight integration between the data object, the archive it is in, and the interface used to access it– 1-1 model between DL and archive
• By decoupling these functions, we can separate their development and maintenance– N-M model between DLs and archives
. . .
. . .
NASA Archive CoRRACM Archive
Library Users
NASA DLS Avionics DLS NCSTRL
All KnownBuckets(in archives and out)
Archives Managing Buckets
DLSs Building From Archivesand Buckets
. . .
Students and Educators
Researchers Corporate Developers. . . . . .
SODA
“Dumb Archive”
• Archives should be little more than set managers• Several possible archive candidates
– LDAP, Dienst, Guildford Protocol, others
• Our implementation: a “modified” bucket, DA:– it has all of the regular bucket methods, plus:
• da_list - list all buckets in the archive• da_put - put a bucket in an archive• da_delete - delete a bucket from an archive• da_info - archive-level metadata• da_get - redirect to this bucket
all operationsmodulo appropriateT&C
DA StructureBucket
_method.pkg _http.pkg _log.pkg _tc.pkg
_md.pkg _state.pkg
source filesfor methods
http dependencyfiles
logstermsand conditions
metadata bucketstate
default bucket packages
no bucket payload
index.cgi
holdings.pkg
DA datastructures • holdings.pkg package for DA
• does not use packages/elements•scalability concerns
• uses GDBM/NDBM files (hashes)•1 hash per argument to da_put
OAI as a “Dumb Archive”
• Originally used a separate protocol & implementation for the “dumb archive”
• Now using the metadata harvesting protocol defined by the Open Archive Initiative (OAI)– OAI evolved from the Universal Preprint Service (UPS)
• http://www.dlib.org/dlib/february00/vandesompel-ups/02vandesompel-ups.html• http://ups.cs.odu.edu/• http://www.openarchives.org/
• OAI does not require smart objects, but does create a “dumb archive” layer
OAI Bucket StructureBucket
_method.pkg _http.pkg _log.pkg _tc.pkg
_md.pkg _state.pkg
source filesfor methods
http dependencyfiles
logstermsand conditions
metadata bucketstate
default bucket packages bucket payload is DL specific support library
index.cgi
oai
oai.pl element is a support librarythat defines access for the specific DL
in addition to the ~ 30 bucket methods each OAI verb is implemented as a separate method
Intelligence
• Shift of responsibility into the data objects opens up an entire new class of applications:
data objects as intelligent agents• Premise: instead of having the data objects
do nothing while they patiently wait to be accessed, have them do something useful while waiting ...
Bucket Communication Space
• Provides a well known, shared memory model for buckets to communicate– communications model: Linda (Javaspace)
• Applications:– Bucket matching
• the same author (separated by publisher, time)
• different authors (finding similar works)
– Metadata scrubbing
– Format translation (metadata, images, documents)
– Bucket messaging• including broadcast & multicast
BCS StructureBucket
_method.pkg _http.pkg _log.pkg _tc.pkg
_md.pkg _state.pkg
source filesfor methods
http dependencyfiles
logstermsand conditions
metadata bucketstate
default bucket packages
no bucket payload
index.cgi
bcs.pkg
BCS datastructuresconversionprograms
• bcs.pkg package for BCS• uses GDBM/NDBM files (hashes) for registr• included programs
• mdt (metadata conversion)• Image Alchemy (image conversion)
BCS Methods
• bcs_list, bcs_register, bcs_unregister– set management
• bcs_convert_image– wrapper for Image Alchemy program– no bucket hooks in 1.6
• bcs_convert_metadata– wrapper for “mdt” program – bucket hooks in 1.6
BCS Methods
• bcs_message– “search”, “search/replace”, “search/mesg”
functionality
• bcs_similarity– all x all comparison– n x all comparison (n=1 .. all)– adjustable threshold for “similarity”
BCS DEMO
Similarity Results from UPS• NACA - 3036 documents• UPS Math - 3831 documents
– for 6867 documents, ran for 42 hours (561k comparisons / hour)
– used default value of 0.85 for similarity– NACA - 159 similar documents– UPS Math - 35 similar documents– No similarity between NACA & UPS Math
• Optimizations:– clustering of collection– distributed computation of similarity matrix
Future Work
• Alternate implementations for buckets– Java, Oracle, Python, Tcl…
• Alternate API access– CORBA, SOAP
• New functionality for buckets– Standard packages / elements for: revisions,
citations, checksums
Future Work• Security, authentication, T&C
– investigate X.509, Kerberos, MD5– formalize ACLs
• Specialized buckets– discipline- or data-specific buckets– computational buckets
• software reuse, RPC-like support
• Reduce the centralization of the BCS– cf. Berkeley’s xFS – serverless file system
• http://now.cs.berkeley.edu/Xfs/xfs.html
• Passive -> Active objects– e.g., LANL’s Active Recommendation Project
• http://www.c3.lanl.gov/~rocha/lww/
Impact• SODA
• significant immediate interoperability benefits• frees the object from the tyranny of the archive
• Bucket aggregation: evolutionary concept• benefit begins immediately, continues indefinitely• no more information hemorrhaging
• Bucket intelligence: revolutionary concept• benefit is mid- to long-term• full impact unknown; a flexible framework will allow others to
innovate• make archived objects active, not passive
http://dlib.cs.odu.edu/
if bucket software doesn’twork out, we’ll marketproducts with Phil’s likeness
thanks to Rod Waid for Phil
Emergency backup slides...
Why Digital Libraries?
• “Why not just use the WWW” ?– WWW by itself has low archival &
management characteristics
• “Why not use a RDBMS?”– In the same way that a card catalog
is not a TL, a RDBMS is candidate technology for use in DLs
• DL is the union of the content and services defined on the content
WWW (http) Access
(most common)
non-WWWAccess
(now uncommon)
OtherTechnologies
Digital Library Services
(searching, browsing, citation anlaysisusage analysis, alerts)
Vectorand/or
BooleanSearch
Engines
(traditional IR)
RDBMSFile
Systems
Content
digital library = collection of information both digitized and organized-- M. Lesk, 1997
Digital Libraries?
• Ultimately, the product of a research institution is information– information objects (generally publications) are
frequently the only tangible measure of research output
(compressing an entire body of literature):
• Traditional libraries (TLs) are expensive, and less and less information is being archived by fewer and fewer TLs
TLs vs. DLs
• DLs clearly better than TLs at:– Dissemination, storing information variety
• However, TL objects are more survivable– Who will archive the research information?
• the publishers?• the institutions?• the authors?
– Will the average DL object still be accessible in 10 years?
Cosine Correlation With Frequency Term Weighting
n
(tdij X tdik) i=1
similarity (dj,dk) = n n
tdij2 X tdik
2
i=1 i=1
wheretdij = the ith term in the vector for document jtdik = the ith term in the vector for document k n = the number of unique terms in the data set
Adapted from Harman (1992), originally from Salton & Lesk (1968)
Similarity Matrix
id-1 id-2 id-3 id-4 … id-n
id-1 1 0.298 0.783 0.267 … 0.459
id-2 1 0.976 0.732 … 0.432
id-3 1 0.868 … 0.291
id-4 1 … 0.870
… 1 0.904
id-n 1
not computed -same as abovethe diagonal