WIPO Sequence Validatorの操作マニュアル

WIPO Sequence Validator(以下「Validator」または「ツール」と呼ぶ)の主な目的は、WIPO ST.26形式のXMLファイルを検証して、WIPO Standard ST.26に準拠していることを確認するためのWebサービスを知的財産庁(IPO)に提供することです。WIPO Sequenceデスクトップアプリケーションを使用して作成された配列表はWIPO ST.26に準拠しますが、XMLを作成するにあたって、ユーザーは自身が最適と考えるツールを使用することができます。

この文書は、以下のセクションで詳述するツールのビルド、デプロイ、設定、およびファイルコンシューマーシステムについて説明することを目的としています。

このマニュアルは、バージョン3.0.0に対して有効です。

1. ワークフロー

このツールは、次の4つのユースケースを提供します。

  1. WIPO ST.26ファイルの検証
  2. 実行中の検証のステータスのリクエスト
  3. 設定ファイルの更新(IPO管理者のみ)
  4. 検証プロセス完了時の、プロセスの結果を使用したコールバックエンドポイントの呼び出し

注:コールバックエンドポイントはValidatorではカバーしていません。 エンドポイントの確立は、このサービスを展開してセットアップする知的財産庁が行ってください。

WIPO ST.26配列表の検証において、このツールは フォルダ構造にあるXMLインスタンスを使用し、検証プロセスを実行し、検証結果を含む検証レポートを生成します。 必要に応じて、コールバックエンドポイントを呼び出して、この検証レポートを返送します。

Validatorの主なワークフローは次の通りです。

  • 各IPO ITシステムでは、XMLファイルを、デフォルトの[未処理]フォルダまたはリクエストで指定されたフォルダに、保存します。
  • IPOシステムは、ファイルの検証を要求するHTTP Postを起動します。設定に応じて、IPOシステムはファイルの「完全」検証または「形式」検証を要求できます。 「形式」検証プロセスでは、ST.26ファイルがXMLファイルであるかをチェックし、ST.26 DTDに対してファイルを検証します。 「完全」検証プロセスでは、ST.26の内容に基づくビジネス検証ルールに対してST.26ファイルを検証し、「形式」検証プロセスも実行します。 

注:「形式」検証プロセスは同期して実行することができるため、オンライン出願にのみ「形式」検証プロセスを使用することを推奨します。「完全」検証は相当な時間を要するため、バッチ処理に推奨されます。 

  • 検証が完了すると、応答が提供され、ファイルが「形式」検証を通過したか、またIPO ITシステムが「完全」検証を選択した場合には、ビジネスルールの検証が正しく開始されたか、が示されます。
  • Validatorは、「完全」検証を実行している場合、[未処理]フォルダからXMLファイルを取得し、ビジネスルール検証プロセスを開始して、次の処理を実行します。
  • Validatorは、指定された[出力]フォルダにXMLレポートファイル(「検証レポート」)を作成し、検証済みWIPO ST.26 XMLファイルを[処理済み]に移します。
  • ビジネスルール検証プロセスが完了すると、コールバックエンドポイントがValidatorから呼び出され(設定されている場合)、検証プロセスに関する追加情報がリクエストに追加されます。リクエストの構造とサンプルデータを、後述のセクション2.2で示しています。
  • コールバックエンドポイントは、レスポンスに空または成功コードを返します(エラーなし)。[注:このステップは、外部Webサービスが使用可能にされており、Validatorで呼び出しが設定されている場合にのみ実行されます。] Validatorとコールバックエンドポイントとの接続も必要です。 前述のように、外部WebサービスはValidatorの一部を構成するものではなく、以下に定める契約に従って知的財産庁によって展開、設定されるものです。
  • IPOシステムは、[レポート]フォルダから検証レポートを取得できます。

2. デプロイ

ステップ1:形式を選択する

前述のように、Validatorは、Webサービスとして実行できるJARファイルと、TomcatサーバーにデプロイできるWARファイルの2つのバイナリ形式のうち、いずれかとして提供されます。 知的財産庁がValidatorをデプロイするインフラストラクチャの種類に応じて、IPOはいずれか一方のバイナリの種類を他方よりも優先して選択します。

Validatorが提供される2つのバイナリは次の通りです。

  • バイナリSpringBoot JAR:このバイナリは実行可能なJARファイルです。これには、Java 17をインストールする必要があります。
  • Warパッケージバイナリ:このバイナリは、サーブレットコンテナにデプロイされるものです。Tomcat 10等の、Spring Boot 3.1.0およびServlet Spec 4.0.1と互換性のあるアプリケーションサーバーが必要です。

次のセクションでは、Spring Bootアプリケーションとして、またはJava アプリケーションサーバー内のWARとしてValidatorをデプロイすることについて詳述します。

Spring Boot JARには組み込みサーバーが含まれており、別のサーバーを必要とすることなくValidator APIをデプロイできます。これにより、インフラストラクチャレベルでの設定とデプロイが大幅に簡素化されます。

組み込みサーバーを実行するには、Java 17がすでにサーバーにインストールされている状態で次のコマンドを実行する必要があります。

java -jar wipo-sequence-validator.jar

JavaはUTF-8の使用を保証するものではないため、システムプロパティ[file.encoding]を[UTF-8]に設定してください。デフォルトでは、サーバーはポート8080で稼働します。ポートを変更するには、“--server.port”コマンドラインオプションを次に示すように追加する必要があります。以下を含めることで実行できます:

java -D"file.encoding=UTF-8" -jar wipo-sequence-validator.jar –-server.port=<port-number>

Validator APIは、JARファイルをデプロイした後、Swagger UI からアクセスでき、IPOは次の変更を行う必要があります。host-nameを、実際のサーバーのホストネームに置き換える必要があります。

 http://[host-name]:8080/wipo-sequence-validator/swagger-ui/index.html

Validator APIには、次のエンドポイントでアクセスできます。

  • GETメソッド: 
    http://[host-name]:8080/wipo-sequence-validator/api/v2.0/status/validationId
  • POSTメソッド: 
    http://[host-name]:8080/wipo-sequence-validator/api/v2.0/validate

デフォルトでは、ValidatorはJava仮想マシン(JVM)のデフォルトメモリ設定を使用します。デフォルトの最大ヒープサイズは、使用可能な物理メモリの4分の1です。最大ヒープサイズを変更するには、コマンドラインを使用して実行する際に“-Xmx”オプションを使用してください。

java -D"file.encoding=UTF-8"-Xmx[size]-jar wipo-sequence-validator.jar

Validatorは、例えばオペレーティングシステムの起動時にその実行をサポートするために、オペレーティングシステムによって管理されるサービスとしてインストールすることもできます。 WIPO Sequenceがサポートするすべてのプラットフォーム(Windows、Linux、Mac OS)でこのようにSpring Boot JARファイルを設定することができます。

以下のガイダンスでは、各オペレーティングシステムでJARファイルを実行するシステムサービスの作成方法について詳しく説明します。 また、サービスの様々なオプションとアプリケーションの実行を設定する方法についての情報も提供します。

提供されるバイナリの2番目のタイプでは、WARパッケージをApache Tomcat 10などの既存のJavaアプリケーションサーバーにデプロイできます。注: サーブレット 4.0.1 と互換性のあるコンテナが必要です。

以下の手順は、Tomcatアプリケーションサーバー用です。ここで

$TOMCAT_ROOT

はTomcatサーバーのルートフォルダを指しており、この値はファイルパスに適した値に置き換える必要があります。

  • サーバーの停止:
    $TOMCAT_ROOT\bin\catalina.bat stop
  • WARのコピー
    $TOMCAT_ROOT\webapps\wipo-sequence-validator.war
  • サーバーの停止:
    $TOMCAT_ROOT\bin\catalina.bat start
注:JavaはUTF-8の使用を保証するものではないため、アプリケーションサーバーの起動時にシステムプロパティfile.encodingをUTF-8に設定してください。これは、以下を含めることで実行することができます:-D"file.encoding=UTF-8"

前述のように、Validator APIにはSwagger UIを介してアクセスできます。

http://host-name:8080/wipo-sequence-validator/swagger-ui.html

Validator API は、以下のエンドポイントでアクセスでき、host-name は、サーバーの実際のホスト名に置き換える必要があります。

  • GETメソッド:
    http://[host-name]:8080/wipo-sequence-validator/api/v2.0/status/validationId
  • POSTメソッド:
    http://[host-name]:8080/wipo-sequence-validator/api/v2.0/validate 

デフォルトでは、サーバーはポート8080で稼働します。別のポートに変更するには、以下に記載の手順に従ってTomcat設定ファイルを変更する必要があります。

https://tomcat.apache.org/tomcat-10.0-doc/config/index.html

デフォルトでは、ValidatorはJVMのデフォルトのメモリ設定を使用します。デフォルトの最大ヒープサイズは、使用可能な物理メモリの4分の1です。

最大ヒープサイズを変更するには、上記の個所で示したように、コマンドラインを使用して実行するときに-Xmxオプションを使用してください。

ステップ2:フォルダシステムを確立する

Validatorが使用するファイルシステムの構造は、次の5つの主要なフォルダで構成されています。

  • [未処理]フォルダ:これは、IPOが検証のためにWIPO ST.26ファイルを入れるローカルフォルダです。
  • [プロセス]フォルダ:これは、[未処理]内のファイルが、処理中に一時的に通過するローカルフォルダです。このフォルダは2つのサブフォルダを含みます:
    • [完全検証]フォルダ:完全検証待ちのファイルを格納します
    • [形式検証]フォルダ:形式検証待ちのファイルを格納します
  • [処理済み]フォルダ:検証が完了すると、アプリケーションはこのローカルフォルダに WIPO ST.26ファイルのソースを格納します。
  • [レポート]フォルダ:検証結果が検証レポートファイルに保存されるローカルフォルダです。
  • [パラメータ]フォルダ:非同期ディープ検証プロセスのパラメータを指定するために、検証リクエストのすべての検証パラメータを含むJSON(.json)ファイルが置かれているローカルフォルダです。

ファイルシステム構造の例を次に示します。

フォルダ構造の設定例

ステップ3:テスト

Validator サービスのテストは、 postman を使用して次の手順で実行できます。

    • postman アプリケーションを開き、新しいリクエストを作成します
    • リクエスト本体の情報を追加します: postman_testing
    • Sendをクリックすると、次のような応答が得られます。 postman_response

3.リクエスト

コールバックエンドポイントリクエスト

検証リクエストの終了後、WIPO Sequence Validatorは、コールバックエンドポイントへのリクエストに必要なパラメータを含むJSONファイルを生成します。このリクエストは、ファイルの場所と検証プロセスの詳細を示す次のパラメータを含みます。

{ "currentApplicationNumber": "string", "currentSEQLVersionNumber": "string", "patentApplicationNumber": "string", "seqlInputLocation": "string", "verificationReportOutputPath": "C:/temp/st26/reports/", "nameFile": "valid2Warning.xml", "type": "FULL" }

検証リクエストの“seqlInputLocation”フィールドを、検証するXML配列表のパスを示すように設定する必要があります。知的財産庁がこのフィールドを空のままにした場合、ツールは、デフォルトの[未処理]フォルダにあるファイル名「nameFile」のXMLファイルを検証しようとします。「nameFile」パラメータで、検証する配列表ファイルを識別します。

リクエスト内の“verificationReportOutputPath”は、ツールによって作成された検証レポート(.xml)のファイルの場所を示します。ユーザーがこのフィールドを空白のままにしたり、無効なファイルパスを入力した場合、検証レポートはデフォルトの[レポート]フォルダに保存されます。

プロパティ「api.URL」が設定されている場合、Validatorは、指定されたURLのエンドポイントに検証結果を送信しようとします。

Validatorと通信するには、コールバックエンドポイントがこのWebサービス契約(YAML)に準拠していなければなりません。

さらに、リクエストは次の構造を持つJSONオブジェクトである必要があります。

{ "currentApplicationNumber": "string", "currentSEQLVersionNumber": "string", "elapsedTime": 0, "endTime": "string", "errorSummary": [ { "dataElement": "string", "detectedSequence": "string", "index": 0, "key": "string", "locmessage": "string", "params": { "additionalProp1": "string", "additionalProp2": "string", "additionalProp3": "string" }, "paramsForXML": [ { "key": "string", "value": "string" } ], "reportValue": "string", "sequenceIDNumber": "string", "type": "string" } ], "httpStatus": "string", "parentApplicationNumber": "string", "parentSEQLVersionNumber": "string", "processID": "string", "seqIDQuantity": 0, "seqInputQuantity": 0, "seqlType": "string", "startTime": "string", "totalErrorQuantity": 0, "totalWarningQuantity": 0, "verificationReportOutputPath": "string"

これは、Validatorに呼び出しを行った外部エンドポイントに送信されるJSONインスタンスの例です。

{ "processID": "1608194222169dvVE", "seqlType": "ST.26", "httpStatus": "SUCCESS", "currentApplicationNumber": "string", "currentSEQLVersionNumber": "string", "parentApplicationNumber": "string", "parentSEQLVersionNumber": "string", "verificationReportOutputPath": "C:/temp/report.xml", "startTime": "2020-12-17 09:36:54.000000", "endTime": "2020-12-17 09:37:26.000607", "elapsedTime": 32607, "totalWarningQuantity": 1, "totalErrorQuantity": 2, "seqInputQuantity": 3, "seqIDQuantity": 3, "errorSummary": [ { "index": 0, "reportValue": "", "type": "WARNING", "params":com.wipo.st26.ipotool.models.ServiceRequest@5887858, "key": "X_EARLIEST_PRIO_APPLICATION_ID_MISSING", "locmessage": "Earliest priority application information is absent. It must be provided when a priority claim is made to an earlier application.", "detectedSequence": "", "dataElement": "PROPERTY_NAMES.EARLIEST_PRIORITY_APPLICATION" }, { "index": 0, "reportValue": "-", "type": "ERROR", "params": {}, "key": "INVENTION_TITLE_MISSING", "locmessage": "The invention title is missing. At least one invention title must be entered.", "detectedSequence": "", "dataElement": "PROPERTY_NAMES.INVENTION_TITLE_BAG" }, { "index": 1, "reportValue": "-", "type": "ERROR", "params": {}, "key": "INVENTION_TITLE_MISSING", "locmessage": "The invention title is missing. At least one invention title must be entered.", "detectedSequence": "", "dataElement": "PROPERTY_NAMES.INVENTION_TITLE_BAG" } ] }

4.レポート

検証レポート

WIPO Sequenceによって生成される検証レポートはXML形式であり、必要に応じて、WIPO Sequenceで使用されているものと同じスタイルシートを使用したHTML形式も可能です。ルートレベルで示される属性は:

  • 'applicationNumberText':この配列表に関連付けられたアプリケーション
  • 'productionDate':検証が行われた日付
  • 'filingDate':出願日
  • 'softwareBuildVersion':検証に使用されるValidatorのバージョン
  • 'softwareVersion':配列表の作成に使用されるWIPO Sequenceのバージョン
  • 'sourceFileName':配列表XMLインスタンスの名称

検証レポートの作成に使用されるテンプレート (XSD) :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <VerificationReport productionDate="YYYY-MM-DD" sourceFileName="[ST.26 filename]"> <VerificationMessageBag> <VerificationMessage> <Severity>[ERROR | WARN | XML_WARN | XML_ERROR]</Severity> <DataElement>[ST.26 element]</DataElement> <DetectedSequence>[Sequence ID]</DetectedSequence> <DetectedValue>[value]</DetectedValue> <MessageKey>[Message key]</MessageKey> <ParameterBag> <Parameter key="param key">Param value</Parameter> <ParameterBag> <LocalizedMessage> [Localized message] </LocalizedMessage> </VerificationMessage> ... </VerificationMessageBag> </VerificationReport>

示された重大度に関しては、以下の分類に留意してください。

  • ERROR - 「完全」検証中に返されるエラー
  • WARNING - 「完全」検証中に返される警告
  • XML_ERROR - 「形式」検証中に返されるエラー
  • XML_WARN - 「形式」検証中に返される警告

検証後、いずれか一方、または両方の形式で生成された検証レポートは、verificationReportOutputPathにあり、デフォルトでは以下の場所にあります:

./temp/st26/reports/[verificationID]/

XML 形式の検証レポートの例は、以下の 関連情報 に記載されています。

5.設定

デフォルト設定

Validatorは、プロパティファイルを使用して設定されます。デフォルトの値は、*公開されたapplication.ymlにあります。

ここで示したパラメータの値を変更するには、代替のapplication.ymlファイルを使用してください。Spring Bootのドキュメンテーションに詳述されているように、いくつかのオプションがあります

また、設定ファイルのパスおよび名前は、ツールの起動時にコマンドラインにパラメータを設定することによって指定できます。

  • JARデプロイの場合:
    java  -jar -Dspring.config.location=<PATH_TO_FILE>  wipo-sequence-validator.jar
  • TomcatでのWARデプロイの場合は、CATALINA_OPTSに次のエントリを追加する必要があります。
    • Windows:
      set SPRING_CONFIG_ADDITIONAL-LOCATION=-Dspring.config.location=<PATH_TO_FILE>
    • Linux :
      export SPRING_CONFIG_ADDITIONAL-LOCATION="-Dspring.config.location=<PATH_TO_FILE>

WARデプロイを使用する場合、新しいapplication.ymlファイルをウェブアプリケーションの[WEB-INF/classes]フォルダにコピーすることもできます。

application.ymlファイルでは、HTML レポートの作成を有効または無効にすることができます。値を[true]に設定することでレポート作成を有効にし、値を[false]に設定することで無効にします。このレポートの内容は、ServiceRequestのerrorSummaryフィールド内のコールバックエンドポイントに送信されます。

検証ルールVXQV_49

ユーザーがルールVXQV_49を有効にしたい場合は、optionalEnglishQualifierValueの値を[true]に設定し、optionalRuleTypeの値をERRORまたはWARNINGに更新することで、ルールの重大度を設定できます。

VXQV_49のオン/オフ切り替えのための環境設定

Healthpoint (正常性)

Validator は、アプリケーションの正常性に関する基本情報を提供する /health エンドポイントを実装しています。healthエンドポイントを調べるには、次の URL を開いて下さい

http://localhost:8080/wipo-sequence-validator/actuator/health

エンドポイントには、次の情報が表示されます。

  • アプリケーションが正常であれば、ステータスはUPです。
  • データベースとの接続やディスク容量の不足などの問題によりアプリケーションに問題が生じると、DOWNと表示されます。

health エンドポイントは、単純なUPまたはDOWNステータスのみを表示します。application.yml ファイルの次のプロパティは、正常性チェックプロセスの一部としてチェックされた全ての正常性インジケータのステータスを含む、全ての詳細を提供します。

アプリケーションのYML ファイルにおけるヘルスケースエンドポイントの設定

health エンドポイントに、正常性チェックプロセスの一部として実行されるDiskSpaceHealthIndicatorの詳細が含まれるようになりました。

health エンドポイントは以下のように表示されます

healthエンドポイントの出力
新しいapplication.ymlファイルで設定されたプロパティを適用するには、Validatorを再起動する必要があります。

ローカライズされたメッセージ

Validatorは、例えば検証レポートで、PCTの公式の10の言語(アラビア語、中国語、英語、フランス語、ドイツ語、ポルトガル語、日本語、韓国語、ロシア語、スペイン語)にローカライズされたメッセージを提示することができます。

デフォルトでは、メッセージは英語で提示されます。メッセージを他の言語で提示するようにValidatorを設定するには、application.yml ファイルのvalidator_localeパラメータを適切な言語コードに設定してください。

ユーザー生物名

知的財産庁は、既定の初期生物名リストに含まれない独自のユーザー生物名を含むために、custom_organism.jsonという名前の新しいファイルを[alternativeResourceBasePath]フォルダ内に作成することによってユーザー生物のリストを提供することができます。このファイルは、次の構造である必要があります。

注:既定の生物名リストとは異なり、すべての生物をアルファベットの各文字ごとにJSONファイルに分けるのではなく、1つのJSONファイルに含めます。

他のDTDバージョン

デフォルトでは、Validatorは、最新バージョンの ST.26 DTD を参照します。WIPO Sequence Validatorの現在のバージョンは、WIPO ST.26 DTDのバージョン1.3に基づいています。ST.26 DTDの最新バージョンのコピーは、ソースコードの[/src/main/resources]フォルダにあるValidatorライブラリに含まれています(これはJARまたはWARファイル内で参照される定義されたファイルパスです)。これは、次に示すように、同じフォルダ内の「catalog.xml」ファイルで参照されています。

検証時には、XMLファイルのDOCTYPE宣言で設定されたDTDのバージョンが使用されます。まず、使用するDTDファイルの場所を識別するために、「publicId」が使用されます。「publicId」がカタログに含まれていない場合、システムは、Javaプロセスが実行されているルートフォルダ内のDTDファイルの検索を試みます。

古いバージョンのST.26 DTDを参照するWIPO ST.26ファイルを検証できるようにするには、このST.26 DTDファイルをValidatorで使用できるようにして、適切な検証を可能にする必要があります。 これを実行するには、2つの代替アプローチがあります。

    1. JARファイルを解凍し、追加または代替ST.26 DTDファイルへの参照を[src/main/resources]フォルダに含めます。“catalog.xml”ファイルを変更し、追加のST.26 DTDの新しいエントリを追加するか、既存のエントリを編集します。 以下はその例です。
catalog.xmlファイルの例
  1. JARファイルを変更する代わりに、次の手順に従う必要があります:
    (i)catalog.xmlおよびすべてのDTDをローカルフォルダにコピーします;
    (ii)そして、catalog.xmlを調整し、追加のST.26 DTDへの参照を含めます;そのうえで、
    (iii)起動時に次のJavaシステムプロパティを設定します: xml.catalog.files=<path_to_catalog.xml>

Windows用のTomcatでは、次の環境変数を追加することによって行うことができます:

環境変数の設定
重要:異なるバージョンのST.26 DTDを含めると、参照されたST.26 DTDに対するXMLファイルの「形式」検証が可能になりますが、「完全」検証では、検証ルールを実装するためにソースコードの変更が必要になる場合があります。したがって、複数のDTDの使用は、「形式」検証を行う場合にのみ使用することが推奨されます。

6.関連情報

以下の関連情報を、知的財産庁において適宜参照してください。