Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

Newt On Project〜Story Archive #2 インテリジェントな環境を構築するもうひとつの要素~SOAP

Posted on 10月 4 by Takaaki Naganoya

Newtonの環境は単なる電子手帳のレベルではなく、アプリケーションやデータファイルを抽象化して、ユーザーに存在を意識させないことを指向したものでした。



Newtonの開発がすべてキャンセルされ、販売が終了して数年が経過した今となっても、その思想を超える環境はいまだなく、MacOS Xへの統合が果たされることを夢見ているユーザーも少なくはないことでしょう。



しかし、Appleの開発チームはMacOS X環境の構築に予想よりも手こずりました。最初に登場したMacOS X 10.0では十分な完成度を持たせられず、MacOS X 10.1でようやく「MacOSらしさ」と「UNIXのファンクション」のバランスがハーモニーを奏でるレベルになってきました。実際のところ、使ってみるとかなりいい感じです。



しかし、「MacOS Xらしさ」という意味では、まだその片鱗が垣間見えてきたというレベルでしょうか。MacOSらしい使い勝手とUNIXらしい強靱な足回り。では、その先にあるべき「MacOS Xらしさ」とは何でしょう?

 

既存のメタファーを真似るだけの「まねっこマシン」として振る舞うだけでなく、それを超える何かが欲しいところです。はさみツールで画像を切り抜くがごとく、1つの命令で1つのアクションをこなす「文房具」的な動作ではなく、1つの指示で100でも1000万でも命令をこなすような「インテリジェントな」動作を行ってほしい。


……そこに加わるべき「インテリジェントなエッセンス」こそ「Newton」のフレーバーではないかと、「えせNewtonプロジェクトチーム」は考えています。


怪人Sal Soghoain、2年前に思わせぶりなセリフを残す

えせNewtonの構成要素のひとつが、AppleScriptと周辺アプリケーションであることは前回に説明しました。

MacOS標準搭載の言語解析エンジンをパーサーとして、命令とパラメータを認識。必要な命令を補助アプリケーションに投げて実行させれば、Newtonもどきな環境は作れるのではないだろうか、というのがその内容でした。



実は、AppleScript製品担当のSal Soghoianが2年前に来日したときに、直接本人に聞いたことがあります。



Piyomaru:言語解析エンジンを介して、簡単な文章を認識し、AppleScriptのリクエストをオンザフライで自動生成し、擬似的にインテリジェントな環境は作れるように見える。そういう研究はしていないのか?



Sal:Newtonのような環境のことを言っているのだろうが、具体的なことは答えられない。ただし、AppleScriptの自動生成については研究をしている。



……悩ましいお返事(^-^; また、彼はこのようにも言っていました。



Sal:MacOS XのAppleScript環境では、MacOS以外の機器をコントロールできるようになる

……

このときには、家電コントロールのX-10を標準採用(現在はサードパーティのOSAXが必要)する程度かと考えていたものです。しかし、その種明かしは2001年7月のMacWorld Expo NYで唐突に行われました。


怪人Sal Soghoian、Seybold Seminorsで「SOAP!」と吠える

それが、MacOS Xで採用された非同期分散オブジェクト環境「SOAP」(Simple Object Access Protocol)。

アプリケーションへのイベントを投げる際に、MacであればAppleEventの形で「特定のアプリケーション」の「特定のオブジェクト」に対して「特定のリクエスト」が発行されます。これをAppleTalkもしくはAppleTalk over TCP/IPで他のMacに投げるわけですが、オフィスの他のマシンであっても地球の裏にいるマシンであっても非常に簡単にリクエストを投げられるものの、その相手はあくまでMacに限られてしまいます。

これを、MacOS以外のマシンに対して環境を問わずに行えるよう規格化したのがSOAP。AppleTalkではなくオープンなTCP/IPを用いて、イベントの内容はXMLで投げます。

「Salが言っていたのは、これのことだったのか! 

しかし、なんで基調講演のステージでイエーとかウオーとか叫びまくってんだこの人は!!(^-^;」

Seyboldの基調講演では、実際にMacOS X 10.1のAppleScriptを用いて、SOAP経由でサーバーにリクエストを投げて、気象条件に基づいてIllustrator上に作られた全米の地図を色分けするデモがSal Soghoianによって行われ、来場者の拍手喝采を浴びていました。



以後、SOAP関連のドキュメントを漁り、情報収集にいそしむ毎日。そして、このSOAPが「えせNewton」実現のためのキーとなるテクノロジーのひとつになることを確信しつつあります。

MacOSに載っていないアプリケーションについては、他のOS上に実装されているアプリケーションを利用。非インテリジェントなアプリケーションを組み合わせてインテリジェントな環境を擬似的に作れる(かもしれない)SOAPの思想は、AppleScriptをその源流に持つだけあってMacユーザー(というよりも、AppleScriptユーザー)にはなじみやすいでしょう。



誤解を恐れずに言ってしまえば、「 バカを100人集めて組織化することで1人の天才以上の力を発揮させるという発想」といえば分かりやすいでしょうか。……なんかちがうか、、、 


現在のSOAPに欠けている要素

しかし、SOAPの規格を調べれば調べるほどに、まだこの規格が「使いもの」になるレベルに達するには幾年かの熟成が必要であることが分かってきました。



イベントを投げる相手がどのようなアプリケーションを用いるかについては抽象化されているので、それがDB2であろうとORACLEであろうとINFORMIXであろうと別に構わない。しかし、そのデータなりアプリケーションがどこにあるかを「明示的に」示さなくてはならない。これがやっかいです。



「どこに何があるか」を集中的に管理するサービスが不在なので、これをまとめて管理する必要が早晩生じるでしょう。

また、その「何」を指し示す際には言語(英語とか日本語とか)の差異を吸収できる仕組みが必要。

リクエストを行うXMLの中に言語タイプが指定できるので、それを基にパラメータを翻訳して渡すとか。

 DNSのような分散データベースであっても、Sherlockのようなクライアント側で複数のサーバーに対して串刺しリクエストを行うタイプであってもよいが、リクエストを投げる相手自体を抽象化できるとうれしい。



そして、SOAPによるリクエストをうまくキューイングして負荷分散を行う仕組みも必要となってくるでしょう。大規模なシステムでXMLベースのリクエストを大量に流した場合の検証はまだまだこれからといったところ(IBMやMicrosoftやHPがすでに実験を行っている可能性はある)?



また、広域にユーザー認証できるシステムも必要。リクエストがどこかのサーバーのSOAPベースアプリケーションを通るたびにユーザー名とパスワードをキーボードから入力させられてはたまらないですから(そんな風に実装するとは思えませんが、一応)。



ただし、これらの仕組みが出来上がれば、エージェント的な動作が非インテリジェントなアプリケーションの組み合わせで実現できることでしょう。


えせNewtonの実現した姿は……?

えせNewtonを実現するのに現代のありとあらゆるテクノロジーを動員するのは、いささか大げさと取られるかもしれません。

しかし、実際のところNewtonにこめられた思想を「本気で」実現するにはまだまだ不足気味です。



おそらく、初期のえせNewtonは、インターネットに常時接続されたPowerMac G4の上に、一般的なアプリケーションを組み合わせて実現されるでしょう(ViaVoiceでコントロールしているかもしれない)。

そして、それを見たデベロッパーが着想を得て、もっと小振りなアプリケーションで再構成し、iBookやPowerBookでも使いものになるレベルに達するに違いありません(?)。



しかし、それでも小型の持ち運びできるデバイスにその環境を集約できるかどうかは定かではありません。

AppleがPowerBookをさらに小型化することは考えにくいので……下手をすると、フロントエンドの部分はPalmか何かのデバイスを用いて、これがインターネット経由で自宅に置いてあるPowerMacにリクエストを投げ、PowerMacが処理を行って結果だけ返す形になるかもしれません。



ちょっとだけ風呂敷を広げてみましたが、実際のところは着実に「できること」から手を付けていくのが正しいのでしょう。

とにかく、スクリプタブルなアプリケーションのうち「欠けているもの」を補っていくことが最優先課題であろうかと。



ただ、それがひじょうに地味で地道な作業であるだけに、このようなロードマップを書いておくことが肝要と思っている次第(^-^;。

(Visited 1 times, 1 visits today)
Posted in Natural Language Processing Newt On Project | Tagged 10.1savvy | Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • Numbersで選択範囲のセルの前後の空白を削除
  • macOS 26, Tahoe
  • macOS 15でも変化したText to Speech環境
  • KagiのWebブラウザ、Orion
  • Script Debuggerの開発と販売が2025年に終了
  • 【続報】macOS 15.5で特定ファイル名パターンのfileをaliasにcastすると100%クラッシュするバグ
  • macOS 15 リモートApple Eventsにバグ?
  • NSObjectのクラス名を取得 v2.1
  • 2024年に書いた価値あるAppleScript
  • 有害ではなくなっていたSpaces
  • macOS 15:スクリプトエディタのAppleScript用語辞書を確認できない
  • Pixelmator Proがv3.6.8でHDR画像をサポート
  • Xcode上のAppleScriptObjCのプログラムから、Xcodeのログ欄へのメッセージ出力を実行
  • (確認中)AppleScript Dropletのバグっぽい動作が解消?
  • AVSpeechSynthesizerで読み上げテスト
  • AppleScript Dropletのバグっぽい動作が「復活」(macOS 15.5β)
  • 指定フォルダ以下の画像のMD5チェックサムを求めて、重複しているものをピックアップ
  • macOS 26, 15.5でShortcuts.app「AppleScriptを実行」アクションのバグが修正される
  • Numbersで選択中の2列のセルを比較して並べ直して書き戻す v2
  • Script DebuggerがmacOS 15.x上で起動せず→起動

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1391) 10.14savvy (587) 10.15savvy (438) 11.0savvy (283) 12.0savvy (212) 13.0savvy (204) 14.0savvy (159) 15.0savvy (151) CotEditor (66) Finder (52) Keynote (119) NSAlert (61) NSArray (51) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (53) NSDictionary (28) NSFileManager (23) NSFont (21) NSImage (41) NSJSONSerialization (21) NSMutableArray (63) NSMutableDictionary (22) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (119) NSURL (98) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (76) Pages (56) Pixelmator Pro (20) Safari (44) Script Editor (27) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Beginner
  • Benchmark
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • check sum
  • Clipboard
  • Cocoa-AppleScript Applet
  • Code Sign
  • Color
  • Custom Class
  • date
  • dialog
  • diff
  • drive
  • Droplet
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Localize
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Newt On Project
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • parallel processing
  • PDF
  • Peripheral
  • process
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • Scripting Additions
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2025年10月
  • 2025年9月
  • 2025年8月
  • 2025年7月
  • 2025年6月
  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC