| valerio.bozzolan created this task. valerio.bozzolan added a project: MediaWiki-extensions-WikibaseRepository. Herald added a subscriber: Aklapper. Herald added a project: Wikidata. |
Prehamble
Knowing that the wbeditentity API module can be used to save a label/description, and that the add parameter can be used to don't overwrite an existing label/description, in the following way:
{
"labels": [
{
"language": "en",
"value": "English label that will be added without overwriting. It works!",
"add": "1"
}
]
}...and knowing that the same API module can be used also to create claims, in the following way:
{ "claims": { 'P123': [ some statements on this property ] } }Bug
When doing both the actions in the same request (creating claims and adding unexisting labels/descriptions), it seems to ignore the add parameter, and labels/descriptions are overwrited.
As an example, look at this diff:
You can note that labels/descriptions were overwrited. But this was the data (note the add parameters):
This data reproduces the problem:
{
"labels": [
{
"language": "en",
"value": "Milos Culafic",
"add": "1"
},
{
"language": "it",
"value": "Milos Culafic",
"add": "1"
}
],
"descriptions": [
{
"language": "en",
"value": "Montenegrin volleyball player",
"add": "1"
},
{
"language": "it",
"value": "pallavolista montenegrino",
"add": "1"
}
],
"claims": {
"P18": [
{
"type": "statement",
"rank": "normal",
"references": [
{
"snaks": {
"P248": [
{
"snaktype": "value",
"property": "P248",
"datatype": "wikibase-item",
"datavalue": {
"type": "wikibase-entityid",
"value": {
"entity-type": "item",
"numeric-id": 16571730,
"id": "Q16571730"
}
}
}
]
}
}
],
"mainsnak": {
"snaktype": "value",
"property": "P18",
"datatype": "commonsMedia",
"datavalue": {
"type": "string",
"value": "Milos Culafic (Legavolley 2017).jpg"
}
}
}
],
"P373": [
{
"type": "statement",
"rank": "normal",
"references": [
{
"snaks": {
"P248": [
{
"snaktype": "value",
"property": "P248",
"datatype": "wikibase-item",
"datavalue": {
"type": "wikibase-entityid",
"value": {
"entity-type": "item",
"numeric-id": 16571730,
"id": "Q16571730"
}
}
}
]
}
}
],
"mainsnak": {
"snaktype": "value",
"property": "P373",
"datatype": "string",
"datavalue": {
"type": "string",
"value": "Milos Culafic"
}
}
}
]
}
}As workaround I can don't rely on the add parameter and do some client-side decisions, comparing the existing labels/descriptions, and skipping the existings. I can also split in multiple request the labels/descriptions action versus the claims actions.
Cc: valerio.bozzolan, Aklapper, Lahi, Gq86, GoranSMilovanovic, QZanden, LawExplorer, Wikidata-bugs, aude, Mbch331
_______________________________________________ Wikidata-bugs mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs
