Samizdat: Co-op Engine
======================

Mission Statement
-----------------

Samizdat is a generic RDF-based engine for building collaboration and
open publishing web sites. Samizdat provides users with means to
cooperate and coordinate on all kinds of activities, including media
activism, resource sharing, education and research, advocacy, and so on.
Samizdat intends to promote values of freedom, openness, equality, and
cooperation.

Samizdat users can publish, view, comment, edit, and aggregate text and
multimedia resources, vote on site structure and resource
classifications, filter resources by flexible sets of criteria (see
Features below, and Design Goals document). 

Samizdat builds its underlying data model on RDF (Resource Description
Framework), and defines a schema of resource classes and properties for
core concepts of a Samizdat site: member, message, thread, focus,
proposition, vote, version, part, and so on (see Concepts document).
Open nature of RDF allows to add new metadata and new uses of site
resources without effort, and to transparently interoperate with diverse
set of applications supporting this standard.

Samizdat project was inspired by Matthew Arnison's Open Publishing
initiative and Active engine used by the IndyMedia.org project, and by
rusty's Scoop engine used by Kuro5hin.org and other sites (see
References document). Unlike other open editing systems, it uses RDF
model from the ground up and targets other domains beyond publishing,
such as cooperation, education, and resource sharing.

Samizdat library includes four stand-alone modules that can be used
outside the Samizdat engine: Cache (thread-safe time-limited object
cache with flexible replacement policy), Storage (RDF storage over a
relational database), Sanitize (whitelist XSS filter based on HTMLTidy
and REXML), and Antispam (simple wiki spam filter).

Samizdat is free software and is built using free software, such as Ruby
programming language and PostgreSQL relational database management
system. All Samizdat source code and documentation can be redistributed
and/or modified under the terms of the GNU General Public License as
published by Free Software Foundation; either version 3 of the license,
or (at your option) any later version.


Features
--------

Open Publishing
- open publishing wire
- threaded comments
- multimedia upload (including online viewing of FLV and MP4 videos with
  Flowplayer free Flash video player)
- format messages as text, verbatim plain text, HTML, and Textile
- integrated message translations

Open Editing
- vote for site structure
- vote for dynamic front page
- any message can be voted to become a focus
- moderation interface
- configurable access control to publishing, voting, and moderation

Wiki
- publish new versions
- author-only or open-for-all editing
- history of changes with colored difference tables

Blogging and Syndication
- export of RSS 1.0 feeds for front page, focuses, and Squish RDF queries
- import of RSS feeds into the front page
- personal blog space (in progress)

Semantic Web
- site structure follows RDF model
- search with RDF queries, publish queries as messages
- Dublin Core metadata
- built-in relational storage for RDF

Security
- all user input is tainted and HTML-sanitized
- CSRF protection
- wiki spam filter
- per-resource moderation logs
- moderation request tracker
- login forms and cookies may be limited to HTTPS connections

Implementation
- Ruby, PostgreSQL (or SQLite3, MySQL), Apache (or Lighttpd)
- full Unicode (UTF-8)
- XHTML 1.0 markup with switchable CSS themes
- GetText l10n framework (UI available in 11 languages)
- in-memory object cache, database cache of rendered and sanitized messages
- built-in MVC mini-framework


More Information
----------------

Documentation

   install.txt:         Installation
   design-goals.txt:    Design Goals
   concepts.txt:        Concepts
   rdf-impl-report.txt: RDF Implementation Report
   rdf-storage.txt:     RDF Storage
   storage-impl.txt:    Storage Implementation
   translations.txt:    Translations
   references.txt:      References

Papers

   collreif.tex: Model for Collaborative Decision Making Based on RDF
                 Reification, April 2004
   rel-rdf.tex:  Accessing Relational Data with RDF Queries and
                 Assertions, April 2004

Presentations

   oscom3_samizdat.xml: OSCOM3, May 2003, Cambridge, MA
   euruko2003_samizdat.xml: EuRuKo 2003, June 2003, Karlsruhe, DE

Links

   http://samizdat.nongnu.org/
   http://savannah.nongnu.org/projects/samizdat/
   http://raa.ruby-lang.org/list.rhtml?name=samizdat
   http://freshmeat.net/projects/samizdat/
   http://docs.indymedia.org/view/Devel/SamizdatEngine

