Release status: beta |
|
|---|---|
| Implementation | Parser function |
| Description | Access to Wikibase entities from wikis that are not linked to a Wikibase site. |
| Author(s) | (Samwilsontalk) |
| Latest version | 3.0.1 (2023-06-09) |
| Compatibility policy | Master maintains backward compatibility. |
| MediaWiki | >= 1.38 |
| Composer | samwilson/unlinked-wikibase |
| License | GNU General Public License 2.0 or later |
| Download | Download extension Git [?]: |
|
Parameters
|
|
|
Hooks used
|
|
| Quarterly downloads | 5 (Ranked 165th) |
| Translate the UnlinkedWikibase extension if it is available at translatewiki.net | |
| Vagrant role | unlinkedwikibase |
| Issues | Open tasks · Report a bug |
The UnlinkedWikibase extension provides access to Wikibase entities from wikis that are not linked to a Wikibase site. For example, a private wiki with a page about Goats could retrieve metadata from the Wikidata item goat (Q2934) and display it in an infobox.
Lua data-retrieval API
The extension integrates with Scribunto to provide two Lua data-retrieval functions: one to retrieve a single entity and another one to retrieve the results of a SPARQL query.
- mw.ext.UnlinkedWikibase.getEntity( id )
- Returns the entire entity object (as is seen at d:Special:EntityData/Q2934.json for the goat example). This is similar to Wikibase's own
mw.wikibase.getEntity( id ), which works for pages that do have sitelinks to an entity. - mw.ext.UnlinkedWikibase.query( sparql )
- Runs the given SPARQL query against the Wikidata Query Service and returns the result.
Linking pages to Wikibase entities
There is also a means to associate a wiki page with a Wikibase entity. This is done with the {{#unlinkedwikibase| id=Q2934 }} parser function, which stores the given ID as a page property for the page on which it's used. This ID can then be retrieved in the context of other pages via the mw.ext.UnlinkedWikibase.getLocalTitle( id ) method, which returns a Title object for the relevant page.
- Parser function
{{#unlinkedwikibase: id= }} - Set a page's Wikibase entity ID.
- Lua method
mw.ext.UnlinkedWikibase.getLocalTitle( id ) - Get a Title object for a page that uses
{{#unlinkedwikibase: id= }}.
Installation
- Download and place the file(s) in a directory called
UnlinkedWikibasein yourextensions/folder. - Add the following code at the bottom of your LocalSettings.php file:
wfLoadExtension( 'UnlinkedWikibase' );
Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
Upgrading
Breaking change: When upgrading from 2.0 to 3.0, note that mw.ext.UnlinkedWikibase.getEntity() has changed to return 1-index arrays rather than 0-indexed as previously. For example, the value of the first title (P1476) claim should be found with item.claims.P1476[1].mainsnak.datavalue.value.text rather than item.claims.P1476[0].mainsnak.datavalue.value.text.
Configuration
If you don't want to link to Wikidata, or to configure the SPARQL query result cache timeout (task T315868), in LocalSettings.php:
$wgUnlinkedWikibaseBaseUrl = 'https://xxx.wikibase.cloud/wiki/';
$wgUnlinkedWikibaseBaseQueryEndpoint = 'https://xxx.wikibase.cloud/query/sparql';
# Cache SPARQL results for half an hour (supported in master/1.39+, default 3600)
$wgUnlinkedWikibaseQueryTTL = 1800;