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 implements workflows that 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, tag,
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 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 tag
- 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
- personal blog space
- export of RSS 1.0 feeds for front page, blogs, tags, and RDF query results
- import of RSS feeds into the front page

Semantic Web
- site structure follows RDF model
- search with RDF queries, publish queries as messages
- Dublin Core metadata
- uses Graffiti relational RDF store

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, Nginx
- 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
   translations.txt:    Translations
   references.txt:      References

Presentations

   oscom3_samizdat.xml: OSCOM3, May 2003, Cambridge, MA
   euruko2003_samizdat.xml: EuRuKo 2003, June 2003, Karlsruhe, DE
   barcampsheffield2007_samizdat.xml: BarCamp Sheffield 2007, May 2007,
                                      Sheffield, UK
   lvee2008_samizdat.xml: LVEE 2008, June 2008, Grodno, BY

Links

   http://samizdat.nongnu.org/
   https://github.com/angdraug/samizdat
   https://savannah.nongnu.org/projects/samizdat/
   http://raa.ruby-lang.org/list.rhtml?name=samizdat
   http://freecode.com/projects/samizdat
   https://docs.indymedia.org/view/Devel/SamizdatEngine

