Semantic MediaWiki vs Wikibase vs Cargo


Last updated on 2024-12-11. Written by Jeroen De Dauw


What software do you need to manage data/knowledge in your wiki? Historically this was Semantic MediaWiki. Is that still the case, and how do the alternatives stack up?

Overview

In this article, we look at the features provided by Semantic MediaWiki (SMW), Wikibase and Cargo. At the end of the article we share our thoughts on when to use which software.

No one has our level of expertise when it comes to both SMW and Wikibase. We have been significantly involved in the development of both and helped many of our customers with SMW, and some with Wikibase. We cannot say the same for Cargo, as we have not used it ourselves or gotten requests from customers yet.

The software solutions covered in this post are not standing still. If you come across something that you think is out of date, missing or otherwise inaccurate, tweet to @ProWikis.

Ecosystem

Semantic MediaWiki Wikibase Cargo
Public wikis ~2000 ~200 ~200
Private wikis 100s or 1000s ~10 ?
Developed for Data management Wikidata.org Data management
Primary users Organizations Wikidata.org Organizations
Complementary extensions 28 to 50+ ~8 2
Dedicated mailing list
Dedicated conference SMWCon Track at WikidataCon
Commercial support Dozens of companies A few companies A few companies
Available since 2005 2012 2015
Main developer Community Wikimedia DE Community

Editing experience

Semantic MediaWiki Wikibase Cargo
Visual editing
Autocompletion
Programmable editing UI Forms Forms
Define data where it used
Source editing

Data access

Semantic MediaWiki Wikibase Cargo
Inline queries
Inline query language SMW specific - Based on SQL
Visualizations 60+ inline External only ~25 inline
SPARQL queries
Web API
Lua API
Simple DB tables
RDF export
Granular access controls

Data model and storage

Semantic MediaWiki Wikibase Cargo
Data location Flexible Dedicated pages Flexible
Data model Flexible Complex and fixed Flexible
Data constraints Maybe via tools
Multiple items per page
Computed values
In-text data
Data types 18 17 18
Multilingual data Second class
Optional
First class
Required
?
Primary storage Wiki pages Wiki pages (JSON) Wiki pages
Primary indexing MW DB (MySQL) MW DB (MySQL) MW DB (MySQL)

Development

Semantic MediaWiki Wikibase Cargo
Main developer Community Wikimedia DE Community
Developed for Data management Wikidata.org Data management
Stable releases
Release notes
Docker releases
Available since 2005 2012 2015
Developed on GitHub (SMW org) Wikimedia Gerrit Wikimedia Gerrit
Contributors ~200 developers ~250 developers ~75 developers
Code changes 15k+ 35k+ ~1300
Fully open source

When to use Wikibase

Wikibase serves a different usecase than Semantic MediaWiki and Cargo. You might have noticed it is the odd one out in the above comparison. This is because unlike SMW and Cargo, Wikibase was not developed for displaying and using data within the wiki itself. It was developed for collaborative creation and maintenance of a knowledge base containing data that can be used on Wikipedia and by third parties.

This makes it great for organizations that curate data for third party consumption. For instance, museums and other GLAM institutions. If on the other hand, like is done in most structured wikis, you want to present the data in your wiki itself, then Wikibase is likely the wrong tool for you.

There are several potential gotchas to be aware of before starting with Wikibase:

  • Wikibase is developed by Wikimedia for Wikidata. Wikidata will always be the priority.
  • Much of the functionality that you see on Wikidata is not available in Wikibase. It comes from additional tools that are not part of the core Wikibase software. Some of those tools can be installed on your Wikibase instance at the cost of additional operational complexity, while others are Wikidata specific.
  • There are no integrated domain-centric editing UIs. Most users of Wikibase are not running a generic knowledge base like Wikidata. Instead, they are running a domain-specific knowledge base, describing one or several types of domain entities. For these cases, it is nice to have an editing UI that guides the users, indicating what is required and what the domain constraints are. Such an editing experience is not yet available in Wikibase.

We are the leading provider of commercial Wikibase services with an unmatched track-record and expertise. Use our Wikibase development services, Wikibase hosting, or check out our Wikibase website for more professional Wikibase services.

Strengths Weaknesses
  • Visual editing of structured data
  • Complex data model
  • Flexible schemaless data model
  • Graph queries (SPARQL)
  • Increasing adoption
  • Difficult to install and maintain
  • Complex data model
  • No domain-centric editing UIs
  • No support for embedded queries

When to use Semantic MediaWiki

Semantic MediaWiki is the standard software for managing data in wikis. It has been continuously developed since 2005 and has by far the biggest ecosystem and most features. There are several enterprise MediaWiki hosting companies, and they all use a Semantic MediaWiki based stack.

We believe Semantic MediaWiki is the right choice for most wikis and suggest it to be your default pick.

Use our Semantic MediaWiki development services, Semantic MediaWiki hosting or contact us for help or advice.

Strengths Weaknesses
  • Inline queries and visualizations
  • Flexible data model
  • Biggest ecosystem
  • Page Forms integration
  • Graph queries via wikitext
  • Steep learning curve for admins
  • Feature bloat
  • Occasional poor interface messages

When to use Cargo

Cargo was created as an alternative to Semantic MediaWiki. The main motivation was to provide simpler software, both in terms of use and in terms of codebase. After review of its codebase, we conclude it at least partially fails at the latter, due to poor software design.

Cargo ties data storage directly to templates and stores the data in database tables based on those templates. This allows querying data via SQL snippets rather than SMWs dedicated query language.

If you want to run SQL queries against the structured data stored in your wiki, either from within the wiki, or from another application, then look into Cargo. If you are fine with its smaller feature set, reduced flexibility and smaller ecosystem, then it might be the right choice for you.

Strengths Weaknesses
  • Simple data model
  • SQL queries
  • Direct support for visualizations
  • Page Forms integration
  • Easiest to install
  • Less flexible data model
  • Small ecosystem
  • Low code quality

Semantic Wikibase

We want to develop a connection between Wikibase and Semantic MediaWiki and are looking for funding.

September 2020 update: A first version of Semantic Wikibase is now available.