Skip to content

Conversation

@mart-r
Copy link
Collaborator

@mart-r mart-r commented Dec 16, 2025

There's been some confusion introduced by #259 . That's because it refers to external pieces of code as "addons". Yet previously we'd been referring to addons to the name pipe (NER + EL) addons (e.g MetaCAT, RelCAT). This can (and most likely would if kept this way) create confusion for users and developers alike.

So this PR makes a distinction:

  • External code providers (e.g GLiNER based NER) are now plugins
  • Non-core components (e.g MetaCAT, RelCAT) remain addons

This should be a sufficient distinction. And I feel like it's in line with a lot of other things.

Though I'm open to discussions on the naming.

@tomolopolis
Copy link
Member

Copy link
Collaborator

@dcstang dcstang left a comment

Choose a reason for hiding this comment

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

I get the intention here to distinguish between external (GLiNER) vs internal code.

Plugin/addon are semantically quite close, similar so might not be able to capture the meaning in one word without more documentation backup.

What would your thoughts be on:
Integration ~ implies something from outside, externally joining into
and
Extension ~ implies growth outwards from internal organisation

@mart-r
Copy link
Collaborator Author

mart-r commented Dec 17, 2025

I get the intention here to distinguish between external (GLiNER) vs internal code.

Plugin/addon are semantically quite close, similar so might not be able to capture the meaning in one word without more documentation backup.

I agree - plugin and addon are still quite close. And if we were to go this way, we would want some documentation to back this up.

What would your thoughts be on: Integration ~ implies something from outside, externally joining into and Extension ~ implies growth outwards from internal organisation

So you're suggesting MetaCAT and RelCAT to be "extensions" since they extend the (core) functionality and "integration" modules to be externally provided components, regardless of whether they're extension or core component.
I do understand that. But for me these terms seem a little too formal or something. For instance, "extensions" make me think of external things (like VSCode and/or Chrome extensions) and integration feels like a process rather than a thing (i.e "MedCAT integrates GLiNER" vs "GLiNER is a MedCAT integration").

I'm open to further discussion, but currently still leaning towards addons for things that add on top of the core pipeline and plugins for external code that adds new components (or other functionality).

Copy link
Collaborator

@dcstang dcstang left a comment

Choose a reason for hiding this comment

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

Yeah understood. I get how extensions could get quite wonky down the line too / be a misnomer.

Well as long as it is carefully documented + kept consistent down the line I'm not opposed to the use of plugins.

Copy link
Collaborator

@dcstang dcstang left a comment

Choose a reason for hiding this comment

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

Sweet! The code examples help distinguish the concepts and helps me understand how I can make my own plugins. Also useful to denote components as well in this doc.

@tomolopolis
Copy link
Member

agree - docs more important the literal name plugins vs extensions, both equally well right now I think so current impl is good

@mart-r mart-r merged commit ced3bbc into main Dec 19, 2025
21 checks passed
@mart-r mart-r deleted the bug/medcat/CU-869bfagqw-resolve-addon-naming-conflicts branch December 19, 2025 12:58
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.

4 participants