Extension talk:Wikibase Client

Jump to navigation Jump to search

About this board

Paucabot (talkcontribs)

Can someone explain me why the title of a wiki page is not automatically used for the label of the item when a wikipedia page is added in that language from the wikipedia? It is this way by default if you create an item, but not if you only add a link to a wikipedia page. Why is that behaviour of this Wikibase Client?

Thanks in advance.

Reply to "Automatic labels"

Extension not working on tr.wiktionary

2
HastaLaVi2 (talkcontribs)

On this module, there is a line "local URL = mw.wikibase.getEntityUrl(wikidataItem)", but it won't work the way it should like its english wiktionary version. When I remove "mw.wikibase" from if condition it says "wikibase is a nil value", why is that?

Lydia Pintscher (WMDE) (talkcontribs)

All Wiktionaries except English don't yet have arbitrary access enabled. You can file a ticket on phabricator.wikimedia.org to get it enabled.

Reply to "Extension not working on tr.wiktionary"

Need help with installing to Mediawiki 1.31

5
Zzmonty (talkcontribs)

Can somebody please post what exactly you put into your LocalSettings.php for a client only install of this extension to access wikidata.org? Thanks.

Thiemo Kreuz (WMDE) (talkcontribs)
Zzmonty (talkcontribs)

Tried that and nothing works. I also looked at the advanced installation, and tried to copy those items and it did not work. If you got this to work with a 1.31 mediawiki, and the client only part of this extension, if you could just look at your LocalSettings.php file and just copy everything that you have in that file related to this extension it would be much appreciated. Maybe another extension I have installed is conflicting with this extension. i don't know. I just know that i followed the instructions a couple of times, and I could not get this extension to even load.

The only other item is that I don't have composure, so I was trying to manually install the extension. Did I miss some dependency either with a third party application or else another extension?

Thiemo Kreuz (WMDE) (talkcontribs)

Please describe what "did not work" means. What error message do you get on which page in which namespace?

Having the libraries Wikibase depends on installed via Composer is a must. I'm not aware of a way to do this "manually".

Zzmonty (talkcontribs)

Then that is where the problem is, because I did not use composer.

Reply to "Need help with installing to Mediawiki 1.31"

Cannot access the database after upgrade to MediaWiki 1.31.0

9
Till Kraemer (talkcontribs)

Hi, I just upgraded to MediaWiki 1.31.0. My repo works fine, however, when I try to load an article on the client wiki, I get the following error:

Sorry! This site is experiencing technical difficulties.

Try waiting a few minutes and reloading.

(Cannot access the database)

Backtrace:

#0 /path/to/mywikis/pool/w/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1134): Wikimedia\Rdbms\Database->reportConnectionError('Unknown databas...')
#1 /path/to/mywikis/pool/w/includes/libs/rdbms/loadbalancer/LoadBalancer.php(749): Wikimedia\Rdbms\LoadBalancer->reportConnectionError()
#2 /path/to/mywikis/pool/w/includes/dao/DBAccessBase.php(64): Wikimedia\Rdbms\LoadBalancer->getConnection(0, Array, 'repo')
#3 /path/to/mywikis/pool/w/extensions/Wikibase/lib/includes/Store/Sql/SiteLinkTable.php(221): DBAccessBase->getConnection(-1)
#4 /path/to/mywikis/pool/w/extensions/Wikibase/lib/includes/Store/CachingSiteLinkLookup.php(147): Wikibase\Lib\Store\Sql\SiteLinkTable->getItemIdForLink('poolwiki', 'Main Page')
#5 /path/to/mywikis/pool/w/extensions/Wikibase/lib/includes/Store/CachingSiteLinkLookup.php(75): Wikibase\Lib\Store\CachingSiteLinkLookup->getAndCacheItemIdForLink('poolwiki', 'Main Page')
#6 /path/to/mywikis/pool/w/extensions/Wikibase/client/includes/LangLinkHandler.php(101): Wikibase\Lib\Store\CachingSiteLinkLookup->getItemIdForLink('poolwiki', 'Main Page')
#7 /path/to/mywikis/pool/w/extensions/Wikibase/client/includes/LangLinkHandler.php(331): Wikibase\Client\LangLinkHandler->getEntityLinks(Object(Title))
#8 /path/to/mywikis/pool/w/extensions/Wikibase/client/includes/LangLinkHandler.php(352): Wikibase\Client\LangLinkHandler->getEffectiveRepoLinks(Object(Title), Object(ParserOutput))
#9 /path/to/mywikis/pool/w/extensions/Wikibase/client/includes/Hooks/ParserOutputUpdateHookHandlers.php(97): Wikibase\Client\LangLinkHandler->addLinksFromRepository(Object(Title), Object(ParserOutput))
#10 /path/to/mywikis/pool/w/extensions/Wikibase/client/includes/Hooks/ParserOutputUpdateHookHandlers.php(65): Wikibase\Client\Hooks\ParserOutputUpdateHookHandlers->doContentAlterParserOutput(Object(Title), Object(ParserOutput))
#11 /path/to/mywikis/pool/w/includes/Hooks.php(177): Wikibase\Client\Hooks\ParserOutputUpdateHookHandlers::onContentAlterParserOutput(Object(WikitextContent), Object(Title), Object(ParserOutput))
#12 /path/to/mywikis/pool/w/includes/Hooks.php(205): Hooks::callHook('ContentAlterPar...', Array, Array, NULL)
#13 /path/to/mywikis/pool/w/includes/content/AbstractContent.php(520): Hooks::run('ContentAlterPar...', Array)
#14 /path/to/mywikis/pool/w/includes/poolcounter/PoolWorkArticleView.php(144): AbstractContent->getParserOutput(Object(Title), 7803, Object(ParserOptions))
#15 /path/to/mywikis/pool/w/includes/poolcounter/PoolCounterWork.php(123): PoolWorkArticleView->doWork()
#16 /path/to/mywikis/pool/w/includes/page/Article.php(604): PoolCounterWork->execute()
#17 /path/to/mywikis/pool/w/includes/actions/ViewAction.php(68): Article->view()
#18 /path/to/mywikis/pool/w/includes/MediaWiki.php(500): ViewAction->show()
#19 /path/to/mywikis/pool/w/includes/MediaWiki.php(294): MediaWiki->performAction(Object(Article), Object(Title))
#20 /path/to/mywikis/pool/w/includes/MediaWiki.php(861): MediaWiki->performRequest()
#21 /path/to/mywikis/pool/w/includes/MediaWiki.php(524): MediaWiki->main()
#22 /path/to/mywikis/pool/w/index.php(42): MediaWiki->run()
#23 {main}

The local database can be accessed perfectly, special pages like recent changes or user contributions show up properly, but somehow the repo database can't be accessed anymore :/

Any ideas are more than appreciated! Thanks and cheers!

Thiemo Kreuz (WMDE) (talkcontribs)

Did you made sure to run the update.php maintenance script on both the repo and the client database?

Till Kraemer (talkcontribs)

Hi @Thiemo Kreuz (WMDE), thanks for your reply! Yeah, I ran the update script and I just did it again, just to make sure. Same error :/ With older MediaWiki versions I used the Wikidata extension bundle, but it seems to be discontinued. This time, I installed Wikibase using Composer as suggested.

I just noticed that Wikipedia uses WikimediaBadges and WikibaseLexeme, so I wanted to install them too, just in case. Wasn't able to install WikibaseLexeme on the client wiki though. Showed me a blank page.

The LocalSettings.php on the client wiki looks like this:

# Wikibase Extension
$wgEnableWikibaseRepo = false;
$wgEnableWikibaseClient = true;
#$wmgUseWikibaseRepo = false;
#$wmgUseWikibaseClient = true;
#require_once __DIR__ . "/extensions/Wikidata/Wikidata.php";
#require_once __DIR__ . "/extensions/Wikidata/extensions/Wikibase/repo/ExampleSettings.php";
require_once "$IP/extensions/Wikibase/client/WikibaseClient.php";
require_once "$IP/extensions/Wikibase/client/ExampleSettings.php";
#require_once "$IP/extensions/Wikibase/repo/Wikibase.php";
#require_once "$IP/extensions/Wikibase/repo/ExampleSettings.php";

# Settings
$wgWBClientSettings['repoUrl'] = 'https://data.mywiki.com';
$wgWBClientSettings['repoScriptPath'] = '/w';
$wgWBClientSettings['repoArticlePath'] = '/wiki/$1';
$wgWBClientSettings['siteGlobalID'] = 'enwiki';
$wgWBClientSettings['repoDatabase'] = 'datawiki';
$wgWBClientSettings['changesDatabase'] = 'datawiki';
#$wgWBClientSettings['siteLinkGroups'] = 'mywiki';
$wgWBClientSettings['repoSiteId'] = 'datawiki';
$wgWBClientSettings['repoSiteName'] = 'MyWiki';
$wgWBClientSettings['siteLinkGroup'] = 'mywiki';

# Optional
#$wgWBClientSettings['repoNamespaces'] = array(
#	'wikibase-item' => 'Item', //leave empty if items are in the main namespace
#	'wikibase-property' => 'Property'
#);
$wgWBClientSettings['siteGroup'] = 'mywiki'; //you probably don't need this one, but do if your siteGroup is different from 'wikipedia'

# WikimediaBadges Extension
wfLoadExtension( 'WikimediaBadges' );

# WikibaseLexeme Extension
#wfLoadExtension( 'WikibaseLexeme' );

I also noticed that on Wikidata the client is also activated. Did that for my repo too, left $wgEnableWikibaseClient = false; untouched though.

The LocalSettings.php on the repo looks like this:

# Wikibase Extension
$wgEnableWikibaseRepo = true;
$wgEnableWikibaseClient = false;
#$wmgUseWikibaseRepo = true;
#$wmgUseWikibaseClient = false;
#require_once __DIR__ . "/extensions/Wikidata/Wikidata.php";
#require_once __DIR__ . "/extensions/Wikidata/extensions/Wikibase/repo/ExampleSettings.php";
require_once "$IP/extensions/Wikibase/repo/Wikibase.php";
require_once "$IP/extensions/Wikibase/repo/ExampleSettings.php";
require_once "$IP/extensions/Wikibase/client/WikibaseClient.php";
require_once "$IP/extensions/Wikibase/client/ExampleSettings.php";

$baseNs = 100;

// Define the namespace indexes
define( 'WB_NS_PROPERTY', $baseNs + 2 );
define( 'WB_NS_PROPERTY_TALK', $baseNs + 3 );
 
// Define the namespaces
$wgExtraNamespaces[WB_NS_PROPERTY] = 'Property';
$wgExtraNamespaces[WB_NS_PROPERTY_TALK] = 'Property_talk';
 
// Assigning the correct content models to the namespaces
#$wgWBRepoSettings['entityNamespaces'][CONTENT_MODEL_WIKIBASE_ITEM] = NS_MAIN; 
$wgWBRepoSettings['entityNamespaces']['item'] = NS_MAIN;

#$wgWBRepoSettings['entityNamespaces'][CONTENT_MODEL_WIKIBASE_PROPERTY] = WB_NS_PROPERTY;
$wgWBRepoSettings['entityNamespaces']['property'] = WB_NS_PROPERTY;

define( 'WB_NS_QUERY', $baseNs + 4 );
define( 'WB_NS_QUERY_TALK', $baseNs + 5 );
 
$wgExtraNamespaces[WB_NS_QUERY] = 'Query';
$wgExtraNamespaces[WB_NS_QUERY_TALK] = 'Query_talk';
 
#$wgWBRepoSettings['entityNamespaces']['CONTENT_MODEL_WIKIBASE_QUERY'] = WB_NS_QUERY;
$wgWBRepoSettings['entityNamespaces'][CONTENT_MODEL_WIKIBASE_QUERY] = WB_NS_QUERY;

$wgWBRepoSettings['changesDatabase'] = 'datawiki';
$wgWBRepoSettings['conceptBaseUri'] = 'https://data.mywiki.com/wiki/';

$wgWBRepoSettings['localClientDatabases'] = array( 'bgwiki', 'bnwiki', 'cswiki', 'dewiki', 'enwiki', 'eswiki', 'frwiki', 'huwiki', 'hywiki', 'itwiki', 'kawiki', 'nlwiki', 'plwiki', 'poolwiki', 'ptwiki', 'pt_brwiki', 'ruwiki', 'srwiki', 'svwiki', 'trwiki' );

# WikimediaBadges Extension
wfLoadExtension( 'WikimediaBadges' );

# WikibaseLexeme Extension
wfLoadExtension( 'WikibaseLexeme' );

I don't really know what to do right now :/ Any help is more than welcome. Thanks and cheers!

Thiemo Kreuz (WMDE) (talkcontribs)
  • Please check if the MediaWiki and Wikibase versions you are using match.
  • WikimediaBadges and WikibaseLexeme are optional. If you are not sure, you probably don't need them.
  • The client's configuration format changed. Even if there is backwards-compatibility code in place, it might have failed for you for some reason. What you can try is to add the new format $wgWBClientSettings['repositories'] = …; either in addition or replacing the old $wgWBClientSettings['repoDatabase']. See WikibaseClient.example.php for an example.
Till Kraemer (talkcontribs)

Hi @Thiemo Kreuz (WMDE), thanks for your suggestions!

I just checked the versions again. I'm running MediaWiki 1.31.0 on the clients and on the repo and the Wikibase version file looks like this:

Wikibase: REL1_31
2018-04-17T22:37:46
8178d16

I added $wgWBClientSettings['repositories'] = 'datawiki'; to LocalSettings.php, but when I run the update script, the following error appears:

[abc123567] [no req]   TypeError from line 117 of /path/to/mywikis/en/w/extensions/Wikibase/lib/includes/WikibaseSettings.php: Argument 1 passed to Wikibase\WikibaseSettings::getEntityNamespacesFromRepositorySettings() must be of the type array, string given, called in /path/to/mywikis/en/w/extensions/Wikibase/lib/includes/WikibaseSettings.php on line 111
Backtrace:
#0 /path/to/mywikis/en/w/extensions/Wikibase/lib/includes/WikibaseSettings.php(111): Wikibase\WikibaseSettings::getEntityNamespacesFromRepositorySettings(string)
#1 /path/to/mywikis/en/w/extensions/Wikibase/lib/includes/WikibaseSettings.php(69): Wikibase\WikibaseSettings::buildEntityNamespaceConfigurations(Wikibase\SettingsArray)
#2 /path/to/mywikis/en/w/extensions/Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php(43): Wikibase\WikibaseSettings::getClientSettings()
#3 /path/to/mywikis/en/w/extensions/Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php(65): Wikibase\Client\Hooks\EchoSetupHookHandlers::newFromGlobalState()
#4 /path/to/mywikis/en/w/includes/Hooks.php(177): Wikibase\Client\Hooks\EchoSetupHookHandlers::onBeforeCreateEchoEvent(array, array, array)
#5 /path/to/mywikis/en/w/includes/Hooks.php(205): Hooks::callHook(string, array, array, NULL)
#6 /path/to/mywikis/en/w/extensions/Echo/includes/EchoHooks.php(48): Hooks::run(string, array)
#7 /path/to/mywikis/en/w/includes/Setup.php(940): EchoHooks::initEchoExtension()
#8 /path/to/mywikis/en/w/maintenance/doMaintenance.php(81): require_once(string)
#9 /path/to/mywikis/en/w/maintenance/update.php(245): require_once(string)
#10 {main}

This also happens when I remove $wgWBClientSettings['repoDatabase'] = 'datawiki';. I'm running PHP 7.0.8. Should I upgrade to 7.0.28?

Thanks and cheers!

Thiemo Kreuz (WMDE) (talkcontribs)

The repositories setting is an array, as shown in the example. The empty array key '' might look confusing. This identifies the default repository, which is what you need. All you need to do is to fill in the values for repoDatabase and baseUri, I believe.

Till Kraemer (talkcontribs)

Hi @Thiemo Kreuz (WMDE), thanks for your help!

For some reason, just adding repoDatabase and baseUri doesn't work for me. If I add this to LocalSettings.php...

$wgWBClientSettings['repositories'] = [
			'repoDatabase' => 'datawiki',
			'baseUri' => 'https://data.mywiki.com/entity',
	];

...I get the following error:

[abc1234567] [no req]   TypeError from line 120 of /path/to/mywikis/en/w/extensions/Wikibase/lib/includes/WikibaseSettings.php: Argument 2 passed to Wikibase\WikibaseSettings::Wikibase\{closure}() must be of the type array, string given
Backtrace:
#0 [internal function]: Wikibase\WikibaseSettings::Wikibase\{closure}(array, string)
#1 /path/to/mywikis/en/w/extensions/Wikibase/lib/includes/WikibaseSettings.php(123): array_reduce(array, Closure, array)
#2 /path/to/mywikis/en/w/extensions/Wikibase/lib/includes/WikibaseSettings.php(111): Wikibase\WikibaseSettings::getEntityNamespacesFromRepositorySettings(array)
#3 /path/to/mywikis/en/w/extensions/Wikibase/lib/includes/WikibaseSettings.php(69): Wikibase\WikibaseSettings::buildEntityNamespaceConfigurations(Wikibase\SettingsArray)
#4 /path/to/mywikis/en/w/extensions/Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php(43): Wikibase\WikibaseSettings::getClientSettings()
#5 /path/to/mywikis/en/w/extensions/Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php(65): Wikibase\Client\Hooks\EchoSetupHookHandlers::newFromGlobalState()
#6 /path/to/mywikis/en/w/includes/Hooks.php(177): Wikibase\Client\Hooks\EchoSetupHookHandlers::onBeforeCreateEchoEvent(array, array, array)
#7 /path/to/mywikis/en/w/includes/Hooks.php(205): Hooks::callHook(string, array, array, NULL)
#8 /path/to/mywikis/en/w/extensions/Echo/includes/EchoHooks.php(48): Hooks::run(string, array)
#9 /path/to/mywikis/en/w/includes/Setup.php(940): EchoHooks::initEchoExtension()
#10 /path/to/mywikis/en/w/maintenance/doMaintenance.php(81): require_once(string)
#11 /path/to/mywikis/en/w/maintenance/update.php(245): require_once(string)
#12 {main}

So I added the whole block:

$wgWBClientSettings['repositories'] = [
		'' => [
			'repoDatabase' => 'datawiki',
			'baseUri' => 'https://data.mywiki.com/entity',
			'entityNamespaces' => [
				'item' => WB_REPO_NS_ITEM,
				'property' => WB_REPO_NS_PROPERTY
			],
			'prefixMapping' => [ '' => '' ],
		]
	];

I was now able to run the update script successfully and the item ID links (like https://data.mywiki.com/wiki/Special:EntityPage/Q1234567) show up on the client wiki. However, the interwiki links don't appear on the client wiki and I have the following error in my log file:

PHP Warning:  Wikibase\Client\LangLinkHandler::getEntityLinks: Could not load item Q1234567 for XYZ [Called from Wiki
base\Client\LangLinkHandler::getEntityLinks in /path/to/mywikis/en/w/extensions/Wikibase/client/includes/LangLinkHandler.php at line 116] in /path/to/mywikis/en/w/includes/debug/MWDebug.php on line 309
PHP message: PHP Warning:  According to a SiteLinkLookup Q1234567 is linked to enwiki while it is not or it does not exist. [Called from Wikibase\Client\ParserOutput\ClientParserOutputDataUpdater::setBadgesProperty in /path/to/mywikis/en/w/extensions/Wikibase/client/includes/ParserOutput/ClientParserOutputDa
taUpdater.php at line 139] in /path/to/mywikis/en/w/includes/debug/MWDebug.php on line 309" while reading response header from upstream, client: 1.2.3.4, server: en.mywiki.com, request: "GET /wiki/XYZ HTTP/1.1
", upstream: "fastcgi://1.2.3.4:1234", host: "en.mywiki.com", referrer: "https://en.mywiki.com/wiki/XYZ"

Not sure what I'm missing here :/

Thanks and cheers!

Thiemo Kreuz (WMDE) (talkcontribs)

Oh, I have never seen this message before. It sounds like a secondary database table got out of sync. I'm afraid I need to hand over to the core Wikidata team. Maybe Leszek can help?

PS: I just realized your item namespace is NS_MAIN, not WB_REPO_NS_ITEM. You need to fix this in the configuration you just added.

Till Kraemer (talkcontribs)

Hi @Thiemo Kreuz (WMDE), I changed WB_REPO_NS_ITEM to NS_MAIN in LocalSettings.php as you suggested and woohoo, it works perfectly now! :) Thank you so much for your help! I'm soo happy now! :) Long live Wikibase and Thiemo Kreuz! :)

Cheers!

Reply to "Cannot access the database after upgrade to MediaWiki 1.31.0"

Template displaying {{#statements:Pxxx}}

3
OlePedia (talkcontribs)
Lydia Pintscher (WMDE) (talkcontribs)

At this point Wikibase requires more up-to-date code than MediaWiki 1.28.2. Have you tried installing the latest code from git?

OlePedia (talkcontribs)

Lydia,

I have now tried ver. 1.29.0 and 1.30.0-alpha (from Git) with the same result.

Reply to "Template displaying {{#statements:Pxxx}}"

about<nowiki>{{#property:P856}}</nowiki>

3
Summary by Thiemo Kreuz (WMDE)
Cwek (talkcontribs)

I put this into the article on zh.wp. And I found that it outputs a incomplete code-block of Language Converter.

like w:zh:新浪微博 , it outputed that 'http://www.weibo.com">http://www.weibo.com;zh-hans:http://www.weibo.com;zh-hant:http://www.weibo.com;zh-cn:http://www.weibo.com;zh-hk:http://www.weibo.com;zh-mo:http://www.weibo.com;zh-sg:http://www.weibo.com;zh-tw:http://www.weibo.com;}-'

But I use Special:ExpandTemplates to parse it, it's output is clean, just 'http://www.weibo.com'.

meta:Tech/News/2016/41has a news about 'Language converter syntax will soon no longer work inside external links.' , Is it about this problem? And I can't find the function of {{#property:}} in the source code of Wikibase, so I want to know whether it have a i18n Mediawiki-namespace page to control it ,or a hard code to format the output of URL with Language Converter?

Tacsipacsi (talkcontribs)

I suggest you to report it on Phabricator, the bug tracker of Wikimedia, as I’m not sure if any developer is watching this page, and there you can tag both Wikidata and Language Converter so that developers of both products will notice it. Wikidata bugs can be reported here (you can easily create a Phabricator account with your existing Wikimedia account).

Cwek (talkcontribs)

Thanks, I will.

ערן (talkcontribs)

@Tobias Gritschacher (WMDE) , thank you for improving the documentation and moving advanced details into their own page. However, I think the last changes in this page is hiding important basic information that should appear here. For example: how to use #property is now located in Wikibase/Installation/Advanced configuration. Also, the last changes break the " parser functions" link in the intro. Can you please fix it? Thanks

Reply to "Split"

Error installing Extension:Wikibase

3
Benet tallaferro (talkcontribs)

Hi Everybody,

in advance, thankyou for reading me.

I want to install the extension: wikibase, since I need it in order to use Template:Infobox person .

I copy the extension folder into wiki/extension/ folder, and I copy the following lines to the LocalSettings.php file, as it is recommended in the installation guide.

$wgEnableWikibaseRepo = false;

$wgEnableWikibaseClient = true;

require_once "$IP/extensions/Wikibase/client/WikibaseClient.php";

require_once "$IP/extensions/Wikibase/client/ExampleSettings.php";

And still I am getting the error message: Sorry, we have problems. Cannot acces the database.

What can I do?

Thankyou for your attention,

Jordi

TMg (talkcontribs)

What exactly do you want to achieve? I assume you copied the code of en:Template:Infobox person to a local MediaWiki installation you own? Is this correct? Do you want to use data from wikidata.org in this template, or from your own Wikibase Repo? Note that the Wikibase Client software currently needs direct database access to the Repo. Both must run on the same server because of this.

Tacsipacsi (talkcontribs)

If you have database problems, it probably means that you haven’t run update.php.

Reply to "Error installing Extension:Wikibase"

Javascript: wikibase is not defined

2
Samwilson (talkcontribs)

After enabling the Wikibase client, I was hoping to be able to use the <code>wikibase.client</code> javascript resources, but it seems they're not being loaded: <code>wikibase is not defined</code>

Can anyone tell me where I've gone wrong? I've tried to follow all the installation instructions.

Tacsipacsi (talkcontribs)

Have you used mw.loader.using('wikibase.client.X', ...)? Otherwise it will be loaded only if used by another module.

Reply to "Javascript: wikibase is not defined"
Till Kraemer (talkcontribs)

Hi, after upgrading to MediaWiki 1.28.0, I'm getting the following error when I use {{#property:P1|from=Q3}} in an article:

Failed to render property P1: Property not found for label 'P1' and language 'en'

Property P1 used to show an URL (official website) and is still available in the data repository.

Client's LocalSettings.php:

$wgEnableWikibaseRepo = false;
$wgEnableWikibaseClient = true;
$wmgUseWikibaseRepo = false;
$wmgUseWikibaseClient = true;
require_once __DIR__ . "/extensions/Wikidata/Wikidata.php";

$GLOBALS['wgWBClientSettings']['siteGlobalID'] = "enwiki";

$wgWBClientSettings['repoUrl'] = 'https://data.domain.com';
$wgWBClientSettings['repoScriptPath'] = '/w';
$wgWBClientSettings['repoArticlePath'] = '/wiki/$1';
$wgWBClientSettings['siteGlobalID'] = 'enwiki';
$wgWBClientSettings['repoDatabase'] = 'datawiki';
$wgWBClientSettings['changesDatabase'] = 'datawiki';
$wgWBClientSettings['repoSiteId'] = 'datawiki';
$wgWBClientSettings['repoSiteName'] = 'Myprojectname';
$wgWBClientSettings['siteLinkGroup'] = 'myprojectname';
$wgWBClientSettings['siteGroup'] = 'myprojectname';
$wgWBClientSettings['sort'] = 'code';

Repository's LocalSettings.php:

$wgEnableWikibaseRepo = true;
$wgEnableWikibaseClient = false;
$wmgUseWikibaseRepo = true;
$wmgUseWikibaseClient = false;
require_once __DIR__ . "/extensions/Wikidata/Wikidata.php";
require_once __DIR__ . "/extensions/Wikidata/extensions/Wikibase/repo/ExampleSettings.php";

$baseNs = 100;
define( 'WB_NS_PROPERTY', $baseNs + 2 );
define( 'WB_NS_PROPERTY_TALK', $baseNs + 3 );
$wgExtraNamespaces[WB_NS_PROPERTY] = 'Property';
$wgExtraNamespaces[WB_NS_PROPERTY_TALK] = 'Property_talk';
$wgWBRepoSettings['entityNamespaces'][CONTENT_MODEL_WIKIBASE_ITEM] = NS_MAIN; 
$wgWBRepoSettings['entityNamespaces'][CONTENT_MODEL_WIKIBASE_PROPERTY] = WB_NS_PROPERTY;
define( 'WB_NS_QUERY', $baseNs + 4 );
define( 'WB_NS_QUERY_TALK', $baseNs + 5 );
$wgExtraNamespaces[WB_NS_QUERY] = 'Query';
$wgExtraNamespaces[WB_NS_QUERY_TALK] = 'Query_talk';
$wgWBRepoSettings['entityNamespaces'][CONTENT_MODEL_WIKIBASE_QUERY] = WB_NS_QUERY;
$wgWBRepoSettings['changesDatabase'] = 'datawiki';
$wgWBRepoSettings['conceptBaseUri'] = 'https://data.domain.com/wiki/';
$wgWBRepoSettings['localClientDatabases'] = array( 'dewiki', 'enwiki' );

I also tried to use wfLoadExtension( 'Wikidata' ); in the LocalSettings.php files, but that didn't work at all.

Logfile:

[...]

[Wikibase\SettingsArray] getSetting: setting thisWikiIsTheRepo was given as a closure, resolve it to false
[Wikibase\SettingsArray] getSetting: setting repoNamespaces was given as a closure, resolve it to array (
'item' => '',
'property' => 'Property',
)
Fully initialised

[...]

[Wikibase\SettingsArray] getSetting: setting entityNamespaces was given as a closure, resolve it to array (
'item' => 0,
'property' => 120,
)
Unstubbing $wgLang on call of $wgLang::getCode from Wikibase\Client\WikibaseClient::getDefaultValueFormatterBuilders

[...]

[Wikibase\SettingsArray] getSetting: setting repoConceptBaseUri was given as a closure, resolve it to 'https://data.domain.com/entity/'
[Wikibase\Lib\Store\WikiPageEntityRevisionLookup] getEntityRevision: Looking up entity Q3 (revision 0).
[DBConnection] LoadBalancer::openForeignConnection: opened new connection for 0/datawiki
[DBConnection] LoadBalancer::reuseConnection: freed connection 0/datawiki
[Wikibase\Lib\Store\WikiPageEntityRevisionLookup] loadEntityBlob: Calling getRevisionText() on revision 16630
[DBConnection] LoadBalancer::openForeignConnection: reusing free connection 0/datawiki
[DBConnection] LoadBalancer::reuseConnection: freed connection 0/datawiki

[...]

I don't really understand the https://data.domain.com/entity/ part, since the URL of an item actually looks like this: https://data.domain.com/wiki/Q3 ...and a property looks like this: https://data.domain.com/wiki/Property:P1.

Any help is more than welcome! Thanks and cheers!

Thiemo Kreuz (WMDE) (talkcontribs)

I'm afraid there is not enough information to fully understand the problem. If it worked before but stopped working after an update it must be something we updated in the code base, but you did not updated in your configuration. Please have a look at the example configuration in Wikibase.example.php. The entityNamespaces setting changed a bit. I also wonder if you checked your Q3 item. Are you sure it contains a statement for the property P1?

Till Kraemer (talkcontribs)

@Thiemo Mättig (WMDE), thanks for your help!

In Wikibase.example.php, I set $wgWBRepoSettings['siteLinkGroups'] = [ 'myprojectname' ]; and $wgWBRepoSettings['specialSiteLinkGroups'] = [ 'pool', 'data' ]; like I used to do.

I now changed $wgWBRepoSettings['entityNamespaces'][CONTENT_MODEL_WIKIBASE_ITEM] = NS_MAIN; to $wgWBRepoSettings['entityNamespaces']['item'] = NS_MAIN; and $wgWBRepoSettings['entityNamespaces'][CONTENT_MODEL_WIKIBASE_PROPERTY] = WB_NS_PROPERTY; to $wgWBRepoSettings['entityNamespaces']['property'] = WB_NS_PROPERTY; in LocalSettings.php, since it looks to me like this is the current way to do this (by the way, should this be updated here or is it still up-to-date?).

I'm still getting the old "Property not found" error though. P1 is actually still in the statements section of Q3. It used to work before, but I checked it anyway like a million times :) Cheers!

Reply to "Property not found"