Jump to: navigation, search

A discussion page for library software and content delivery.

For related meeting notes, see content meetings. For older notes, see the archive. Below, the most recent discussions are first.

Library tools

The [Greenstone Digital Library] system provides a lightweight digital library in terms of application and collection size if properly configured. Greenstone can deliver collections on very old 16 bit hardware with much lower specs than the the OLPC laptop.

A slightly different [more limited?]notion of library than the one we have in mind.

Stephen's suggestions

Application configuration;

  • Only include the cgi library interface
  • lightweight http server (their may already be one on the device that could be reused)

Don't include the GLI interface for library creation, ditto for the supporting code, and perl wrappers/plugins etc. Much of the application in the full download is not required for searching/viewing collections.

Collection configuration;

  • Collections can be optimised and compressed in a variety of ways that would easily allow fitting a great deal of content into a small portion of the space available on the OLPC, or even on a small USB flashdrives for distribution.
  • The most efficient ways of including content is to store/compress it as either plain text or html (if linking or lightweight images are needed). This facility already exists in Greenstone.

- Stephen De Gabrielle

Some definitions


Library Activity
-- A way to interface to content on the XOs and school servers. Eventually this may become its own activity; currently this will be a browser interface.
XO library
-- the library of materials on an XO.
School library
-- the library of materials on a school server.
Regional library
-- the library of materials on a regional or country server.


The default interface for the library activity can be similar to the journal interface. (Eventually the journal may provide much of this interface.) Browsing the XO library:

- main page (by subject)

Browsing the school library:

- main page -- a page for "what" (by subject)
- "who"  (by student) **
- "when" (by time) **

There will be a multilingual server collection, linked to from the above:

- literature, picture books and audiobooks
- world atlas of maps (with its own mini-portal)
- images from around the world
- video (movies, tv programs) and sounds 
- games (a puzzle game, simcity, tetris, an etoys project collection)

Also: dictionary, 'develop' activity (deep links), photos and videos take with capture activity, audio recorded likewise.

Many of the above will be loadable by browsing to them; some will require more technical know-how.

* once a database is set up to store and search through metadata.  there can be 
  simple implementations before the full object store is in place.
** assuming a media streamer is working

A main browsing-page:

(journal-style search bar)

   [   A   ]     [   B   ] 

   [   C   ]     [   D   ] 
A : Texts (reading, math, science; project ideas; for teachers, students; ...)
B : Images  (photos, snapshots, ...)
C : Video (clips, films, ...)
D : Activities (games, etoys, ...)

Subsidiary browsing pages: at least one for each of the sections listed above. One for each large collection [encyclopedia, dictionary if present, atlas, periodic table]. A variation of each portal for every core language [ideal portals have no text at all, or at branch tiers, text in every language].


- get a number of draft sketches of possible main and secondary browsing pages 
- define what the design and layout will be like
- define when we will have final converted media from our own machines and from Real
- determine what media player to use
- finalize agreements re: use of media works
- draft spec for metadata store 
- have small localization team in place for En, Es, Pt, Ar
- find remaining resources needed

- revisit full timeline & needs
- test XO-customization activities
- test character-sets [again]; first run of localization work [on-wiki]
- testing ebook readers x2 (yellow and internet archive readers)
- testing datastore on server 
- testing video streaming, server to XO 
- test form creation, new games (simcity, puzzle game, &c)
- testing wiki & admin interface (moodle, &c)
- test localized sugar, journal.
- revisit full timeline & needs
- testing on a server

Resources needed

  • Mozilla expert to help perfect the interface via the browser
  • Moodle, Mediaplayer, &c. devs to help set up server apps
  • designer[s] to help create any images necessary in line with existing interface specs
  • developer to help write a database to support storing simple metadata about library materials and simple searching for those materials; and scripts to restructure and reformat text and metadata from existing sources.
  • group focusing on localization implementation -- activating a language preference, setting up workflows that will work over the longer term.

design criteria

A good library should be beautiful, should hint at overabundance and accessibility, and its use should be inspiring.

Libraries use librarians to help people to navigate collections with complicated relationships between sub-collections. The Library would be easier to navigate if it offered the following interfaces:

  • a dynamically generated view of available materials, local and regional, that updates when collections are installed or removed, and presents different views when isolated and when connected to a friend or local network.
  • a way to search through the system of available collections, and an api that allows a collection author to design its own search interface
  • a set of ways for collections to interact with users, either directly reacting to user input or storing and reading back state and data over time.

Some related interactions that it would be useful to provide to other activities as services include:

  • web browsing; to navigate/display local html pages and media, such as help pages for each activity
  • a way to edit in a distributed way a set of notes, inculding pervasive talk pages associated with each bundle and component, which can be updated and shared en masse or page by page (cf. MikMik)

loading and running scripts

Some of the above, including customizable interfaces for searching and tracking previous interactions, can be implemented as scripts that come with a collection and interface. If there were a way to limit the power and extent of what such scripts could do (as Javascript attempts to, for instance), one could let the creator of an otherwise static bundle define precisely the dynamic interfaces it wants.

Limitations on Javascript, in the absence of a state-service such as Google Gears and in the absence of a way to read public elements in the datastore, prevents some of this from being realized.

One option is to make a webservice available that will execute python scripts [as the web user?]

An alternative is to make every collection available as its own executable bundle, which embeds browser-like activities for rendering and explicitly requests script privileges so that it can access and process published files and materials.

similar activities and interactions

There are other content-browsing activities which want to navigate quantities of data (effectively interfacing with a local database) and could potentially be served by a similar system :applications, such as a javascript spreadsheet

  • Gmail with an offline component (caching mail & responses)
  • editable google maps : a local database of geolocations and comments/media, (and an optional input of one's own location from a usb gps) combined, when connected to a tilecache, with map tiles.

Activities that build on and display available data would like to access

- data publicly available as part of our build images,
- data installed as part of public bundles, such as the current help files or talk pages associated with a bundle
- data published by the user.
- statistics published by the system, including the time and its overall use

Finally, common libraries for managing many of these interactions and activities run as javascript, java, or flash; and rely on the browser and html/css to render the resutls [automatically handling zooming, bookmarking, screen rotation, and the like].

library look and feel

1) The overall HTML framework should replicate some of the look of the Journal, perhaps with a main view and layout similar to the upcoming journal redesign: clusters of icons as top-level navigation, with no other body content (focus on navigation, or on a topic, not both). Little other structure. No wasted space on any leaf page; a single link back to the overall library navigation. This is really how I'd like to see journal navigatino to work as well. --Sj leave me a message

2) A main portal page - Megan suggested a circular / annular theme to match the desktop, way back when. This was a fine idea. A central circle containing a library logo, with four sections for text, images, music/video, and games/activities, each represented by small images... as the top-level browse view.

3) Secondary pages for each section, offering a "browse" view organized by subject ("what") for that section. This can be a two-column view with sections, and icons for each major section -- similar to a 2-up display similar to what Eben's tv-widget offers.

4) A "browse" view for people ("who") showing what each person has in his/her personal collection. This will be needed if the servers are done in time, but takes lower priority than the rest.

5) A template for search results; similar to 3) above but dynamically generated.

Library integration with the Internet

The biggest content repository is the internet, and perhaps it would be quite usefull to have the library also serve as an entry-way for kids to that content.

I suggest that each category, Music, Activities, etc., have a separate space for web links. This would give kids a way to explore what (currently with the sample library) OLPC thinks is good on the web, and in the future what schools, teachers, but also hopefully students, parents, friends and local and regional communities think is good as well.

For example, the music category could contain links to Jamendo, and other free music websites. The image category could provide links to NASA's satellite imagery of countries and continents (see m. charitties user page for the link). The activity category could have a link to Instructables website.

These are some quick guesses, and more thought should go to the choice of usefull, good educational resources to include.

Of course, this Sample Library should clearly mark itself a sample, and not be seen as a Portal. For this reason, it should be somewhat limited in its range. At the same time, if it pointed towards content which adhere to the projects philosophical approach to education, it would be useful to do.

As an example, we could have a wiki page for each category dedicated to gathering useful links; and could link to that; a level of indirection that keeps the core library simple, continues to work as expected when there is an internet connection, and allows the list to be updated over time.

It should be made in a way that encourages communities to built on it, to add and improve it to fit their needs, and in no way impose our ideals/culture.

There might be problems of Nation-wide approved "Library links", but perhaps by reaching out to various cultures to come up with their own library sample, with content and weblinks representing what they are, would make better serve as example of how it could be used more dinamically.

The nation-wide links could be applied by changing where the canonical redirect goes for each bundle.

I could picture there being a Portuguese library, showcasing our poets, scientists, culture, nature, and so on. These would be useful for countries or even communities to learn more from each other, by "trading" their made-libraries.

Trading 'made' libraries is definitely in the cards. Countries are committed to making this kind of sharing a reality.
These are all good ideas. See some of the existing use cases. --Sj leave me a message 16:53, 24 January 2008 (EST)

Library use cases

positive use cases

use cases we want to support


  • I am a teacher and I cannot find the resource that I want. I can post a request for content some where and it gets to someone who can get that content.
  • I am a teacher and I want to give my kids access to a set of documents that are too big for them to download entirely
  • I am an Indian teacher and I want to find an approved map of India


  • I am a student and I want to learn about Indian independence in 1942
  • Wants to find a photo from Uruguay not taken w/ an XO
  • I need help w/ math and I want to find more materials to study
  • I want to find a penpal activity
  • I turn on my computer and can access the materials for my course without "logging on" anywhere


  • I am an official at Nepal's Ministry of education and I want to certify that a given set of activities meet Nepal's second grade curriculum for math
  • I want to add metadata to new submissions
  • I want to find and improve new uploads
  • I want to apply a new format to all the materials for my area/country
  • I want to reuse content about pandas in northern china that was created by Chinese student
  • I have found content that questions our national regime and I don't want students to be able to access it

Archivists and librarians

  • I am an academic and I want to upload a set of classical poems and I am very particular about the metadata and presentation of those poems
  • I am a librarian and want to digitize and share print materials

Authors and creators

  • I am an author or artist and I want to share my materials with {my country, the world}
    ...but I don't want people to change them
    ...but I don't want people to sell them
  • I am an author and I want to contribute to a freely available anthology (bankers m.)

negative use cases

use cases not desired

  • I am student and want to find pornography
  • I turn on my computer and can shut down the computers of others around me.

I can't find the sources

The link to the source seems to be broken, do you move them elsewhere?