Ubiquity: Interfaces and Internationalization インターフェースと国際化

84
mitcho Michael 芳貴 Erlewine ITSP special lecture, Tokyo June 3, 2009 ubiquity: インターフェースと国際化

description

Slides from an ITSP special lecture at Chuo, Waseda, and Keio Universities, June 3rd, 2009. 文部科学省ITスペシャリスト育成プログラムの2009年6月3日特別講義のスライド。

Transcript of Ubiquity: Interfaces and Internationalization インターフェースと国際化

Page 1: Ubiquity: Interfaces and Internationalization インターフェースと国際化

mitchoMichael 芳貴 Erlewine

ITSP special lecture, TokyoJune 3, 2009

ubiquity:インターフェースと国際化

Page 2: Ubiquity: Interfaces and Internationalization インターフェースと国際化

今日は二つの問題の話

Page 3: Ubiquity: Interfaces and Internationalization インターフェースと国際化

問題1

Page 4: Ubiquity: Interfaces and Internationalization インターフェースと国際化

「インターフェース」という問題

Page 5: Ubiquity: Interfaces and Internationalization インターフェースと国際化

~1980: GUIが生まれる

= Graphical User Interface

Page 6: Ubiquity: Interfaces and Internationalization インターフェースと国際化

“Desktop” metaphor

WIMP:• Window

• Icon

• Menu

• Pointer (mouse)

Page 7: Ubiquity: Interfaces and Internationalization インターフェースと国際化

CC-BY-NC-SA: flickr.com/photos/pixcat/2324175139/

Page 8: Ubiquity: Interfaces and Internationalization インターフェースと国際化

1984

Page 9: Ubiquity: Interfaces and Internationalization インターフェースと国際化

1997

Page 10: Ubiquity: Interfaces and Internationalization インターフェースと国際化

2001

Page 11: Ubiquity: Interfaces and Internationalization インターフェースと国際化

あまり変わっていない

Page 12: Ubiquity: Interfaces and Internationalization インターフェースと国際化

機能が増えればどうすれば良いのか

ボタンを増やす?

メニューを増やす?

Page 13: Ubiquity: Interfaces and Internationalization インターフェースと国際化

CC-BY-SA: flickr.com/photos/daveduarte/2678853923/

Page 14: Ubiquity: Interfaces and Internationalization インターフェースと国際化

from http://tecfa.unige.ch/~nova/img/lopez1.png

Page 15: Ubiquity: Interfaces and Internationalization インターフェースと国際化
Page 16: Ubiquity: Interfaces and Internationalization インターフェースと国際化

Aza RaskinCC-BY-NC: flickr.com/photos/santheo/2360961001/

Page 17: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ACM interactions 2008

Page 18: Ubiquity: Interfaces and Internationalization インターフェースと国際化

text-based interface

“Standard GUIs, with their drop-down menus, check buttons, and tree-lists, cannot compare to the range of options that a text interface effortlessly provides. With just five alphanumeric characters, we can choose one out of 100,000,000 possible sequences... It’s difficult to come up with a non-text-based interface that can perform as well.”

Page 19: Ubiquity: Interfaces and Internationalization インターフェースと国際化
Page 20: Ubiquity: Interfaces and Internationalization インターフェースと国際化

?

Page 21: Ubiquity: Interfaces and Internationalization インターフェースと国際化
Page 22: Ubiquity: Interfaces and Internationalization インターフェースと国際化
Page 23: Ubiquity: Interfaces and Internationalization インターフェースと国際化
Page 24: Ubiquity: Interfaces and Internationalization インターフェースと国際化

text-based interface

“...maybe this confusion isn’t the fault of command-line interfaces in general; maybe it’s just the command lines we’re used to. If commands were memorable, and their syntax forgiving, perhaps we wouldn’t be so scared to reconsider these interface paradigms. Perhaps the linguistic command line is the future of computing.”

Page 25: Ubiquity: Interfaces and Internationalization インターフェースと国際化

text-based interface

“...maybe this confusion isn’t the fault of command-line interfaces in general; maybe it’s just the command lines we’re used to. If commands were memorable, and their syntax forgiving, perhaps we wouldn’t be so scared to reconsider these interface paradigms. Perhaps the linguistic command line is the future of computing.”

Page 26: Ubiquity: Interfaces and Internationalization インターフェースと国際化

自然言語インターフェース

Page 27: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquity

Page 28: Ubiquity: Interfaces and Internationalization インターフェースと国際化

目的:

方法:

Page 29: Ubiquity: Interfaces and Internationalization インターフェースと国際化

目的:ウェブをより有益に、より使いやすく

方法:

Page 30: Ubiquity: Interfaces and Internationalization インターフェースと国際化

目的:ウェブをより有益に、より使いやすく

方法:

言葉を使った自然なインターフェース

Page 31: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ちなみに...

ubiquity = 遍在

Page 32: Ubiquity: Interfaces and Internationalization インターフェースと国際化

デモ

Page 33: Ubiquity: Interfaces and Internationalization インターフェースと国際化
Page 34: Ubiquity: Interfaces and Internationalization インターフェースと国際化

open APIs

Page 35: Ubiquity: Interfaces and Internationalization インターフェースと国際化

*JavaScript

Page 36: Ubiquity: Interfaces and Internationalization インターフェースと国際化

verbs*

*JavaScript

Page 37: Ubiquity: Interfaces and Internationalization インターフェースと国際化

CmdUtils.CreateCommand({name:"flip-page",preview:"Flipstheentirepageupsidedown."+"<spanstyle='-moz-transform:rotate(180deg)'>"+"Usefulforbats</span>.",execute:function(){vardocument=CmdUtils.getDocument();varmatrix=jQuery(document.body).css("-moz-transform");jQuery(document.body).css("-moz-transform","rotate("+(getRotationFromMatrix(matrix)+Math.PI)+"rad)");}});

Page 38: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquity

Page 39: Ubiquity: Interfaces and Internationalization インターフェースと国際化

Mozilla Labsの実験的プロジェクトのひとつ2008年8月にアルファ公開

目的: ウェブをより有益に、より使いやすく方法: 言葉を使った自然なインターフェース先例: Enso, QuickSilver, GNOME Do等ロゴ: かわいいロボット「ubiquibot」http://ubiquity.mozilla.comhttps://wiki.mozilla.org/Labs/Ubiquity/

ubiquity

Page 40: Ubiquity: Interfaces and Internationalization インターフェースと国際化

問題2

Page 41: Ubiquity: Interfaces and Internationalization インターフェースと国際化

「国際化」という問題

Page 42: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ちなみに...

「国際化」

Page 43: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ちなみに...

「国際化」= (ソフトウェアの)

internationalization/localization

Page 44: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ちなみに...

「国際化」= (ソフトウェアの)

internationalization/localization

= (貿易、情報の)

globalization

Page 45: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ちなみに...

「国際化」

= (貿易、情報の)

globalization

Page 46: Ubiquity: Interfaces and Internationalization インターフェースと国際化
Page 47: Ubiquity: Interfaces and Internationalization インターフェースと国際化

The multilingual internet:

1. The Internet is disconnected by language. ウェブは言語で分断されている。

Page 48: Ubiquity: Interfaces and Internationalization インターフェースと国際化

The Internet, 2005CC-BY: commons.wikimedia.org/wiki/File:Internet_map_4096.png

Page 49: Ubiquity: Interfaces and Internationalization インターフェースと国際化

The Internet, 2005: jp, cn, tw, au, deCC-BY: commons.wikimedia.org/wiki/File:Internet_map_4096.png

Page 50: Ubiquity: Interfaces and Internationalization インターフェースと国際化

The Internet, 2005CC-BY: commons.wikimedia.org/wiki/File:Internet_map_4096.png

Page 51: Ubiquity: Interfaces and Internationalization インターフェースと国際化

The Internet, 2005: ut, it, pl, frCC-BY: commons.wikimedia.org/wiki/File:Internet_map_4096.png

Page 52: Ubiquity: Interfaces and Internationalization インターフェースと国際化

The multilingual internet:

2. The tools of the future must be multilingual. これからのツールは他言語対応でなければいけない。

Page 53: Ubiquity: Interfaces and Internationalization インターフェースと国際化

「国際化」

Page 54: Ubiquity: Interfaces and Internationalization インターフェースと国際化

「国際化」= (ソフトウェアの)

internationalization/localization

Page 55: Ubiquity: Interfaces and Internationalization インターフェースと国際化

「国際化」

Page 56: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquity 0.1

Page 57: Ubiquity: Interfaces and Internationalization インターフェースと国際化

English 日本語

ubiquity 0.1

Page 58: Ubiquity: Interfaces and Internationalization インターフェースと国際化
Page 59: Ubiquity: Interfaces and Internationalization インターフェースと国際化

Afrikaans Shqip عربي Euskara Беларуская বাংলা (ভারত) català-valencià 中文 (简体)

正體中文 (繁體)

Čeština Dansk Nederlands English (British) English (US)

Esperanto suomi Français Frysk Galego ქართული Deutsch Ελληνικά ગ"જરાતી עברית !ह#दी (भारत)

Magyar íslenska Bahasa Indonesia

Gaeilge Italiano 日本語

한국어 Kurdî Latviešu lietuvių kalba Македонски Монгол Norsk bokmål Norsk nynorsk polski Português (do Brasil) Português (Europeu)

ਪ"ਜਾਬੀ română Русский српски සිංහල slovenčina slovensko Español (Argentina) Español (de España) Svenska ไทย Türkçe Українська

Page 60: Ubiquity: Interfaces and Internationalization インターフェースと国際化

Afrikaans Shqip عربي Euskara Беларуская বাংলা (ভারত) català-valencià 中文 (简体)

正體中文 (繁體)

Čeština Dansk Nederlands English (British) English (US)

Esperanto suomi Français Frysk Galego ქართული Deutsch Ελληνικά ગ"જરાતી עברית !ह#दी (भारत)

Magyar íslenska Bahasa Indonesia

Gaeilge Italiano 日本語

한국어 Kurdî Latviešu lietuvių kalba Македонски Монгол Norsk bokmål Norsk nynorsk polski Português (do Brasil) Português (Europeu)

ਪ"ਜਾਬੀ română Русский српски සිංහල slovenčina slovensko Español (Argentina) Español (de España) Svenska ไทย Türkçe Українська

Page 61: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquityの国際化

この革命を世界に!

Page 62: Ubiquity: Interfaces and Internationalization インターフェースと国際化

• natural syntax (=自然な構文)

• 自然言語のルールと矛盾しないように

• でももちろん限られた構文を対象

• mitcho.com/blog/projects/how-natural-should-a-natural-interface-be/

ubiquityの国際化

Page 63: Ubiquity: Interfaces and Internationalization インターフェースと国際化

•例: 一つがOKで一つがダメなのはおかしい!

• ジョノにボールを渡す• ボールをジョノに渡す

ubiquityの国際化

Page 64: Ubiquity: Interfaces and Internationalization インターフェースと国際化

•例: 一つがOKで一つがダメなのはおかしい!

• ジョノにボールを渡す• ジョノにボールを渡して• ジョノにボールを渡せ• s/渡/わた/

ubiquityの国際化

Page 65: Ubiquity: Interfaces and Internationalization インターフェースと国際化

• パーサを別々に書くのは面倒

• Principles and Parameters (=原理とパラメータ) 方式

• 汎用パーサ+各言語の設定

• 機能語 (functional words) を訳せばOK

ubiquityの国際化

Page 66: Ubiquity: Interfaces and Internationalization インターフェースと国際化

parser* * JavaScript

Page 67: Ubiquity: Interfaces and Internationalization インターフェースと国際化

parser*

ブレアにケーキを送って

* JavaScript

Page 68: Ubiquity: Interfaces and Internationalization インターフェースと国際化

送ってケーキをブレアに

parser* * JavaScript

Page 69: Ubiquity: Interfaces and Internationalization インターフェースと国際化

送ってケーキをブレアに

parser* * JavaScript

VNN

Page 70: Ubiquity: Interfaces and Internationalization インターフェースと国際化

送ってケーキをブレアに

parser* * JavaScript

VNNgoal object

Page 71: Ubiquity: Interfaces and Internationalization インターフェースと国際化

送ってケーキをブレアに

parser* * JavaScript

VNNgoal object

V ( goal, object )

Page 72: Ubiquity: Interfaces and Internationalization インターフェースと国際化

[demo time!]

ubiquityの国際化

Page 73: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquityの国際化意味的役割 (semantic roles) を使用

Page 74: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquityの国際化意味的役割 (semantic roles) を使用

Page 75: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquityの国際化意味的役割 (semantic roles) を使用

役割 英語 日本語

object ø を

goal to に、へ

position at, on で

Page 76: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquityの国際化意味的役割 (semantic roles) を使用

役割 英語 日本語

object ø を

goal to に、へ

position at, on で

Page 77: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquityの国際化意味的役割 (semantic roles) を使用

役割 英語 日本語

object ø を

goal to に、へ

position at, on で

Page 78: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquityの国際化意味的役割 (semantic roles) を使用

役割 英語 日本語

object ø を

goal to に、へ

position at, on で

Page 79: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquityの国際化意味的役割 (semantic roles) を使用

CmdUtils.CreateCommand({names:["email","mail"],arguments:[{role:"object",nountype:noun_arb_text},{role:"goal",nountype:noun_type_contact}],...

Page 80: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquityの国際化意味的役割 (semantic roles) を使用

CmdUtils.CreateCommand({names:["email","mail"],arguments:[{role:"object",nountype:noun_arb_text},{role:"goal",nountype:noun_type_contact}],...

Page 81: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquityの国際化設定はたったこれだけ:

branching:'left',usespaces:false,joindelimiter:'',anaphora:["これ","それ","あれ"],roles:[{role:'object',delimiter:'を'},{role:'goal',delimiter:'に'},{role:'source',delimiter:'から'},{role:'position',delimiter:'で'},{role:'position',delimiter:'に'},{role:'instrument',delimiter:'で'},{role:'alias',delimiter:'として'},]

Page 82: Ubiquity: Interfaces and Internationalization インターフェースと国際化

ubiquity 0.5with Parser 2

Page 83: Ubiquity: Interfaces and Internationalization インターフェースと国際化

CatalàDansk

EnglishFrançaisItaliano

日本語PortuguêsSvenska中文

< your language here* >

ubiquity 0.5with Parser 2

* mitcho.com/blog/how-to/adding-your-language-to-ubiquity-parser-2/

Page 84: Ubiquity: Interfaces and Internationalization インターフェースと国際化

mitchoアーリーワイン・マイケル芳貴

mitcho.com

@mitchoyoshitaka