Midgard2
Content repository for desktop and the web
Midgard has been a CMS
...but isn't just a CMS
The Midgard Project
•   Contributors from most   •   Free software project
    European countries           since 1999
•   Synchronized release     •   Midgard1 was just a
    model, every 6 months        CMS
•   Linux, Mac, Maemo        •   Midgard2 is a content
                                 repository
Content Repository


Common rules for data access
Content Repository


Signals about changes
Content Repository


Objects instead of SQL
Content Repository


            Objects instead of SQL




http://xkcd.com/327/
Content Repository


Data model is scriptable
Content Repository


Synchronization and sharing
Midgard2
               Generic Content Repository

•   Relational content storage based on MgdSchema
    ontologies
•   Object-Relational Mapping, Query Builder
•   Usable as library in C, Objective-C, Python and PHP
•   Built with C, glib, libgda
•   D-Bus signals for interprocess communications
•   LGPL v2 licensing
Coming to a mobile device near you
...or maybe even into your finger
Midgard2

Objects are defined in MgdSchema files
Midgard2

Using Midgard (G)objects
Midgard2

Query Builder
Midgard2

                          Tree access

•   Parent-child relations
    •   get_parent()
    •   list_children()
•   Access via named paths
    •   get_by_path()
Midgard2




Conboy can use Midgard as a content repository
Midgard MVC

Put your content repository on the web
Midgard MVC
•   Very efficient MVC
    framework for PHP
•   Python and D-Bus for
    background processing
•   Gettext + intl i18n
•   TAL templating
•   Full WebDAV support
•   Git for packaging and
    deployment
Midgard MVC




Qaiku: Microblogging with Midgard
Midgard MVC




Tomboy web synchronization with Midgard
Midgard MVC




CouchDB replication protocol
Midgard2 9.09 Mjolnir
Mjolnir

Database views
Mjolnir

Extending storage
Midgard2 Runtime
Mjolnir +1
•   Vala                    •   XMPP replication
•   RDFa & Tracker          •   Runtime for Linux
•   Gobject Introspection   •   Spring 2010
Forget about SQL, use a content repository
Start by installing Midgard2 now




midgard2.org   #midgard on FreeNode

Midgard2 Content Repository at FSCONS 2009