Skip to content

V1.4.0 ("Experiment IV")

Latest
Compare
Choose a tag to compare
@codingatty codingatty released this 03 Feb 00:11
· 1 commit to master since this release

Summary of new features

  • Report international and domestic trademark classes.
  • Report first-use dates (on per-class basis).
  • Externalize certain metadata to JSON file to permit metadata queries without a TSDR call.
  • Changes to metadata key names.
  • Other minor changes.

Details

International and domestic trademark classes

There are two new repeated field sets: InternationalClassDescription and DomesticClassDescription, describing international and US classifications for the mark, respectively. The international classes are those used by the Nice Classification established by the Nice Agreement Concerning the International Classification of Goods and Services for the Purposes of the Registration of Marks, the international treaty standardizing trademark classification. The US classifications are those in the prior U.S. trademark classification system (now superseded by the Nice system, but still reported in TSDR).

Each InternationalClassDescription entry contains the following fields:

  • InternationalClassNumber: the international class number.
  • GoodsServicesDescription Goods and services corresponding to the specified class.

Each DomesticClassDescription entry contains the following fields:

  • PrimaryClassNumber: the international class number.
  • NiceClassNumber : another reporting of the international class number.
  • NationalClassNumber: the domestic class number.
  • ClassificationKindCode: "Domestic", indicating it is the US domestic code.

Note that InternationalClassNumber in the InternationalClassDescription entry and PrimaryClassNumber and NiceClassNumber in the DomesticClassDescription entry correspond to one another and may be used to create a combined description of the coverall classification, so long as the USPTO data includes both.

PrimaryClassNumber and NiceClassNumber are redundant to one another, but the PTO reports both, so both fields are extracted and reported, just in case this changes ion the future.

First-use dates

First-use dates are supported by a new repeated field set, FirstUseDate. Each FirstUseDate entry includes the following fields.

  • PrimaryClassNumber: the Nice international classification number for the use to which the first-use date pertains.
  • NiceClassNumber : another reporting of the Nice international class number.
  • FirstUseDateNumber: the date of first use as supplied by the applicant and reported by the PTO.
  • FirstUseInCommerceDate: the date of first use in commerce as supplied by the applicant and reported by the PTO.

FirstUseDateNumber and FirstUseInCommerceDate are ordinarily identical; but may differ if different dates were claimed by the applicant (for example, if a mark was initially used only locally, not giving rise to federal protection and later expended to interstate commerce, the local use may be reported in FirstUseDateNumber and the later interstate use reported as FirstUseInCommerceDate ).

Externalize certain metadata to JSON file

Metadata pertaining to this project as a whole are now duplicated in a file external to the XSL transform files, Plumage-XSLT-metadata.json. This enables a Plumage implementation to report such metadata without making a TSDR call to the PTO.

For example, this enables querying MetaInfoXSLTVersion to determine what version of Plumage XSL transforms are being used, without requiring fetching the data and attempting the transform.

This is also a first step toward removing as much as possible of the (somewhat brittle) special-string occurrences in the XSL files themselves.

Changes to metadata key names

The key names for metadata are changed in this release. Metadata keys previously all began with "DiagnosticInfo", which was a bit of a misnomer; most were not diagnostic in nature, although the idea was to be able to document and report exactly what was being used to assist in diagnosing and resolving bugs. The key names now all begin with "MetaInfo".

In addition, the key names are further organized and named to indicate what area of the system they pertain to:

  • MetaInfoXSLT... keys provide information about the XSLT transform (i.e, this Plumage project). For example, MetaInfoXSLTLicense indicates the open-source license under which the project is offered.
  • MetaInfoLibrary... keys provide information about the library or other project that uses the Plumage XSLTs. These are not populated in this project and are left to be provided by the library consuming Plumage. For example, in the Python Plumage-py project, MetaInfoLibraryName is reported as "Plumage-py"; in the C# Plumage-dotnet project, it is reported as "Plumage-dotnet".
  • MetaInfoExec... keys provide information about the execution environment, including each specific getTSDRInfo() call to TSDR. For example, MetaInfoExecExecutionDateTime provides the date and time of the getTSDRInfo() call; MetaInfoExecXSLProcessorVersion provides information about the XSL processor that is used to transform the PTO-supplied XML into more easily processable comma-separated value strings.

Minor changes

This release includes a number of minor changes. many of which will be transparent to the user.

  • Final line in CSV now terminates in NEWLINE. This is consistent with CSV treatment in major spreadsheet programs (e.g. LibreOffice, Apache OpenOffice & Microsoft Excel). Note this requires the "XSL relaxation" feature that was added in Plumage-py 1.2.0 and Plumage-dotnet 1.2.0.
  • The use of the <xsl:text/> tag (previously used to prevent the insertion of blank lines, back when blank lines caused problems prior to Plumage-py/Plumage-dotnet 1.2.0) has been trimmed back, to keep the XSL files more readable.
  • Change namespace IDs in ST66 to match PTO XML files ("default" for the unnamed one). This makes it less confusing for users to modify the files to add additional fields they may require. See discussion here.
  • Non-repeating staff information (StaffName and StaffOfficialTitle) was previously extracted prior to some repeating information (such as assignment lists). In the dictionary, this makes no difference, but it's cleaner to order the single entries prior to repeating entries in the CSV.
  • Previously, when the PTO XML file did not report staffing information (likely where no staff has yet been assigned, or prosecution is no longer actively underway) or international application and registration numbers (i.e., when there was no corresponding international proceeding), that data ( StaffName, StaffOfficialTitle, InternationalApplicationNumber, InternationalRegistrationNumber) was reported as blank. This was contrary to the normal practice of leaving out data not reported by the PTO. Now it is no longer reported.
  • There are some additional (rudimentary) unit tests, in particular for the newly added fields.

Additional comments

This is release 1.4.0. The previous release was 1.1.1. There was no 1.2.x or 1.3.x. This release numbering is coordinated with the pending Plumage-py V1.4.0 and Plumage-dotnet V1.4.0.