Capabilities — Overview
This content is for v0.4.1. Switch to the latest version for up-to-date documentation.
Each page below is a self-contained guide for one kind of identifier Paxman can canonicalize. Read the one that matches your data, copy the notebook snippet, and adapt the contract flags to your needs.
All capabilities share the same call shape — only the import, the factory, and the domain vocabulary change:
import paxmanfrom paxman.capabilities import X # Email, Country, ...
paxman.register_all_shipped() # once, before first usecontract = X.create_contract(...) # domain flags hereresult = paxman.canonicalize(text, contract)For the shared concepts behind these pages see Contracts, Pipeline, Execution Result, and the API Reference.
Choose by what you have
Section titled “Choose by what you have”| Your data looks like… | Read |
|---|---|
user@example.com, user at example dot com | |
2026-01-15, 01/02/2026, 2026/01/15 | Date |
US, United States, Alemania | Country |
USD, $, euro, ¥ (identifiers without amounts) | Currency |
192.168.1.1, 2001:db8::1 | IP |
9780306406157, 0306406152 | ISBN |
USD 500, $500, 1.000,50 EUR (currency with amount) | Money |
+1 555 123 4567, (555) 234-5678, tel:+15551234567 | Phone |
kg, m/s², megahertz, kPa | SI Unit |
https://example.com, http://münchen.de | URL |
DEUTDEFF, DEUTDEFF500 | BIC — guide forthcoming |
48.8566, 2.3522, geo:48.8566,2.3522 | Coordinates — guide forthcoming |
Fe, iron, element 26 | Element — guide forthcoming |
DE89370400440532013000 | IBAN — guide forthcoming |
0317-8471 | ISSN |
en-US, eng, German | Language — guide forthcoming |
00:1A:2B:3C:4D:5E | MacAddress — guide forthcoming |
0000-0002-1825-0097 | ORCID — guide forthcoming |
The set above reflects the current release. New capabilities are added in minor releases — check
paxman.capabilitiesor the latest release notes if you don’t see what you need.
What each page covers
Section titled “What each page covers”Every capability page answers the same questions in the same order:
- What it canonicalizes and what it explicitly does not.
- Recognized forms — what patterns match, with what grammars.
- Canonical output &
output_format— default and offered renderings. - Contract flags — which knobs change recognition and validation.
- Statuses — concrete
SUCCESS/MISSING/INVALID/AMBIGUOUSexamples. - Notebook snippet — runnable cleaning loop for a column.
- Provenance — which specifications vouch for the answer.
Start with the capability that matches your column; if you need more than one, register both and loop per cell (see the Segmentation Recipe for text that mixes kinds).
One mention per call
Section titled “One mention per call”Paxman resolves one presumed entity per canonicalize() call (see Pipeline). Text that contains two different entities with different canonical values raises MultipleMentionsError rather than returning a merged answer — split first, then loop. To extract every mention in a longer text instead, use the batch API paxman.scan(), which returns per-capability Mention records (see API reference).
from paxman.core.errors import MultipleMentionsError
try: result = paxman.canonicalize("alice@example.com, bob@example.org", contract)except MultipleMentionsError: # split the input and canonicalize each piece — see the segmentation recipe ...