Codebase

Codebase

Object Oriented (OO)
Segue, Concerto and Harmoni are distinguished from most other PHP applications and systems in that their codebases are nearly completely object-oriented.  Object-oriented code is generally easier to debug and manage, and generally more flexible and extensible than procedural code (for a comparison, see: The Best Tool For The Job: OO versus Procedural Programming in PHP ). Part of the reason so few of the major PHP applications on the market today are NOT object oriented is because PHP as a programming language has only recently include support for object oriented programming.  Most Java applications on the other hand are object-oriented primarily because Java was designed to facilitate this style of programming.

Amongst open source projects comparable to Segue, Sakai is object-oriented.  Moodle is not object-oriented.  WordPress is partially object-oriented and becoming more so with every release (see: Is Habari any better than WordPress? ), as is MediaWiki (see: MediaWiki Manual: Global object variable ). Drupal is currently not object-oriented but many claim its modular design makes up for its lack of OOP constructs (see: Drupal API > OOP).  Amongst open source projects comparable to Concerto, both DSpace and Fedora have object-oriented codebases.

Service Oriented Architecture (SOA)
Segue, Concerto and Harmoni are also distinguished from many other applications in that they have service-oriented architectures (SOA).  SOA enables applications to interoperate by providing functionality as services that other applications can use.  Harmoni provides services to Segue and Concerto, many of which conform to the Open Knowledge Initiative open service interface definitions (OSIDs).  Using the OSIDs to define services has the advantage of being able to provide and use services in a standardized way. 

Syndication Oriented Architecture (SynOA)
Segue can be distinguished from many other applications in that is has a syndication-oriented architecture (SynOA).   In the context of Segue what this means is that nearly any view of Segue has an RSS version.  Thus, like most blogging tools, Segue allows you to get an RSS version of all blog posts and comments.  However, Segue also allows you to get an RSS version of just a single post and its discussion, as well as RSS feed of posts from any given section or page of the site.  Segue also has an RSS feed reader plugin which allows users to put RSS feeds anywhere they can put content.  Thus it is possible to have a Segue page that contains an RSS feed from another site.  The Segue RSS feed reader plugin has settings that allow users to specify how many RSS feed items to display and what portion of the feed to display (e.g. title only, title and description…etc). Thus a Segue site could function as a aggregator of content from other sources not unlike personal page aggregators like iGoogle and Netvibes.