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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
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 2 of the license,
or (at your option) any later version.
Features
--------
Open Publishing
- open publishing wire
- threaded comments
- multimedia upload
- format messages as text, verbatim plain text, HTML, and Textile
- integrated message translations
- short description linked from a separate message
Open Editing
- vote on site structure
- vote on 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
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
|