.4

2 claimants 0 primary 2 secondary secondary-only

SWH popularity

From the SWH-MSR-ARV dataset (Desmazières, Di Cosmo, Lorentz, MSR 2025; file nb_extensions_alphanum.csv) — one row per (ext, year) in the full SWH archive. Case-aggregated. citation.

2.3M
total occurrences
533.2K
since 2019 (23.2%)
1970–2023
years active

Confirm or correct this extension

Existing claims are only secondary or weakly-attested. A confirmation (or correction) would strengthen the catalog. Vocabulary reference: docs/extension_labels.md.

Auto-suggested label. Built from tools/build_extension_review_queue.py's heuristic categorisation (file-format families, numeric / SHA filenames, etc.). One click to pre-fill the form below — edit if it's off.
Quick pick — proposed PLs. Tick one or more to auto-fill the label as pl/<id>. Each chip is a PL that upstream sources or Linguist heuristics already suggest for .4. Multi-tick for a polysemous extension.
— or, if the button is blocked, use the link just below:
(fill the form to enable this link)
What happens after I submit?
  1. A new GitHub issue is opened in this repo with your form contents in a structured YAML block and the label ext-review. Your GitHub login becomes the annotator; the issue's created_at is the submission timestamp.
  2. A curator script (tools/process_extension_labels.py) fetches all ext-review issues and writes their parsed contents into data/derived/extension_labels.csv with curator_status="new". Until this script runs, your submission lives only as the GitHub issue.
  3. Your submission shows up on the curator triage page (/review/curator/) under "new". Maintainers review the issue (comment, ask for clarification, accept or reject) and edit extension_labels.csv to set curator_status to accepted.
  4. For pl/<id> labels, build_pl_taxonomy.py promotes accepted labels into ext_claim.csv with source="manual_review:<your-login>" and strength="proposed". The next site rebuild then shows your claim on this extension's page and on the language's page.
  5. Friendly-name + reference-URL labels (e.g. binary:image for .png) are not promoted into ext_claim.csv (they aren't PL claims) but are surfaced on this page's "Prior labels" table so anyone landing here sees them next to the auto-detected category.

In short: submitting opens an issue (provenance), and a small ingestion pipeline turns issues into rows the site renders. The loop is currently manual (the curator script must be run by a maintainer); GitHub Actions could automate it on each new issue.

Claimants (2)

Languages that list .4 among their extensions. Strength reflects whether the upstream source treated it as their primary extension.
LanguageSourceStrength
Rofflinguistsecondary
Roff Manpagelinguistsecondary

Wikidata says… (1)

File formats, image formats, audio codecs and other non-PL entities that claim .4 on Wikidata (property P1195) or in the Wikipedia infobox. Source: data/derived/external_extension_index.csv. Click Use as new PL on any row to open the Add-PL form pre-filled with that entry's name, Wikipedia/Wikidata URL, and this extension — one submission creates the PL + claim.
Right entry isn't listed? Add manually ↗
FormatClass (Wikidata P31)Suggested labelMIMENotesAction
man page Q47512572
electronic documentation file format
file formattext/troff; application/x-troff-manUse as new PL ↗

Disambiguation rules (4)

Linguist heuristics that decide, by content, which language a .4 file actually is.
RulePredictsKindPredicates (truncated)
h/linguist/.4/0Roff Manpagepredicates[{"kind": "any", "regexes": ["^[.'][ \\t]*Dd +(?:[^\"\\s]+|\"[^\"]+\")"]}, {"kind": "any", "regexes": ["^[.'][ \\t]*Dt +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"]}, {"kind": "any", "regexes":
h/linguist/.4/1Roff Manpagepredicates[{"kind": "any", "regexes": ["^[.'][ \\t]*TH +(?:[^\"\\s]+|\"[^\"]+\") +\"?(?:[1-9]|@[^\\s@]+@)"]}, {"kind": "any", "regexes": ["^[.'][ \\t]*SH +(?:[^\"\\s]+|\"[^\"\\s]+)"]}]
h/linguist/.4/2Roffpredicates[{"kind": "any", "regexes": ["^\\.(?:[A-Za-z]{2}(?:\\s|$)|\\\\\")"]}]
h/linguist/.4/3Textdefault[]

SWH-mined examples (1)

Real archived programs with this extension, byte-verified against the SWH archive. Useful for deciding what this extension actually is when the attribution is uncertain.
ng_ether.4 · 8160 B · seen 2712× in SWH
predicted: Roff Manpage via heuristic
swh:1:cnt:79c30ca7788ea0c1637500a18694c385818c419b;origin=https://github.com/freebsd/freebsd-src;anchor=swh:1:rev:fa9896e082a1046ff4fbc75fcba4d18d1f2efc19;path=/share/man/man4/ng_ether.4
Open in SWH · Raw bytes
Request more SWH-mined examples
If the examples above don't disambiguate what .4 is, request a fresh mining run.
(or open the pre-filled issue directly)