Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

fs2: metadatabase, object-mapping, alternative media and decentralized perl project

by parasew (Beadle)
on Sep 21, 2003 at 02:29 UTC ( [id://292952]=perlmeditation: print w/replies, xml ) Need Help??

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
  1. availability + speed, archiving ( http mirroring, ftp or filesharing)
  2. distribution/ advertising (fs2 website, real-space or broadcast)  
  3. 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

  • Comment on fs2: metadatabase, object-mapping, alternative media and decentralized perl project
  • Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://292952]
Approved by Zaxo
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (7)
As of 2024-04-23 07:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found