国際的な相互運用とオープン技術 - 日時と文字 -
Post on 07-Dec-2014
355 Views
Preview:
DESCRIPTION
TRANSCRIPT
国際的な相互運用とオープン技術 - 日時と文字 -
山口琢
v1.2 2013-10-24
2013-‐10-‐24 オープン技術特論 山口琢 1
山口琢 • 職歴
– 株式会社日立製作所
– 株式会社ジャストシステム
– はこだて未来大学大学院博士課程(後期)
• 分野 – 文章、文書処理
文書交換のためのデータ形式変換、自動レイアウト、検索、文書管理、 テキストマイニング、編集
– スケジュール管理、年表
• 職種 – 学生、企画、開発、エヴァンジェリスト、コンサルティング
2013-‐10-‐24 オープン技術特論 山口琢 2
アジェンダ
• 相互運用性とオープンスタンダード
• 日時
• 文字
• ハンズオン(Hands-on)
• 技術資料は英語で
2013-‐10-‐24 オープン技術特論 山口琢 3
狙い
「そういうポイントがあるんだ!」 – これまでの研究・開発の見直し
– これからの見積・設計に反映
2013-‐10-‐24 オープン技術特論 山口琢 4
アンケート (^^)/
• OSは? Windows、Mac、…
• ブラウザは? Firefox、Chrome、Opera、Internet Explorer、… ← 意識して複数を使った方がよい
• ワープロは? Microsoft Word、OpenOffice、… ← Pagesも
2013-‐10-‐24 オープン技術特論 山口琢 5
相互運用性とオープンスタンダード Interoperability & Open Standard
2013-‐10-‐24 オープン技術特論 山口琢 6
2013-‐10-‐24 オープン技術特論 山口琢
生活・仕事
モデル
システム
7
2013-‐10-‐24 オープン技術特論 山口琢
IT
生活・仕事
モデル
システム
8
2013-‐10-‐24 オープン技術特論 山口琢
生活・仕事
モデル
システム
9
シナリオ 要求定義 …などなど
複数のシステム
2013-‐10-‐24 オープン技術特論 山口琢
生活・仕事
モデル
システム
モデル
システム
10
異なる文化
2013-‐10-‐24 オープン技術特論 山口琢
モデル
システム
モデル
システム
11
生活・仕事 生活・仕事
相互運用性 - interoperability
2013-‐10-‐24 オープン技術特論 山口琢
データ交換 など
情報交換
生活・仕事
モデル
システム
モデル
システム
12
相互運用性 - interoperability
2013-‐10-‐24 オープン技術特論 山口琢
データ交換 など
情報交換 モデル
システム
モデル
システム
13
生活・仕事 生活・仕事 協力…
相互運用性 - interoperability
2013-‐10-‐24 オープン技術特論 山口琢
システムの相互運用性
生活・仕事
モデル
システム
モデル
システム
The capability to communicate, execute programs, or transfer data among various functional units in a manner that requires the user to have little or no knowledge of the unique characteristics of those units
ISO/IEC 2382-01, Information Technology Vocabulary, Fundamental Terms,
via Wikipedia
14
Interoperability
The capability to ← 能力・性能 – communicate,
– execute programs,
– or transfer data
among various functional units
in a manner that ← こういうやり方で requires the user to have little or no knowledge of
the unique characteristics of those units
2013-‐10-‐24 オープン技術特論 山口琢 15
相互運用を実現するパターン
• できてしまってるものを、つなげる
• 最初から、つながるように作る
2013-‐10-‐24 オープン技術特論 山口琢 16
できてしまってるものをつなげる
2013-‐10-‐24 オープン技術特論 山口琢
生活・仕事
システム システム
モデル モデル 標準(参照) モデル
変換 変換
17
生活・仕事 生活・仕事
• 職歴 – 株式会社日立製作所
← INE '89 OSI/ODAによる文書交換接続実験
個別に動作してたシステム同士をつなげる実証実験
– 株式会社ジャストシステム
– はこだて未来大学大学院博士課程(後期)
2013-‐10-‐24 オープン技術特論 山口琢 18
最初から、つながるように作る
2013-‐10-‐24 オープン技術特論 山口琢
生活・仕事
システム システム
Open Standard
19
Open Standardに 準拠して作る
Open Standardに 準拠して作る
最初から、つながるように作る
2013-‐10-‐24 オープン技術特論 山口琢
システム システム
Open Standard
20
生活・仕事 生活・仕事
Open Standardに 準拠して作る
Open Standardに 準拠して作る
• 職歴 – 株式会社日立製作所
– 株式会社ジャストシステム
– はこだて未来大学大学院博士課程(後期)
← LODチャレンジ 「最初から、つながるように作ろう」というハッカソン
2013-‐10-‐24 オープン技術特論 山口琢 21
Open Standard
• 最近のトレンド – 迅速な開発・普及 – 覇権
• 関係者に必要な素養 – スーパーエンジニア – 英語 – 文化的な教養
2013-‐10-‐24 オープン技術特論 山口琢 22
2013-‐10-‐24 オープン技術特論 山口琢
生活・仕事
モデル
システム
23
生活・仕事
現在 将来
システム
ビジョナリー visionary
エヴァンジェリスト evangelist
2013-‐10-‐24 オープン技術特論 山口琢
生活・仕事
モデル
システム
24
生活・仕事
現在 将来
システム
ビジョナリー visionary
小林龍生(UNICODE、EPUB) 村田真(XML、EPUB) 樋浦秀樹(国際化、UNICODE) 米持幸寿(クラウド) 今城哲二(COBOL国際化) 大場みち子(SOA) などなど…
エヴァンジェリスト evangelist
Linked Open Dataがもたらす将来…とは?
2013-‐10-‐24 オープン技術特論 山口琢
はこだて… ヨコハマ・アート・LOD
オープンライセンス W3C標準: URI、RDF、SPARQL
25
データ交換 など
生活・仕事 生活・仕事 ……?
では、日時と文字の話を…
2013-‐10-‐24 オープン技術特論 山口琢
システム システム
日時 文字
26
生活・仕事 生活・仕事
日時
2013-‐10-‐24 オープン技術特論 山口琢 27
• 日時を扱うシステムは、 他システムとの相互運用性を 無視するのは難しい
• 無視しない: – 互換な範囲で作る
– どう異なるのか把握している
2013-‐10-‐24 オープン技術特論 山口琢 28
誕生日とタイムゾーン
2013-‐10-‐24 オープン技術特論 山口琢 29
Googleカレンダーで実験
1. 1時間の予定「会議」を作成。開始・終了時刻を覚える。
2. 「設定」で現在の「タイムゾーン」を確認。 日本ですか?
3. タイムゾーンを「太平洋時間」に設定して保存。 これサンフランシスコ。
4. さっきの「会議」の開始・終了時刻を確認。
2013-‐10-‐24 オープン技術特論 山口琢 30
タイムゾーン変更 東京(UTC+9) → 太平洋時間(UTC-8、サマータイム)
2013-‐10-‐24 オープン技術特論 山口琢 31
続き: 終日の場合
1. タイムゾーンを「東京」に戻す
2. さっきの予定と同じ日に、 終日の予定「誕生日」を作成
3. 再度、タイムゾーンを「太平洋時間」に設定
4. 2つの予定の前後関係は?
2013-‐10-‐24 オープン技術特論 山口琢 32
どうなる?
• Googleカレンダーではどうなると思う?
• …というか、どうなって欲しい?
• そもそも、どうなるのが正しい?
2013-‐10-‐24 オープン技術特論 山口琢 33
2013-‐10-‐24 オープン技術特論 山口琢 34
東京
サンフランシスコ
「会議」と「誕生日」の 前後関係が変わった…
…ように見える
2013-‐10-‐24 オープン技術特論 山口琢 35
何が変わったのか?
• 「会議」の開始時刻は変わっていない 目盛りがずれてるだけで、同じ時刻を指している。
それぞれのスケジューラが示す時刻に席につけばよい。
• むしろ「誕生日」が変わった…のか?
2013-‐10-‐24 オープン技術特論 山口琢 36
誕生日おめでとう! 東京
10/24 13:00
会議を始めよう!
サンフランシスコ
10/23 21:00
(サマータイム中)
会議を始めよう!
誕生日おめ…でとう?
2013-‐10-‐24 オープン技術特論 山口琢 37
10/24が誕生日
あるいは逆だったら… 東京
10/24 13:00
会議を始めよう!
誕生日おめ…でとう?
サンフランシスコ
10/23 21:00
(サマータイム中)
会議を始めよう!
2013-‐10-‐24 オープン技術特論 山口琢 38
10/24が誕生日
日付(date)と日時(datetime)
dateとdatetimeは別世界 別世界の予定同士を 比較するときは要注意
終日の予定≠0時~翌日0時 6/10 終日 ≠ 6/10 00:00~6/11 00:00
なんのために注意? 「予定」を国際的に共有するため
2013-‐10-‐24 オープン技術特論 山口琢 39
date世界
dateNme世界
カレンダーは2つの 世界が同居している
日課と"FLOATING" DATE-TIME
2013-‐10-‐24 オープン技術特論 山口琢 40
2013-‐10-‐24 オープン技術特論 山口琢
生活・仕事
モデル
システム
41
毎朝、5時に散歩するのが日課です。 海外旅行しても、旅先で、日課を守りたい。
iCalendar: 3.3.5. Date-Time 19980118T230000
DATE-TIME values of this type are said to be "floating" and are not bound to any time zone in particular. They are used to represent the same hour, minute, and second value regardless of which time zone is currently being observed. For example, an event can be defined that indicates that an individual will be busy from 11:00 AM to 1:00 PM every day, no matter which time zone the person is in. In these cases, a local time can be specified. The recipient of an iCalendar object with a property value consisting of a local time, without any relative time zone information, SHOULD interpret the value as being fixed to whatever time zone the "ATTENDEE" is in at any given moment. This means that two "Attendees", in different time zones, receiving the same event definition as a floating time, may be participating in the event at different actual times. Floating time SHOULD only be used where that is the reasonable behavior. 2013-‐10-‐24 オープン技術特論 山口琢 42
2013-‐10-‐24 オープン技術特論 山口琢
生活・仕事
モデル
システム
43
毎朝、5時に散歩するのが日課です。 海外旅行しても、旅先で、日課を守りたい。
DATE-‐TIME values of this type are said to be "floaNng" and are not bound to any Nme zone in parNcular. They are used to represent the same hour, minute, and second value regardless of which Nme zone is currently being observed.
iCalendar, IETF RFC 5545
2013-‐10-‐24 オープン技術特論 山口琢
生活・仕事
モデル
システム
44
毎朝、5時に散歩するのが日課です。 海外旅行しても、旅先で、日課を守りたい。
DATE-‐TIME values of this type are said to be "floaNng" and are not bound to any Nme zone in parNcular. They are used to represent the same hour, minute, and second value regardless of which Nme zone is currently being observed.
iCalendar, IETF RFC 5545
?
iCalのfloating time zone機能
2013-‐10-‐24 オープン技術特論 山口琢 45
「環境設定」から ✓「時間帯のサポートを有効にする」
2013-‐10-‐24 オープン技術特論 山口琢 46
2つの連続したイベント
2013-‐10-‐24 オープン技術特論 山口琢 47
2013-‐10-‐24 オープン技術特論 山口琢 48
2013-‐10-‐24 オープン技術特論 山口琢 49
2013-‐10-‐24 オープン技術特論 山口琢 50
2013-‐10-‐24 オープン技術特論 山口琢 51
floating time zone
2013-‐10-‐24 オープン技術特論 山口琢
毎朝、5時に散歩するのが日課です。 海外旅行しても、旅先で、日課を守りたい。
iCal Googleカレンダー
iCalendar, IETF RFC 5545 "floating" date-time
52
? サポートしていないようだ
問題はどこに?
2013-‐10-‐24 オープン技術特論 山口琢 53
生活・仕事
モデル
システム
誕生日とは ? 日課
"floating" date-time
?
文字
2013-‐10-‐24 オープン技術特論 山口琢 54
「ä」の話
2013-‐10-‐24 オープン技術特論 山口琢 55
「ä」と「ä」
• yamahigeのツイートからコピーして取得 • 同じ文字列?
• それぞれ何文字?
調べてみる
いろいろなツール /usr/bin/diff
Python、JavaScript
Word、PowerPoint
テキストエディット
などなど…
いろいろな方法 検索
文書比較
文字の長さ、文字数
などなど…
2013-‐10-‐24 オープン技術特論 山口琢 56
調べてみる
いろいろなツール /usr/bin/diff
Python、JavaScript
Word、PowerPoint
テキストエディット
などなど…
いろいろな方法 検索
文書比較
文字の長さ、文字数
などなど…
2013-‐10-‐24 オープン技術特論 山口琢 57
試す数が多いほどベター
CotEditor (テキストエディター)
違うと言ってる 2013-‐10-‐24 オープン技術特論 山口琢 58
mi (テキストエディター)
同じと言ってる 2013-‐10-‐24 オープン技術特論 山口琢 59
JavaScript (Chrome)
違うと言ってる 2013-‐10-‐24 オープン技術特論 山口琢 60
Python
違うと言ってる 2013-‐10-‐24 オープン技術特論 山口琢 61
PowerPoint for Mac 2011
同じと言ってる 2013-‐10-‐24 オープン技術特論 山口琢 62
結合文字
Pythonの続き
2013-‐10-‐24 オープン技術特論 山口琢 63
結合文字
• Unicodeの特徴 • 2通りの「ä」
Pythonで見ると – u'\xe4' – u'a\u0308' ← 'a' + '̈'、"̈"は結合用の文字
• この2つを「違う」と言うソフトと「同じ」と言うソフトがある。
2013-‐10-‐24 オープン技術特論 山口琢 64
あれ?ということは、むしろ、 「同じ」と言ってるソフトはどうやっての?
↓
normalization(正規化)
文字に限らず、いろいろなデータ処理で使われる
2013-‐10-‐24 オープン技術特論 山口琢 65
Pythonの続き
Javaでは?Rubyでは?JavaScriptでは?… 2013-‐10-‐24 オープン技術特論 山口琢 66
そう言えば…
「会議」の開始時刻は変わっていない
↓
日時で、正規化に相当する処理は?
2013-‐10-‐24 オープン技術特論 山口琢 67
「が」の話
2013-‐10-‐24 オープン技術特論 山口琢 68
「が」と「が」
• yamahigeのツイートからコピーして取得 • 同じ文字列?
• それぞれ何文字?
Microsoft Word for Mac 2011
違うと言ってる
2013-‐10-‐24 オープン技術特論 山口琢 69
でも、
ひらがなの結合文字って、
めったに遭遇しないんじゃ?
2013-‐10-‐24 オープン技術特論 山口琢 70
「新しいフォルダ」
Mac OS X
Windows
2013-‐10-‐24 オープン技術特論 山口琢 71
…え?じゃぁDropboxって…?
↓
「ファイル共有」の相互運用性
2013-‐10-‐24 オープン技術特論 山口琢 72
「ä」や「が」の保存
2013-‐10-‐24 オープン技術特論 山口琢 73
コピー
POST
ペースト
GET コピー ペースト
比較 検索
「ä」や「が」の保存
2013-‐10-‐24 オープン技術特論 山口琢 74
コピー
POST
ペースト
GET コピー ペースト
比較 検索
ここまでは2種類の「ä」が保たれていた。
「ä」や「が」の保存
2013-‐10-‐24 オープン技術特論 山口琢 75
コピー
POST
ペースト
GET コピー ペースト
比較 検索
Firefoxは、クリップボードに積むときに、正規化しているようだ。 Firefoxだと、別の課題提供方法が必要 (^^;
コピー
日時と文字の相互運用性
2013-‐10-‐24 オープン技術特論 山口琢
日時: ISO、IETF、W3C 文字: UNICODE
76
生活・仕事 検索
比較
会議のアポ
抄録の文字数制限
Happy Birthday!
飛行機の乗り継ぎ
毎朝の散歩
まとめ
「同じ」とモデリング
• 会議の開始時刻
• 誕生日
• 結合文字
2013-‐10-‐24 オープン技術特論 山口琢 77
生活・仕事
モデル
システム
狙い(再) 「そういうポイントがあるんだ!」
– これまでの研究・開発の見直し
– これからの見積・設計に反映
↓
• 「何かがおかしい」と感じたとき、 今日の話も思い出してください。
• 各論・詳細の勉強は、次の参考文献で。 2013-‐10-‐24 オープン技術特論 山口琢 78
参考文献: 日時
Internet Engineering Task Force (IETF)、"Internet Calendaring and Scheduling Core Object Specification (iCalendar) RFC 5545"
http://tools.ietf.org/html/rfc5545
168ページ
他に…あまりない – プログラミング言語の解説書、解説記事
– "floating time zone"が説明されていることが目安
2013-‐10-‐24 オープン技術特論 山口琢 79
参考文献: 文字 小林龍生、"ユニコード戦記 ─文字符号の国際標準化バトル"、東京電機大学出版局 (2011/6/10)
矢野啓介、"プログラマのための文字コード技術入門 "、技術評論社 (2010/2/18)
2013-‐10-‐24 オープン技術特論 山口琢 80
2013-‐10-‐24 オープン技術特論 山口琢
生活・仕事
モデル
システム
81
top related