💡 patents¶
USPTO patent grant and trademark application data from PatentsView bulk downloads and USPTO trademark bulk CSV. Patent tables are year-partitioned by grant_year (1976+). Trademark tables are year-partitioned by application_year. Claims and summaries include vector embedding columns (FLOAT[]) populated at ingestion time via batched embedding calls. Full-dump files are cached locally under GOVDATA_CACHE_DIR/patents/ with a quarterly TTL to avoid re-downloading on every year invocation.
16 datasets · 174 columns
patent_grants · table¶
One row per granted utility patent (design patents excluded by default; set PATENTS_INCLUDE_DESIGN=true to include). Faithful recreation of g_patent.tsv — no joins. patent_date carries the grant year, so the table self-partitions by grant_year. Abstract, filing date, and figure counts live in their own faithful tables (patent_abstracts, patent_applications, patent_figures), joined on patent_id at query time.
| Column | Type | Null | Description |
|---|---|---|---|
patent_ |
string | yes | USPTO patent number (e.g., 10123456) |
grant_ |
integer | no | Calendar year of patent grant; primary partition key |
patent_ |
string | yes | Date of patent grant (YYYY-MM-DD) |
patent_ |
string | yes | utility / design / plant |
patent_ |
string | yes | Patent title |
num_ |
integer | yes | Number of claims |
wipo_ |
string | yes | WIPO kind code (B1, B2, etc.) |
withdrawn |
boolean | yes | Whether patent was withdrawn; filter to false for active grants |
patent_assignees · table¶
Faithful recreation of g_assignee_disambiguated.tsv — one row per patent-assignee combination, keyed by patent_id, no joins and no year. location_id is the foreign key into patent_locations; join there for geography and to patent_grants for a grant year. Loaded once per quarter as a full snapshot.
| Column | Type | Null | Description |
|---|---|---|---|
patent_ |
string | yes | USPTO patent number (e.g., 10123456) |
assignee_ |
integer | yes | Order when patent has multiple assignees (0-based) |
assignee_ |
string | yes | PatentsView disambiguated assignee ID |
assignee_ |
string | yes | Organization name; null for individual assignees |
assignee_ |
string | yes | First name; null for org assignees |
assignee_ |
string | yes | Last name; null for org assignees |
assignee_ |
string | yes | US company / foreign company / US government / individual |
location_ |
string | yes | FK into patent_locations for geographic fields |
patent_inventors · table¶
Faithful recreation of g_inventor_disambiguated.tsv (~8 GB uncompressed) — one row per patent-inventor combination, keyed by patent_id, no joins and no year. location_id is the foreign key into patent_locations; join there for geography and to patent_grants for a grant year. Loaded once per quarter as a full snapshot.
| Column | Type | Null | Description |
|---|---|---|---|
patent_ |
string | yes | USPTO patent number (e.g., 10123456) |
inventor_ |
string | yes | PatentsView disambiguated inventor ID |
inventor_ |
integer | yes | Inventor order on patent (0 = first/primary) |
name_ |
string | yes | First name |
name_ |
string | yes | Last name |
gender_ |
string | yes | M / F (inferred by PatentsView disambiguation); useful for diversity analysis |
location_ |
string | yes | FK into patent_locations for geographic fields |
patent_cpc_classes · table¶
Faithful recreation of g_cpc_current.tsv — one row per patent-CPC code combination, keyed by patent_id, no joins and no year. CPC is the primary technology taxonomy for patent analysis. Join to patent_grants on patent_id for a grant year. Loaded once per quarter as a full snapshot.
| Column | Type | Null | Description |
|---|---|---|---|
patent_ |
string | yes | USPTO patent number (e.g., 10123456) |
cpc_ |
integer | yes | CPC code sequence on patent |
cpc_ |
string | yes | CPC section (A-H, Y) |
cpc_ |
string | yes | CPC class (2-char, e.g., H04) |
cpc_ |
string | yes | CPC subclass (1-char, e.g., L) |
cpc_ |
string | yes | Full CPC classification string (e.g., H04L0009000) |
cpc_ |
string | yes | i (inventive) or a (additional) |
patent_abstracts · table¶
Faithful recreation of g_patent_abstract.tsv — one row per patent abstract, keyed by patent_id. Join to patent_grants on patent_id for a grant year. Loaded once per quarter.
| Column | Type | Null | Description |
|---|---|---|---|
patent_ |
string | yes | USPTO patent number (e.g., 10123456) |
patent_ |
string | yes | Patent abstract text |
patent_applications · table¶
Faithful recreation of g_application.tsv — one row per application record, keyed by patent_id. Join to patent_grants on patent_id for a grant year. Loaded once per quarter.
| Column | Type | Null | Description |
|---|---|---|---|
patent_ |
string | yes | USPTO patent number (e.g., 10123456) |
filing_ |
string | yes | Original application filing date (YYYY-MM-DD) |
patent_ |
string | yes | Application type (e.g., utility, continuation) |
patent_figures · table¶
Faithful recreation of g_figures.tsv — one row per patent figure/sheet count record, keyed by patent_id. Join to patent_grants on patent_id for a grant year. Loaded once per quarter.
| Column | Type | Null | Description |
|---|---|---|---|
patent_ |
string | yes | USPTO patent number (e.g., 10123456) |
num_ |
integer | yes | Number of figures |
num_ |
integer | yes | Number of drawing sheets |
patent_locations · table¶
Faithful recreation of g_location_disambiguated.tsv — one row per disambiguated location, keyed by location_id. FK target for patent_inventors.location_id and patent_assignees.location_id. Loaded once per quarter.
| Column | Type | Null | Description |
|---|---|---|---|
location_ |
string | no | PatentsView disambiguated location ID (PK) |
state_ |
string | yes | State FIPS code |
county_ |
string | yes | County FIPS code |
country_ |
string | yes | Disambiguated country code |
latitude |
double | yes | Latitude |
longitude |
double | yes | Longitude |
patent_claims · table¶
One row per patent claim. Claims define the legal scope of the patent — the most analytically useful text component. Per-year source files: g_claims_{year}.tsv.zip from the PatentsView claims/ subdirectory. The embedding column is populated at ingestion time via batched embedding calls. For dependent claims, the transformer prepends the parent independent claim text before embedding to capture full legal scope.
| Column | Type | Null | Description |
|---|---|---|---|
patent_ |
string | yes | USPTO patent number (e.g., 10123456) |
grant_ |
integer | no | Calendar year of patent grant; primary partition key |
claim_ |
integer | yes | Processing order of claim (1-based) |
claim_ |
integer | yes | Claim number as printed in the patent |
claim_ |
string | yes | Full claim text |
dependent |
string | yes | NULL = independent claim; otherwise a "claim N" reference to the parent's claim_number (verbatim from PatentsView) |
exemplary |
boolean | yes | Claim designated as exemplary; useful for ML classification |
patent_summaries · table¶
One row per patent. Brief summary section text from the patent specification. More concise than the full description; covers key aspects and distinguishing features over prior art. Per-year source files: g_brf_sum_text_{year}.tsv.zip from the PatentsView brief-summary-text/ subdirectory. The embedding column is populated at ingestion time.
| Column | Type | Null | Description |
|---|---|---|---|
patent_ |
string | yes | USPTO patent number (e.g., 10123456) |
grant_ |
integer | no | Calendar year of patent grant; primary partition key |
summary_ |
string | yes | Full brief summary section text |
trademark_case_file · table¶
Faithful landing of USPTO TRCFECO2 case_file.csv — one row per trademark application (serial_no), all 79 source columns verbatim. Year-partitioned by application filing year.
| Column | Type | Null | Description |
|---|---|---|---|
serial_ |
string | no | USPTO trademark serial number (primary key) |
abandon_ |
string | yes | Date the mark/application was abandoned (YYYYMMDD) |
amend_ |
string | yes | Date of the file amendment to register (YYYYMMDD) |
amend_ |
string | yes | Flag: filing basis amended to foreign application priority (44(d)) |
amend_ |
string | yes | Flag: filing basis amended to foreign registration (44(e)) |
amend_ |
string | yes | Flag: filing basis amended to intent-to-use |
amend_ |
string | yes | Flag: filing basis amended to use in commerce |
reg_ |
string | yes | Code identifying the section under which the registration was cancelled |
reg_ |
string | yes | Date cancellation of the entire registration was recorded (YYYYMMDD) |
cancel_ |
string | yes | Flag: a cancellation proceeding is pending |
cert_ |
string | yes | Flag: mark is a certification mark |
chg_ |
string | yes | Flag: registration changed (amendment, correction, fewer goods/classes) |
coll_ |
string | yes | Flag: mark is a collective membership mark |
coll_ |
string | yes | Flag: mark is a collective service mark |
coll_ |
string | yes | Flag: mark is a collective trademark |
draw_ |
string | yes | Flag: drawing is currently in color |
draw_ |
string | yes | Flag: drawing was in color at filing |
concur_ |
string | yes | Flag: registration is subject to concurrent use |
concur_ |
string | yes | Flag: a concurrent use proceeding is pending |
file_ |
string | yes | Current location of the application or registration file |
draw_ |
string | yes | Flag: drawing is currently three-dimensional |
draw_ |
string | yes | Flag: drawing was three-dimensional at filing |
exm_ |
string | yes | Name of the USPTO examining attorney assigned to the file |
lb_ |
string | yes | Filing basis flag: filed as a use-in-commerce application |
lb_ |
string | yes | Filing basis flag: foreign application priority (44(d)) currently |
lb_ |
string | yes | Filing basis flag: foreign registration (44(e)) currently |
lb_ |
string | yes | Filing basis flag: international registration (66(a)) currently |
lb_ |
string | yes | Filing basis flag: foreign application priority (44(d)) at filing |
lb_ |
string | yes | Filing basis flag: foreign registration (44(e)) at filing |
lb_ |
string | yes | Filing basis flag: international registration (66(a)) at filing |
lb_ |
string | yes | Filing basis flag: no basis currently claimed |
filing_ |
string | yes | Application filing date (YYYYMMDD); source of the year partition |
for_ |
string | yes | Flag: record contains foreign application info and a priority claim |
lb_ |
string | yes | Filing basis flag: intent-to-use application currently |
lb_ |
string | yes | Filing basis flag: intent-to-use application at filing |
interfer_ |
string | yes | Flag: an interference proceeding is pending |
exm_ |
string | yes | Code of the USPTO examining law office assigned |
file_ |
string | yes | Date the file arrived at its current location (YYYYMMDD) |
mark_ |
string | yes | Drawing code 1=typed 2=design 3=stylized 4=standard char 5=color |
mark_ |
string | yes | Trademark text; null for design marks |
opposit_ |
string | yes | Flag: an opposition proceeding is pending |
amend_ |
string | yes | Flag: application amended to the Principal Register |
concur_ |
string | yes | Flag: mark published subject to concurrent use |
publication_ |
string | yes | Date the mark was published for opposition (YYYYMMDD) |
registration_ |
string | yes | Date the mark was registered (YYYYMMDD) |
renewal_ |
string | yes | Date of registration renewal (YYYYMMDD) |
renewal_ |
string | yes | Flag: a renewal application was filed |
repub_ |
string | yes | Date of republication under Section 12(c) (YYYYMMDD) |
repub_ |
string | yes | Flag: registered mark republished under Section 12(c) |
incontest_ |
string | yes | Flag: Section 15 affidavit of incontestability acknowledged |
incontest_ |
string | yes | Flag: Section 15 affidavit of incontestability filed |
acq_ |
string | yes | Flag: acquired distinctiveness claimed for the whole mark (Section 2(f)) |
acq_ |
string | yes | Flag: acquired distinctiveness claimed for part of the mark (Section 2(f)) |
use_ |
string | yes | Flag: Section 8 continued-use affidavit accepted |
use_ |
string | yes | Flag: Section 8 continued-use affidavit filed |
use_ |
string | yes | Flag: Section 8 continued-use affidavit partially accepted |
serv_ |
string | yes | Flag: mark is a service mark |
std_ |
string | yes | Standard character mark flag (T/F) |
cfh_ |
string | yes | Status code (live/dead/registered/abandoned/cancelled) |
cfh_ |
string | yes | Date the case file's current status was recorded (YYYYMMDD) |
amend_ |
string | yes | Flag: application amended to the Supplemental Register |
supp_ |
string | yes | Flag: filed for or registered on the Supplemental Register |
trade_ |
string | yes | Flag: mark is a trademark |
lb_ |
string | yes | Filing basis flag: use-in-commerce application currently |
lb_ |
string | yes | Filing basis flag: no basis claimed at filing |
ir_ |
string | yes | Date US registration auto-issued absent a first refusal (Madrid) (YYYYMMDD) |
ir_ |
string | yes | Flag: USPTO issued a notice of first refusal to the IB (Madrid) |
ir_ |
string | yes | Date the international registration expired (YYYYMMDD) |
ir_ |
string | yes | Date the international registration was published (YYYYMMDD) |
ir_ |
string | yes | Date of the international registration (Madrid) (YYYYMMDD) |
ir_ |
string | yes | International registration (Madrid Protocol) number |
ir_ |
string | yes | Date by which the international registration must be renewed (YYYYMMDD) |
ir_ |
string | yes | International registration status code |
ir_ |
string | yes | Effective date of the international registration status (YYYYMMDD) |
ir_ |
string | yes | Date international registration priority was claimed (YYYYMMDD) |
ir_ |
string | yes | Flag: international registration priority claimed |
related_ |
string | yes | Flag: 'and others' appears in the list of prior registrations |
registration_ |
string | yes | Registration number; null (or all-zeros) if pending |
tad_ |
string | yes | Identifier of the source XML file the record was extracted from |
year |
integer | no | Application filing year (Iceberg partition) |
trademark_owner · table¶
Faithful landing of USPTO TRCFECO2 owner.csv — applicant/owner identity, one row per (serial_no, own_seq). own_addr_state_cd is a 2-letter code, not FIPS — join geo.states.
| Column | Type | Null | Description |
|---|---|---|---|
serial_ |
string | no | Corresponding case file serial number |
own_ |
string | yes | Sequence of owner records within the same party type |
own_ |
string | yes | Unique identifier for the owner record |
own_ |
string | yes | Name of the owning party |
own_ |
string | yes | Owning party type code (e.g. original applicant, new owner) |
own_ |
string | yes | Owner legal entity type code |
own_ |
string | yes | Owner entity description or statement |
own_ |
string | yes | Owner 'composed of' statement |
own_ |
string | yes | Owner alternative names (DBA/AKA) |
own_ |
string | yes | Owner address line 1 |
own_ |
string | yes | Owner address line 2 |
own_ |
string | yes | City or foreign designation of the owner address |
own_ |
string | yes | State code of the owner address |
own_ |
string | yes | US or foreign postal code of the owner address |
own_ |
string | yes | Country code of the owner address |
own_ |
string | yes | Other region (non-country) code of the owner address |
own_ |
string | yes | State code of the owner's place of origin |
own_ |
string | yes | Country code of the owner's place of origin |
own_ |
string | yes | Other region (non-country) code of the owner's place of origin |
year |
integer | no | Application filing year (Iceberg partition) |
trademark_classification · table¶
Faithful landing of USPTO TRCFECO2 classification.csv — US class + first-use dates + status, one row per (serial_no, class_id).
| Column | Type | Null | Description |
|---|---|---|---|
serial_ |
string | no | Corresponding case file serial number |
class_ |
string | yes | Unique identifier for the classification record |
class_ |
string | yes | Classification primary code |
class_ |
string | yes | Classification status code |
class_ |
string | yes | Date the classification status was recorded (YYYYMMDD) |
class_ |
string | yes | Number of international classes |
class_ |
string | yes | Number of US classes |
first_ |
string | yes | First-use-anywhere date, converted to a date value (YYYYMMDD) |
first_ |
string | yes | First-use-anywhere date, as entered in the source XML |
first_ |
string | yes | First-use-in-commerce date, converted to a date value (YYYYMMDD) |
first_ |
string | yes | First-use-in-commerce date, as entered in the source XML |
year |
integer | no | Application filing year (Iceberg partition) |
trademark_intl_class · table¶
Faithful landing of USPTO TRCFECO2 intl_class.csv — international (Nice) class codes, one row per (serial_no, intl_class_cd).
| Column | Type | Null | Description |
|---|---|---|---|
serial_ |
string | no | Corresponding case file serial number |
intl_ |
string | yes | International (Nice) class code |
class_ |
string | yes | Corresponding classification record ID |
year |
integer | no | Application filing year (Iceberg partition) |
trademark_statement · table¶
Faithful landing of USPTO TRCFECO2 statement.csv — goods/services and other statement text, one row per (serial_no, statement_type_cd).
| Column | Type | Null | Description |
|---|---|---|---|
serial_ |
string | no | Corresponding case file serial number |
statement_ |
string | yes | Statement type category code |
statement_ |
string | yes | Statement text (goods/services description is one statement type) |
year |
integer | no | Application filing year (Iceberg partition) |
trademark_applications · view¶
One row per trademark application (serial_no), joined from trademark_case_file + owner + intl_class + statement. Replaces the old ETL-joined table. applicant_state is a 2-letter code (not FIPS) — join geo.states.
View — columns are resolved by the query engine at runtime.