J-Plat PatとExcelで描くバブルチャート

J-Plat Patで500件/回のCSV出力ができるようになったので、Excelでバブルチャートを描いてみた

任天堂の特許2858件(下図)を6~7回かけてCSVダウンロードして、Excelで集計、バブルチャートを描いてみる。

目指すグラフをイメージしてみると、上の「FI別」を縦軸、「公開年」を横軸、特許件数をバブルサイズにした,バブルチャート(下図)

① CSVダウロードしたデータを結合して、Execlシートを作成

② 公開年と分析対象のFIの有無(フラグ)を示す列を作成

公開年は、公開日のD列を参照するYEAR関数

分析対象のFIのフラグは、関数 =IF(ISERROR(FIND(O$1,$G2)),0,1)
FIND関数=対象のG列(FI)に検索文字列のO列(検索するA63)にみつかればその位置、みつからなければエラーになる
IF(ISERROR(FIND・・・),0,1)は、FIND関数がエラーなら 0、なければ 1
分析対象のFIの有無を示すフラグになる。
注:この例(FI全体を対象)に代えて、筆頭FIを対象にするのも一案

③ 入力した関数を最下行までコピーして、FI分析を完了

④ 公開年ごとにFIの件数を集計(ピボットテーブル)

⑤ 5年ごとに集計

ピボットテーブルをコピーして(10行~)、SUM関数を使って、5年ごとに件数を集計する(1~8行)
(横軸を公開年のままにするか、何年かごとに集計するかは、適宜調整)

⑥ 集計した表に「条件付き書式」を設定すると、バブルチャート風(?)の簡易的な見える化ができる

⑦ Excelでバブルチャートを描く

Excelのバブルチャートは、X, Y, Zの元データが必要。X, Yは数値で座標を示し、Zはバブルの大きさを表す。すべて数値で示す必要がある。

上のまとめ表を、
X=公開年(範囲に代えて代表年)
Y=FIを表示する位置(座標)。A63を最上、H05を最下にしたいのでそれに応じた数値を入力。
Z=集計した件数=バブルの大きさになる
の形に並べ直す。

並べ直したデータを元にして、バブルチャートを描く。

⑧ バブルチャートの書式を整える

「データ系列の書式」でバブルサイズを調整(ex.バブルが重ならないように)
「データラベルの書式」で「バブルサイズ」を表示

縦軸、横軸は、座標(数値)にしたので、元のFIを上書きする。
(たとえば、画像を作って重ねる)

できあがり!!

お化粧はあまり上手ではありませんが、何とか完成。

知財実務オンライン 2022/3/3

知財実務オンラインで紹介します。

   特許検索手法の見直し
~短時間でそれらしい特許をみつける手順~

【 YouTubeライブ 】

日時: 2022.3.3 18:30~20:00

https://m.youtube.com/watch?v=eAjKGUpla40

プレゼン資料: 20220303_ChizaiJitsumuOnline

検索手順を定型化することによって、試行錯誤を減らし、かけた時間・労力に見合った特許文献を抽出することを目指した、特許検索手法を紹介します。

「『折り畳みスマホ』の特許を探す」J-Plat Patを使った検索の実例付きです。

使い慣れた[選択入力]に代えて[論理式入力]を使った実例ですので、J-Plat Patの使い方をバージョンアップしたい方にもヒントになります。

セルフレジ特許訴訟Ⅳ

セルフレジ特許(特許第6469758号、特許第6541143号など)を有するアスタリスクがユニクロを運営するファーストリテーリングにを特許侵害で訴えた特許権侵害訴訟(セルフレジ特許訴訟 参照)に関連する裁判の判決が出たので報告する。(特許侵害訴訟そのものの判決ではない。)

訴訟の対象は、特許第6469758号の無効審判の審決である。この特許には請求項1~4があるが、審決では請求項3を除いて他の請求項が無効と判断された。(セルフレジ特許訴訟Ⅲ 参照) この審決に対して審決取消訴訟が提起され、今回、判決が言い渡された。

判決は、以下のように、無効とされた審決が取り消され、請求項1~4のすべてが有効であると判断されたもので、アスタリスクの全面勝利である。

 
請求項 内容 審決 判決
 物品に付されたRFタグから情報を読み取る据置式の読取装置であって、
 前記RFタグと交信するための電波を放射するアンテナと、
 上向きに開口した筺体内に設けられ、前記アンテナを収容し、前記物品を囲み、該物品よりも広い開口が上向きに形成されたシールド部と、を備え、
 前記筺体および前記シールド部が上向きに開口した状態で、前記RFタグから情報を読み取ることを特徴とする読取装置。
無効 有効
 前記アンテナよりも前記開口側に配されて、前記物品が載置される載置部を備えた請求項1に記載の読取装置。 無効 有効
 前記シールド部は、
  前記電波を吸収する電波吸収層と、
  前記電波吸収層の外側に形成され、前記電波を反射させる電波反射層と、
  を備えることを特徴とする請求項1または請求項2に記載の読取装置。
有効 有効

 請求項1~請求項3のいずれかに記載の読取装置と、
 前記読取装置と通信可能な情報提供装置と、を備え、
 前記情報提供装置は、
  前記物品に関する物品情報を前記RFタグの情報に対応付けて記憶する記憶部と、
  前記読取装置から前記RFタグの情報を取得する取得部と、
  取得した前記RFタグの情報に対応する前記物品情報を前記記憶部から抽出して提供すべき情報を生成する情報生成部と、
  生成された前記提供すべき情報を出力する出力部と、
  を備える情報提供システム。

無効 有効

なお、裁判は三審制なので、不服がある側(原告or被告)は、最高裁判所へ上訴することは可能であり、この判決はまだ確定してはいない。

もう少し詳しく解説する。

そもそもは、アスタリスクが自社の特許第6469758号を侵害しているとしてファーストリテーリング(ユニクロ)を訴えた特許権侵害訴訟(セルフレジ特許訴訟 参照)が始まりである。この訴訟は、まだ決着していない。

特許侵害訴訟は、被告の行為が原告の特許権を侵害しているかどうかを審理する侵害論と、侵害している場合にどの程度の損害が出ているかを審理する損害論の2つの段階に分かれるが、それ以前に特許自体が有効かどうかを争う段階を経ることが多い。そのために被告が原告の特許が無効であると主張して、特許庁へ無効審判を請求する。

本件でも、訴えられた側のファーストリテーリングが、特許第6469758号の無効を主張して、特許庁へ無効審判を請求した。この無効審判では、請求項1,2,4を無効とした一方、請求項3は有効と、審決された。請求項1,2,4についてはファーストリテーリングが勝ち、請求項3についてはアスタリスクの勝ちである。(セルフレジ特許訴訟Ⅲ 参照)

無効審判は、裁判の三審制の第一審に位置づけられているため、不服があれば高等裁判所(特許訴訟なので知財高裁が管轄する)へ審決取消訴訟を提起することができる。今回の判決は、この審決取消訴訟の判決である。

この事案では、ファーストリテーリングとアスタリスクのそれぞれが、自身が負けた側の審決に不服があるので、下の2件の審決取消訴訟が提起された。

事件番号 原告 被告 請求内容
令和2年(行ケ)
第10102号
アスタリスク ファースト
リテーリング
請求項1,2,4を無効とした審決の取消
令和2年(行ケ)
第10106号
ファースト
リテーリング
アスタリスク 請求項3を有効とした審決の取消

この2件の訴訟は併合されて、今回、両方について判決が言い渡されたものである。

アスタリスクが求めた「請求項1,2,4を無効とした審決の取消」は認められ、
ファーストリテーリングが求めた「請求項3を有効とした審決の取消」は棄却された。

ということで、請求項1~4のすべてが有効と認定され、アスタリスクの主張が全面的に認められたという判決である。

この判決に不服がある場合には、最高裁判所へ上訴することができる。一方、上訴を断念するなどしてこの判決が確定すると、請求項1~4のすべてが有効であることを前提として、そもそもの特許侵害訴訟が再開されるのである。

判決理由など、さらに詳しくは、いずれ解説したいが、判決文が191ページに上るため、今回はここまでとしたい。

(判決文は、裁判所の裁判例検索から入手することができる。( 裁判所判例検索 参照))

裁判所判例検索

「判決が出た」などの報道があると、詳しい情報を得るために判決文そのものにあたりたいことがある。

例えば、当ライブラリでも事例研究で紹介した「セルフレジ特許訴訟」にも判決が出た。「ファストリ、無人レジ特許訴訟で敗訴~知財高裁、商品識別巡り」(2021/5/21付け日経新聞)また、例えば、「LINE「ふるふる」機能、特許侵害で賠償命令(東京地裁)」(2021/5/20付け日経新聞)もある。

そんなときに使うのが「裁判所(COURT IN JAPAN)」である。

早速、原告名「アスタリスク」で検索してみた。

ところが、ヒットしたのは別件ばかり……

判決文の全文検索であるため、「アスタリスク」という語が使われていれば、会社名でなくてもヒットする。「株式会社アスタリスク」とすべきだった。

とは言え、やはりまだデータベースに収録されてはいないらいしい。

日付で検索してみると、

検索した2021/5/23時点で、最新は5/17付け最高裁判決、知財高裁の最新は5/13だった。判決から1~2週間でデータベースに収録されているようである。

(判決文が収録されたら、更新する予定)

[Python] 基礎-7 EXCELファイルの読み書き

1.一般的な流れ

“openpyxl”モジュールをインポート:import openpyxl
Workbookを開く:openpyxl.load_workbook(“ファイル名”)
シートオブジェクトを生成:sheet_obj = workbook.get_sheet_by_name(“シート名”)

2.セルの値の読み書き(cell(row=行番号, column=列番号).value)

〔 値の取り込み 〕
変数 = sheet_obj.cell(row=行番号, column=列番号).value

〔 値の書き込み 〕
sheet_obj.cell(row=行番号, column=列番号).value = 値

3.行/列 単位の扱い( iter_rows() / iter_cols() )

(iteration processにより)1行ごと(1列ごと)に、リストを生成する。

〔 使い方の例 〕

for row in sheet_obj.iter_rows():
for col in range(len(row)):
print(row[col])

4.フォントの指定

〔 流れ 〕
① Font関数をopenpyxlモジュールのstyleからインポート
  from openpyxl.styles import Font
② フォントの指定
  font = Font(name=’フォント名’, size=ポイント数, ・・・)
③ 指定したフォントをセルに指定
  sheet_obj.cell(row=line,column=col+1).font = font

パラメータ説明
nameフォント名/例:’游ゴシック’, ‘Arial’
sizeポイント数/例:「size=10」等整数値で指定
color色を16進6桁の文字列で指定
例:’FF0000’(赤), ’00FF00’(緑), ‘0000FF’(青)
underline下線を文字列で指定/例:’single’
bold太字/例:True, False
italic斜字/例:True, False

5.位置揃え

〔 流れ 〕
① Alignment関数をopenpyxlモジュールのstyleからインポート
  from openpyxl.styles import Alignment
② セルごとにAlignmentを指定
  sheet_obj.cell(row=line,column=col+1).alignment
  = Alignment(horizontal=’left’,
   vertical=’top’,
   wrapText=None)

〔 Alignment関数の引数とパラメータ 〕

    引数パラメータ説明
horizontal‘left’
‘center’
‘right’
左揃え
中央揃え
右揃え
vertical‘top’
‘center’
‘bottom’
上揃え
中央揃え
下揃え
textWrapTrue
None
セル内折り返しあり
指定せず

6.セルの表示形式

〔 流れ 〕
① numbersをopenpyxlモジュールのstyleからインポート
  from openpyxl.styles import numbers
② セルのフォーマットを指定
  sheet_obj.cell(row=line,column=col+1).number_format = 表示形式

    表示形式 説明
‘0.000’小数点以下3桁
#,##0′3桁ごとにカンマ区切り&小数点以下は非表示
‘yyyy/mm/dd’短い日付(西暦4桁/月/日)

7.セルの幅と高さ

〔 セル幅の指定 〕
sheet_obj.column_dimensions[’A’].width= セル幅

〔 セル高の指定 〕
sheet_obj.row_dimensions[1].height = セル高さ