Skip to content

Feature/jobbertjobnorm onet - #55

Open
workforcedeveloper wants to merge 7 commits into
techwolf-ai:mainfrom
blackmlengineer:feature/jobbertjobnorm-onet
Open

workforcedeveloper wants to merge 7 commits into
techwolf-ai:mainfrom
blackmlengineer:feature/jobbertjobnorm-onet

Conversation

@workforcedeveloper

Copy link
Copy Markdown

Description

Checklist

  • Added new tests for new functionality
  • Tested locally with example tasks
  • Code follows project style guidelines
  • Documentation updated
  • No new warnings introduced
  • If the rankings artifact schema changed: bumped SCHEMA_VERSION in workrb/rankings.py and updated SUPPORTED_SCHEMA_VERSIONS

@warreveys

warreveys commented Jun 29, 2026 •

Copy link
Copy Markdown
Collaborator

Hi!

Nice contribution, thanks a lot!

Some thoughts on this:

  • Your indexing inside the loop is causing an unnecessary O(k*n), which we can bring down to O(n) by creating a mapping dictionary before the loop ({title: i for i, title in enumerate(TARGET_SPACE)}).
  • We should consider creating an ONET class to allow for more tasks with a target space derived from ONET. We can start small here. To check whether this would work: is the JSON file from a specific ONET version that can still be retrieved online? I'd like to move toward a design similar to the ESCO class here, but I am happy to contribute this myself later.
  • We should think twice about the name of this task. 'ONETJobNormRanking' is very generic, and it sounds like the ground-truth normalisation test for ONET, of which there could be loads. Could we at least call it something like 'JobBERTONetJobNormRanking'?
  • I'd like to see a little docstring in the added task, just briefly explaining what the queries and targets are exactly.
  • I have approved the CI workflow, so please check this when it finished

Excited to hear what you think!

@blackmlengineer

Copy link
Copy Markdown

Hi @warreveys, I accidentally pushed this under the incorrect GH account and was trying to figure out how to have the merge request moved over to this account.

All of your thoughts make sense and I will be implementing them and submitting a new request soon.

@warreveys

Copy link
Copy Markdown
Collaborator

Hi, thanks for the contribution, and apologies for the late reply due to some time off.

Two small comments left:

  • Thanks for the name change, but it currently breaks test_jobnorm_onet.py: the test calls workrb.tasks.ONETJobNormRanking, which no longer exists. Could you update the test accordingly?
  • The download writes to the current working directory. Please make it write to the cache dir instead. You can follow the pattern in src/workrb/data/esco.py:130-131, but use "workrb" rather than "wteb" as the cache name. (wteb is a stale leftover from an old project name that I'll fix in the esco file separately.)

Thanks again!

blackmlengineer and others added 3 commits August 1, 2026 10:55
- Add versioned ONET data manager (workrb.data.ONET), mirroring ESCO: cache dir, auto-download, occupation vocabulary and O*NET-SOC codes
- Warn when loading releases older than 25.1 (pre O*NET-SOC 2019 taxonomy)
- Rewrite JobBERTONetJobNormRanking on top of ONET: fix crash on construction, add onet_version parameter with remapping by O*NET-SOC
  code, pin the Hugging Face dataset revision
- Warn in citation that the dataset is not peer reviewed
- Add tests for ONET and the task, and include the task in the all-tasks loading test
@warreveys

Copy link
Copy Markdown
Collaborator

Hi,

I did some final changes. If we are aligned on this implementation, we are ready to merge this feature. Thanks again for contributing your dataset!

This branch has not been deployed

No deployments
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.

3 participants