喉から手を出してまで、UCが欲しがった”Coordinates"とは?


前回、UCグーグル契約書の4.7にある

Image Coordinates will only be provided (i) so long as University complies with the volume commitments set forth in Section 2.2

という部分を見たCoyleさんが、「もしUCが毎日3,000冊を提供するんだったら、GoogleはImage Coordinatesをあげる、って書いてあるけど、そもそもこの二つが比べられるなんて、おもろくない?」と言ってたことを紹介した。そして、この小さな歪みから、UCとグーグルが、それぞれ喉から手が出ちゃったくらい欲しがった("really, really, really wanted ")ものを、Coyleさんは予想した。


そんで、このCoyleさんの言ってることを正しく理解するためには、Image Coordinatesってのを正しく理解してないといけない。
なので、しばらく、このImage Coordinatesについて、書く。


今日は、単に、これは何?って話。
次回は、もっと突っ込む予定。




前回紹介したカレントアウェアネスでは、

検索やハイライト表示ができるように加工したスキャン画像である"Image Coordinates"

ってなってるんだけど、おそらく、この記事を書いた人は、"Image Coordinates"のことをあまり理解できんかったんじゃないかな。そんで、Coyleさんが、

The "Image Coordinates" are what make it possible to locate a word in a page image, for example for the purpose of highlighting the query word on the screen.

って書いた部分をちょこっと訳してみたんだと思う。


一番分かりやすいのは、ご存知の「透明テキスト」ね。(厳密に言うと違うから、興味あれば末尾を見てね)

http://pc.nikkeibp.co.jp/article/NPC/20060401/234127/
『透明テキストPDFとは』より


この「透明テキスト」の部分が、"Image Coordinates"に近い。
だから、カレントアウェアネスが言うような「加工したスキャン画像」ではない。


あとは、「透明テキスト」ってGoogleで調べておけば、基本的な使い道は分かるはず。
応用の一例としては、井野口さんのコメントにある「画像に部分タグ付けができる」ってのから、kennakさんの「誰かのノートを写す行為が必要なくなる」ってなこともあるかもね。


そんないろんなことができる"Image Coordinates"ってデータなんだけど、具体的にはどんな感じなの?
ということで、何でも公開しちゃうInternet Archiveから、実際のデータを拝借。


いつものこの本。PDFの2ページ目。


赤丸部分に該当する"Image Coordinates"は、こんな感じ。

<text backgroundColor="12576223">

<par leftIndent="392">

<line baseline="284" l="595" t="252" r="1640" b="287">

<formatting lang="EnglishUnitedStates" ff="Times New Roman" fs="6.5" scaling="1488" spacing="-4">

<charParams l="595" t="253" r="630" b="287" wordStart="true" wordFromDictionary="true" wordNormal="true" wordNumeric="false" wordIdentifier="false" charConfidence="55" serifProbability="49" wordPenalty="0" meanStrokeWidth="57">C</charParams> 

<charParams l="636" t="254" r="674" b="286" wordStart="false" wordFromDictionary="true" wordNormal="true" wordNumeric="false" wordIdentifier="false" charConfidence="55" serifProbability="255" wordPenalty="0" meanStrokeWidth="57">O</charParams> 

<charParams l="683" t="255" r="726" b="285" wordStart="false" wordFromDictionary="true" wordNormal="true" wordNumeric="false" wordIdentifier="false" charConfidence="54" serifProbability="94" wordPenalty="0" meanStrokeWidth="57">M</charParams> 

<charParams l="736" t="254" r="773" b="285" wordStart="false" wordFromDictionary="true" wordNormal="true" wordNumeric="false" wordIdentifier="false" charConfidence="55" serifProbability="98" wordPenalty="0" meanStrokeWidth="57">P</charParams> 

<charParams l="781" t="254" r="818" b="285" wordStart="false" wordFromDictionary="true" wordNormal="true" wordNumeric="false" wordIdentifier="false" charConfidence="55" serifProbability="64" wordPenalty="0" meanStrokeWidth="57">R</charParams> 

<charParams l="827" t="255" r="840" b="285" wordStart="false" wordFromDictionary="true" wordNormal="true" wordNumeric="false" wordIdentifier="false" charConfidence="55" serifProbability="100" wordPenalty="0" meanStrokeWidth="57">I</charParams> 

<charParams l="850" t="253" r="880" b="285" wordStart="false" wordFromDictionary="true" wordNormal="true" wordNumeric="false" wordIdentifier="false" charConfidence="55" serifProbability="73" wordPenalty="0" meanStrokeWidth="57">S</charParams> 

<charParams l="888" t="254" r="923" b="284" wordStart="false" wordFromDictionary="true" wordNormal="true" wordNumeric="false" wordIdentifier="false" charConfidence="53" serifProbability="100" wordPenalty="0" meanStrokeWidth="57">E</charParams> 

<charParams l="931" t="253" r="962" b="285" wordStart="false" wordFromDictionary="true" wordNormal="true" wordNumeric="false" wordIdentifier="false" charConfidence="55" serifProbability="73" wordPenalty="0" meanStrokeWidth="57">S</charParams> 

<charParams l="962" t="252" r="975" b="285" /> 
<charParams l="975" t="252" r="988" b="285" /> 
<charParams l="988" t="252" r="1002" b="285" /> 

<charParams l="1002" t="252" r="1033" b="285" wordStart="true" wordFromDictionary="true" wordNormal="true" wordNumeric="false" wordIdentifier="false" charConfidence="54" serifProbability="10" wordPenalty="0" meanStrokeWidth="50">S</charParams> 


というわけで、"Image Coordinates"はどんなものか分かったので、次は「どんな意味あんのかな」、って考える(と思う。)


(参考にね)

  • Internet Archiveは、OCRとしてAbbyy社(私の知る限り、世界最強OCR会社)のものを使ってる。
  • この本1冊の"Image Coordinates"は、だいたい78MBくらい。
  • 「画像」と「透明テキスト」をくっつけた、「透明テキストPDF」は、20MBくらい。
  • 「透明テキスト」ってのは、"Image Coordinates"から、贅肉をおとしたもん。だから、ファイルサイズも小さくなるよ。
  • UCが、「透明テキストPDF」じゃなくて、"Image Coordinates"くれって言ったのは、賢いと思う。
  • そんな「虎の子」あげちゃってまで、Googleは毎日3,000冊欲しかったんだね。