Code for History

"Code for History"はIT技術を歴史学上の問題の解決に使うコミュニティです。強調したいのは、我々にとってIT技術は「手段」であって「目的」ではありません。「目的」は歴史学上の問題を解決する事であって、必要であればITでない手段も活用します。常に最優先なのは、問題を解決することです。

Stroly社の特許の価値を検証してみる

Maplatの基本原理の申請中特許ですが、無事公開されていました(特開2019-91147)。
6月半ばには公開されていたというのに、審査請求しないといけないのに弁理士さんちゃんとチェックしといてくれよ...週1回くらいはチェックする言うとったやんけ...と言うわけで審査はまだ請求してないのでこれからです。
この記念に、比較等しながら、Stroly社の特許の価値の検証でもやってみようかなと思って記事を書きます。

まず、Strolyの主たる特許は2つあります。
これに先行するほとんどビジネスモデル的な特許もありますが、座標の計算方法や具体的な機能の作り込みに言及してるのはこの2つなので、この2つの価値を検証していきたいと思います。

  • 特許5681920号 - Strolyの経緯度から絵地図座標方向への座標変換の手法を定義した特許
  • 特許5810411号 - Strolyのその他の技術全般、逆方向の変換、方角と縮尺を一致させる変換、連続変換時に全単射変換に見せかける処理、不正確な地図同士の間の変換などを全般的に定義した特許

現行のStroly社の実装を特許で守っていない特許5681920号

まず、Strolyのもっとも基本的な特許である、経緯度から絵地図座標方向への座標変換の手法を定義した特許について見てみます。
この特許の本文を読み進めてみましょう。

f:id:kochizufan:20190711005355p:plain
特許5681920号より引用

ご覧の通り、ここでは正確な地図の方の座標が「絶対位置座標」と言う名称で定義されており、そしてその後に、「絶対位置座標とは緯度経度系である」ことが定義されています。
当然のことながら、緯度経度系というのは直角座標系ではなく極座標系です。
ということは、その後の幾何学計算も極座標であることを前提に計算式がたてられないといけないのですが、この特許の中では、直角座標を元にした幾何学計算で式が綴られます。

f:id:kochizufan:20190711010545p:plain
特許5681920号より引用

ぶっちゃけこれだけでも意味のない計算をしているということで特許無効だと言ってもよさそうなものです。
恐ろしいことに、2009年に私がStroly社にジョインするまでのプログラム実装では、本当に「経緯度の座標値を使って3平方の定理で距離を求める」など、極座標値で直角座標の幾何学計算を行なっており、完全に意味のない計算を行なっていました。

それを意味のある計算にするために、絶対位置座標の値として直角座標であるWebメルカトル座標値を用いるように変更したのが私です*1
ところがそのために、特許では「絶対位置座標 = 緯度経度」と定義されてそれを元にした数式も記されているにも関わらず、実際の実装は「絶対位置座標 = メルカトル座標」となっており、特許と比較して「緯度経度をメルカトル座標に変換する」という余分な計算手順が入っています。
つまり、現行の実装は特許に記された通りになっておらず、この特許で守られていない、という問題が存在します。

まとめると、特許5681920号には、

  • 極座標を明言しつつ直角座標系を元にした式が記載されており、無効の可能性もある
  • 仮に有効だとしても、現行の実装は特許に従わない手順になっており、守られていない可能性もある

という問題が存在していると言えます。

既に陳腐化してしまっている特許5681920号

上記な問題点があったとしても、特許5681920号が有効でさらに実装も守られていると、飽くまで仮に、しましょう。
しかし、特許5681920号は既にそれを上回る技術で陳腐化してしまっています。

以前から何度か記事に挙げている、MaplatがStrolyに優る部分劣る部分のマトリクスを再掲します。

f:id:kochizufan:20190707001822p:plain
最新のStrolyとMaplatの長所短所比較

このうち、特許5681920号と比較できるような性能要件は、

  • 1対1全単射変換 - Maplat:できる(特開2019-91147の内容)、Stroly:できない
  • 線を線に変換 - Maplat:できる(特許出願は未定)、Stroly;できない

ですが、これらでStrolyの特許は劣っており、既に陳腐化しています。

しかしながら、全単射変換できるかとか、線を線に変換できるかとか、そんなに大切な性能なのでしょうか。
もし、それらが大切な性能ではないなら、別にStrolyが劣っていても全然構わないかもしれません。
では実際にはどうなのか、「Stroly自身がどう考えているか」を見てみましょう。
Stroly側の2つ目の特許、特許5810411号の中の記述を見てみます。

f:id:kochizufan:20190711013706p:plain
特許5810411号より引用

はい、なんと書いてありますか。
この特許5810411号は特許5681920号を前提にした特許なので、ここでの説明は特許5681920号の性能についてですが、ある座標Xa, Yaを順変換Ωと逆変換ωで連続変換してXaΩω, YaΩωを求めた時、「(Xa, Ya) と (XaΩω, YaΩω)が一緒であることは保証されない」と書いてありますね。
そしてそこからの続きは、「特許5681920号では保証されないけれど、保証されているかのように見せかけるための技術」をつらつらと書いて、その内容で特許を取ってますね。
はっきり言うと、Maplatが実現した全単射変換機能は、Strolyができないと自身の特許の中で明言し、なんちゃって機能でごまかした、「(Xa, Ya) と (XaΩω, YaΩω)が一緒であることを保証する」機能です。
つまり、「Maplatができること」を、Strolyは自身の特許のなかで「やりたいけどできないこと」として明言しており、つまりは自らMaplatに対する負けを明言していることになります。
このくらい酷く、Strolyの特許はいまや完全に陳腐化しています。

特許を保持しているといいながら、実装で再現する力がなくなってしまっている特許5810411号

続いて、その2つ目の特許5810411号の内容について精査してみましょう。
この特許は広範な特許で、Strolyの特許技術のうち、特許5681920号がカバーする単方向の座標変換を除く、ほぼ全ての技術を網羅しています。
ちなみに、発明者は私の単独名特許です(特許を行使する権利はStroly社にありますが)。

余談ですが、Strolyの特許も単方向座標変換以外は私の特許、既にStrolyの性能を超えているMaplatも当然全て私の頭の中から出たものです。
従ってこの地球上に存在する古地図を歪ませずに扱う技術のうち、9割以上は私の頭の中から出ています。
この優位性はStrolyが、どれだけ世の中の普通の意味で優秀な人材、pythonの達人や機械学習の博士や一部上場企業の開発部長やを集めようが、突き崩すことはできません。
今後古地図を扱う技術について、Maplatが様々なブレークスルーを産むことはあれ、Strolyから画期的な新技術が生まれてくることはほぼ100%あり得ません*2

閑話休題、特許5810411号の内容に戻ります。
今回、この特許がカバーする広範な機能の中で、「方角と縮尺を一致させる変換」について注目してみます。

f:id:kochizufan:20190711020241p:plain
特許5810411号より引用

この機能は、複数の地図を切り替えた際に、中心点の位置だけでなく、地図全体の縮尺や方角も大まかに合わせる機能です。
Strolyは当初中心点の位置合わせや、GPS現在地を青い点で古地図上への表示だけしかできない技術でしたが、それだと現地に行って現在地がGPSで表示された時にしかあまり面白くありません。
なぜなら、古地図には北が上でない地図もたくさんありますし、縮尺も当然現代地図とは違います、すると、中心点だけ一致しててもその周辺の状況が古地図と現代地図の間で重ならないため、ユーザにとっては古地図と現代地図のどこがどう対応しているのかピンと来ず、地図を切り替えても楽しくないからです。
地図を切り替えることが面白いと思ってもらえないならば、Strolyは単なる古地図画像ビューアにしかなりません。
現地に行かなくても地図を切り替えるのが面白いと思ってもらえて初めて、Strolyは何時見ても楽しいソリューションになり得るわけです。
そう言う議論があった上で、実現したのがこの特許の「方角と縮尺を一致させる変換」になります。

では、今現在のStrolyで、この機能がどのように動作しているか試してみましょう。
検証手順は下記の通りです。

  1. 以下のStroly URLにアクセスする stroly.com
  2. 右下のf:id:kochizufan:20190711021558p:plainボタンで地図をOSMに切り替える
  3. 古地図の時の海岸線とOSMの海岸線が全く合わない!

全く合わない両者の海岸線

これは正確に説明すると、「方角と縮尺を一致させる変換」のうち、方角を合わせる機能は動作しているが縮尺を合わせる機能がずれてしまっているために起こってしまっています。
このバグについては、昨年(2018年)11月にStrolyの開発担当に通知済みですが、もう半年にわたり修正されていません。
おそらく、特許の動作原理がわかる人間がもう中に誰もいないので、直し方もわからなくなっているものと思います*3

正直、投資家に対する背信的技術経営状況と行っても過言じゃないのではと思える

これは正直、技術経営的に相当にまずい状況じゃないかと思います。
Strolyはこれまでに5億近く資金を調達してきていますが、その資金を調達するに当たっては、VCにこんな特許を押さえてきていますから、と説明して、自社に価値があると思わせて調達してきたはずです。
が、蓋を開けてみれば、物理的におかしなことを述べていて無効の恐れすらある特許や、現行のやり方を守っていなさそうな特許、完全に陳腐化していてライバル技術が実現している事を「できません!」と高らかに宣言している特許、そして特許でできると宣言しているのにそれを具体化する技術が失われている特許。
この状態を放置しているのって、技術経営の投資家に対する背信状態ではないのでしょうか。

また、過ぎた投資についてはもういいのだと仮にしましょう。
このような特許状況にあったと言うことは掴んでなかったのだ(それ自体問題ですが)、嘘をついたわけではない、と言い逃れられるとしましょう。
しかし、次の資金ショート時に次ステージの資金調達時、どのように投資家にプレゼンするのでしょうか?
私はもう、検証記事を書きました。
いくらこちらを無視していたとしても、年単位で後の次の資金調達までには、Strolyの経営陣に伝わるでしょう。
うちはまともな特許持ってないですけど、次の資金5億10億ください、とプレゼンするのでしょうか?
いや、1万歩譲って、この特許検証がStroly経営陣まで伝わらなかった、そんなわけないのだけど、伝わらなかったふりをして特許はまだ価値があると信じているふりができたとしましょう。
それでも、彼らは既にMaplatを知っています、これは嘘はつけません。
資金調達のプレゼンだと競合分析などもしないといけないと思いますが、どのようにプレゼンして資金調達するのでしょうか?
資金も調達してない個人のオープンソースプロジェクトなのに、うちより機能も性能も上な競合技術が存在しますが、次の資金5億10億ください、とプレゼンするのでしょうか?
果たしてどのようにしてStroly社が次の資金調達を乗り切るのか、なかなか楽しみではないでしょうか。

余談

この記事を書くために特許周りを漁っていて、Strolyが他に出した特許を見つけました。
Google Patentにまだ入ってなかったのでリンクが貼れませんが、特許6537702号です。

f:id:kochizufan:20190711025536p:plain
特許6537702号より引用

地図を処理する技術ではなく、地図DBからユーザのコンテキストにあった地図をリコメンドする機能のようです。
その手の技術についてStrolyが特許を出しているのは掴んでいたのですが、せいぜいユーザの現在地や注視点をベースにした周辺検索で、地図のサイズによって優先順位をつけるとか、その程度の話かと思っていたら、ユーザの人気度や口コミ評価なども加えてスコアリングする事を考えているようで、ちょっと思ってたのと違って面白いです。

が、ユーザの人気度とかによるスコアリングは、メディアとかを運営するレベルの事業者だけが視野に入れればいい話で、単に地図処理システムのユーザ利便性要件としては、現在地や注視点等の経緯度をベースにして、あとは今のユーザが注目している地図スケールにマッチする地図のサイズのコンテキスト等でソートできれば十分だと思います。
そう言った程度のことを考慮して地図DBから地図をソートして抜き出す手法は、このブログで過去に記事にして取り上げています。

blog.chizuburari.jp

この記事はStrolyが特許を出すはるか前の2012年に書かれた記事ですから、この記事に書かれた内容でのリコメンデーションロジックについては、もし仮に上記特許に何か抵触するような内容が書かれていたとしてもこちらがはるかに先ですから、ごちゃごちゃ言ってきたら特許不服請求もできますし、公知のオープンアイデアとして誰でも使ってもらえます。

*1:ここでGISに詳しい人ですと、そこでWebメルカトルにするのも間違いだ、UTMとか平面直角座標にすべきだったという人もいるでしょう。おっしゃる通りで、GIS的にはそれらの方がより正しいです。ただ、Strolyの場合は、またMaplatの場合も、切り替える先の正確な地図の方がWebメルカトルの地図なので、それにぴったり重なるように座標変換するという意味では同じ座標系を使うのが一番だろうということもあり、また全世界一律に使える簡単の意味もあって、Webメルカトルを採用しました。

*2:とはいえ、Strolyの最初の座標変換の特許5681920号は、私ではないStroly社独自の特許なので、古地図を歪めずに正確な地図と対応づけると言う発想だけはStrolyオリジナルで、Strolyに一時期在籍したMaplatはそれの真似をしている、と思われる人もいるかもしれません。これについては、確かに基本技術の特許は、Strolyの特許5681920号は私の特開2019-91147よりもはるかに前に出ており、特許の順番だけでいえばその通りとしか言いようがありません。また私自身、Stroly中に在籍した際に、同社の業務や社員とのディスカッションの中で必要性に気づいた古地図処理技術もあり、Strolyに大きな影響を受けたのは事実です。しかしながら、元々「古地図を歪めずに正確な地図と対応づけると言う発想」まで遡ると、私はStroly社に転籍する前から持っており、その当時から今のMaplatと同じ三角網で全単射変換を保証する形でそれを実現するアイデアを持っておりました。Strolyに合流する前のMapion社にいた時代から、(私の転職で立ち消えたものの)東京大学の有川先生と共に伊能図をそのままWeb地図にするプロジェクトを進めていましたし、それで三角網で座標変換する技術を実現するつもりでいました。ぞれができなかった理由は、こちらのQiitaの記事にも書いたように、三角網を計算するロジックを自分で書けなかったのが原因であり、それをやってくれるturf.jsが登場したおかげで、Maplatは急速に実装が進んだのです。turf.jsがなかった頃は私のアイデアは形にできなかったので、次善的に不十分な性能ながら既に古地図技術を実現していたStrolyに合流したのです。そして、三角網で全単射変換をするという私のアイデアはStroly社内で共有し、同社現CEOなどにも、将来のStrolyの基礎技術として差し替えられる予定の内諾を得ていました。つまり、Maplatとは、私がCEO達に騙されて退職に追い込まれなければ、Stroly2.0になることで同意を得ていた技術になります。

*3:つまりは、現地に行かなくても古地図を楽しめるようにするための機能が働かなくなってしまっていると言うことです。最近、Stroly Blogで、「部屋から出ずとも名所はめぐれる」と題した記事が公開されましたが、まさにその部屋から出ずに古地図を楽しむための技術をダメにしておいて何言ってんだ、と思っちゃいました。

© Code for History