Wikibase

Wikibase is the software that runs Wikidata, but is also usable for other projects beyond that. Wikibase allows the collaborative editing of structured data on top of MediaWiki. It is optimized for graph-like, schema-poor data, not for tabular and strongly pre-structured data. If you want to give it a try, let us know - we would be curious and probably can help. Wikibase is an open source project, and everyone is welcome to join in development.

Features
Wikibase is an extension to MediaWiki, and relies on MediaWiki's features to provide all the functionalities of a wiki - but for structured data.

This includes: On top of that, Wikibase adds:
 * full histories of all previous versions of the knowledge base, including by whom the change was made
 * a web-based interface with a number of features for wiki gardening, user security and identity, etc.
 * a platform known to be scalable for millions of readers and tens of thousands of editors
 * world-class internationalization and localization into more than 200 languages
 * functionality to create and manage a knowledge base, including user-defined properties
 * mechanisms to access the knowledge base from other wikis and to update them on changes
 * a rich JavaScript-based UI
 * a data model that takes knowledge diversity and multi-lingual usage serious
 * exports of the data in a number of formats like JSON, RDF/XML, N3, and YAML

Installation
The easiest way to install Wikibase is to take a newly setup MediaWiki installation, and use Composer to install the Wikibase Repo and all its dependencies into the extensions folder of your MediaWiki install. (add an actual description)

Packages and code structure
Wikibase consists of a number of MediaWiki extensions and code libraries. The easiest way to install Wikibase is to take a newly setup MediaWiki installation, and use composer to install the Wikibase Repo and all its dependencies.

MediaWiki extensions

 * Wikibase Repository: main extension for the repository wiki, where the data is collected and maintained (used e.g. on Wikidata)
 * Wikibase Client: extension for a wiki to access and display the data from a repository (used e.g. in Wikipedia)
 * WikibaseLib: common code for the repo and client
 * WikibaseSolr: Solr-based search functionality (currently unmaintained and undeployed)
 * Wikibase Query: enables to create and save queries, as well as the maintenance and caching of query results

Wikibase code libraries
Those are pure PHP libraries and are expected to be also usable for other applications, like bots and scripts, dealing with Wikibase and Wikidata.
 * Wikibase DataModel: library implementing the Wikibase data model, including structures for statements, claims, references, etc.
 * Wikibase Database: Simple database abstraction layer bundled together with an implementation of it on top of MediaWiki's database abstraction layer.
 * Wikibase QueryEngine: Component containing query answering code for Ask queries against a collection of Wikibase entities.

Generic code packages

 * Diff: library to calculate the difference between two structures, so that the result can be applied to one in order to get to the other
 * Ask: library to represent queries in the Ask query language
 * DataValues: library to represent complex data values
 * ValueParsers: parsers to transform input into a value
 * ValueFormatters: formatters turning a value into a representation for further consumption
 * ValueValidators: validating values against constraints
 * DataTypes: bundles values, parsers, formatters, and validators together
 * Serialization: transforms an object into a structure consisting only of a number of primitive types, and back

Development
FIXME Document how to start as a wikibase developer

Similar projects
There are numerous other projects to support the collaborative editing of structured data.
 * Semantic MediaWiki: widely used family of MediaWiki extensions for enabling to managed structured data in a wiki together with its text.
 * Freebase: Google's project of an open knowledge graph.

Todo on this page

 * Getting started for people to set up the page, for users of Wikibase, and for developers to start developing and contributing
 * Contacts to the current community (IRC, mailing list, etc)
 * Tracking pages for code changes, bugs, for activity in general
 * News around the project
 * logo
 * check out the SMW website and see what to steal from there
 * Do not duplicate, but point and aggregate
 * Change README, INSTALL, etc. to markdown, and link to them on github from here directly as the installation
 * blockers for first release: (0.5?) ??? anything WIkimedia- or Wikidata-specific, release of the components (set up bugs for this and mark them as blockers for release)
 * blockers for 1.0: order, ranking, numbers, UI rewrite (set up bugs for this and mark them as blockers for release)