Rejecting user synonym for 札 (purple vocab)

My brain has always had a problem retaining this kanji’s meaning as a standalone word, so I decided to just add the word “note” into purple-札’s User Synonyms, even if it’s not factually correct, so that I can worry about absorbing its meaning at a much later time in my life in which I’ll encounter it within a context that’s outside of Wanikani, and I’d be more likely to mnemonically associate its proper meaning with an actual experience.

However, it’s still rejecting it as incorrect whenever I type in the word “note”.

1 Like

The word “note” might be on a blocklist so the user synonym is not accepted as a correct answer.

3 Likes

I wonder if there is an easy way to confirm this on mobile, without API access? Like https://www.wanikani.com/vocabulary/札.json

Naturally, since there is ~札, your notion is almost certainly on the block list.

1 Like

Perhaps instead of using “note” you could try another user synonym. Maybe you can “tag” it with a word like “tag” so you can come back to it later? Oh wait…

2 Likes

Well if there’s some kind of invisible blocklist for user synonyms which the UI doesn’t even hint exists, then I’ll just add the word “leech” as a user synonym for all vocabulary kanjis I recognize as leeches so they can stop popping up. And if that’s on the blocklist, I’ll find what that word’s equivalent is in German or Spanish or Polish or whatever and use that.

If you want to go that far, rather than override block lists, you should try skipping somehow.

But yeah, block lists should be easily made visible.

2 Likes

By “easily” you mean using API call? Then anybody who’s not familiar with curl will say it’s not very easy.

Certain websites, iirc, Reddit, allow you to view in JSON form by adding .json in addition to using a real API (which is not simply using an API key, but OAuth2).

Like, if somehow, webdev doesn’t know where to put the UI.

API-wise, Swagger or OpenAPI can have a playground, i.e. web interface.

I suspect when the answer you give is an accepted answer for an item that’s listed under its ‘component_subject_ids’ it will reject it because it doesn’t want the kanji answer, it wants the vocab answer. It probably checks that list before it checks your list. Does it mark as wrong, or tell you to try again?

Id 649 is kanji 札 and has note on it’s meanings list.

"id": 8800,
"object": "vocabulary",
"url": "https://api.wanikani.com/v2/subjects/8800",
"data_updated_at": "2022-03-15T21:59:27.423874Z",
"data": {
    "created_at": "2018-04-18T22:09:50.306891Z",
    "level": 7,
    "slug": "札",
    "hidden_at": null,
    "document_url": "https://www.wanikani.com/vocabulary/%E6%9C%AD",
    "characters": "札",
    "meanings": [
        {
            "meaning": "Tag",
            "primary": true,
            "accepted_answer": true
        },
        {
            "meaning": "Amulet",
            "primary": false,
            "accepted_answer": true
        },
        {
            "meaning": "Label",
            "primary": false,
            "accepted_answer": true
        },
        {
            "meaning": "Playing Card",
            "primary": false,
            "accepted_answer": true
        }
    ],
    "auxiliary_meanings": [],
    "readings": [
        {
            "primary": true,
            "reading": "ふだ",
            "accepted_answer": true
        }
    ],
    "parts_of_speech": [
        "noun"
    ],
    "component_subject_ids": [
        649
    ],

Blacklist comes in the auxiliary meanings section, if there if stuff in there. I don’t know how it works, I just happened to be playing with the API when I saw this.

1 Like

Now that you mention it, I have had other kanji/vocab which does that wobble animation if you give it an answer which would’ve been right for the other context but not the one being asked; for this one, though, it just flat out counts “note” as wrong (at least it does when it’s a user synonym; maybe next time I’ll remove it and see what happens)

Yeah that’s interesting, I was curious if you were getting the wobble and hint or not. I get that everytime nama pops up and I type life and it tells me no, not that one, then I type fresh instead.

There’s no blacklist though, if that’s any help.

Ok my ‘life’ example made me curious, so I looked that one up and it DOES have life on the blocklist.

“auxiliary_meanings”: [
{
“type”: “blacklist”,
“meaning”: “Life”
}
],

So I have no idea what’s going on with your one?

It seems that the result from the public API is missing the auxiliary_meanings:

Public API
const API_TOKEN = "<your API token>";
(await fetch("https://api.wanikani.com/v2/subjects/8800", {headers: {Authorization: `Bearer ${API_TOKEN}`}}).then(r => r.json())).data

returns

{
	"created_at": "2018-04-18T22:09:50.306891Z",
	"level": 7,
	"slug": "札",
	"hidden_at": null,
	"document_url": "https://www.wanikani.com/vocabulary/%E6%9C%AD",
	"characters": "札",
	"meanings": [
		{
			"meaning": "Tag",
			"primary": true,
			"accepted_answer": true
		},
		{
			"meaning": "Amulet",
			"primary": false,
			"accepted_answer": true
		},
		{
			"meaning": "Label",
			"primary": false,
			"accepted_answer": true
		},
		{
			"meaning": "Playing Card",
			"primary": false,
			"accepted_answer": true
		}
	],
	"auxiliary_meanings": [],
	"readings": [
		{
			"primary": true,
			"reading": "ふだ",
			"accepted_answer": true
		}
	],
	"parts_of_speech": [
		"noun"
	],
	"component_subject_ids": [
		649
	],
	"meaning_mnemonic": "This word is almost the same as the kanji, but only half of it. It means <vocabulary>tag</vocabulary> or <vocabulary>amulet</vocabulary>. They're about the same shape and size as money, but you can't buy a house with them (...probably).",
	"reading_mnemonic": "Since this word is made up of a single kanji, it should use the kun'yomi reading. When learning the kanji, you didn't learn that reading, so here's a mnemonic to help you with this word:\r\n\r\nYou can't find your <vocabulary>tag</vocabulary> anywhere. It was just there, you swear, but now it's nowhere to be found. You search for it everywhere, then you realize... it was right there all along. Seriously? You're such a <reading>foo</reading>l, <reading>duh</reading> (<ja>ふだ</ja>)!",
	"context_sentences": [
		{
			"en": "Please put this amulet on the inside of your front door.",
			"ja": "このお札は、げんかんのドアの内がわにはっておいてください。"
		},
		{
			"en": "You should be careful not to show your hand.",
			"ja": "自分の札を見せないようにした方がいいよ。"
		},
		{
			"en": "Jello is really disgusting. There should be a picture of a skull and crossbones on the label.",
			"ja": "ジェロってほんとにキモい。ドクロマークの絵が描かれた札でも付けておくべきだよ。"
		}
	],
	"pronunciation_audios": [
		{
			"url": "https://files.wanikani.com/gv67rrsp9xflh6b10tfryfafjy4g",
			"metadata": {
				"gender": "female",
				"source_id": 27554,
				"pronunciation": "ふだ",
				"voice_actor_id": 1,
				"voice_actor_name": "Kyoko",
				"voice_description": "Tokyo accent"
			},
			"content_type": "audio/mpeg"
		},
		{
			"url": "https://files.wanikani.com/9c67y2cbtm8vwrj6pb4dabvapmx7",
			"metadata": {
				"gender": "female",
				"source_id": 27554,
				"pronunciation": "ふだ",
				"voice_actor_id": 1,
				"voice_actor_name": "Kyoko",
				"voice_description": "Tokyo accent"
			},
			"content_type": "audio/ogg"
		},
		{
			"url": "https://files.wanikani.com/hmc5lzogiwwk2fouxgjk4thchwzw",
			"metadata": {
				"gender": "male",
				"source_id": 10678,
				"pronunciation": "ふだ",
				"voice_actor_id": 2,
				"voice_actor_name": "Kenichi",
				"voice_description": "Tokyo accent"
			},
			"content_type": "audio/ogg"
		},
		{
			"url": "https://files.wanikani.com/6pnyi2peb4pww19nez5vc2xgsmm7",
			"metadata": {
				"gender": "male",
				"source_id": 10678,
				"pronunciation": "ふだ",
				"voice_actor_id": 2,
				"voice_actor_name": "Kenichi",
				"voice_description": "Tokyo accent"
			},
			"content_type": "audio/mpeg"
		}
	],
	"lesson_position": 152,
	"spaced_repetition_system_id": 1
}
Internal API
(await fetch("https://www.wanikani.com/extra_study/items?ids=8800").then(r => r.json()))[0]

returns

{
	"en": [
		"Tag",
		"Amulet",
		"Label",
		"Playing Card"
	],
	"id": 8800,
	"aud": [
		{
			"url": "https://files.wanikani.com/gv67rrsp9xflh6b10tfryfafjy4g",
			"content_type": "audio/mpeg",
			"pronunciation": "ふだ",
			"voice_actor_id": 1
		},
		{
			"url": "https://files.wanikani.com/9c67y2cbtm8vwrj6pb4dabvapmx7",
			"content_type": "audio/ogg",
			"pronunciation": "ふだ",
			"voice_actor_id": 1
		},
		{
			"url": "https://files.wanikani.com/hmc5lzogiwwk2fouxgjk4thchwzw",
			"content_type": "audio/ogg",
			"pronunciation": "ふだ",
			"voice_actor_id": 2
		},
		{
			"url": "https://files.wanikani.com/6pnyi2peb4pww19nez5vc2xgsmm7",
			"content_type": "audio/mpeg",
			"pronunciation": "ふだ",
			"voice_actor_id": 2
		}
	],
	"voc": "札",
	"kana": [
		"ふだ"
	],
	"type": "Vocabulary",
	"kanji": [
		{
			"en": "Bill",
			"id": 649,
			"ja": "さつ",
			"kan": "札",
			"type": "Kanji",
			"characters": "札"
		}
	],
	"characters": "札",
	"auxiliary_meanings": [
		{
			"type": "warn",
			"meaning": "Bill",
			"message": "That's correct when this is a suffix, but it's a standalone word here."
		},
		{
			"type": "warn",
			"meaning": "Note",
			"message": "That's correct when this is a suffix, but it's a standalone word here."
		}
	],
	"auxiliary_readings": [
		{
			"type": "warn",
			"message": "That's correct when this is a suffix, but it's a standalone word here.",
			"reading": "さつ"
		}
	],
	"slug": "札",
	"srs": 9,
	"syn": []
}

There should be two auxiliary meanings: Bill and Note, both of type “warn”. If you do not have “note” as a user synonym, the answer “note” is rejected, but the warning displays correctly with a shake. However, if you do have it as a user synonym, the blocklist rejects the answer “note” (auxiliary meanings of type “warn” are converted into blocklist entries), but the code that changes the rejection into a warning gets skipped when the answer is a user synonym.[1] Seems like a bug. @WaniKaniJavi

I also noticed that answering “Bill” results in the warning “Oops, we want the vocabulary meaning, not the kanji meaning.” instead of “That’s correct when this is a suffix, but it’s a standalone word here.” Maybe the priority of the warnings should be changed.

I still think there should be some feedback when a user tries to enter a user synonym that is on the blocklist. Maybe at least that the text color changes to red.


  1. const shouldValidate = (legacyResult, questionType, response, currentItem) =>
      ((legacyResult.passed && !legacyResult.accurate) || !legacyResult.passed) &&
      !isInSynonyms(questionType, response, currentItem);
    

    isInSynonyms() returns true, so shouldValidate() returns false, which means that any further validation is skipped. ↩︎

8 Likes

Ooh, good sleuthing! I didn’t know you could hit the internal API like that. This makes a lot more sense now.

1 Like

@Mods Would it be possible to expose the “warn” type to the public API?

5 Likes

I know this is only partially related, but since we’re already suggesting changes around user synonym checks, I’m not sure whether the “Oops, we want the vocabulary meaning, not the kanji meaning.” check makes sense. In the case of 札 and many other kanji which define something specific, it should be possible to have the same meaning for both the kanji and the vocabulary item. What’s the benefit of a check which prevents one from having the same valid English meaning gloss for both?

We’ll look into this to see if this is a bug, thanks!

I’ll see if this can be changed :+1:

Agreed! We’ve heard this suggestion before and hopefully this can be a project that we want to work on in the future.

6 Likes

For one thing, it would be nice for it to be very common knowledge that blacklists exist at all.

It’s called the block list, and it’s mentioned quite often in #wanikani:content-updates

I get notifications for that category :wink:

2 Likes