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'.

stagebrainz's People

Contributors

ruettet avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

brahimmade

stagebrainz's Issues

List core entities that have a similar name

  • so that they can either be merged
  • or that their difference can be made more explicit, e.g.
    -- by a clearly diverging disambiguation line
    -- by relating the two entities with a relation that explains their relationship (e.g. A is a festival by B, or explicitly a relationship "A B")

Define user levels

Perhaps something like this?

  • superusers: obvious
  • admins: add, delete, update, merge > for all entities
  • quality assurance: access to QA screens, add, update, merge > for core entities
  • editors: add, update > for core entities
  • contributors: add > for core entities

A merge functionality

A generic merge functionality to merge Entities, EntityTypes, Relations and RelationTypes.

Users can have collections

Collections of entities of the same model, e.g. a collection of productions
e.g. "Kunstenpunt collection of Flemish subsidized productions", "Kunstenpunt collection of Flemish/Dutch theatre text authors 2019", ...

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.