hi monks.
i am trying to build a CMS/ object system for a meta-database, which
means it should hold references to media content. The reference is an URI, where the data actually is is not important for the database, but the meta-information. Much alike
http://sharereactor.com
but for independent content, not mainstream movies, rips, and so on.
(and not limited to filesharing networks)
the main services should be for producers of digital media content
- availability + speed, archiving
( http mirroring, ftp or filesharing)
- distribution/ advertising
(fs2 website, real-space or broadcast)
- feedback/ forum +interlinking (voting, commenting of entries)
for consumers it should be a nice ressource for interlinked, good
documented and rated media content.
other parts of the projects are about a real-life-vieo jukebox and a
quicktime/flash based (voting enabled) player -- the field of
experimentation is big, ranging from creating visualisations of the
data with
GraphViz
up to creating alternative browsing methods, realtime video-remixers
and so on...)
if you are interested, it will be
located here:
http://fs2.at (cooperation with http://mmm.ok.ag)
(please
contact me if you want to
help developing or researching or just want to talk)
- i will maybe move everything i have until now to sourceforge soon...
in the first state the database mostly stores visual content, which is
existing in the versions
- stream
- download
- broadcast
representing 3 levels of compression (we chose general MPEG4 as the
codec which is available on most of the platforms). the upload is done
with
CGI::FormBuilder
(thanks again
jdtoronto, cees
and the other monks who gave me good hints how to show the progress of the upload)
from the Perl side, i want to use
Class::DBI
and several other modules such as
Template Toolkit 1
2
|
Templating System |
Class::DBI 1
2
|
Simple Database
Abstraction; database to object mapping layer |
Class::DBI::mysql::FullTextSearch
1
|
for fulltext-searching mysql |
CGI::FormBuilder
1
2
|
Easily generate and process
stateful forms |
| XML::RSS 1 |
Create RSS for latest entries |
Imager 1
|
Perl Image Processing and
tricking
|
|
|
Small
Tools
|
|
Digest::MD5 1
|
using MD5 on files |
|
|
Media
Information Modules
|
|
Video::Info 1
2
|
resolving video filetype, info
about videos |
|
|
STRUCTURE
(1) OBJECTS
the objects represent the structure of the database plus their
functionality.
(2) CMS
the content management system has several scripts for interacting with the DB from the HTTP-side (HTML forms and things that makes the site-handling more easy).
features:
*
Template-Toolkit
*
CSS based
(3) I/O SCRIPTS
these are for
- remote i/o
- getting requests from outside back as XML, plaintext, HTML
- retrieving the media data
the main i/o are object methods. this is just about formatting output
and making things easier.
CLASSES
m=method
a=attribute
(1) Fs2
main database connection (
Class::DBI)
(1.1) Fs2::User
a: role
m: get() add() mod() commit()
(1.2) Fs2::Request
blesses Fs2::User or Fs2::Content Objects, depending on the query:
e.g.
- all users from the db sorted alphabetically (=array)
- all mmm videos from the db
(1.3) Fs2::Content
a: DB_ID
a: @mirrors
m: get() add() mod() commit()
(1.3.1) Fs2::Content::Playlist
a sequence of Fs2::Content objects (array)
(1.3.2) Fs2::Content::Media
the main class for a content entry, would be a "normal article"
(1.3.2.1)
Fs2::Content::Media::Video
(1.3.2.2)
Fs2::Content::Media::Audio
(1.3.2.3)
Fs2::Content::Media::Executable
(1.3.2.4)
Fs2::Content::Media::Interactive
(1.3.2.5)
Fs2::Content::Media::Other
+---+
+--------|Fs2+-----------+
| +-.-+ |
| | |
+-+--+ +--+----+ ,--+--.
|User| |Content| (Request)
+----+ +.-----++ `-----'
| |
| ++-------+
| |Playlist|
| +--------+
|
|
+-----+ +---+-+ +-----------+
|Video+--------|Media|..|Interactive|
+-----+ +.-.-.+ +-----------+
+-----+ | | | +-----+
|Audio+.......... | ....|Other|
+-----+ | +-----+
+-------'--+
|Executable|
+----------+
i know there are similar projects existing, like
OMA - the Open Meta Archive for
example. but i chose to completely redesign everything from scratch, as
i wanted to get used to
OO-perl
and build features that i think are missing in all the metadata
archives.
my questions now are:
- does this kind of design make sense to you? any ideas for that?
- the whole package should be available open-source when finished,
the aim is to make it possible for others to install the system and
populate the index of the files available in the archive. so a
search-function around all the installed systems around the globe would
be the best feature. any ideas how to accomplish that? (much like bittorrent or mldonkey have
a search-function and form...)
- who wants to assist/ join in the project?
janitored by ybiC: Balanced <readmore> tags, remove extraneous <br> tags from opening paragraph