Skip to content

feat: add speciesist language checks#1490

Open
stuckvgn wants to merge 3 commits intoamperser:mainfrom
stuckvgn:feat/speciesist-language-checks
Open

feat: add speciesist language checks#1490
stuckvgn wants to merge 3 commits intoamperser:mainfrom
stuckvgn:feat/speciesist-language-checks

Conversation

@stuckvgn
Copy link
Copy Markdown

@stuckvgn stuckvgn commented Apr 8, 2026

Resubmission of #1483 at @Nytelife26's invitation after the original fork was deleted.

Summary

Adds a social_awareness.speciesism check module alongside the existing sexism, lgbtq, and nword checks. Two check groups:

  • check_preferred_forms — flags idioms rooted in animal harm and suggests clearer alternatives (26 phrases, e.g. "kill two birds with one stone" → "solve two problems at once")
  • check_derogatory — flags animal comparisons used as insults (9 phrases, e.g. "eat like a pig" → "eat ravenously")

Changes

  • proselint/checks/social_awareness/speciesism.py — new check module
  • proselint/checks/social_awareness/__init__.py — register the new module
  • tests/examples.py — pass/fail examples

Why this fits proselint

Just as proselint flags sexist and homophobic language, speciesist idioms are worth flagging: they use animals as stand-ins for negativity or as objects of harm, which is imprecise writing on top of being exclusionary to a growing portion of readers.

References

  • Dunayer, J. (2001). Animal Equality: Language and Liberation. Ryce Publishing.
  • Stibbe, A. (2001). Language, Power, and the Social Construction of Animals. Society and Animals, 9(2), 145–161.
  • Bogueva, D., and Marinova, D. (2022). Transforming Language About Animals. In Handbook of Research on Social Marketing.

Adds social_awareness.speciesism with two check groups:
- check_preferred_forms: flags idioms rooted in animal harm (26 phrases)
- check_derogatory: flags animal comparisons used as insults (9 phrases)

Follows the same structure as the existing sexism and lgbtq checks.
Includes pass/fail examples in tests/examples.py.

References: Dunayer (2001), Stibbe (2001), Bogueva & Marinova (2022).
---
layout: post
source: Dunayer, J. (2001). Animal Equality: Language and Liberation.
source_url: https://doi.org/10.1080/10350330109384726
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps it's just me, but the DOI provided here doesn't seem to work. I found an active one for the Cambridge University Press publication at https://doi.org/10.1017/S0962728600024489, or you may use any other archival links.

Comment on lines +6 to +14
source: Dunayer, J. (2001). Animal Equality: Language and Liberation.
source_url: https://doi.org/10.1080/10350330109384726
title: speciesism
date: 2026-04-08 12:00:00
categories: writing
---

Points out speciesist idioms and animal comparisons used as insults,
and suggests clearer alternatives.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your original PR used the correct citation format and had a much more elaborate explanation section. What was the reason for the change?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any chance you could address this while I obtain a copy of the source for review, please? Thank you :)

"let the cat out of the bag": "reveal the secret",
"guinea pig": "test subject",
"the elephant in the room": "the obvious issue",
"dog-eat-dog": "cutthroat",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these all specific examples from the source itself? I can think of potentially better ways to say many of these, so if so, I'll need to investigate the source further.

"fat as a pig": "overweight",
"sweating like a pig": "sweating heavily",
"slow as a snail": "extremely slow",
"memory like a goldfish": "very short memory",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In line with our other checks, we shouldn't recommend "very".

@Nytelife26
Copy link
Copy Markdown
Contributor

It occurs to me that we should consider adding the option to specify multiple sources in the headers

cc: @drainpixie

@stuckvgn
Copy link
Copy Markdown
Author

Thanks for the detailed feedback @Nytelife26! Pushed an update:

  • DOI: Already updated to the Cambridge University Press link you provided.
  • Docstring: Restored a more detailed explanation section in line with other checks in the codebase — describes what speciesist idioms are, why they matter, and what the check does. Also explicitly names the two categories the check covers.
  • Source attribution: Added a clarifying paragraph at the end of the docstring: the check uses Dunayer (2001) as academic grounding; the idiom list draws on widely recognised speciesist language patterns in English, and the phrases are not all direct quotations or enumerated examples from that text.
  • No 'very': Confirmed — no alternatives in the current file use 'very'. (The original first commit had "memory like a goldfish": "very short memory", which was already fixed to "short memory" before this review.)

Let me know if anything else needs adjusting.

@Nytelife26
Copy link
Copy Markdown
Contributor

My primary request is related to the check header. You appear to be using APA citation style, rather than MLA 9th Ed., and some of the fields are missing. You may refer to the verification section of the checks documentation for further details.

Aside from that, while I agree with the validity of the recommendations here, the checks in Proselint are typically direct recommendations or direct applications of recommendations from prominent authors and writing bodies. If you know of any usage guides or terminology lists that specifically contain the entries used here, it would be good to link to them.

I'm going to spend some time ensuring none of the entries conflict with our other sources and checks in other ways. Following that review, and the other changes I just mentioned, I will be happy to accept this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants