Code Monkey home page Code Monkey logo

stagebrainz's Introduction

StageBrainz

A musicbrainz-inspired database for performing arts (theatre, dance, etc.)

Mission

StageBrainz aims to be an open, free, online, crowdsourced overview of the performing arts.

Data Model

As in Musicbrainz, StageBrainz has a limited number of core entities:

  • Organities: persons, organisations, venues, etc. active in performing arts
  • Productions: a stage production that will be performed repeatedly over the course of a season
  • Shows: the actual performances of a stage production
  • Works: conceptual creations, e.g. a theater text, from which stage productions can be derived
  • Characters: fictional characters in works, e.g. Hamlet

And a number of auxiliary entities

  • Genres: all sorts of genres for performing arts, e.g. dance, theater, theater for a young audience, ...
  • Languages: ISO list of languages
  • Locations: free street address text fields, with fixed city and country level
  • Urls: links to online resources

Every core entity has a disambiguation line. Because of this, entities with duplicate names can have a disambiguation string in representation, e.g. 'Ancienne Belgique (Concert hall in Brussels)'.

Each entity, so both the core as well as the auxiliary entities, has a related X_type, e.g. a person (member of people) can be of type 'Actor' (a person_type).

INSERT UML TO SHOW TYPE RELATION

The core entities can also have an Alias of a certain AliasType. As an example, the Venue 'Ancienne Belgique' is 'abbreviated as' (i.e. the AliasType) 'AB'.

INSERT UML TO SHOW ALIAS + ALIASTYPE RELATION

Furthermore, each entity can be related to all other entities, including itself. It is therefore possible to make every kind of relation:

Organities Works Characters Poductions Shows Genres Languages Locations Urls
Organities x
Works x x
Characters x x x
Productions x x x x
Shows x x x x x
Genres x x x x x x
Languages x x x x x x x
Locations x x x x x x x x
Urls x x x x x x x x x

Every relation in itself has a Type.

INSERT UML TO SHOW RELATION + RELATIONTYPE

Because of this, it is possible to distinguish between a (semantic) value of a relation, and the way in which the relation is presented. As an example, an Actor who performs a role in a stage production can be credited as 'with'; in this model, it is possible to represent the relation between the Actor and the Production with a RelationActorProduction of the Type 'Actor', while the Relation carries the name 'with'.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.