(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-30
(45)【発行日】2024-10-08
(54)【発明の名称】シングマシン
(51)【国際特許分類】
G06N 5/00 20230101AFI20241001BHJP
G06F 3/01 20060101ALI20241001BHJP
G06N 20/00 20190101ALI20241001BHJP
【FI】
G06N5/00
G06F3/01 510
G06N20/00
(21)【出願番号】P 2019537021
(86)(22)【出願日】2017-09-19
(86)【国際出願番号】 US2017052232
(87)【国際公開番号】W WO2018053492
(87)【国際公開日】2018-03-22
【審査請求日】2020-09-16
【審判番号】
【審判請求日】2022-10-11
(32)【優先日】2016-09-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519096677
【氏名又は名称】ノースラップ,チャールズ
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ノースラップ,チャールズ
【合議体】
【審判長】吉田 美彦
【審判官】林 毅
【審判官】大塚 俊範
(56)【参考文献】
【文献】米国特許第7797282(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N5/00
G06F3/01
G06N20/00
(57)【特許請求の範囲】
【請求項1】
シングマシンであって、
プロセッサ、非一時的メモリ、及び非一時的コンピュータ可読媒体と、
1つ又は複数の第1の実行可能マシンコードP(TM(i))を有し、動作を表す第1の組の実行可能マシンコードで構成される実行可能マシンコードP(TM)と、
を含み、
前記1つ又は複数の第1の実行可能マシンコードP(TM(i))の動作のそれぞれは、コンピュータ実装されたグラフモデルのアルゴリズム手順の実装であり、
前記1つ又は複数の第1の実行可能マシンコードP(TM(i))のうちの1つの実行可能マシンコードP(TM(i))は、前記シングマシンの前記非一時的メモリにおいて
シングで構成される第1のシングボキャブラリを構成する動作を提供し、前記シングマシンは、前記1つの実行可能マシンコードP(TM(i))の動作を実装することにより、自分自身に変更を加え、前記第1のシングボキャブラリ
を構成する前記シングは非一時的メモリに格納されて、前記プロセッサ
が実行することができる
動作と当該動作が作用することができる
シングとを表し、
前記プロセッサ
が実行することができる
動作の少なくとも1つは、アプリケーションを
実行することができるようにする基礎を提供す
るコアボキャブラリを表す第2のシングボキャブラリを構成するように実行され、前記第2のシングボキャブラリは、前記シングマシンの前記非一時的メモリに格納されるよう構成される、シングマシン。
【請求項2】
多数のP(TM(i))は、1つのシングマシンにおける多数の計算構成要素を使用して実施される、請求項1に記載のシングマシン。
【請求項3】
多数のP(TM(i))は、直接通信する多数のシングマシンを使用して実施される、請求項1に記載のシングマシン。
【請求項4】
多数のP(TM(i))は、間接的に通信する多数のシングマシンを使用して実施される、請求項1に記載のシングマシン。
【請求項5】
第1の特定の実行可能マシンコードP(TM(i))は、i2c通信を使用して第2の特定の実行可能マシンコードP(TM(i))と通信するように構成される、請求項1に記載のシングマシン。
【請求項6】
前記アプリケーションは、電子支払い及び処理に関連する、請求項1に記載のシングマシン。
【請求項7】
前記アプリケーションは、デジタルウォレット、デジタルコイン、デジタルトークン、デジタルリワードポイント、料金の支払い、及び支払いの受領からなる群の1つ又は複数の使用に関連する、請求項1に記載のシングマシン。
【請求項8】
前記プロセッサ
が実行することができる
動作の少なくとも1つは、電子的動作、機械的動作、電磁波デバイスの使用、生物学的動作、化学的動作、圧力波の生成、圧力波の受信、電磁放射の生成、及び電磁放射の受信からなる群の1つ又は複数を生じさせる、請求項1に記載のシングマシン。
【請求項9】
前記プロセッサ
が実行することができる
動作の少なくとも1つは、入力駆動リコンビナーゼを使用して、リコンビナーゼ認識部位の重複し直交する対で構成されるDNAレジスタを操作するリコンビナーゼベース状態マシン(RSM)と対話する動作を実行する、請求項1に記載のシングマシン。
【請求項10】
RSMに符号化される状態情報は、照会することができる、請求項
9に記載のシングマシン。
【請求項11】
RSMに符号化される状態情報は、シーケンス化することができる、請求項
9に記載のシングマシン。
【請求項12】
P(TM(i))動作は、人工知能アルゴリズムの使用に関連する、請求項1に記載のシングマシン。
【請求項13】
前記人工知能アルゴリズムは、シンボリックAIアルゴリズム、サブシンボリックAIアルゴリズム、及び統計学的AIアルゴリズムからなる群から選択される、請求項
12に記載のシングマシン。
【請求項14】
P(TM(i))動作は環境と対話し、それに応答して、前記P(TM)は、前記環境に適用可能な実行可能な動作のボキャブラリを構成する、請求項1に記載のシングマシン。
【請求項15】
光学サブシステム組立体を更に含み、P(TM(i))は、ユーザ提供光学識別子を照会し、それに応答して、ユーザ固有ボキャブラリを構成する動作を提供する、請求項1に記載のシングマシン。
【請求項16】
ユーザの肯定動作に応答して、前記ユーザ固有ボキャブラリの部分を忘れる動作を実行するP(TM(i))動作を更に含む、請求項
15に記載のシングマシン。
【請求項17】
電磁デバイスと、前記電磁デバイスと対話して、ユーザを識別し、ユーザ固有ボキャブラリを構成する動作を提供するP(TM(i))とを更に含む、請求項1に記載のシングマシン。
【請求項18】
前記電磁デバイスはバイオメトリックデバイスである、請求項
17に記載のシングマシン。
【請求項19】
ユーザの肯定動作に応答して、前記ユーザ固有ボキャブラリを忘れる動作を提供するP(TM(i))を更に含む、請求項
17に記載のシングマシン。
【請求項20】
動作の実行により経験を得るように構成される、請求項1に記載のシングマシン。
【請求項21】
話題に関連する動詞ボキャブラリを学習するように構成される、請求項1に記載のシングマシン。
【請求項22】
前記動詞ボキャブラリは、前記シングマシンが動作として実行することができる動作及び前記動作が作用することができるものを表す、請求項
21に記載のシングマシン。
【請求項23】
実行可能な動作は前記話題を選択する、請求項
22に記載のシングマシン。
【請求項24】
実行可能な動作は、学習開始時間を選択する、請求項
23に記載のシングマシン。
【請求項25】
実行可能な動作は、基準を評価して、適切な学習開始時間を選択する、請求項
23に記載のシングマシン。
【請求項26】
読む、聞く、分類する、推測する、及び学習することからなる群の少なくとも1つに関連する動作を実行することにより、知識を得るように構成される、請求項1に記載のシングマシン。
【請求項27】
前記1つ又は複数の第1の実行可能マシンコードP(TM(i))のうちの1つが、コンピュータ実装された識別y情報のグラフモデルのアルゴリズム手順の実装である、請求項1に記載のシングマシン。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2016年9月19日に出願された「THING MACHINE」という名称の米国仮特許出願第62/396,332号の利益を主張するものであり、この米国特許仮出願は全体的に、参照により本明細書に援用される。本願はまた、2016年1月29日に出願されたOptical Identity System and Methodsという名称の米国特許出願第62/288,545号も全体的に参照により援用する。
【0002】
発明の分野
本発明は、コンピュータアーキテクチャ及び設計に関し、より詳細には、シングマシン(Thing Machine)が実行することができる動作及び多次元グラフモデルを使用して非一時的メモリにおいて監督されるシング(Thing:物事)のインスタンスとして、動作が行われるシングを表すシングマシンに関する。
【背景技術】
【0003】
発明の背景
四半世紀にわたり、ウェブページの閲覧にはウェブブラウザが使用されてきた。ブラウザは、25年にわたり著しく進化したが、結局、それでもなおクライアントサーバモデルを使用してウェブページをレンダリングしている。最新のブラウザでは、cookie情報は現在、クラウドにおいて同期することができ、それにより、状態情報は、使用される異なるデバイス間で共有される。
【0004】
25年にわたり、ウェブへの主なアクセスは、デスクトップ及びラップトップのコンピュータの使用を通してであった。ウェブブラウザを提供するモバイルデバイスは、1996年の時期に始まった。その9年後、Googleは、Googleの検索の半分超がモバイルデバイスからのものであると発表した(少なくとも米国では)。
【0005】
50億を超えるウェブページの相当数がモバイルフレンドリーではないことに留意することが重要である。例えば、2016年では、小規模ビジネスの54%がウェブサイトを有し、そのうちモバイルフレンドリーであるのは、それらのウェブサイトの64%のみであると推定された。したがって、小規模ビジネスの37%しか、モバイルフレンドリーなウェブサイトを有していない。小規模ビジネスが、毎年、米国内の販売の半分超を占めることに留意することが興味深い。
【0006】
多くのユーザは、モバイルフレンドリーなウェブページがないことに不満を抱いており、小売店のモバイルアプリをダウンロードして、経験をより生産的にした。各アプリは特定のビジネスに専用のものであり、アプリアイコンは画面表示上で場所を消費し、最終的に、ますます多くのアプリがダウンロードされるにつれて、散らかることになる。エンドユーザとして、膨大なアイコンを生産的にナビゲートして、探している正確なアプリを見つけることができるように、携帯電話でアプリを整理する時間を費やさなければならない。携帯電話のオペレーティングシステムのアプリケーションプログラミングインターフェース(API)への常時アップデートは、携帯電話のアプリが最新であることを補償するために、専用開発チームを必要とする。これは、多くの小規模ビジネスが単に支払う余裕がない費用を追加する。
【0007】
ウェブ対応の音声アクティブ化デバイスの出現は、より一般的になりつつある。子供の世代は、友達の家への行き方を携帯電話に尋ねることができることを知って成長していく。スマートフォン、アラームクロック、スマートウォッチ、スマートTV、Amazon Echo、ホームオートメーションシステム、及び自動二輪車ヘルメットは、音声アクティブ化デバイスのほんの数例である。
【0008】
ネットワーク対応デバイスには、サーモスタット、ロック、カメラ、発電機、コーヒーマシン、洗濯機及び乾燥機、照明スイッチ、セキュリティシステム、玩具、灌漑システム、並びに多くの他のデバイス及びセンサがある。この相互接続された世界は、インターネットオブシングスと呼ばれることがある。
【0009】
仮に、インターネットの中心に立ち、端を見ることができるならば、インターネットに接続された全てのシングを見るであろう。本明細書では、これをデバイス及びセンサであるシングのインターネット(Internet of Things that are Devices and Sensors)と呼ぶ。インターネットの端に行き、デバイスをピックアップし、中心を振り返るならば、提供され、インターネットオブサービスとして知られるサービスを見るであろう。
【0010】
サービスが、提供されるシングであり、突然、デバイス及びセンサとしてのインターネットオブシングスと、サービスであるインターネットオブシングスとの間にグレーエリアが存在したことに誰かが気付いたとき、世界は複雑になった。物理的なシング及び仮想的なシングは、インターネットオブシングスの意味にあるレベルの曖昧さを付加し、これは市場に混乱を生み出す。
【0011】
シングを更に複雑にすることに、多くの物理的デバイスは多くの場合、GSM、CDMA、LTE、SS7、Zigbee、Z-Wave、WeMo、近距離通信(NFC)、Bluetooth、Thread、BLE等の複数のプロトコルを使用して通信することができる。携帯電話を使用して、例えば、NFCを使用して、単に携帯電話をキャッシュレジスタに向けてかざすだけで料金を支払うことができる。同様に、Bluetoothを使用して、携帯電話をカーオーディオシステムとペアにして接続することができる。いずれの場合でも、デバイスはインターネットプロトコルを使用しないが、それでもなお、携帯電話をインターネットオブシングスのシングであると見なす。
【0012】
2005年以来、3500万を超える相互運用可能なZ-Waveデバイスが販売された(Z-Wave Alliance)。デバイスのZ-Waveネットワークを管理するために、Z-Waveネットワークコントローラが使用される。技術的に、インターネット使用可能なZ-Waveネットワークコントローラを使用して、インターネットを介して通信するが、コントローラはなお、Z-Waveを使用してZ-Waveデバイスと通信する。これは、インターネットオブシングスの定義への混乱の度を深め、その理由は、Z-Waveデバイスはシングであるが、インターネットオブシングスのシングであることもあれば、又はないこともあるコントローラと通信するためである。
【0013】
インターネットオブシングスの定義へのこの混乱の全ての中で、国際電気通信連合がインターネットオブシングスの説明でインターネットというキーワードさえ使用していないことは驚くに値しない。代わりに、国際電気通信連合は、
既存の及び進化しつつある相互運用可能な情報及び通信技術(ITU-T)に基づいてシングを相互接続する(物理的及び仮想的)ことにより高度なサービスを可能にする情報社会のグローバル基盤
としてインターネットオブシングスを定義している。これに私達全てが同意する1つのことは、シングがある(There are Things)ことである。
【0014】
シングを説明しカテゴリ化するために、シングを分類する。幾つかのシングは、金銭価値、法定通貨のような概念、出生証明書、著作権、タイトル、売渡証、又は資産等の文書である。シングは、イベント、アラート、測定単位、ジオロケーション、又は時間を表すことができる。他のシングは、デバイス及びセンサ、携帯電話、Ipad、又はウェブページ等の物体である。そこに突っ立っているだけでなく、何かしなさい:にあるように、動作であってもシングである。
【0015】
図1は、人物が命令コマンドに対していかに反応し得るかの原始的なフローチャートを示す概略図である。まず、次に何をするかを告げているトレーナーを聞く等の人物の感覚の1つ又は複数が動詞行動でイネーブルされる。あなたは、特定の言語のリスニングボキャブラリを使用して、発話された単語を解析し、命令コマンドを表す考えを生み出す。次に、あなたは、コマンドを評価して、次に何をするかを決める。私は正しく理解したか?私はできるか?私はそれをしたいか?恐らく、私は疲れており、代わりに休む必要がある。
【0016】
何を求められているのかを理解したことの確認等の応答をすることもあれば、応答は動作自体の実行であることもある。親指を立てる仕草をし、同意若しくは不満を示す表情をし、又は所与の言語の発話ボキャブラリを使用して、OKを伝達し得る。代替的には、その場でジョギングする命令に応答して、単にその場所でジョギングを開始する。
【0017】
「動詞」という単語はそれ自体、通常、ステートメントの主要部の1つであり、動作、発生、又は存在状態を表現する単語を意味する名詞である(Merriman Webster Dictionary参照)。動作は、何かをすること又は何かをするプロセスである。
【0018】
幾つかのシングは動作を表現し、他のシングは、動作が作用することができるシングであると言える。これは、シングの特異性に繋がる:全てのシングはシングである(All things are Things)。
【発明の概要】
【発明が解決しようとする課題】
【0019】
現状水準では、語句「インターネットオブシングス」は、それぞれがシングである加入者識別子及びパスワードによって識別された加入者に提供されるサービスであるシングの代わりに、インターネットに接続されたデバイス及びセンサに主にフォーカスした多数の定義を有している。これは、マシンコードとして実施されるべきアルゴリズム手順の実装をモデリングすることができる方法に制限を課し、したがって、非効率性及びコストを付加する。
【課題を解決するための手段】
【0020】
発明の概要
本発明の実施形態は、多次元グラフモデルを使用して非一時的メモリにおいて管理されるシングのインスタンスとして、シングマシンが実行することができる動作及び動作が行われるシングを表すシングマシンを提供する。
【0021】
シングマシンは、プロセッサ、非一時的メモリ、非一時的コンピュータ可読媒体、及び実行可能マシンコードP(TM)を含む。P(TM)は、1つ又は複数の実行可能マシンコードP(TM(i))動作を有する第1の組の実行可能マシンコード動作で構成され、各実行可能マシンコードP(TM(i))動作は、モデルのアルゴリズム手順の実装として構成され、第1のP(TM(i))は、シングマシンの上記非一時的メモリにおいてシングの第1のボキャブラリを自己構成する動作を提供し、上記シングは、上記プロセッサが動作として実行することができるシング及び動作を実行することができる1組のシングを表し、少なくとも1つのP(TM(i))マシンコード動作は、アプリケーションを提供することができるコアボキャブラリを表すシングマシンの非一時的メモリにおいて第2のシングボキャブラリを構成するように実行される。
【0022】
図面の簡単な説明
添付図面は、本発明の更なる理解を提供するために含まれ、本明細書に組み込まれ、本明細書の一部をなす。図面中の構成要素は、必ずしも一定の縮尺ではなく、その代わり、本発明の原理を明確に示すことに重点が置かれている。図面は、本発明の実施形態を示し、説明と一緒に本発明の原理を説明する役割を果たす。
【図面の簡単な説明】
【0023】
【
図1】命令コマンドに対していかに反応し得るかの原始的なフローチャートを示す概略図である。
【
図2】本発明の一実施形態によるシングマシンの部分を示す概略図である。
【
図3】シングマシンのブートプロセスを示す概略図である。
【
図4】シングマシンによって実行される、ブートプロセスによるグラフの作成を明示する目的で提供されるグラフである。
【
図5】シングBがシングAとは別個に存在する関係を示すグラフである。
【
図6】thing:sttia関係を示すグラフである。
【
図7】実行可能な動作に対して関係を有するシングが、thing:is-a関係を使用してthing:verbとして分類されることを示すグラフである。
【
図8】名前空間シングがthing:namespaceとして分類され、thing:namespaceはthing:classである分類をサポートするグラフである。
【
図9】シングがthing:contextとして分類される分類をサポートすることを示すグラフである。
【
図10】http URIのシングへの例示的なバインドを示す概略図である。
【
図11】空白ノードが満足クレームを表し、クレームがthing:objectへの参照を有し得るthing:graphを示すグラフである。
【
図12】thing:assertionが、thing:subjectが数値である値を有し、したがって、thing:objectが要求されないことをアサートすることを示すグラフである。
【
図13】thing:assertionが、thing:subjectの値がthing:objectの値未満であることを主張する場合を示すグラフである。
【
図15】シングマシンによって実行される最小ランタイムステップを例示するフローチャートである。
【
図16】P(TM(i))がP(TM(parse))動作であるようなthing:graphであり、XML文書を解析すると、以下のアサート:名前がcore:printに等しいシングがあるが真であり、したがって、名前が「message」に等しく、値が「Hello, World」に等しいシングがあるthing:graphが生成される。
【
図17】P(TM(config))が、要求名前空間シングによって認定されるシング、すなわち、G.requestがあり、G.urrがあるようなG.id(空白ノードとして示されている)に対して作用するようなグラフである。
【
図18】URIrequest:statementによって識別されるシングに対して作用するP(TM(config))のmy:configureバージョンを示すグラフである。
【
図19】xという名前のシングが、yという名前のシングの前身であり、yはxという名前のシングの後継であり、述語が、thing:sttiaとして示される関係があるようなシングであることを示す有向グラフである。
【
図20】xという名前のシングが、zという名前のシングの前身であり、述語が、thing:sttiaiとして示される「そこにはインスタンスがある(such that there is an instance)」ことを示す有向グラフである。
【
図22】xという名前のシングがthing:tableであることを示す有向グラフである。
【
図23】多数のシングが1つのシングに対して関係を有することを示す有向グラフである。
【
図24】「c」という名前のシングのクラスのメンバである「x」という名前のシングを示す有向グラフである。
【
図25】「x」という名前のシングの名前が「b」という名前のシングのクラスのメンバであることを示す関係を示す有向グラフである。
【
図26】「x」という名前のシングの値が「c」という名前のシングのクラスのメンバであることを示す関係を示す有向グラフである。
【
図27】コンテキストが要求、応答、及びローカル名前空間を含むことを示す有向グラフである。
【
図28】分類がrequest:class=”thing:thing”にデフォルト設定されていることを示す動詞グラフである。
【
図29】request:class=”thing:alarm”にデフォルト設定された分類に対応する動詞グラフである。
【
図30】G.request(P(TM(i)))が、P(TM(i))が要求名前空間において認定されるシングに対して作用することができることを示すことを示すグラフである。
【
図31】G.request(P(TM(i)))が、P(TM(i))が要求名前空間において認定されるステートメントという名前のシングによって認定される連絡という名前のシングに対して作用することができることを示すことを示すグラフである。
【
図32】例示的なG(P(TM(i)))が、G.request(P(TM(i)))サブグラフと、P(TM(perform))がその動作を実行するためにP(TM(i))をいかに要求すべきかを示すG.urr(P(TM(i)))サブグラフを含むルート有向thing:graphであることを示すグラフである。
【
図33】汎用チューニングマシンとしてのシングマシンを示す概略図である。
【
図34】適応ニューラルボットとしてのシングマシンを示す概略図である。
【
図35】初期化中、シングマシンのthing:graphのルートとして、P(TM(thing))がモナドに等しい名前を有するシングを割り振り初期化することを示すグラフである。
【
図36】コンテキストが、1つ又は複数の自由変数及び自由変数の関係式で構成されるリストを分解する範囲内にある1組のシングを認定することを示すグラフである。
【
図37】コンテキストシングがthing:stackであり、これを通して、P(TM(thing))はアルゴリズム的にシングをスタックに押し込むか、又はシングをスタックから押し出すことができ、したがって、コンテキストを変更することができることを示すグラフである。
【
図38】実行可能な動作への参照の表現を有するシングが、アクティブシングとして分類されることを示すグラフである。
【
図39】G(P(TM(i)))が、P(TM(i))の実行からの応答を含むシングの記述等の追加のシング情報を含むことができることを示すグラフである。
【
図40】非一時的メモリにおいてシングを設定するP(TM(Thing.set))手順に対応するG(P(TM(thing.set)))グラフである。
【
図41】リストrequest:uri、非一時的メモリによって与えられるシングの表現を得るP(TM(Thing.get)手順に対応するG(P(TM(thing.get)))グラフである。
【
図42】非一時的メモリからシングの表現をアンセットするP(TM(Thing.unset)手順に対応するG(P(TM(thing.unset)))グラフである。
【
図43】G.requestが、thing:statementであるrequest:statementに対して動作を行うことができることを示すことを示すグラフである。
【
図44】thing:listingであるシングを使用してrequest:に対して動作を行うことができることを示すG.requestサブグラフである。
【
図45】P(TM(thing))とアルゴリズム的に対話するP(TM(eval))を示すグラフである。
【
図46】リストrequest:streamによって識別されるシングの値が、解析すべきストリームであることを示すグラフである。
【
図47】例示的なXMLフラグメントの解析されたを示す例示的なグラフである。
【
図48】request:input listingによって与えられるシングの値が、解析する入力であることを示すグラフである。
【
図49】G(P(TM(request)))グラフを示す。
【
図50】P(TM(bind))に対して作用することができることをシングに示すG.requestサブグラフである。
【
図51】ImageObjectクラスのメンバとしてバインドするためのシングのメンバーシップ要件を記述するアサートとして解釈されるthing:graphである。
【
図52】リストlocal:objectによって与えられる非バインドthing:graphである。
【
図53】schema:ImageObjectシングとしてlocal:object thing:graphを結合する要求を示すthing:graphである。
【
図54】シングがブロードキャストサービスとして分類されることが何を意味するかを記述するアサートである。
【
図55】P(TM(perform))動作がrequest:statementに対して作用することを示すG.requestサブグラフである。
【
図56】P(TM(task.set))がP(TM(thing))と対話して、値がthing.taskとして設定すべきであるシングのリストであるリストrequest:statement.taskによって識別されるシングに対してアルゴリズム的に作用することを示すグラフである。
【
図57】P(TM(thing))、P(TM(eval))、及びP(TM(perform))と対話するP(TM(task.perform))を示すグラフである。
【
図58】P(TM(format))がフォーマットすべきthing:graphを表すリストの値を有するシングを識別するrequest:statement.listingを示すグラフである。
【
図59】URIシングが、ヘッダシングを認定するドメインシング、パスシング、及び要求シングを認定することを示すグラフである。
【
図60】生成されたHTTP Get Method要求の図である。
【
図61】P(TM(http.get))によって受信される応答の図である。
【
図62】応答を解析し、P(TM(thing))と対話することから生成された1組のthing:graphである。
【
図63】解析するHTMLコンテンツである値を有するシングを表すリストである値を有するrequest:contentシングに対して作用するP(TM(parse.html))を示すグラフである。
【
図64】HTMLコンテンツにおける例示的なマイクロデータの図である。
【
図65】P(TM(thing))と対話してコンテンツを解析する動作を提供するP(TM(parse.html))からのマイクロデータを表すthing:graphである。
【
図66】P(TM)に望ましい構成を記述する、シング言語で表現されるP(TM)解析コンテンツを示す。
【発明を実施するための形態】
【0024】
詳細な説明
本システム及び本方法は、コンピュータ機能及び能力への新規の改善を提供し、更には本明細書においてシングマシンと呼ばれるコンピュータの定義を提供する。
【0025】
実行可能な動作を記述するシングは、チューリングマシンに関して表現することができる。チューリングマシンは、手順を実行して、1組の入力変数から1組の結果を特定することができる仮想計算機の数学的モデルである。
【0026】
i=(1,n)の場合、TM(i)は、1組の入力をとり、手順動作P(TM(i))を実行し、1組の出力を生成することができる計算機である。
【0027】
任意の数のこのようなマシンが存在することができ、各P(TM(i))は、手順動作を実行し、潜在的に出力を生成する。第1のP(TM(i))の出力は、第2のP(TM(i))の入力であることができ、多くの場合、1組のP(TM(i))を並行して実行することができる。
【0028】
話す、聞く、評価する、応答する等の動詞に名前を付けるのと同様に、これらの動作に有意味な名前を割り当てることができる。実行動詞動作を追加することにより、特定の名前の動作を実行するようにマシンに求めることができる。Amazon Echo又はApple Siri等の幾つかのマシンは、このようにして音声コマンドに応答することができる。アレクサ、ペーパータオルを再注文して。シリ、今何時。各例において、物品の注文又は質問への回答等の何らかの動作を実行するようにマシンに求めている。
【0029】
要求を満たすために、マシンはまず、要求されているものを評価する必要がある。幾つかの点では、これは小学2年生に21から7を引くように求めることと同様である。シーケンスは、英語のリスニングボキャブラリを使用して、語彙を解析して考えにし、その考えが何を意味するのかを評価し、動作を選択し、動作を実行し、英語の発話ボキャブラリを使用して、応答を伝達することを含む。代替的には、その小学2年生は、肩をすくめて、分かりませんと返答し得る。
【0030】
何らかの動作を実行するようにマシンに要求することは、要求した各人物に対して同じ動作を実行することを暗示しないことにも留意する。例えば、http://www.thinglanguage.com/v1/index.html等のウェブブラウザに入力されたURLを考える。このURLを入力することにより、基本的に、URLによって識別されるものを取得し表示するようにブラウザに要求している。識別子及び対応するリソースは両方ともシングである。
【0031】
同じURLを取得し表示するようにブラウザに要求している2人の人物は、両人とも同じURLを入力したにもかかわらず、2つの異なる結果を有することができる。1つの事例では、コンテンツは、個人に固有であり得る。別の場合、HTTP要求ヘッダは、ウェブサーバがリソースコンテンツの構築に使用する状態情報を含み得る。URLが何かを識別し得るが、表示されるものは異なるものであることを認識することが重要である。
【0032】
シングマシンは、シングマシンとの対話で適応するブートシングマシンボキャブラリに基づいて、受信した要求を管理、解釈し、シングマシンのボキャブラリを変更する独自の様式を提供し、ボキャブラリは、シングマシンが動作を実行することができる基礎を提供する。その結果、本明細書において明示されるように、シングマシンは、解釈及び動作性能を増しながら、受信した要求を解釈、作用、適応することが可能である。受信した要求、対話、シングマシンの要求への応答は、動作である動詞である動作シング又は動作シングであるシングによって作用することができるシング(本明細書では非動作シングとも呼ばれる)のいずれかとしてのシングのカテゴリ化に基づいて実行される。
【0033】
上述したように、シングの特異点において、シングは、実行可能な動作又は実行可能な動作が作用することができるシングを表すことができる。本明細書に説明され示されるように、シングマシンは、グラフのノードがシングを表し、thing:graph内の弧がシング間の可変関係を表すthing:graphとしてシングを編成する。
【0034】
実行可能な動作を表すシングは、本明細書では、動詞シング(thing:verb)と呼ばれ、thing:verbの集まりは動詞ボキャブラリシングである。動詞ボキャブラリ及び動詞動作が作用することができるシングは、ボキャブラリシングである。要するに、最小のボキャブラリを用いて、本システム及び本方法は、普遍的な定量化を使用して、以下をアサートする:シングマシンによって受信された要求であるシングがある場合、シングマシンは要求を解析し、次に、シングマシンの利用可能なボキャブラリのコンテキストにおいて要求を評価して、適切な動詞を選択し、動詞の対応する動作を実行する。動作の実行により、応答を表す1組のシングが生成される。この一般化により、文法応答を生成しない特定の動作に対する応答をシングの空集合にすることができる。シャットダウン動詞の場合等、時に、実行中の動作の観察が、十分な応答である。
【0035】
概説
以下は、シングマシン及び関連するボキャブラリの概説を提供し、3つの主要部を含む。
1.シング間の可変関係を含む関係セットを含む非可変構成要素を有するものとしてシングを説明するシンググラフデータモデル説明。
2.シングマシンアーキテクチャの高レベル概説を提供するアーキテクチャ概説。
3.シング言語で文書を書くことの紹介を提供するシング言語セクション。
【0036】
シングマシン構造
図2は、本発明の一実施形態によるシングマシン100の部分を示す概略図である。
図2に示されるように、シングマシン100は、メモリ102、プロセッサ104、及び非一時的補助記憶装置106を含み、これらはそれぞれ、シングマシン100内での通信を可能にするローカルバス又はローカルインターフェース108を介して通信可能に結合される。
【0037】
メモリ102は、本明細書に記載される機能を定義するソフトウェア120を内部に記憶している。シングマシン100は、入出力(I/O)デバイス110(又は周辺機器)も含む。ローカルインターフェース108は、限定ではなく例として、当技術分野で既知のように、1つ又は複数のバス又は他の有線若しくは無線接続であることができる。ローカルインターフェース108は、通信を可能にするために、簡潔にするために省略された、コントローラバッファ(キャッシュ)、ドライバ、リピータ、及び受信機等の追加の要素を有し得る。さらに、ローカルインターフェース108は、上記構成要素間での適切な通信を可能にするために、アドレス接続、制御接続、及び/又はデータ接続を含み得る。
【0038】
プロセッサ104は、ソフトウェア、特にメモリ102に記憶されたソフトウェアを実行するハードウェアデバイスである。プロセッサ104は、任意のカスタムメード若しくは市販のシングルコア若しくはマルチコアプロセッサ、中央演算処理装置(CPU)、シングマシン100に関連する幾つかのプロセッサの中の補助プロセッサ、半導体ベースのマイクロプロセッサ(マイクロチップ若しくはチップセットの形態)、マクロプロセッサ、又は一般にソフトウェア命令を実行する任意のデバイスであることができる。
【0039】
メモリ102は、揮発性メモリ要素(例えば、ランダムアクセスメモリ(DRAM、SRAM、SDRAM等のRAM))及び不揮発性メモリ要素(例えば、ROM、ハードドライブ、テープ、CD-ROM等)の任意の1つ又は組合せを含むことができる。さらに、メモリ102は、電子、磁気、光学、及び/又は他のタイプの記憶媒体を組み込み得る。なお、メモリ102は分散アーキテクチャを有することができ、分散アーキテクチャでは、様々な構成要素は互いにリモートに配置されるが、プロセッサ104によりアクセスすることができる。
【0040】
ソフトウェア120は、本発明により、シングマシンによって実行される機能を定義する。メモリ102内のソフトウェア120は、1つ又は複数の別個のプログラムを含み得、各プログラムは、後述するように、シングマシン100の論理機能を実施する実行可能命令の順序付きリストを含む。一例として、ソフトウェア120は、パーサ122、評価器124、実行器126、及びフォーマッタ128を定義し得、これらの機能について本明細書において説明する。
【0041】
メモリ102はオペレーティングシステム(O/S)122を含み得る。オペレーティングシステムは基本的に、シングマシン100内のプログラムの実行を制御し、スケジューリング、入出力制御、ファイル及びデータの管理、メモリ管理、並びに通信制御及び関連サービスを提供する。
【0042】
I/Oデバイス110は、入力デバイス、限定ではなく例として、キーボード、マウス、スキャナ、マイクロホン等を含み得る。さらに、I/Oデバイス110は、出力デバイス、限定ではなく例として、プリンタ、ディスプレイ等を含むこともできる。最後に、I/Oデバイス110は、入力及び出力の両方を介して通信するデバイス、限定ではなく例として、変調器/復調器(別のデバイス、システム、若しくはネットワークにアクセスするためのモデム)、無線周波(RF)若しくは他の送受信機、電話インターフェース、ブリッジ、ルータ、又は他のデバイスを更に含み得る。
【0043】
システムであるシングマシン100が動作中であるとき、プロセッサ104は、メモリ102内に記憶されたソフトウェア120を実行して、メモリ102とデータをやりとりし、一般に、上述したように、ソフトウェア120に従ってシングマシン100の動作を制御するように構成される。
【0044】
シングマシン100の機能が動作中であるとき、プロセッサ104は、メモリ102内に記憶されたソフトウェア120を実行して、メモリ102とデータをやりとりし、一般に、上述したように、ソフトウェア120に従ってシングマシン100の動作を制御するように構成される。オペレーティングシステム122は、プロセッサ104により読み取られ、恐らくは、プロセッサ104内にバッファリングされ、次に実行される。
【0045】
シングマシン100がソフトウェア120に実装される場合、シングマシン100を実装する命令が、任意のコンピュータ関連デバイス、システム、又は方法により使用されるか、又は関連して使用される任意のコンピュータ可読媒体に記憶可能なことに留意されたい。そのようなコンピュータ可読媒体は、幾つかの実施形態では、メモリ102又は記憶装置106の一方又は両方に対応し得る。本文書の文脈の中では、コンピュータ可読媒体は、コンピュータ関連デバイス、システム、又は方法により使用されるか、又は関連して使用されるコンピュータプログラムを含むか、又は記憶することができる電子、磁気、光学、又は他の物理的なデバイス又は手段である。システムを実装する命令は、プロセッサ又は他のそのような命令実行システム、装置、若しくはデバイスにより使用されるか、又は関連して使用される任意のコンピュータ可読媒体で実施することができる。プロセッサ104が例として言及されたが、そのような命令実行システム、装置、又はデバイスは、幾つかの実施形態では、任意のコンピュータベースのシステム、プロセッサ包含システム、又は命令実行システム、装置、若しくはデバイスから命令をフェッチし、命令を実行することができる他のシステムであり得る。本文書の文脈の中では、「コンピュータ可読媒体」は、プロセッサ又は他のそのような命令実行システム、装置、若しくはデバイスにより使用されるか、又は関連して使用されるプログラムを記憶、通信、伝播、又は輸送することができる任意の手段であることができる。
【0046】
そのようなコンピュータ可読媒体は、限定ではなく例として、電子、磁気、光学、電磁、赤外線、又は半導体のシステム、装置、デバイス、又は伝播媒体であることができる。コンピュータ可読媒体のより具体的な例(非網羅的リスト)としては以下が挙げられる:1本又は複数本のワイヤを有する電気接続(電子)、ポータブルコンピュータディスク(磁気)、ランダムアクセスメモリ(RAM)(電子)、読み取り専用メモリ(ROM)(電子)、消去可能プログラマブル読み取り専用メモリ(EPROM、EEPROM、又はフラッシュメモリ)(電子)、光ファイバ(光学)、及びポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)(光学)。なお、コンピュータ可読媒体は、プログラムがプリントされる紙又は別の適した媒体であってさえもよく、その理由は、プログラムは、例えば、紙又は他の媒体の光学スキャンを介して電子的に捕捉することができ、次に、必要な場合にはコンパイル、解釈、又は適するように他の方法で処理され、次に、コンピュータメモリに記憶することができるためである。
【0047】
シングマシン100がハードウェアで実装される代替の実施形態では、シングマシン100は、それぞれが当技術分野で周知の以下の技術のいずれか又は組合せを用いて実装することができる:データ信号に対して論理関数を実施する論理ゲートを有する離散論理回路、適切な結合論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)等。
【0048】
本発明の第1の例示的な実施形態によれば、最初、メモリ102は、1組のシングマシン手順P(TM(i))で構成されるシングマシン手順P(TM)(実行可能手順である)を含む。限定ではなく、Windows 10を実行するDell Latitude 15 3000シリーズラップトップ等の1つの計算機において;Raspberry Pi 3等のチップ上のシステムを使用して;1つのマシン内の多数の計算構成要素を使用して;又は直接若しくは間接的に通信することができる多数の別個の分かれたマシンを使用して、多数のP(TM(i))を実施することができることを当業者は理解しよう。シングマシンは、限定ではなく、米国特許第6363437号のPlug and Play I2C slaveにおいて規定される等のプラグランドプレイアーキテクチャを使用して実施することができ、この米国特許は全体的に、参照により本明細書に援用される。
【0049】
多数のP(TM(i))で構成される第1のP(TM)は、第2のP(TM)のP(TM(i))として構成することができる。
【0050】
シングマシン(TM)は、1組のシング(例えば、要求等の入力)に対して作用し、動作を実行し、1組のシング(例えば、生成された応答等の出力)を生成することができる手順P(TM)である。計算可能性のチューリングモデル及びユニバーサルチューリングマシンがチューリングマシンをシミュレートすることができることに従って、仮説的に、
【数1】
であると結論付けることができる。モデルは、
【数2】
としてこれらの何らかの数nをアレンジすることによりP(TM)を構築することができることを示す。特に、本明細書において更に詳細に説明するように、シングマシンの第1の手順が、シングマシンの第2の手順であって、第2の手順のシングマシンは第1の手順と同じシングマシンと同じであることもあれば、同じではないこともある、シングマシンの第2の手順に、動作を実行するように要求する場合、それに応答して、第2の手順は動作を実行し、第1の手順のシングマシンに応答を提供し、応答の受信に応答して、第1の手順のシングマシンの手順は、必要であれば、P(TM)を再構成し得る。繰り返しになるが、ここでも、この例で使用される第1の手順及び第2の手順が第1のP(TM(i))及び第2のP(TM(i))であることに留意する価値がある。
【0051】
各P(TM(i))は、別個のステップシーケンスを実行する実行可能マシンコードで表現されるモデル又はモデルの構成要素のアルゴリズム実装であり、各P(TM(i))はP(TM(perform))によって実行可能である。数字の代わりに、本発明によれば、シングマシンは、言葉を使用して、所与のP(TM(i))で行う動作のタイプを記述する。P(TM(perform))は、本明細書において更に詳細に定義される。
【0052】
モデルは、現象のモデル、データのモデル、理論のモデル、又は会話領域の問題文のモデル(ビジネスの問題を解くようにモデリングされたアプリケーション等)等の世界の選択された部分の表現であることができ、ここで、科学モデルは同時にこれらの表現であることができるため、上記モデルは網羅的ではなく、モデルは、本明細書において開示されるシングモデルに関して表現することができる(「モデル」に関するhttps://plato.stanford.edu/entries/models-science/を参照のこと)。
【0053】
P(TM(i))として表現される手順Pを有する所与のTM(i)は、主にデジタルプロセッサ動作である必要はなく、デジタルプロセッサを使用して、機械的、電気的、電磁波、圧力波の生物学的、化学的生成又は受信、電磁放射の生成又は受信を生じさせ得る。
【0054】
例として、プロセッサ動作は、電圧を電気インターフェースに印加させて、モータ動作によりシングマシンを前方向又は逆方向に推進できるようにする。上記動作は、第2のP(TM(i))プロセッサ動作が上記電圧をリセットするまで続け得る。したがって、シングマシンは、P(TM)を他のthing:statementに応答可能にしながら、機械的動作を実行し続ける。
【0055】
更なる例として、P(TM(i))は、入力駆動リコンビナーゼを使用して、リコンビナーゼ認識部位の重複し直交する対で構成されるDNAレジスタを操作するリコンビナーゼベース状態マシン(RSM)と対話する動作を実行することができる。したがって、RSMに符号化された状態情報を照会又はシーケンス化することができる。
【0056】
P(TM)メモリは、ブートというタイトルの本説明のセクション内で詳細に説明するように、初期化に必要な最小組のP(TM(i))を含む。要するに、本発明の第1の例示的な実施形態によれば、P(TM)は以下のP(TM(i))を含む:P(TM(boot))、P(TM(thing))、P(TM(parse))、P(TM(eval))、P(TM(perform))、及びP(TM(configure))。P(TM)の主要論理は、P(TM(boot))を実行し、次に停止することである。最初、P(TM)メモリにより追加の又はより少数のP(TM(i))を提供し得ることに留意されたい。
【0057】
シングマシンは、限られた自己構成可能なシングのブートボキャブラリを用いてブートされる。P(TM(thing))動作は、シング及びシング間の可変関係をthing:graphとして編成する。幾つかのシングは、実行可能な動作を表す。実行可能な動作の実行は、シングに対して作用することができる。P(TM(i))動作は、限定ではなく、シング及び/又はシング間の可変関係のセット、取得、及びアンセット等のシングの監督に関連する動作を実行するようにP(TM(thing))に要求することができる。シングは、シングを取得し設定することによって変更することができる。加えて、シングはアンセット及び設定することができる。それに関して、シンググラフは、シングマシンのボキャブラリとして見ることができ、ボキャブラリはシングマシンの知識ベース(シングマシンが実行の仕方を知っている動作及び動作が作用することができるシング)を表す。
【0058】
本開示の範囲内で、「と対話する(interact with)」という用語が、P(TM(i))が、関連するマシンコードを実行させることを指すことに留意されたい。例えば、AがB「と対話する」場合、Aは、Bに関連するマシンコードを実行させる。
【0059】
P(TM(input))動作及びP(TM(output))動作は、電磁波デバイスと対話して、P(TM)との通信を提供する。動作は、インバウンドコンテンツは要求シングであり、アウトバウンドコンテンツは応答シングであるように、P(TM(thing))と対話する。
【0060】
P(TM(parse))動作は、コンテンツシングを解析し、P(TM(thing))と対話して、ステートメントを表すthing:graphを作成する。インタープリタとして動作するマシンの第1の例示的な実施形態では、thing:graphは実行可能なthing:graphである。シングマシンの第2の例示的な実施形態では、P(TM(eval))動作はP(TM(thing))と対話して、アクセス可能なボキャブラリのコンテキストにおいてthing:graphを評価し、実行可能なthing:graphを生成する。なお、P(TM(input))及びP(TM(parse))のアルゴリズムステップは、P(TM(parse.input))等の適切なP(TM(i))によって与えられる1つの手順として結合することができる。
【0061】
P(TM(perfrom))動作は、P(TM(thing))と対話して、動作を実行することができるシングのコンテキスト内でシングの実行可能な動作を実行する。
【0062】
P(TM(format))動作は、P(TM(thing))と対話して、P(TM(output))動作が出力するアウトバウンドコンテンツ応答シングとして、応答名前空間シングをフォーマットする。なお、P(TM(format))及びP(TM(output))のアルゴリズムステップは、P(TM(format.output))等の適切なP(TM(i))によって与えられる1つの手順として結合することができる。
【0063】
P(TM(configure))動作は、P(TM(thing))と対話して、アクティブシング又は動詞とも呼ばれる実行可能シングとしてP(TM(i))を構成する。これにより、実行可能な動作のボキャブラリを更新することができる。マシンがこの時点で実行することができるシングは、追加、除去、又は複雑性の範囲において変更することができる。なお、P(TM(i))はアルゴリズム動作を提供し、iはその動作を表す名前を示す。動作は、ニューラルネット分類器動作、電子取引動作、又は実行に移すことができる任意の他のそのようなアルゴリズム動作であり得る。
【0064】
ブート
シングマシン100を使用する前、シングマシン100は、ブートプロセスを実行して、シングマシンの環境及び受信した要求のソースに順応し、更に適応することができる。
【0065】
シングマシンに電源が投入される都度、P(TM (boot))動作は、P(TM(thing))と対話して、それぞれがP(TM(perform))動作が実行させることができる動作と当該動作が作用することができるシングとを表す、thing:verbのセットで構成されるボキャブラリを表すthing:graphを自己構成して、シャットダウン前の最後の既知の状態等のP(TM)の事前知識を表すシングを用いてマシンをブートストラップする。何かを行っており、シングを発生させた(P(TM(thing))がthing:graphを監督する)シングマシンの動作として経験を定義する場合、シングマシンは、シングを実行した結果として経験(シングが実行することができる動作を表すシング又はシングとして表される知識)を得ると言うことができる。
【0066】
上記ボキャブラリを使用して、シングマシンはコアボキャブラリを構成し、コアボキャブラリは、アプリケーションを実行できるようにする基礎を提供する。したがって、P(TM(i))の性能はP(TM(thing))と対話して、thing:graphを変更することができ、上記変更は事後知識(経験から学習するシング)として考えることができる。
【0067】
動作はthing:graphをトラバースし、コンテンツをフォーマットし、補助記憶装置と対話して、thing:graph情報を保持することができ、次に、thing:graph情報は、thing:graphを再構築する動作によって検索し使用することができる。
【0068】
一実施形態では、コアボキャブラリは、所定の組のシングを含むように構成することができ、ボキャブラリは有限の所定のサイズ及び範囲である。第2の実施形態では、ボキャブラリ内の1組のシングは、シングマシンによって動的に監督され、ここで、シングは設定され(学習され、thing:graphに追加される)、他のシングはアンセットされる(忘れられ、thing:graphから削除される)。
【0069】
シングマシンは、グラフとしてシングを編成する。コンテキストグラフという名前の一グラフは、名前空間を表すシングを含む。名前空間は、要求、応答、1組のタスク、サービス、動詞ボキャブラリ、又はアプリケーションディクショナリ等のシングの概念グループを表すのに使用される名前付きグラフである。名前空間ボキャブラリは、存在論の一形態として見ることができる。しかしながら、離散したボキャブラリを使用する幾つかの名前空間は、ボキャブラリの一部で存在論的コミットメントを共有し得る。
【0070】
グラフの自己構成では、P(TM(boot))は、動詞動作を表すシングを構成するようにP(TM(thing))に要求し、ここで、上記シングは、P(TM(perform))が実行することができる実行可能な動作への参照の表現を有する。例示的な動詞動作には、限定ではなく、解析、評価、実行、及び構成がある。集合的に、上記シングはボキャブラリと呼ばれ、上記シングのグラフはブートボキャブラリである。シングマシンのブートプロセスは、マシンの事前知識(ボキャブラリの初期シング)を表すようにシングマシンの限られたボキャブラリを自己構成する。限られたボキャブラリは、動詞及び動詞が作用することができるシングを含む。本発明の第1の例示的な実施形態によれば、シングマシンの基本動詞ボキャブラリは、少なくとも、動詞「入力する」、「出力する」、「解析する」、「評価する」、「実行する」、及び「構成する」を含む。各動詞に関連付けられたシングマシンの手順は丁重にP(TM(parse))、P(TM(eval))、P(TM(perform))、及びP(TM(configure))と呼ばれる。以下に詳述するように、これにより、シングマシンは、自己構成されたthing:verbのコンテキストにおいて要求を評価し、追加の動詞を動詞ボキャブラリに追加する構成動作を実行することができる。このモデルを使用して、シングマシンの動詞ボキャブラリは動的に構成可能になり、サイズ及び範囲を必要に応じて増減することができる。
【0071】
自己構成のプロセスは、限られたボキャブラリの受信のみならず、各動詞に少なくとも1つのthing:graphを作成することも含む。特に、thing:graph内の動詞は、非動詞と同様にノードであり(両方ともシング)、thing:graph内の弧は、シング間の可変関係を表す。したがって、thing:graphは、続くシング間の関係を定義する。
【0072】
P(TM(thing))動作は、シング及びシング間の可変関係をthing:graphとして編成する。幾つかのシングは、動作、発生、又は存在の状態を表し、他のシングは、動作が作用することができるシングである。シングマシンは、シングの限られた自己構成ブートボキャブラリを用いてブートされる。ブートボキャブラリを使用して、シングマシンは、シングで構成されるコアボキャブラリを含む事前知識を構成する。
【0073】
P(TM(input))動作は電磁波デバイスと対話して、P(TM)に通信を提供する。本発明の一実施形態は、P(TM(input))をP(TM(parse))と結合し得る。動作は、インバウンドコンテンツが、解析動作によって解析することができる要求シングであるように、P(TM(thing))と対話する。
【0074】
P(TM(output))動作は任意選択的シングである。その動作は電磁波デバイスと対話して、P(TM)から通信を提供する。
【0075】
P(TM(parse))動作は、コンテンツシングを解析し、P(TM(thing))と対話して、ステートメントを表すthing:graphを作成する。インタープリタとして動作する単純なマシンでは、thing:graphは実行可能なthing:graphである。適応シングマシンでは、P(TM(eval))はP(TM(thing))と対話して、アクセス可能なボキャブラリのコンテキストにおいてthing:graphを評価し、実行可能なthing:graphを生成する。なお、P(TM(input))及びP(TM(parse))は、P(TM(parse.input))等の適切なP(TM(i))によって与えられる1つの動作として結合することができる。
【0076】
P(TM(perform))動作はP(TM(thing))と対話して、動作を実行することができるシングのコンテキスト内でシング動作を実行する。
【0077】
P(TM(configure))動作はP(TM(thing))と対話して、実行可能なシングとしてP(TM(i))を構成する。これにより、実行可能な動作のボキャブラリを更新することができる。マシンがこの時点で実行することができるシングは、追加、削除、又は複雑性の範囲において変更することができる。なお、P(TM(i))はアルゴリズム動作を提供し、iはその動作を表す名前を示す。動作は、ニューラルネット分類器動作、電子取引動作、又は実行に移すことができる任意の他のそのようなアルゴリズム動作であり得る。
【0078】
ブートプロセス及び
図3の概略図を参照すると、シングマシン100がブートすると、P(TM(boot))は、シングマシンのブートボキャブラリを作成するようにP(TM(thing))に要求する(ブロック202)。P(TM(thing))は、要求を受信し、ブートボキャブラリを表すシング(例示を目的として、「boot:」と呼ばれる)を作成する(ブロック204)。シングの作成は、P(TM(thing))がメモリのユニットをシング(すなわち、boot:)がブートボキャブラリ内のシングを認定するシングのサイズ初期化することによって実行される。
【0079】
シンググラフデータモデル
図4は、シングマシン100によって実行される、ブートプロセスによるグラフの作成を明示する目的で提供されるグラフである。このセクションは、全てのシングベースの言語、仕様、及びRDFに基づく参照実装をリンクするように機能する抽象シンタックスを定義する。RDFは、ウェブにおける情報を表すための枠組みである(W3C、2014年)。RDFグラフは1組の三つ組みであり、各三つ組みは、
図4に示されるように、主語、述語、及び目的語からなる。RDFは3つのタイプのノードを提供する。ノードは、IRI(RFC3987参照)、文字、又は空白のノードであることができる。IRI又は文字は、世界における何かを示し、リソースと呼ばれる。
【0080】
RDFシンググラフは、シングについてのRDFグラフである。RDFシンググラフは、シングの非可変構成要素を記述する。構成要素は非可変であるが、構成要素の値は可変である。幾つかのシングは、実行可能な動作を有するアクティブシングであり、往々にして動詞と呼ばれる。他のシングは、動詞動作が作用することができるシングである。シングは、RDFリソース、概念、事実、アイディア、エンティティ、物体、インスタンス、イベント、発生、デバイス、センサ、サービス、タスク、サービス、ユーザ、ウェブリソース等を表すことができる。
【0081】
シングは非可変構成要素で構成される。シングは、非可変構成要素の知識を有するP(TM(thing))によって監督される。シングの第1の例示的な非可変構成要素は、会話領域においてあるシングを別のシングから区別するのに使用される識別子であるが、リストを表すシングのメンバである重複した名前のシング等の重複した名前のシングが存在することができる。
【0082】
シングの第2の例示的な非可変構成要素は値である。一実施形態では、値は、RDF1.1仕様において定義されたRDF文字である。当業者はRDF1.1仕様に精通しており、この仕様は全体的に、参照により本明細書に援用される。加えて、当業者は代替の仕様によって定義される代替の値表現を使用することもできる。シングの非可変構成要素値の値が空であり得ることに留意されたい。
【0083】
シングの第3の例示的な非可変構成要素は、関係セットである。シングが空の関係セットを有する場合、シングはヌルグラフを表す。関係セットとは、第1のシングと第2のシングとの間で保持される1組の関係である。主要な関係は関連付けの1つである。関連付けは、組成(composition)又は集合(aggregation)の形態であることができる。シングAがシングBで構成される場合、関係は不変である。シングAが、シングBを含む集合である場合、関係は可変である。ここで、例として、シングBは、
図5に示されるように、シングAから独立して存在することができる。述べたように、シングは、非可変構成要素の知識を有するP(TM(thing))によって監督される。
【0084】
第1の例示的な関係はthing:sttia関係であり、これは、存在量化を使用して以下を示す:目的語シングがあるこの主語シングがある(there is this subject Thing such that there is an object Thing)。関係は可変である。これを
図6に示す。
【0085】
目的語シングは、シングのリスト又は1組のシング等のシングの集まりを表すことができる。関係は、以下のようなインスタンス修飾語句を使用して表現することができる:目的語シングのインスタンスがあるこの主語シングがある(there is this subject THING such that there is an instance of an object THING)。シングのインスタンスは、シングの分類に応じて異なる意味を有することができる。場合によっては、インスタンスはメンバであることもあれば、何かの発生であることもある。
【0086】
thing:is-a関係は、第1のシングが第2のシングの一タイプであることを表現する。これについて、本明細書において、メタデータとしての属性と呼ばれるセクションにおいて更に説明する。一般的な意味で、thing:is-a関係はシングの分類を可能にする。
【0087】
thing:depends-on関係は、主語シングが目的語シングへの依存性を有することを示す。UMLからの関係等の追加の関係をRDFシンググラフデータモデルに追加することができる。これらは、関連付け、集合、有向関連付け、組成、反射関連付け、継承、多様、及び実現を含む。
【0088】
識別子及びリスト
リストはシングへの参照の表現である。リストは、識別子等の非バインド名であってもよく、又は2つ以上のシング間の関係を伝達するように表現してもよい。リスト「this」は、名前が「this」に等しいシングを参照していることを示す単純な識別子である。リスト「this.that」は、名前が「that」に等しいシングがあるような、名前が「this」に等しいシングがあることを示すことができる。リストの厳密な解釈は、リストがバインドされた名前空間に依存し、これは、後述するように、URIにおけるセクション(RFC3986参照)においてより詳細に網羅されている。
【0089】
メタデータとしての属性
属性は、シングの固有の特性又は品質を記述する。属性は、メタデータとして表現される。thing:metadataは、属性のタイプを識別するシングであり、シングの値は属性の値を記述する。
【0090】
属性は、thing:metadataとして識別され、続けて三つ組みに使用することができる。一例として、thing:class属性を使用して、シングの分類を示す。クラスとは、所与の瞬間において、シングがクラスのメンバであるために必要とされるものを指定するメンバーシップ基準を満たす1組のシングである。意図は、時間依存基準である。所与の瞬間での拡張(extension)は、その時間での全てのメンバのリストである。
【0091】
属性は状態を記述し得る。例えば、シングは、分類を示さずに宣言することができ、バインド動作を「非バインド」シングに対して行って、「未知」シングとしてバインドされる場合であっても、バインド動作が認識することができる何かに「非バインド」シングをバインドすることができる。バインド動作は、シングを非バインド状態からバインド状態に遷移させる。バインドシングは、見つけることができることもあれば、見つけることができないこともある。見つけられたバインドシングは、バインド動作がシングを、バインド動作が理解する何かにバインドすることができたことを示す。見つけられないバインドされたシングは、バインド動作がシングに適用されたが、シングは、バインド動作が理解することが可能な何かではなかったことを示す。
【0092】
アクティブシング
特定の動作への参照の表現を有するシングは、アクティブシングとして分類される。これに関連して、実行可能な動作は、マシンが実行させて、何らかの結果を達成することができる動作であり、主に、計算的、電気的、化学的、光学的、生物学的、機械的、電磁波、又はそれらの組合せの性質であり得る。
【0093】
本明細書におけるアクティブシングは、動詞が、動作を記述する名詞であり、アクティブシングが動作を記述するという意味で、thing:verbと呼ばれることが多い。したがって、アクティブシングの名前は、識別子が、実行することができる動作を記述する動詞である。
【0094】
分類をサポートする一実施態様では、実行可能な動作への関係を有するシングは、
図7に示されるように、thing:is-a関係を使用してthing:verbとして分類される。
【0095】
動詞は1組のシングに対して動作することができる。動作されることが可能なシングは、RDFシンググラフにおいて明示的に指定してもよく、又は分類によって暗黙的に指定されてもよい。数量詞を使用して、会話領域におけるシングの範囲を、動詞動作が作用することができるシングに制限することができる。
【0096】
名前空間
名前空間は、単に同じ名前空間のメンバであることにより関連する場合であっても、何らかの方法で論理的に関連するシングの名前付きグラフを表すシングである。グラフは、シング及びシングの関係を含む。
図8に示されるように、分類をサポートするグラフにおいて、名前空間シングはthing:namespaceとして分類され、thing:namespaceはthing:classである。
【0097】
コンテキスト
コンテキストは、現在の範囲を有する1組の名前空間を定量化するシングである。
図9に示されるように、分類をサポートするグラフにおいて、シングはthing:contextとして分類される。
【0098】
コンテキストは、1組の名前空間が、シングを表すIRIを逆参照する際に使用するために、現在の範囲を有することができるようにする。例えば、request:statementは、コンテキストに相対して分解することができるIRIである。英語では、これは以下として表現される:There is namespace where the name is equal to request, such that, there is a Thing where the name is equal to statement.(名前がステートメントに等しいシングがあるような、名前が要求に等しい名前空間がある。)
【0099】
URI
URIはリソースを識別し、シングは、シングマシンにおけるそのリソースの表現である。シングは、実行可能な動作又は実行可能な動作が作用することができるシングのいずれかを有する。URIの一般化された形態は、
scheme:scheme specific part
として与えられる。
【0100】
シングマシンでは、スキームは、以下に示すように、名前がURIスキームの命名規則に従う名前空間シングへの参照として解釈される。これには、RDFシンググラフを使用して既存のスキーム名を表現することができるという利点がある。
名前空間名は、文字で始まり、文字、数字、プラス(「+」)、ピリオド(「.」)、又はハイフン(「-」)の任意の組合せが続く一連のキャラクタからなる-RFC3986。
【0101】
インターネット割当番号公社(Internet Assigned Numbers Authority)によって公開された全ての永久URIスキームは、確保された名前空間名である。確保された名前空間にけるシングのモデリングは、その名前空間について公開されたRFCの意味に準拠すべきである。例えば、news:及びnntp:の名前空間においてシングをモデリングするには、RFC5538を調べるべきである。公開されたURIスキームのリストは、IANAによって保持されており、
http://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml
においてオンラインで入手可能である。
【0102】
「URN」名前空間は、確保された名前空間であり、その名前空間固有部分は、そのURN名前空間について公開された対応するRFC文書によって定義されるものとして解釈される。公開されたURNのリストは、IANAによって保持されており、
http://www.iana.org/assignments/urn-namespaces/urn-namespaces.xhtml
においてオンラインで入手可能である。
【0103】
リストの名前空間固有部は、名前空間(スキーム)の仕様に従って解釈される。
【0104】
一般的なURIシンタックスのパーサは、任意のURI参照を主要構成要素に解析することができる。スキームが特定されると、更なるスキーム固有の解析を構成要素に対して実行することができる。換言すれば、URI一般シンタックスは、全てのURIスキームのシンタックスの上位集合である。
【0105】
しかしながら、http:、https:、及びfile:名前空間は、「/」キャラクタ区切り文字を使用し、それにより、参照:http://www.THINGlanguage.com/requestは、
名前が「http」に等しいようなTHING:NAMESPACEがあり、そこには名前が「www.THINGlanguage.com」に等しいシングがあり、そこには名前が「request」に等しいシングがある。
として解釈される。
【0106】
mailto名前空間は、RFC6068に従って参照を解釈する。例えば、参照:mailto:info@thinglanguage.comは、
名前が「mailto」に等しいようなTHING:NAMESPACEがあり、そこには名前がinfo@THINGlanguage.comに等しいシングがある。
として解釈される。
【0107】
OSX及びIOSにおいてサポートされるTHINGS:schemeをモデリングすることもできる。THINGS:URIは、THINGS:command?parameter1=value1¶meter2…として与えられる。これは、
名前が「THINGS」に等しいようなTHING:NAMESPACEがあり、そこには名前が「command」に等しいシングがあり、そこには名前が「parameter1」に等しく、且つ値が「value1」に等しいシングのインスタンスがあり、名前が「parameter2」に等しいシングのインスタンスがある。
として解釈される。
【0108】
名前空間シングの名前は、IRIスキームの命名要件に従う(RFC3987参照)。これは、URI(IRIの一形態であり、RFC3986において記載される)をシングにバインドする方法として機能する。URIスキーム名は、名前空間シングにバインドされる。例えば、全てのhttp:URIは、http:namespaceシング内でバインドされる。http URIのシングへの例示的なバインドを
図10に示す。
【0109】
満足クレーム
基本アサートは、満足クレームを表すthing:assertionであり、所与のクレームが真であることをアサートする。シンググラフモデルでは、アサートは、有向エッジラベルではなくシングである。
図11を参照すると、thing:graphでは、空白ノードは満足クレームを表し、クレームはthing:objectへの参照を有し得る。
【0110】
図12に示されるように、thing:assertionは、thing:subjectが数値である値を有し、したがって、thing:objectが必要ないことをアサートする。
【0111】
図13に示されるように、thing:assertionは、thing:subjectの値がthing:objectの値未満であることを主張する。
【0112】
満足クレームの真実性は、クレームに対応する計算手順によって決まる。それに関して、満足クレームは、動作が作用することができるシングを記述する、対応するtrhing:graphを有するアクティブシングである。
【0113】
例示的な満足クレームは、限定ではなく、以下の表1に示されるものが挙げられる。
【0114】
【0115】
単純な述語の「is」部分は、述語の否定を示すために、「not」が続くことができる。例えば、thing:is-not-equal-to。thing:matchの否定は、thing:does-not-matchとして指定される。
【0116】
コネクタ
論理的なコネクタを使用して、2つの満足クレームを接続する。例示的なコネクタには、限定ではなく、and、or、not、implies、及びiffがある。満足クレームと同様に、論理コネクタは、有向エッジラベルではなくシングとして表現される。論理コネクタシングはアクティブシングである。コネクタを有するグラフの一例を
図14に提供する。
【0117】
単純なコネクタの例には、限定ではなく、表2によって示される以下がある。
【0118】
【0119】
手順グラフでは、確かに、満足クレームは真(満足)又は偽(不満足)に評価されるが、宣言グラフにおける満足クレームは、クレームが範囲にわたる1組のシングを含むように拡張することができる。
【0120】
グラフタイプ
シンググラフは、何かを行う方法を記述する場合、手順的な性質を有する。例えば、シングの値を設定するグラフは、タスクの実行に必要な動作を記述する一連のステートメントであるため、手順ステートメントである。
【0121】
シンググラフは、宣言を表すステートメントである場合、宣言的である。HTMLは宣言ステートメントの一例である。HTMLソースコードは、文書の所望のレイアウトを記述し、HTMLレンダリングエンジンは、HTMLソースコードを処理して、実際のレイアウトを実行する。
【0122】
シンググラフは、オブジェクト及びメソッドを記述する場合、オブジェクト指向である。一例として、オブジェクト及びオブジェクトを設定、取得、アンセットするメソッドを示すグラフは、オブジェクト指向である。
【0123】
シンググラフは、メッセージ又は状態等のイベントがグラフの評価を駆動する場合、イベント駆動グラフである。シンググラフは、有限状態マシンで使用するために、状態及び状態間の遷移を表現する場合、有限状態グラフである。
【0124】
シンググラフは、ハレルの状態図、XML状態図、又はUML状態図等の上記タイプのグラフの1つ又は複数の組合せであってもよい。
D.Harel及びM.PolitiによるModeling Reactive Systems with Statecharts: The STATEMATE Approach,McGraw-Hill, 1998。
(http://www.wisdom.weizmann.ac.il/~dharel/reactive_systems.html参照)
【0125】
実行可能なマシンコードで表現されるシングマシン手順P(TM(thing))は、シング及びシング間の関係を監督する動作を非一時的メモリに提供する。実行可能な動作への参照の表現を有するシングは、動詞である。実行可能なマシンコードで表現されるシングマシン手順P(TM(perform))は、P(TM(thing))と対話して、動詞シングへの参照を取得し、動詞の実行可能な動作P(TM(i))を実行させる動作を提供する。動作の実行は、P(TM(thing))動作と対話して、非一時的メモリにおいてシングに作用することができる。実行可能なマシンコードで表現されるシングマシン手順P(TM(configure))は、P(TM(thing))と対話して、動詞シングを設定する動作を提供する。したがって、シングマシンが動作として実行することができるシング及び動作が作用することができるシングに関して、問題文を記述し、解を建築することができる。
【0126】
図15は、シングマシンによって実行される最小ランタイムステップを例示するフローチャート250である。フローチャートにおける任意のプロセス説明が、プロセスにおける特定の論理機能を実装する1つ又は複数の命令を含むモジュール、セグメント、コードの部分、又はステップを表すものとして理解されるべきであり、本発明の分野の当業者により理解されるように、関わる機能に応じて、略同時又は逆順を含め、示される又は考察される順序以外で機能を実行し得る代替の実施態様が、本発明の範囲内に含まれることに留意されたい。
【0127】
特に、少なくとも以下のステップはシングマシンによって実行されることに留意されたい。ブロック252に示されるように、入力の解析、センサとの対話、又は動作を実行するようなシングマシンへの要求による等、アルゴリズム的にP(TM(i))動作は、シングマシンが動作を評価し実行するためのステートメントを表すthing:graphを生成する。
【0128】
これは、そのような温度、加速度、高度、経度及び/又は緯度、運動センサ、熱センサ、煙センサ、又は他のそのようなセンサ、センサ生成データを取得して、thing:statementを増分的に構築し、対応する実行可能なthing:statementを実行するP(TM(i))にとって有用である。同様に、イベント、タイマ、割り込み、又はアラーム等の信号が通知されたP(TM(i))は、P(TM(request))と対話して、thing:statementを構築して評価し、対応する実行可能なthing:statementを実行して、P(TM)がその受信に応答できるようにする。
【0129】
そのようなP(TM(i))の第1の例示的な実施形態は、XML文書を解析して、以下のアサートが真であるようなthing:graphを生成する:
名前がcore:printに等しいシングがあり、そこには名前が「message」に等しく、値が「Hello, World」に等しいシングがある。対応するthing:graphを
図16に示す。
【0130】
ブロック254に示されるように、P(TM(eval))動作はP(TM(thing))と対話して、上記thing:graph及び現在の動詞ボキャブラリにアクセスし、それらと対話して、適切な動詞動作をアルゴリズム的に選択し、実行可能なthing:graphを構築し設定する。現在の動詞ボキャブラリは、初期動詞ボキャブラリであってもよく、又は動的に変更された動詞ボキャブラリであってもよいことに留意されたい。
【0131】
ブロック256に示されるように、P(TM(perform))動作はP(TM(thing))と対話して、実行可能なthing:graphを取得し、それを実行させる。
【0132】
本発明の代替の実施形態によれば、シングマシンは、P(TM(eval))動作を含まないことがある。そのような実施形態では、P(TM(parse))が命令文を解釈する。
【0133】
THING:GRAPH/コアボキャブラリの変更
上述したように、P(TM(i))はP(TM(thing))と対話して、thing:graphを設定することができる。シングアーキテクチャでは、入力及び出力の詳細を抽象化し、動詞動作の使用を通して出現させることができる。言語、文法、シンタックス、及び伝達動作の選択はそれ自体、単にシングである。
【0134】
P(TM(parser))動作が文法シンタックスの要素をthing:graphにアルゴリズム的に解析することができる限り、任意の数の言語及びシンタックスをP(TM(i))入力ストリームで受信することができ、解析することができる。
【0135】
言語はシングであり、より正確には語彙及び文法を含む伝達体系として説明される。語彙は、その言語での1組の単語又は語句等のボキャブラリである。文法は、形態、意味論、及びシンタックス等の規則を課す。
【0136】
動作は、伝達するために実行されなければならないシングである。読む及び観察等の視覚的伝達スキルが使用可能である。書く又は署名する等の物理的動作が使用可能である。音声伝達スキルが使用可能である。代替的には、点字筆記体系が使用可能である。これらは全てシングであり、これらはシングであるため、これらの動作は、シングマシン(すなわち、P(TM))が実行可能な動作としてモデリングし構成することができる。
【0137】
伝達動作の一形態としてのジェスチャは社会を超える。ある方向を指す指、足の踏みならし、又は笑顔の意味は一般に理解される。ジェスチャは、手話は、明確に定義された意味を有する、確立された表現及び動きを使用するという意味で手話と異なる。
【0138】
人々と同様に、シングマシンは、所与の言語の読みボキャブラリ、書きボキャブラリ、リスニングボキャブラリ、及び発話ボキャブラリを有することができる。これらの各ボキャブラリは、異なるレベルであることができる。シングマシンは、構成されたシングにより、シングマシンが聞いたとき、単語が何を意味するのかを知り得るが、その単語を正確に発音する又は書くことができないことがある。同様に、シングマシンは、何かを読み、認識しない単語を見ることがある。例えば、単語ossifyは、骨のように固いことを意味する英語の動詞の単語であるが、英語の言語では希にしか使用されない動詞の1つであり得、したがって、モデリングされた実施形態は、シングマシンの動詞ボキャブラリに構成されていないことがある。
【0139】
シングマシンは、馴染みのない単語を識別すると、その音節と対話することによってその単語の意味を解釈しようとし得る。シングマシンは、語根を検出することができる場合意味を推測することが可能であり得る。シングマシンは、新しい単語及びその使用方法を学習するにつれて、それらの新しい単語を様々なボキャブラリに追加することができる。
【0140】
多言語シングマシンは、シングマシンが知る各言語に異なるボキャブラリ機能を有することができる。シングマシンは、学校でパピアメント語、オランダ語、スペイン語、及び英語を学習しているアラビアの生徒の言語教育システムでモデリングすることができる。各シングマシンは、各言語で異なるレートで、且つ潜在的には異なる性能で読みボキャブラリ、書きボキャブラリ、リスニングボキャブラリ、及び発話ボキャブラリを開発することができる。
【0141】
シングマシンは、文法及びシンタックスに従ってステートメントを解析して、トークンシングにし、トークンシングを対応するボキャブラリ内のシングにバインドすることができる。特定のシングは即座に分類することができ、一方、他のシングは、前後の単語を見て意味を推測する必要がある。
【0142】
ステートメントの意味はそれでもなお曖昧であり得る。ステートメント:「Let’s eat honey」を考える。これは、蜂蜜を食べることを意味することができ、又はあなたがあなたの愛する人に食べ始めるように勧めることを意味することができる。本明細書において詳細に説明するように、ステートメントの解釈及び意味の管理を促進するために、開始ノードが動詞名であり、接続されたノードが、動詞動作が作用することができるシングであるシング動詞グラフのアイディアを導入する。
【0143】
動作を実行すると、P(TM(thing))と対話して、thing:graphを作成するように、続けて、P(TM(parse))以外の動詞P(TM(i))動作を構成することができ、続けて上記thing:graphを評価して、実行可能なグラフを作成することができることに留意することが重要である。実行可能なthing:graphの実行は、動作にP(TM(thing))と対話させ、P(TM(thing))が監督するシングのthing:graphを変更させることができる。そのようなP(TM(i))の例示的な実施形態は、P(TM(thing))と対話して、1組のアクティブシング(ここで、1組とは1つ又は複数である)を構成する動作を提供するP(TM(cofnig))である。
【0144】
P(TM(i))の動作は、環境と対話して、P(TM(thing))によって監督されるthing:graphを変更する要求のthing:graph表現を生成することができる。それに応答して、P(TM(config))はP(TM(thing))と対話して、P(TM(thing))によって監督されるthing:graphを変更する。したがって、P(TM(config))の動作は、本明細書ではコアボキャブラリとも呼ばれる現在のボキャブラリを変更する。
【0145】
図17を参照すると、P(TM(config))は、要求名前空間シングによって認定されたシング、すなわち、G.request及びG.urrがあるようなG.id(空白ノードとして示されている)に対して作用する。
【0146】
G.idシングの名前は、P(TM(config))が構成する動詞シングの識別子である。G.requestは、動詞シングの実行が作用することができるシングを記述するグラフである。G.urrシングの値は、動詞シングの実行を要求するユニフォームリソース要求として解釈されるURIである。
【0147】
図18を参照すると、P(TM(config))のmy:configureバージョンは、ボキャブラリ識別子(vocabulary.id)であるシングがあり、G.request及びG.urrがあるようなグラフIDであるシングがあるようなURIrequest:statementによって識別されるシングに対して作用する。ボキャブラリ識別子は、P(TM(eval))がthing:statementの評価に使用する会話領域における1組の動詞シングをアルゴリズム的に選択する際に分類器によって使用することができる。
【0148】
一実施形態では、P(TM(config))は、動的リンクライブラリ等の共有ライブラリを表すシングと対話ことができ、それにより、上記共有ライブラリはプロセスメモリに動的にロードされ、関数への参照が解決、実行されて、1組の手順及び対応するグラフを提供し、それにより、多数の動詞シングを構成できるようにする。
【0149】
一実施形態では、P(TM(config))はP(TM(eval))及びP(TM(perform))とアルゴリズム的に対話して、1組の動詞シングを構成するための必須条件として満たさなければならないthing:statementを評価し実行することができる。上記thing:statementは、アクセス可能性、バージョン情報、改訂情報、依存性、既存の動詞シングとの競合、識別、認可、認証、セキュリティ、ハードウェア機能、オペレーティングシステム機能、又は他のそのようなアクティビティをチェックする要求を表すことができる。
【0150】
識別、認証、及び認可をサポートする一実施形態では、P(TM(config))動作は、P(TM(i))と対話して、thing:statementを識別、認証し、動詞シングを構成するために満たす必要がある認可要件を課すことができる。例として、thing:statementは、識別情報が動作を実行するようにP(TM(config))に要求するように認可されているか否かを判断するために、認証することができる識別情報と共にデジタル署名を必要とし得る。様々なセキュリティモデルをアルゴリズム的にイネーブルすることができ、上記モデルは、2016年1月29日に出願されたOptical Identity System and Methodsという名称の係属中の米国特許出願第62/288,545号に開示される等の特定のハードウェア及びP(TM(i))構成動詞シングを使用する必要があり得、この米国特許出願(光学識別子特許出願)は全体的に、参照により本明細書に援用される。一実施形態は、P(TM(openssl))を使用して、OpenSSLツールキット(www.openssl.orgウェブサイト参照)によって可能になる識別動作、認証動作、及び認可動作を提供し得る。
【0151】
シングのタイプ例
動作ブロックは、一連のステートメントを表すthing:graphである。名前付き動作ブロックはタスクと呼ばれる。このようにして、言語文法は、シングマシンが続けて実行することができる名前付きタスクを構成する、シングマシンへの要求を表現することができる。タスクは、動作ブロックを実行することによって実行される。動作ブロックは、各ステートメントを評価して、実行可能なthing:graphを生成することによって実行される。実行可能なthing:graphは、実行可能なthing:graph内のthing:verbに対応する動作を実行することによって実行される。
【0152】
シングマシンは、実行可能な動作として複数の言語文法パーサを構成することができるという意味で、バイリンガルであるように構成することができる。代替的には、翻訳動作を使用して、第1の言語から、構成されたパーサ動作によって解析することができる第2の言語に翻訳することができる。
【0153】
したがって、本明細書において、シングマシンが本を読むことができると言う場合、シングマシンが、入力デバイスから得られたコンテンツと対話し、コンテンツをthing:graphとして表現する動作を実行することができることを意味する。シングマシン全体のサブグラフとしてthing:graphを保持することにより、シングマシン動作は続けて、そのコンテンツにアクセスし対話することができる。
【0154】
シングマシンは、タスクを実行する方法を記述した本を読み、マシンがそのようなタスクを実行するように将来求められた場合、その知識を保持する。タスクは話題により分類することができる。タスクは、httpプロトコルの使用に関連するタスク、accounting:account.receivable、accounting:accounts.payable、banking;debits、banking:credits、及びbanking:balance等の活動に関連するタスクの1組の分類のメンバであり得る。
【0155】
第1のシングマシンは、第2のシングマシンへの、話題又は分類についての知識を要求する通信を送信することができる。上記知識を表すコンテンツの受信に応答して、第1のシングマシンはコンテンツと対話し、それに従ってそれ自体の知識を構成することができる。このようにして、第1のシングマシンは第2のシングマシンから学習することができる。
【0156】
シングマシンはサービスを提供することができる。サービスは、要求の受信に応答して提供されるシングである。サービスとタスクとの間の微細な区別は、タスクは実行される一方で、サービスは提供されることである。タスクとサービスとの分離は、コンテキストを通して促進され、コンテキストは、ファイルを除去するタスク又は動詞の意味を変更するタスク等のタスクの非認可実行を阻止することができる。
【0157】
述べたように、コンテキストシングは、会話領域において1組の利用可能な名前空間シングを認定する。名前空間シングは、単に同じ名前空間のメンバであることによって関連する場合であっても、1組の関連するシングを認定する。名前空間シングの名前は、シングへの参照を解決する際に使用される。
【0158】
識別情報はシングであり、したがって、識別子、認証、認可、及び監査の概念をモデリングして、識別情報モデルを実施することができる。識別情報モデルの例には、公開鍵基盤、Open PGPのWeb of Trust、バイオメトリクス、第三者認可等の使用がある。識別情報を用いて、シングとしての市場を導入し、取引を可能にすることができる。取引は、買い手と売り手との間、支払う人と支払われる人との間のシングになる。取引は、サービス提供シング、物理的シング、概念シング、又は論理的シングを含み得る。
【0159】
識別情報モデルにより、グラフ又はサブグラフの認証が可能である。例えば、要求当事者の識別子(すなわち、要求発信者)、コンテンツ、及びコンテンツのデジタル署名を含む要求を表すグラフを考える。識別子の対応する証明書を検証することができ、コンテンツのデジタル署名を検証することができる。これにより、評価動作は、要求をアルゴリズム的に検証し、それに応答して適切な動作を選択することができる。識別情報モデルを実施して、セキュア通信モデルを提供することもできる。
【0160】
要求コンテンツのセキュア化は、コンテンツを暗号化し、続けてコンテンツを復号化する暗号化動作を使用してモデリングすることができる。要求グラフは、暗号化動作及び暗号鍵を記述するサブグラフを含むことができる。コンテンツを復号化するために、必須条件として、指定された鍵を用いて指定された暗号化をまず実行しなければならない評価動詞動作を適用することができる。適切なサブグラフ内の要求の様々な構成要素を編成することにより、2つ以上のシングマシンは、識別情報モデルを使用してアルゴリズム的に通信し、通信をセキュア化することができる。
【0161】
光学識別子SIMカード又は同様のデバイスと統合される場合、シングマシンは、アドホックベースであってもオーバーレイネットワークにおいて一意の識別情報を有するシングとしてモデリングすることができる。シングは、ネットワークから外れ、ネットワーク内の他の場所に再び入り、それでもなお光学識別情報を保持することができる。
【0162】
光学識別情報は、ユーザ識別情報から別であることができる。これにより、シングマシンは、オーバーレイネットワークにおいてそれ自体を検証し、ネットワークで利用可能なコンテンツを使用して、ユーザの識別情報に基づいてそれ自体を再構成することができる。
【0163】
シングマシンは、アドホックベースであっても、ボキャブラリを動的に構成、再構成することができる。語彙の少なくともサブセットと存在論的コミットメントを共有する1組のシングマシンは、そのサブセット(又はサブセットの少なくとも一部)を使用してシングと対話することができる。ボキャブラリはシングとして表され、シングマシンは、ボキャブラリを構成及び再構成する動詞動作を有するため、シングマシンは学習することができ、その例を本明細書に提供する。
【0164】
例示を目的として本明細書において説明される例示的なRDFシングを参照すると、以下の例示的な定義が該当する。
【0165】
グラフ-点と、点のいくつかの(可能な場合は空の)サブセットを結ぶ線との集まり。グラフの点は最も一般的に、グラフ頂点として知られるが、「ノード」又は単に「点」と呼ばれることもある。同様に、グラフの頂点を結ぶ線は最も一般的に、グラフエッジとして知られるが、「弧」又は「線」と呼ばれることもある。
【0166】
グラフノードはgraph:nodeと呼ばれる。グラフエッジはgraph:edgeと呼ばれる。エッジは、graph:edge-label(ラベル)と呼ばれるラベルを有することができる。
【0167】
有向グラフ-有向グラフとは、全てのエッジ(有向グラフエッジ)がある頂点から別の頂点に向けられるグラフ、すなわち、一緒に接続された1組のオブジェクト(頂点又はノードと呼ばれる)である。有向グラフは時折、ダイグラフ又は有向ネットワークと呼ばれる。
【0168】
有向グラフはgraph:directedと呼ばれる。
【0169】
有向グラフエッジは、graph:directed-edgeと呼ばれる。
【0170】
非有向グラフ-非有向グラフとは、全てのエッジ(非有向グラフエッジ)が双方向であるグラフ、すなわち、一緒に接続された1組のオブジェクト(頂点又はノードと呼ばれる)である。非有向グラフは時折、非有向ネットワークと呼ばれる。非有向グラフはgraph:undirectedと呼ばれる。非有向グラフエッジはgraph:undirected-edgeと呼ばれる。
【0171】
サブグラフ-サブグラフとは、頂点及びエッジが別のグラフのサブセットであるグラフである。
【0172】
ルートグラフ-ルートグラフとは、あるノードが開始(ルート)ノードとして区別される有向グラフである。
【0173】
本システム及び本方法によれば、ABNFを使用して、P(TM(thing))によって監督されるシングの非可変構成要素の表現を記述する。加えて、RDFを使用して、P(TM(thing))によって監督されるシングの非可変構成要素及び可変構成要素の意味を更に示す。
【0174】
-ABNF
本明細書に提供される例示的な図では、以下示されるように、ABNF(augmented backus-naur form)仕様を使用して、P(TM(thing))によって監督されるシングを記述する。特に、以下、P(TM(thing))によって監督されるシング及びその非可変構成要素を記述する。
scheme:scheme-name = ALPHA*(ALPHA/DIGIT/“+”/“-”/“.”)
scheme:scheme-specific-part = これはスキーム固有である。スキーム固有部分についての詳細は、スキーム名に対応するRFCを参照のこと。そのようなRFCが存在しない場合、スキーム固有部分は、シング言語によって定義されるシング識別子に解析される。その他の場合、スキーム固有部分は、スキームに従ってトークン化される。
【0175】
以下のABNF規則が適用される。
thing:identifier = 1*1(scheme:scheme-name/scheme:scheme-specific-part)
thing:char-literal = char-val
thing:num-literal = num-val
thing:bin-literal = bin-val
thing:dec-literal = dec-val
thing:hex-literal = hex-val
thing:value = 1*(thing:char/thing:num/thing:bin/thing:dec/thing:hex)
【0176】
クラスidは、シングのクラスを識別する。デフォルトクラスidはURIであり、URIによって識別されるシングは分類である。デフォルトはthing:thingである。
thing:class.id=URI
【0177】
thing:set(i)は、iである1組のシングである。一般的な組は、1組のシングであるthing:set.of(thing:thing)である。1組は重複した名前のシングを有さない。
thing:set.of(i)=0,*(i)
thing:list(i)は、クラスiのメンバであるシングのリストである。一般的な組は、シングのリストであるthing:list.of(thing:thing)である。リストは重複した(i)を有し得る。
thing:list.of(i)=0,*(i)
備考:一実施形態では、パラメータは、thing:value.of(i)、thing:name.of(i)、thing:thing(thing:name.of((thing:value.of(i)))等として参照することができる。
【0178】
-シングRDF
リソースディスクリプションフレームワーク(RDF)とは、ウェブにおいて情報を表すための枠組みである。RDF三つ組みは、3つの構成要素からなる:a)IRI又は空白ノードである主語、b)IRIである述語、及びIRI、文字、又は空白ノードである目的語。RDF三つ組みは従来、主語、述語、目的語の順に書かれる。RDFグラフは1組のRDF三つ組みである。
【0179】
RDF三つ組みは、シングを説明する以下のセクション及びシンググラフにおいて使用され、述語は、主語と目的語との関係タイプを示す。thing:is-a関係タイプは、主語が、目的語によって識別されるシングのクラスのメンバであることを示す。thing:has-a関係タイプは、主語が目的語によって与えられる非可変構成要素を有することを示す。なお、構成要素の値は変更可能であるが、構成要素は変更することができない。詳しくは関係タイプを参照のこと。
【0180】
参照P(TM(i))は、シングマシンsub-iのアルゴリズム手順への参照であり、ここで、iは、シングマシンの第2の手順からシングマシンの第1の手順を認定する識別子である。
【0181】
シングは、P(TM(thing))によって監督されるグラフ内のノードである。
thing:thing thing:is-a graph:node
【0182】
シングは、名前、値、クラス、及び関係セットを有する。ワールドワイドウェブに下位互換性を提供する好ましい実施形態では、名前空間シング名はsheme:nameである。P(TM(thing))は、シングを設定、取得、又はアンセットすることができる。
【数3】
【0183】
以下の規則は、関係セットがゼロ以上の関係で構成されることを示す。関係がゼロの関係セットは空集合である。空集合である関係セットを有するthing:thingのルートthing:graphは、thing:thingの空のグラフ(thing:graph:empty)である。
thing:relationship-set = thing:set.of(thing:relationship(x,r,o))
【0184】
以下、規則s、r、及びoは、以下を示すパラメータである:thing:subject(s)とthing:object(o)との間にrelationship-type(r)が存在する。P(TM(thing))は、関係を設定、取得、又はアンセットすることができる。
thing:relationship(s,r,o) = thing:subject(s)thing:relationship-type(r)thing:object(o)
【0185】
以下の規則は以下として解釈されるべきである:名前がsに等しいシングがある。
thing:thing(s) = thing:thing、但し、is-equal.to = (thing:name.of(thing:thing),(s))
【0186】
以下の規則は以下として解釈されるべきである:名前がsに等しく、且つ値がvに等しいシングがある。
thing:thing(s,v) = thing:thing、但し、(is:equal.to = (thing:name.of(thing:thing),(s))であり、is:equal.to = (thing:value.of(thing:thing),(v)))
【0187】
一実施形態では、シングの構成要素は参照することができる。例えば、以下の規則は、シング[但し、[名前=a]且つ[値=b]]として解釈される。
thing:thing(0,1[name = a]0,1[value = b]) = thing:thing 但し、
is:equal.to = (thing:value.of(thing:name),(s))であり、is:equal.to = (thing:value.of(thing:value),(v))
【数4】
【0188】
以下、規則(s,c,o)は、cによって与えられるクレームが(s)及び任意選択的なthing:object(o)によって満たされることを示すパラメータである。シングとして、規則は、任意選択的な目的語(o)があるような満足クレームcがあるような主語シング(s)があるとして解釈される。
thing:assert(s,c,o) = *(thing:subject(s) thing:predicate(c) thing:object(o))
【0189】
以下の規則は、パラメータ(i)によって与えられるシングの名前構成要素の値に等しい。
thing:name.of(i) = thing:value.of((i):name)
【0190】
以下の規則は、パラメータ(i)によって与えられるシングの値構成要素の値に等しい。
thing:value.of(i) = thing:value.of((i):value)
【0191】
以下は、例示的な関係タイプ(thing:relationship-type)である。
thing:is-a 主語シングは、目的語によって示されるクラスのメンバである。
thing:has-a 主語シングは、目的語によって識別される非可変構成要素を有する。
thing:sttia 目的語シングがあるような主語シングがある。
thing:sttiai 目的語シングのインスタンスがあるような主語シングがある。
thing:sttmb 目的語シングがあり得るような主語シングがある。
thing:sttina 目的語シングがないような主語シングがある。
thing:parent 目的語シングは主語シングの親である。
thing:child 目的語シングは主語シングの子である。
thing:next 目的語シングは主語シングの次の兄弟である。
thing:prior 目的語シングは主語シングの前の兄弟である。
【0192】
thing:is及びthing:is.notアサートは、thing:predicate満足クレームである。満足クレームは、
thing:expression = thing:subject thing:satisfaction-claim 0,1(thing:object)
によって与えられる表現の形態であり得る。
【0193】
満足クレームは、クレームに対して作用するthing:verbによってアサートされる。これにより、1組のアクセス可能な満足クレームは、特定の実施形態について自己構成することができる。満足クレームのサブセットは、以下を含む。
thing:is.lt 主語シングの値は、目的語シングの値未満である。
thing:is.lteq 主語シングの値は、目的語シングの値以下である。
thing:is.eq 主語シングの値は、目的語シングの値に等しい。
thing:is.gteq 主語シングの値は、目的語シングの値以上である。
thing:is.gt 主語シングの値は、目的語シングの値よりも大きい。
thing:is.not.empty 主語シングの値は空ではない。
thing:graph(s)は、thing:subject(s)のグラフである。thing:graph(monad)は関連するシングのスーパーグラフである。
【数5】
【0194】
thing:class(class.id)は、thing:name class.idによって与えられるthing:thingである。これは、そのクラスのコンテキスト内に存在する規律への関係を有する。
【数6】
【0195】
例示的なthing:classには、
a)thing:class(thing:char)、
b)thing:class(thing:num)、
c)thing:class(thing:bin)、
d)thing:class(thing:dec)、
e)thing:class(thing:hex)
がある。
【0196】
例示的な規律には、
a)thing:discipline(c,thing:set)
b)thing:discipline(c,thing:get)
c)thing:discipline(c,thing:unset)
がある。
【0197】
一実施形態は、P(TM(discipline(c,d)))を修飾する1組の修飾語句を追加することができる。例示的な修飾語句には、
a)thing:before(thing:discipline(c,d),thing:urr(u))
b)thing:as(thing:discipline(c,d),thing:urr(u))
c)thing:after(thing:discipline(c,d),thing:urr(u))
がある。thing:before urrは、thing:disipline(c,v)よりも前に評価され、満足される場合、次にthing:discipline(c,v)が評価される。
thing:as urrは、まるでG(urr(d))であるように評価される。
thing:after urrは、G.urr(d)又は指定される場合、thing:as urrの評価に成功した後、評価される。
【0198】
規律への適切な関係を用いて、クラスthing:class(class.id)グラフを構成することにより、新しい分類が構成される。
【0199】
thing:verbは、解決されて、P(TM(perform))が実行させることができる実行可能な動作にすることができる、実行可能な動作への参照の表現があるようなP(TM(thing))によって監督されるthing:thingである。P(TM(perform))は、実行可能な動作を実行させることによりthing:verbを実行すると言える。
【数7】
【0200】
thing:urr(i)は、P(TM(i))の実行を要求するユニフォームリソース要求である。P(TM(i))動作は、thing:urr(i)の値を、P(TM(perform))が実行することができる実行可能な動作にバインドする。例示的な実施形態では、これは、非一時的メモリにおける命令のアドレスへのバインドを含むことができ、実施形態は、fork、exec、pthread_create、connect、open、send、write、receive、read、close、wait、及び/又はdisconnect等の1つ又は複数のオペレーティングシステム呼び出しの使用を更に特徴とし得る。
【0201】
P(TM(i))を実行する要求を評価するに当たり、P(TM(eval))はP(TM(thing))と対話して、P(TM(i))を決定し、P(TM(i))にアクセス可能であるために必要なP(TM)シングのグラフをアルゴリズム的に準備する。一実施形態では、上記グラフは、P(TM(i))動作の持続時間中、特に生成される要求名前空間のコンテキストにおいて生成され、応答がある場合、応答は、応答名前空間のコンテキストにおいて設定される。これにより、P(TM(eval))は、新しいコンテキストをP(TM(i))のコンテキストスタックにプッシュし、応答名前空間とアルゴリズム的に対話して、それに従ってP(TM(thing))によって監督されるシングを更新することができる。
【0202】
thing:verb.vocabularyは、1組のthing:verbへの関係があるようなthing:thingである。
【数8】
【0203】
thing:urr(i)の対応する実行可能な動作は、P(TM(i))によって実行されて、動詞ボキャブラリの動詞シングを構成する。
【0204】
例示的なthing:relationship
以下に、シング関係の一実施形態を更に示す。
図19の有向グラフにより示されるように、xという名前のシングは、yという名前のシングの前身であり、yは、xという名前のシングの後継であり、述語は、thing:sttiaとして示される関係があるようなシングである。英語の解釈は、名前がxに等しいシングがあり、そこには、名前がyに等しいシングがある。「そこには~がある(such that there is a)」関係は、thing:sttiaエッジラベルで示される。
【0205】
図20の有向グラフにより示されるように、xという名前のシングは、zという名前のシングの前身であり、述語は「そこにはインスタンスがある(such that there is an instance」であり、これは、thing:sttiaiとして示されている。英語の解釈は以下である:名前がxに等しいシングがあり、そこには名前がzに等しいシングのインスタンスがある。
【0206】
図21の有向グラフにより示されるように、英語の解釈は以下として与えられる:名前がxに等しいシングがあり、そこには名前がyに等しいシングがあり、そこには名前がzに等しいシングがあり、そこには名前がxに等しいシングへの参照がある。そこには~への参照がある(such that three is a reference to)関係は、thing:sttiartエッジレベルで示されている。参照は、リストとして解釈することができるURI形態であることができる。
【0207】
図22の有向グラフにより示されるように、xという名前のシングはthing:tableである。次のエッジ及び最後のエッジの対並びに親子エッジ対を使用して、グラフはいずれの方向にもトラバースすることができる。
【0208】
図23の有向グラフにより示されるように、多数のシングは、1つのシングへの関係を有する。
【0209】
図24の有向グラフにより示されるように、xという名前のシングは、「c」という名前のシングのクラスのメンバである。
【0210】
述語は、シングの非可変構成要素についての関係を示すことができる。
図25の有向グラフにより示されるように、関係は、「x」という名前のシングの名前が、「b」という名前のシングのクラスのメンバであることを示す。
【0211】
図26の有向グラフにより示されるように、関係は、xという名前のシングの値が「c」という名前のシングのクラスのメンバであることを示す。
【0212】
以下は、グラフ内のシングの監督においてP(TM(thing))によって監督される例示的なシングである。
【0213】
thing:monad-モナドは、P(TM(thing))によって監督される他の全てのシングを識別することができる最初のシングである。有向グラフのノードはシングであり、有向エッジラベルは、結ばれたシング間に保たれる命題である。モナド有向グラフは、シングマシンの状態を示す。モナドは、「thing:sttia」として示される有向エッジラベル「そこには~がある(such that,there is a)」を用いてコンテキストシングに向けられたエッジと結ばれる。
【0214】
thing:context-コンテキストシングは、スタックとして編成された1組のシングを表し、ここで、スタックの最上部は、現在のコンテキストを表すシングである。新しいコンテキストシングは、アルゴリズム的にスタックに押し込み得、又はアルゴリズム的にスタックから押し出して、現在のコンテキストを変更し得る。コンテキストシングのインスタンスは、そのコンテキストの範囲内の名前空間である1組のシングの有向グラフのルートである。
【0215】
thing:namespace-名前空間は、単に同じ名前空間のメンバであることにより関連する場合であっても、何らかの方法で論理的に関連するシングの名前付きグラフを表すシングである。グラフの名前は、国際リソース識別子(IRI)スキームの命名要件に準拠する。名前空間のルート有向グラフは、ルートとして名前空間シングを開始し、接続されるノードは、名前空間シングによって認定されたシングである。有向エッジラベルは、接続されたシング間で維持される関係を示す。
【0216】
コンテキストシングは、1組の利用可能な名前空間シングを認定する。例示的な名前空間は、要求、応答、ローカル、サービス、コア、及びブートの名前空間を含む。追加の名前空間は、P(TM(thing))の動作を通して構成することができる。以下のグラフは、コンテキストの各名前空間に当てはまり、グラフの非命名ノードは、コンテキストによって認定される名前空間にバインドされる。
図27の有向グラフにより示されるように、コンテキストは、要求、応答、及びローカルの名前空間を含む。一実施形態は1組の名前空間を自己構成することができる。
【0217】
例示的な名前空間を以下の表3により提供する。
【0218】
【0219】
IRIから名前空間シングへのマッピング
IRIスキーム名は名前空間シングにマッピングされ、次に、IRIのスキーム固有部分は、特定の名前空間の規則に従ってマッピングされる。デフォルト挙動は、ドット(「.」)キャラクタ区切り文字を使用して、「そこには~がある(such that there is a)」関係を示し、括弧区切り文字(「[」及び「]」)を使用して、「そこには~のインスタンスがある(such that there is an instance of)」関係を示す。例えば、reference:request:statement[1].wordは、
名前が「request」に等しい名前空間シングがあり、そこには、名前が「statement」に等しいシングがあり、そこには、名前が「1」に等しいシングのインスタンスがあり、そこには、名前が「word」に等しいシングがある
として解釈される。
【0220】
シンググラフデータモデルセクションで述べたように、全ての永久的URIスキームは、インターネット割当番号公社によって公開されているように、確保された名前空間名である。確保されている名前空間の完全なリストは、http://www.iotnamespaces.com/reservedにおいてオンラインで公開されている。確保された名前空間へのIRIのマッピングも、www.iotnamespace.com/mappingsにおいて入手可能である。
【0221】
XMLを使用してのシングの識別
基本XMLは、名前空間において解析されバインドされる。これは、基本XMLフォーマットを使用する、URLhttp://w1.weather.gov/xml.current_obs/inex.xmlによって識別される気象サービス等のサービスにとって重要である。マッピングを示すために、
【数9】
として与えられるフラグメントを考える。単純なXMLを解析すると、表4に示される以下の三つ組みが真である。
【0222】
【0223】
基本XMLマッピングでは、要素はシングにマッピングされ、属性は、そのシングの属性のインスタンスとしてマッピングされる。
【0224】
XMLスキーマ定義
気象測定所XMLデータを使用する前例から、local:station.xml_urlシングは、測定所のローカルデータを表すリソースを識別する値を有する。そのリソースを検索するに当たり、部分的に、
【数10】
を含むXMLバージョン1.0文書であることを発見した。
【0225】
XMLを解析するに当たり、デフォルト動作は要素をシングとして解釈し、属性をそのシングについての属性のインスタンスとして解釈する。表5に示される以下の三つ組みは真である。
【0226】
【0227】
正式なアサートとして、三つ組みは、
名前が「current_observation」に等しいシングがあり、そこには、
名前が「xmlns:xsd」に等しく、且つ
値が「http://www.w3.org/2001/XMLSchema」に等しいシングのインスタンスがあり、
且つ
名前が「xmlns:xsi」に等しく、且つ
値が「http://www.w3.org/2001/XMLSchema-instance」に等しい
シングのインスタンスがあり、
且つ
名前が「xsi:noNamespaceSchemaLocation」に等しく、且つ
値が「http://www.weather.gov/view/current_observation.xsd」に等しい
シングのインスタンスがある
として表現することができる。
【0228】
XSD参照は、XSDスキーマを検索できるようにし、それにより、目的語の要素、サブ要素、及び属性の有効な構造をシングとして名前空間において表すことができる。
【0229】
XML名前空間
XMLでは、認定された名前は、名前空間解釈を受ける名前である。要素及び属性の両方が、認定された名前である。XML名前空間仕様に従ってXML文書を解析する場合、文書は解析されて要求名前空間になり、検証され、シング名として認定された名前を使用して文書の構造を保持する。例えば、以下に与えられるXML文書を考える。本の要素は2つの名前空間属性を含む:第1の名前空間属性はデフォルトXML名前空間を定義し、第2の名前空間属性はisbn XML名前空間を定義する。XML1.1仕様では、IRIは検証されたIRIである必要はなく、むしろ、シンタックス的に正確なIRIとしてIRIを指定する必要がある。したがって、解析動作は、XML IRI参照をシング名前空間にマッピングしない。
【数11】
略式表記を使用して、表6により示される以下が真である。
【0230】
【0231】
正式な満足クレームは以下である。
名前が「request」に等しい名前空間シングがあり、そこには、
名前が「book」に等しいシングがあり、そこには、
名前が「xmlns」に等しく、且つ
値が「urn:loc.gov:books」に等しいインスタンスがあり、且つ
名前が「xmlns:isbn」に等しく、且つ
値が「urn:ISBN:0-395-36341-6」に等しいインスタンスがある。
【0232】
シング言語
シンググラフモデルでは、全てのシングはシングである。シングによっては、名前空間であるものもあれば、動詞であるものもあり、動詞動作が作用することができるシングであるものもある。動詞と、動詞が作用することができる1組のシングとの関係は、シング動詞グラフとして表現される。
【0233】
分類により、意図される動作の意味を推測することができる。しかしながら、意図される動作がシング及び時間単位を使用して何かを「設定」することである以下のステートメント例では、ステートメントごとに必要とされる動作はかなり異なる。
タイマを6:00分に設定
クロックを6:00AMに設定
アラームを6:00PMに設定
【0234】
解析動作が実行されて、thing:graphシンググラフとしてステートメントを解析する。評価動作は、動詞ボキャブラリグラフのコンテキストにおいてthing:graphを評価して、候補動詞を選択する。評価動詞動作は、要求グラフ内のシングを候補動詞グラフ内のシングにバインドして、実行する必要がある動詞グラフのインスタンスを識別する。実行動作がトリガーされて、バインドされたシングのコンテキストにおいて、識別された動詞動作を実行させる。
【0235】
シングステートメント
シング言語は、命令文構造及び宣言文構造の両方を提供する。一般的に、最小ブートボキャブラリは命令文の使用に適し、一方、より表現的なコアボキャブラリでは、宣言文の使用が可能である。シングステートメントのABNF定義を以下に提供する。ABNFシンタックスはRFC2234において定義されている。
【数12】
【0236】
一例として、以下の命令文は、シングマシンに、リストrequest:my.nameによって識別されるシングを値Johnに設定させるように命令する。
set=(request:uri=”request:my.name” request:value=”John”)
【0237】
P(TM(bind))動作を使用して、上記ステートメントが
set=(request:my.name=”John”)
として指定することができるように、動作が作用することができるシングにリストをバインドすることができる。
【0238】
一般に、同じシンタックスがシング言語のあらゆるステートメントに適用される。なお、動詞動作が作用することができるシングは、区切り文字「(」及び「)」内に含まれる。
【数13】
【0239】
シング言語のこの単純なシンタックスは、他言語に容易に翻訳される。例えば、上記ステートメントは、以下のようにJSONにおいて表現することができる。
【数14】
【0240】
同様に、ステートメント例は、THING/XMLを使用して表現することができる。
【数15】
【0241】
パーサ動作がデータを解析してthing:graphにすることができる限り、任意の数の言語及びシンタックスが使用可能である。
【0242】
以下に示されるように、マルチパートデータがサポートされる。この例では、設定という動詞に基づく単純なステートメントを提示する。なお、request:listingは指定されない。評価動詞動作は、request:graph及び動詞ボキャブラリ内の対応する動詞グラフと対話して、request:graph内のシングを、動詞が対話することができるシングにバインドする。この例では、request:listingの値はrcd:Contactにデフォルト設定され、request:classの値はthing:thingにデフォルト設定される。
【数16】
【0243】
【0244】
宣言文は、命令文と同じ一般シンタックスに従う。違いを示すために、3つの命令文を使用して、リストpainting:Galleryを自動インスタンス化シングとして初期化する単純な例から始める。thing:auto-instanceとして分類されるシングは、シングが設定動詞動作で使用される都度、新しいインスタンスを自動的に追加させる。
【数18】
【0245】
次に、以下の宣言文を使用して、各ステップの詳述を必要とせずに、何が欲しいのかを表現する。
【数19】
上記の出力は、
Van Gogh Almond Blossom
Ylli Haruni Cherry Blossom
として与えられる。
【0246】
名前空間範囲
名前空間は、単に同じ名前空間のメンバであることにより関連する場合であっても、何らかの方法で論理的に関連するシングの名前付きグラフを表すシングである。名前空間シングはコンテキストシングによって認定され、グラフの名前(名前空間の名前)は、IRIスキームの命名要件に準拠する。全ての永久的URIスキームは、インターネット割当番号公社によって公開されているように、確保された名前空間名である。
【0247】
分類
シングは、シングのクラスのメンバであるものとして分類することができる。全てのシングはシングである。シングによっては、整数であるものもあれば、浮動小数であるものもあれば、集合であるものもある等である。名前空間システムは、1組のコアクラスを用いて自己組織化され、1組のコアクラスには追加のクラスが存在することができる。第2章は、クラスについて詳細な情報を提供する。
【0248】
以下の例は、設定動作を実行し、以下として解釈される:名前がlocalに等しいシングがあり、このシングが、名前がscoresに等しいシングがあるような名前空間である。
・set=(listing=”local:scores”)
以下の例は、浮動小数点数としてスコアを設定する要求を記述する。
・set=(class=float listing=”local:scores” value=”83.25”)
【0249】
通信プリミティブ
通信プリミティブとは、通信のインターフェースを提供するシングである。プリミティブにより、接続、送信、受信、及び切断等の一般的な動作が可能になる。様々なタイプの通信の通信プリミティブが提供され、ウェブシング、ソケット、ファイル、RS232、URIスキーム、及びユニフォームリソース要求リストを含む。
【0250】
通信ポイント
通信ポイントとは、通信プリミティブが、通信を発生させるために対話するシングである。
通常ローカルファイル
【数20】
暗号化されていない標準の電子メールを使用する
【数21】
暗号化されたアクティブ名前空間を使用する
【数22】
【0251】
ステートメント
シング言語では、ステートメントは動詞及びゼロ以上のオブジェクト名=表現ペアを含む。各表現は、値表現又は名前=表現ペアである。バインダは、ドットで区切られた動詞修飾語句をバインドすることができる。
【数23】
【0252】
名前式は、名前式を含む名前によって認定される。したがって、a=(b=1)は、名前がaに等しいシングがあり、そこには、名前がbに等しく、且つ値が1に等しいシングがある、として解釈される。a=(b=1 c=2)等のマルチパートステートメントは、名前がaに等しいシングがあり、そこには、名前がbに等しく、且つ値が1に等しいシングがあり、且つ名前がcに等しく、値が2に等しいシングがある、として解釈される。
【0253】
値式は文字であり、引用符で囲み得る。スペースキャラクタを含む文字値は、引用符で囲まなければならない。したがって、a=house、a=”house”、a=’house’は同等である。同様に、a=”red house”、及びa=’red house’も同等である。
【0254】
数式は、二重括弧で囲まれ、引用符で囲む必要は無い。一例として、a=((10+-2*(6/3)))。演算の通常順序が適用され、式は括弧で閉じ得る。関数はサポートされず、数学動詞はサポートされる。したがって、a=((2*sqrt(4)))は、sqrtが数学動詞ボキャブラリ内の動詞である限り、予想通りに評価される。
【0255】
ステートメントを明示的に表すために、フォーマットは、
【数24】
である。
【0256】
動作ブロック
動作ブロックとは、1単位として評価されるべき一連のステートメントである。これにより、名前空間システムはブロックを実行することができ、論理に真及び偽型ステートメントに対処できるようにする。動作ブロックの一般的なシンタックスは、
【数25】
である。
【0257】
以下の例では、単純な動作ブロックシーケンスが、
【数26】
において提供される。
【0258】
条件
名前空間システムは、動作の条件付き評価を提供する。IF、ELSE-IF、及びELSE条件がサポートされる。
【数27】
【0259】
反復
反復は、for及びwhile条件動詞動作によって可能になる。
【数28】
【0260】
設定
設定動詞動作は、request:classとして識別される分類の規則に従って、request:listingの値によって当たられるシングを設定する。クラスが明示的に指定されない場合、評価動詞動作は、ステートメント内のシングに基づいて適切な分類を決定する。
【0261】
以下のステートメントでは、分類はrequest:class=”thing:thing”にデフォルト設定され、対応する動詞グラフを
図28に示す。
【数29】
【0262】
以下のステートメントでは、分類はrequest:class=”thing:alarm”にデフォルト設定され、対応する動詞グラフを
図29に示す。
【数30】
【0263】
設定の動詞ステートメントをここに示す。新しい分類が追加されるにつれて、追加の動詞動作は、分類の意味をサポートする必要があり得、これらは動詞修飾語句を使用してボキャブラリに追加し得る。
【数31】
【0264】
thing:graph-thing:graphは、シング及びそれに関連するシングの有向グラフであり、可能な全てのシング及びルート有向グラフからのそれらの関係のサブグラフとして表現し得る。非命名動詞レベルは、thing:identifierとして解釈される。その他の場合、1つ又は複数の命名された非可変構成要素及び表現は、頂点レベルとして使用し得る。好ましい実施形態では、かかる区別が求められる場合、Name:name及びValue:valueが、thing:identifier及びthing:valueを示すためにそれぞれ使用される。
thing:graph内の非命名頂点は、非命名頂点有向グラフを満たす非命名頂点がもしあれば、その非命名頂点の前身によって認定される会話領域内の1組のシングである。
thing:subgraph-P(TM(i))は、モナドルート有向グラフのthing:subgraphに対して作用し得る。
thing:statement-評価するステートメントを表すthing:graph。
thing:statement.declarative-宣言thing:statement。
thing:statement.imperative-命令thing:statement。
thing:statement.interrogative-疑問thing:statement。
thing:statement.exclamatory-感嘆thing:statement。
thing:listing-リストは、シングへの参照の表現である。認定リストは、名前空間への参照の表現を含み、一般フォーマット「namespace:namespace-specific-part」を有し、フォーマットは「scheme:scheme-specific part」で構成されるURIと同等である。非認定リスト(非バインドリストとも呼ばれる)は、P(TM(bind))によってアルゴリズム的に認定することができる。thing:listは、P(TM(thing))のアルゴリズム動作によって解決される。
【0265】
名前固有部分は、所与の名前空間の取得、設定、及びアンセット規律の使用を通して解決することができる。これにより、述語アルゴリズム動作は、名前空間固有部分の解釈が、モデリング中の名前空間に依存する場合であっても、参照を解決することができる。
【0266】
自由変数
シングへの参照の表現は自由変数と見なされる。P(TM(bind))は、コンテキストによって定義される1組のシング内の参照をアルゴリズム的にバインドする。thing:graphをトラバースする際、シングのコンテキストは、会話領域内のシングの現在の範囲内で適用可能なシングを反映するように、アルゴリズム的に更新される。以下のアサートを考える。
シングがあり、そこには名前がContactに等しいシングがあり、且つ名前がEmailに等しいシングがある。
【0267】
オープニング参照「シングがあり、そこには」は、P(TM(thing))によって監督される会話領域内の可能な全てのシングが、現在の組のシング内にあると見なされることを示す。次に、P(TM(bind))は、制限「そこには名前がContactに等しいシングがあり、且つ名前がEmailに等しいシングがある」が保たれない現在の組内の全てのシングを不適格とする。
【0268】
図30を参照すると、G.request(P(TM(i)))は、P(TM(i))が、要求名前空間において認定されたシングに対して動作することができることを示す。非命名ノードは、P(TM(i))が、名前によってシングを識別せずに、要求名前空間内で認定された幾つかのシングに対して動作することができることを示す。
【0269】
図31を参照すると、G.request(P(TM(i)))は、P(TM(i))が、要求名前空間において認定されるステートメントという名前のシングによって認定されるコンタクトという名前のシングに対して作用することができることを示す。
【0270】
図32を参照すると、例示的なG(P(TM(i))は、G.request(P(TM(i)))サブグラフを含むルート有向thing:graphであり、G.urr(P(TM(i)))サブグラフは、P(TM(perform))が、動作を実行するようにP(TM(i))にいかに要求すべきかを示す。なお、request:statement.Thingの構成要素は、http://www.schema.org/Thingによって定義されるシングスキーマの構成要素を満たす。
【0271】
ユニフォームリソース要求
ユニフォームリソース要求(URR)シングは、実行可能な動作が実行すべき要求としてP(TM(thing))によって解釈することができるURIである。例として、
【数32】
である。
【0272】
URRと従来のURIとの区別は、URRが、サーバが識別されたリソースを提供する要求の代わりに、thing:namespace内のシングのコンテキストにおいて評価されることである。
【0273】
stdlib:loadシングは、実行可能な動作が対応するライブラリを動的にロードし、実行可能な動作としてエントリシングの値への参照を解決し、その動作を実行するアクティブシングである。動作は通常、dlopen()及びdlsym()呼び出し又はWindows、Linux、BSD、iOS、若しくは他のそのようなオペレーティングシステムでの同等の呼び出しを使用して実施される。http://pubs.opengroup.org/onlinepubs/009695399/functions/dlopen.htmlを参照のこと。
【0274】
動作の実行からの応答は、シングマシンに、ロードされた動作に挿管するthing:verbを構成するように要求する1組のthing:statementである。P(TM(bind))を使用して、dlsym()又は同等のオペレーティングシステム呼び出しを使用して、実行可能な動作へのエントリポイント参照をバインドすることができる。
【0275】
stdlib:unloadシングは、実行可能な動作が対応するライブラリをアンロードするアクティブシングである。動作は通常、dlcloseを使用して実施される。http://pubs.opengroup.org/onlinepubs/009695399/functions/dlclose.htmlを参照のこと。
【0276】
URRを使用する場合とURIを使用する場合でのクライアントリソース解決とサーバリソース解決との区別に留意することに注意を払わなければならず、URRはシングマシンによってリソースに解決され、それに対して、URIは一般に、サーバによってリソースに解決される。
【0277】
P(TM(i))は、URRを生成し、P(TM)に、適切な動作を評価し実行するように要求することができる。一例として、P(TM(parse))はコンテンツと対話して、コンテンツを解析し、パーサ動作が理解しないフォーマット又は言語であることを発見することができる。そのような場合、P(TM(parse))は、コンテンツを解析可能であり得る第2のP(TM(i))動作の評価及び実行を要求することができる。
【0278】
通信機能を有する第1のシングマシンは、シング(又はシングのコンテンツ)を識別する要求を第2のシングマシンに通信することができる。第2のシングマシンは、何かが何を表しているか、それに作用することができる動作、及び/又はそれを使用して実行することができるタスクを第1のシングマシンに教えることができる。
【0279】
コアPOSIXボキャブラリ
コアPOSIX.1-2008は、コマンドインタプリタ(又は「シェル」)及びソースコードレベルでのアプリケーションポータビリティをサポートする共通ユーティリティプログラムを含め、標準オペレーティングシステムインターフェース及び環境を定義する。アプリケーション開発者及びシステム実装者の両者による使用が意図される。http://pubs.opengroup.org/onlinepubs/9699919799/を参照のこと。
【0280】
コアボキャブラリはPOSIX.1-2008システムAPIに従うが、現在、全てのアプリケーションプログラミングインターフェースが提供されているわけではない。パラメータはシングであり、適切な場合、文字列と実際の整数との変換は、対応する動詞動作によって提供される。シングの実施形態は、システム固有データの非可変構成要素を含み、それにより、必要な場合、データ構造へのポインタを提供することができる。例として、unlink()関数を定義するPOSIX規格は、「int unlink (const char*path」として定義され、これは、リストrequest:pathによって識別されるシングに対して作用する、「unlink」という名前の動詞動作として実施される。実施形態では、関数は、動詞シング(すなわち、thing:verbs)として実装され、動詞名前空間において構成されるが、POSIX等の適した名前空間を代わりに使用してもよく、参照を解決するコンテキストが適宜設定される。アプリケーション領域に固有のアルゴリズム手順を構成することができる。例えばhttp:get等の一般に使用される動詞動作は、HTTPプロトコルのGETメソッドを使用して、URIによって指定されたリソースを検索するように構成することができる。
【0281】
実行可能ファイルは、プロセス間通信又は標準ファイル記述子を使用して動詞動作として構成することができる。例えば、/bin/date(1)コマンドはUnix及びLinuxコミュニティでは周知であり、構成することができるが、解析を実装するために、出力を解析して適したフォーマットにする必要があり得る。例えば、リストbin:dateは、別個のアドレス空間における/bin/date実行可能ファイルをexec(2)して、出力を応答の値としてパイプする実行可能な動作を有することができる。URR bin:date//response:as=”data:date”は、bin:date動詞動作を実行する要求及びリストdate:dateによって与えられるシングの値として構成される応答(コマンドの標準出力から読み取られる)として解釈される。
【0282】
明確に定義された1組の動詞動作を使用して、タスクシーケンスをソースコードに変換することができ、ソースコードは、実行可能ファイルとしてコンパイルされ実行することができ、ステートメントを評価しシングをバインドするステップをなくすことができる。
【0283】
thing:machine
シングマシンの一実施形態を記述するシングは、thing:machineである。
図66を参照すると、P(TM)は、P(TM)に望まれる構成を記述するシング言語で表現されたコンテンツを解析する。P(TM)はP(TM(thing))と対話して、P(TM)を表すthing:graphを構築し、上記thing:graphはthing:machineシングである。
【0284】
公開鍵基盤の当業者は、認証動作を実施して、X509証明書、デジタル署名の使用、並びにOpenSSL識別情報、認証、及び認可アルゴリズム動作の使用による等のコンテンツの真正性を保証することができる。
【0285】
図66を参照すると、thing:machineを記述するthing:graphは、
a)ブートボキャブラリ、
b)コアボキャブラリ、及び
c)アプリケーションランタイムボキャブラリ
並びに
d)ハードウェアシング及び
e)オペレーティングシステムシング
を含む1組からの任意選択的なシングを含め、ボキャブラリを示す1組のシングで構成される。
【0286】
なお、ハードウェアシングは、プロセッサを記述するプロセッサシング及び1つ又は複数の構成要素シングを含むことができる。ハードウェアシングはボキャブラリシングを含むことができる。
【0287】
ボキャブラリを記述する1組のシングは、
a)動詞ボキャブラリ実行可能動作のロードを要求するユニフォームリソース要求、
b)thing:verbsのthing:graphを記述するコンテンツ、
c)ボキャブラリのリスト、
d)必須条件シング、
e)規律シング、
f)作者を識別するシング、
g)所有者とは別個であり得る販売業者を識別するシング、
h)作者とは別個であり得る所有者を識別するシング、
i)コンテンツの認証に使用されるシング、
j)コンテンツの使用を認可する際に使用されるシング、及び
k)http://www.schema.org.SoftwareApplicationからのプロパティ
で構成することができる。
【0288】
なお、アプリケーションボキャブラリURRは、thing:statementsとしてファイルを読み取り解析する動作を実行するstdfile:parseを使用して、評価する。実施形態では、ステートメントは、構成すべき1組のタスク、ランタイムタスク、及び提供する1組のサービスを含む。実施形態では、タスク並びに動作ブロック及びタスクを含むサービスは、タスクの動作ブロックを実行することによって実行される。同様に、サービスは、サービスの動作ブロックを実行することによって提供される。当業者は、多数のタスク及びサービスを構成することができる。
【0289】
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
【0290】
TM:RaspberryPi3
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
【数33】
【0291】
TM(RaspberryPi3)は、以下の動作を含むP(TM)を実行するよう構成される計算機である:自己構成されたthing:machine.boot.vocabulary実行可能動作を実行して、thing:machine.hardware.component.partsと対話し、thing:machine.application.vocabularyを構成し、アプリケーションランタイムを実行するようにthing:machine.core.vocabularyを構成する。
【0292】
TM(AMS.TMD26723)
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。TMD26723は、AMS Corporationによって提供される光学モジュール1.8v 12Cインターフェース(http://www.ams.com参照)におけるデジタル近接性検出器、LEDドライバ、及びIR LEDである。製品データシートは、http://ams.com/eng/content/download/364923/1210537/207915において入手可能である。
【数34】
【0293】
TM(AMS.TMD26723)は、データシートにより指定されるように構成されたi2c通信を使用し、以下の表7に列挙されるP(TM(AMS.TMD26723)))動作を提供するTM2671と対話するように構成される計算機である。
【0294】
【0295】
なお、好ましい実施形態では、P(TM(i))は、P(TM(thing))とアルゴリズム的に対話して、P(TM(i))動作が作用することができるシングにアクセスして対話する。P(TM(i))は、P(TM(thing))と対話して、P(TM(i))動作によって許される値の範囲内にない任意の値に対してステータスをFAILED(不合格)に設定し、理由をINVALID VALUE(無効な値)に設定する。好ましい実施形態では、動作の参照名は、TMD26723名前空間において構成されるが、第2の実施形態は異なる名前空間を使用し得る。
【0296】
i2cインターフェースを使用してTMD26723への通信チャネルを開き、それにより、チャネルを表すシングに対して作用する動作をイネーブルする動作を含め、追加の動作を実施形態に含めることができる。これは、一実施形態において多数のTMD26723センサが使用される場合、有用である。
【0297】
TM(piborg.ultraborg)
Ultraborgは、超音波モジュールサポート、i2c通信を用いたインターフェースボードを用いた精密サーボ制御である。ボードは、4HC-SR04超音波距離センサコネクタを提供し、最高で4つのサーボモータコネクタを提供する。HC-SR04は、視野角30度を有する。
【0298】
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
【数35】
【0299】
TM(piborg.ultraborg)は、データシートによって指定されるように構成されたi2c通信を使用してUltraborgと対話して、表8に示されるP(TM(piborg.ultraborg))動作を提供するように構成される計算機である。
【0300】
【0301】
なお、好ましい実施形態では、P(TM(i))は、P(TM(thing))とアルゴリズム的に対話して、P(TM(i))動作が作用することができるシングにアクセスして対話する。P(TM(i))は、P(TM(thing))と対話して、P(TM(i))動作によって許される値の範囲内にない任意の値に対してステータスをFAILED(不合格)に設定し、理由をINVALID VALUE(無効な値)に設定する。
【0302】
好ましい実施形態では、動作の参照名は、指定された名前空間において構成されるが、第2の実施形態は異なるリストを使用し得る。
【0303】
一実施形態では、HC-SR04超音波センサは、サーボモータの運動によって回転可能な表面に搭載される。このようにして、サーボモータは、30度増分等で表面を回転させることができ、超音波センサが増分的により広いエリアをカバーできるようにする。
【0304】
第2の実施形態では、HC-SR04超音波センサは、前向き等の固定位置に搭載されて、固定された30度視野を用いて4mまでの距離を測定する。
【0305】
TM(Ublox.neo-6m-gps)
Neo-6M-GPSは、標準GPIOインターフェースを使用するublox 6 GPSモジュールROM結晶である。
【0306】
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
【数36】
【0307】
TM(Ublox.neo-6m)は、データシートによって指定されるように構成された汎用i/oを使用してu-blox Neo 6M GPSと対話するように構成され、表9に示されるP(TM(Ublox.neo-6m))動作を提供する計算機である。
【0308】
【0309】
なお、好ましい実施形態では、P(TM(i))は、P(TM(thing))とアルゴリズム的に対話して、P(TM(i))動作が作用することができるシングにアクセスして対話する。P(TM(i))は、P(TM(thing))と対話して、P(TM(i))動作によって許される値の範囲内にない任意の値に対してステータスをFAILED(不合格)に設定し、理由をINVALID VALUE(無効な値)に設定する。好ましい実施形態では、動作の参照名は、指定された名前空間において構成されるが、第2の実施形態は異なるリストを使用し得る。
【0310】
TM(HC-SR501)
HC-SR501焦電型赤外線PIR運動センサ検出器モジュール。以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
【数37】
【0311】
TM(HC-SR501)は、データシートによって指定された汎用I/Oインターフェースを使用してPIRと対話するように構成され、表10に示されるP(TM(HC-SR501))動作を提供する計算機である。
【0312】
【0313】
なお、好ましい実施形態では、P(TM(i))は、P(TM(thing))とアルゴリズム的に対話して、P(TM(i))動作が作用することができるシングにアクセスして対話する。P(TM(i))は、P(TM(thing))と対話して、P(TM(i))動作によって許される値の範囲内にない任意の値に対してステータスをFAILED(不合格)に設定し、理由をINVALID VALUE(無効な値)に設定する。好ましい実施形態では、動作の参照名は、指定された名前空間において構成されるが、第2の実施形態は異なるリストを使用し得る。
【0314】
Cirrus Logicオーディオカード
Cirrus Logicオーディオカードは、Cirrus Logicと協力してElement14によって製造され、カメラと並行してオーディオを捕捉するPCサウンドカードに類似した柔軟性並びにステレオデジタル捕捉及び再生を用いた実験をRaspberry Pi(登録商標)ユーザに提供する。
【0315】
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
【数38】
【0316】
TM(Element14.CLAC)は、データシートによって指定されるCirrus Logicオーディオカードインターフェース、ステレオライン入力に接続されたステレオマイクロホン、2つの外部電源ステレオスピーカがステレオライン出力に接続され、と対話するように構成され、表11に示されるP(TM(Element14.CLAC))動作を提供する計算機である。
【0317】
【0318】
なお、好ましい実施形態では、P(TM(i))は、P(TM(thing))とアルゴリズム的に対話して、P(TM(i))動作が作用することができるシングにアクセスして対話する。P(TM(i))は、P(TM(thing))と対話して、P(TM(i))動作によって許される値の範囲内にない任意の値に対してステータスをFAILED(不合格)に設定し、理由をINVALID VALUE(無効な値)に設定する。好ましい実施形態では、動作の参照名は、指定された名前空間において構成されるが、第2の実施形態は異なるリストを使用し得る。
【0319】
Cirrus Logicオーディオカード TM(Element14.CLAC)の例示的な実施形態を以下に示す。
https://www.element14.com/community/servlet/JiveServlet/downloadBody/65689-102-2-291406/Wolfson%20Audio%20Card%20Schematic%20Diagram.pdf
【0320】
TM(TI.TMP007)
TMP007は、赤外線(IR)放射により遠くの物体の温度を検出するウェーハチップスケールパッケージ(WCSP)内の統合デジタル熱電対列温度センサである。http://www.ti.com/lit/ds/symlink/tmp007.pdfを参照のこと。
【0321】
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
【数39】
【0322】
TM(TI.TMP007)は、TMP007データシートによって指定されたようにTI TMP007と対話するように構成され、表12に示されるP(TM(TI.TMP007))動作を提供する計算機である。
【0323】
【0324】
P(TM(i))の例
上述したように、シングマシンは多数のTM(i)で構成され、各TM(i)は、手順P(TM(i))を用いる計算機である。様々なP(TM(i))の例には、限定ではなく、以下がある。
【0325】
P(TM(format))動作は、P(TM(thing))と対話して、P(TM(output))動作が出力するアウトバウンドコンテンツ応答として応答名前空間シングをフォーマットする。なお、P(TM(format))及びP(TM(output))のアルゴリズムステップは、P(TM(format.output))等の適切なP(TM(i))によって与えられる1つの手順として結合することができる。
【0326】
P(TM(runtime))動作は、P(TM(thing))と対話して、一連のステートメントを表す、構成されたタスクthing:graphを実行し、各ステートメントはP(TM(eval))によって評価され、対応する実行可能thing:graphはP(TM(perform))によって実行される。
【0327】
P(TM(runtime))はアルゴリズム的に、
1.P(TM(thing))と対話して、リストステータスによって与えられるシングの値を値「satisfied」に設定し、
2.上記シングの値が「satisfied」に等しい間、以下のシーケンスを繰り返し実行する:
a.P(TM(parse))と対話して、入力デバイスからコンテンツを読み出し、上記コンテンツを解析し、P(TM(request))と対話して、対応するthing:statementグラフを生成し、
b.P(TM(eval))と対話して、アクティブシングのコンテキストで上記グラフを評価し、実行可能thing:statementグラフを生成し、
c.P(TM(perform))と対話して、上記実行可能thing:statementグラフを実行する
動作を提供する。
【0328】
P(TM(runtime))は、1組のブートアクティブシング内のアクティブシングとして構成することができる。P(TM(bootstrap))動作は、通信チャネルを初期化し、その通信チャネルを表すシングを設定することができる。P(TM(parse))動作は、P(TM(thing))と対話して、コンテンツを読み出す通信チャネルとして上記シングにアクセスして対話することができる。
【0329】
P(TM(runtime))は、1組のブートストラップアクティブシング内のアクティブシングとして構成することができる。P(TM(bootstrap))動作は、通信チャネルを初期化し、その通信チャネルを表すシングを設定し、次に、P(TM(runtime))の実行を要求することができる。P(TM(parse))動作は、P(TM(thing))と対話して、コンテンツを読み出す通信チャネルとして上記シングにアクセスし対話することができる。
【0330】
未知のシングの場合、P(TM)はP(TM(bind))と対話することができ、P(TM(bind))は、P(TM(thing))と対話して、P(TM)が知っているシングの分類のメンバとして未知のシングをバインドする動作を提供する。
【0331】
P(TM(classifier))は、関心のある分類として、評価するよう求められているステートメントのタイプをアルゴリズム的に分類し、その関心のある分類のカウントをインクリメントする。所定の閾値で、P(TM)は、P(TM)が学習すべきシングのリストにその分類を話題として追加する。P(TM)は、話題について学習するのに適切な時間をアルゴリズム的に決定することができる。通信デバイスを使用して、P(TM)は、話題に関連するコンテンツを要求することができる。これにより、P(TM)は、学習したい話題のタイプ及び学習したい速度を決定することができる。例えば、75%メモリ容量、65%処理容量、及び/又は60%ネットワーク容量で実行中のシングマシンは、後の時間まで、追加のリソースを学習に費やすのを延期し得る。多くの場合、シングマシンは通常、実行中の環境に関連する関心エリアに専念する。しかしながら、学習する話題のリストにランダム選択を追加することにより、シングマシンは、その能力をより一般化するように拡大することができる。例えば、製品を自販する自販機であるシングマシンは、車のレンタルを提供するのに求められる動作を学習することができる。表面でそれは馬鹿げているように見え得るが、多くのカーレンタルエージェンシーが容易に利用可能な混雑した空港での自販機を考える。そのような機械は、ウェブサービスを使用して、どのカーレンタル企業が消費者に適したセレクションを有するかを発見し、レンタルを予約し、消費者に課金し、消費者に受領証を電子メールで送信するように学習することができる。P(TM(classifier))は、thing:statementを分類する動作を提供することができ、P(TM(eval))は、上記分類を使用して、アクティブシングを選択するに当たりP(TM(eval))が利用可能な、thing:statementを満たす1組のアクティブシングを識別する。他の形態の人工知能(AI)を統合することもできる。例えば、シンボリックAI、サブシンボリックAI、及び統計学的ALアルゴリズム手順が使用可能である。
【0332】
P(TM(eval))は、第1の実行可能thing:statementを生成し実行させ、第2の実行可能thing:statementの実行にその応答を使用することができる。一実施形態では、第1の実行可能thing:statementは、P(TM(classifier))を実行して、話題等の評価中のthing:statementのタイプを分類することができる。それに応答して、P(TM(eval))は、分類を使用して、第2の実行可能thing:statementを生成するか、又は生成された実行可能thing:statementのアクセス可能アクティブシングのコンテキストを設定することができる。
【0333】
図33を参照すると、P(TM(parse))は入力デバイス(図示せず)及びP(TM(thing))と対話して、要求thing:graphを生成する動作を提供し、P(TM(eval))はP(TM(thing))と対話して、アクセス可能な実行可能動作のコンテキストで要求thing:graphを評価する動作を提供し、実行可能thing:graphを生成し、P(TM(perform))はP(TM(thing))と対話して、実行可能thing:graphを実行する動作を提供し、ここで、上記グラフは、P(TM(configure))を実行して、P(TM)が実行することができる実行可能動作のグラフを変更する。一実施形態では、入力デバイスはファイルシステムデバイスであり、コンテンツは、構成する少なくとも1つのアクティブシングを記述する、言語文法にシンタックス的に準拠した構成文書である。好ましい実施形態では、パーサ動作及びフォーマット動作はシング言語文法に準拠する。この構成では、アクティブシングのボキャブラリは、1組の構成文書から動的に構成される。
【0334】
図34を参照すると、P(TM(env))は入力デバイス(図示せず)及びP(TM(thing))と対話して、要求thing:graphを生成する動作を提供し、P(TM(eval))はP(TM(thing))と対話して、実行可能動作のコンテキストで要求thing:graphを評価する動作を提供し、実行可能thing:graphを生成し、P(TM(perfrom))はP(TM(thing))と対話して、実行可能thing:graphを実行する動作を提供し、ここで、上記グラフは、P(TM(configure))を実行して、P(TM)が実行することができる実行可能動作のグラフを変更する。
【0335】
好ましい実施形態では、入力デバイスは電磁波デバイスである。この構成では、thing:graph(monad)の一部は、環境からの入力に基づいてアルゴリズム的に変更され、したがって、P(TM)は、P(TM)が実行されている環境のニーズに適応する。
【0336】
一環境では、P(TM)動作は、「どんなサービスをお望みですか(How can I be of service)」をユーザに尋ねるオーディオメッセージを再生し、第2の動作はユーザ応答を記録する。音声-テキスト動作はオーディオをテキストに変換し、テキストはthing:graphとして解析される。分類器動作はアルゴリズム的に会話の話題を分類する。P(TM)は、話題に関連するタスクについての要求を第2のシングマシンに通信する。情報の受信に応答して、第1のP(TM)はアルゴリズム的にタスクを構成し、タスクを実行する。
【0337】
第2の実施形態では、シングマシンは、受信光学サブシステム組立体を含み、ユーザ提供の光学識別子(OI:Optical Identifier)を照会するのに使用され、それに応答して、そのユーザに固有の実行可能thing:graphを含むようにthing:graph(monad)の一部を構成する。ユーザが、OIを光学リーダから除去する等によって肯定動作を実行する場合、P(TM)はユーザに固有のthing:gram(monad)のその部分を忘れる。
【0338】
第3の実施形態では、シングマシンは、ユーザを識別する、EyeLock等のバイオメトリックデバイスを含み、そのユーザに固有の実行可能thing:graphを含むようにthing:graph(monad)の一部を構成する動作を実行する。ユーザが、バイオメトリックデバイスのエリアから去る等によって肯定動作を実行する場合、P(TM)はユーザに固有のthing:gram(monad)のその部分を忘れる。
【0339】
P(TM(thing))は、シングの表現及びシング間の関係をアルゴリズム的に初期化し、thing:graphとして不揮発性メモリにおいて編成する動作を提供する。クラスをサポートする一実施形態では、P(TM(thing))は、そのクラスのメンバであるためにシングのインスタンスに何が意図されるかの要件を満たすシングを設定するP(TM(thing:class.set))、そのクラスのシングへの参照を取得するP(TM(thing:class.get))、指定されたクラスのシングのインスタンスをアンセットするP(TM(thing:class.unset))等の規律P(TM(thing:class))手順で構成される。「前」又は「後」等の修飾語句動作により、P(TM(thing))手順を修飾することができ、したがって、「設定前、この動作を実行」又は「設定後、この動作を実行」を可能にする。
【0340】
シングの各インスタンスは、P(TM(thing))によって使用される1組の非可変構成要素で構成される。好ましい実施形態では、上記組は、thing:name、thing:value、及びthing:relationship-setを含む。一実施形態は、構成ファイル内のコンテンツ等のP(TM(thing))が対話することができる、コンテンツを通して指定される追加の構成要素を組み込むように組を拡張することができる。
【0341】
図35を参照すると、初期化中、P(TM(thing))は、シングマシンのthing:graphのルートとして、モナドに等しい名前をシングに割り振り初期化し、コンテキストという名前をシングに割り振り初期化し、アサート「名前がモナドに等しいシングがあり、そこには名前がコンテキストに等しいシングがある」が真であるような関係を設定する。
【0342】
図36を参照すると、コンテキストは、1つ又は複数の自由変数及び自由変数間の関係の式で構成されるリストを解決する範囲内にある1組のシングを認定する。例として、http://www.iotnamespace.com/thing、request:statement、及びstatement.thing[1]はリストの例である。
【0343】
図37を参照すると、好ましい実施形態では、コンテキストシングはthing:stackであり、これを通して、P(TM(thing))はアルゴリズム的に、シングをスタックに押し入れ、又はシングをスタックから押し出し、それにより、コンテキストを変更することができる。P(TM(thing))はアルゴリズム的に、リストを解決する範囲内にある1組のシングを認定する際、スタックの最上部におけるシングを現在のコンテキストとして使用する。
【0344】
図36を再び参照すると、好ましい実施形態では、現在のコンテキストシングは、名前空間シングと呼ばれる1つ又は複数のシングへの関係を含む関係セットを有する。シングの名前は名前空間の名前である。P(TM(thing))はアルゴリズム的に、単に同じ名前空間内で認定されることによってのみ関係する場合であっても、関連するシングの名前付きシンググラフを表すシングとして、名前空間シングを使用する。URIスキーム名は、名前区間であるシングの名前であることができる。URIスキーム固有部分は、その名前空間において認定されるシングを識別するリストである。
【0345】
図38を参照すると、実行可能動作への参照の表現を有するシングは、アクティブシングとして分類される。アクティブシングはthing:verbであり、対応するアクティブシンググラフG(P(TM(i)))を有する。主語ノード名は対応するアクティブシング名で置換され、空白ノードに対して作用するG.requestは、P(TM(i))が作用することができるシングのグラフで置換される。各G(P(TM(i)))は、
a)名前がP(TM(i))を識別する識別子であり、有向グラフ内のルートノード(主語シング)であるG.identifier(P(TM(i))シング、
b)値が、G.requestに対して作用するP(TM(i))への要求を示すG.urr(P(TM(i)))URIシング、及び
c)P(TM(i))が作用することができる1組のシングを示すG.request(P(TM(i)))シンググラフ
を含む。
【0346】
図39を参照すると、一実施形態では、G(P(TM(i)))は、P(TM(i))の実行からの応答を含むシングの記述等の追加のシング情報を含むことができる。
【0347】
一実施形態は、P(TM(i))が作用することができるシングの様々な順列を示す、所与のG(P(TM(i)))の多数のG.requestグラフを含むことができる。そのような一実施形態は、対応する応答グラフを構成するシングを示す多数のG.responseグラフを更に含むことができる。
【0348】
図40は、非一時的メモリにおいてシングを設定するP(TM(Thing.set))手順に対応するG(P(TM(thing.set)))グラフである。request:uriシングの値は、設定すべきシングのリストであり、その値は、指定された場合、request:valueシングの値に設定される。request:usingシングが指定される場合、その値は、request:uriシングの値によって識別されるシングを設定する際に使用するシングを表すリストである。
【0349】
図41は、リストrequest:uri、非一時的メモリによって与えられるシングの表現を得るP(TM(Thing.get)手順に対応するG(P(TM(thing.get)))グラフである。修飾語句の名前、値、関係セット、又は関係を使用して、シングについて要求される特定の情報を示すことができる。情報は、request:asシングの値によって示されるリストによって与えられるシングの値として保存される。
【0350】
図42は、非一時的メモリからシングの表現をアンセットするP(TM(Thing.unset)手順に対応するG(P(TM(thing.unset)))グラフである。アンセットするシングは、request:uriシングの値によって与えられる。
【0351】
当業者は、シング及び関係を監督して、同時実行、持続性、キャッシュ、同期、ロック(読み出し/書き込みロック等)、所有権、許可(所有者、グループ、又は全てによる読み出し/書き込み/実行等)等の特徴を更に可能にする代替のアルゴリズム手順でP(TM(thing))を置換することができる。
【0352】
P(TM(eval))
P(TM(eval))は、
図45によって説明されるように、アルゴリズム的にP(TM(thing))と対話して、
a)評価するthing:statementを選択し、
b)1組のアクセス可能なアクティブシングから、実行可能アクティブシングとしてG(P(TM(i)))を選択し、
c)実行可能コンテキストシングとして新しいコンテキストシングを初期化し、
d)実行可能コンテキストシングのコンテキストにおいて実行可能G(P(TM(i)))のG.urrを実行し、
e)実行可能コンテキストシングを現在のコンテキストシングにリセットし、
f)新しいコンテキストシングをアンセットする
動作を提供する。
【0353】
一実施形態では、ステップa及びステップbは、アサート:(リストがrequest:statementに等しいthing:statementがあり、そこには名前が.nameに等しいシングがある)及び(リストがverb.vocabularyに等しいシングがあり、そこには名前が.nameに等しく、且つシングがアクティブシングであるthing:verbがある)を満たすアクティブシングを選択することからなる。
【0354】
好ましい実施形態では、ステップbは、アサートが満たせない場合、デフォルトアクティブシングを選択するステップを含むことができる。
【0355】
インスタンスを有するアクティブシングの場合、P(TM(eval))は、thing:statementがインスタンスのG.requestグラフのサブグラフであるアクティブシングのインスタンスを選択するステップを含むことができる。
【0356】
一実施形態では、P(TM(eval))はP(TM(bind))と対話して、アクティブシング動作が作用することができる実行可能コンテキストシング内のシングとして、実行可能動作シングの対応するG.requestグラフを使用して、thing:statementシングによって認定されるシングをバインドするステップを含む。
【0357】
一実施形態では、P(TM(eval))は、命令文、宣言文、照会文、又は感嘆文としてステートメントのタイプをアルゴリズム的に分類し、アクティブシングを実行して、ステートメントの上記クラスを評価する。これにより、P(TM(eval.declarative))手順は、宣言文をアルゴリズム的に評価することができ、P(TM(eval.imperative))手順は、命令文をアルゴリズム的に評価することができ、P(TM(eval.interrogative))手順は、照会文をアルゴリズム的に評価することができ、P(TM(eval.exclamatory))手順は、感嘆文をアルゴリズム的に評価することができる。
【0358】
P(TM(eval))の動作は、実行可能thing:statementにデフォルトのアクティブシングをアルゴリズム的に選択することができ、thing:statementをアルゴリズム的に評価して、使用により適切なアクティブシングを決定することができる。デフォルト動作はP(TM(thing))と対話して、デフォルト動作が実行されたthing:statementの分類に関連付けられたカウンタシングをインクリメントして、シングマシンがthing:statementのその分類を実行するように求められた回数を表すことができる。実行可能通信動作を使用して、P(TM(i))は、第2のマシンと通信して、上記分類に関連するコンテンツを得ることができる。P(TM(parse))動作は、thing:statementを解析して、評価し実行することができる。このようにして、シングマシンは、シングマシンが実行されている環境のニーズに適応することができる。(ここでの目標は、マシンに何かをするように求めることである。マシンはデフォルト動作を選択し、次に、求められたことが何であれ、それを評価し、実行するのによりよい動作があるか否かを調べる。ない場合、マシンはデフォルトを実行する。デフォルト動作は話題を分類し、マシンがその話題に関連する何かをするように求められた回数のカウンタをインクリメントする。このように、カウンタが閾値になると、マシンは、その話題について教えるように誰かに求めることができ、又はその話題に関連する本を購入して読むことができる。
【0359】
一実施形態は、response.asシングが指定される場合、P(TM(eval))が、新しいコンテキストシングをアンセットする前、現在コンテキストにおけるresponse.asシングのサブグラフとして、新しいコンテキストにおいてresponse:namespaceシングのサブグラフをバインドすることができるように、コンテキスト間でグラフを統合することができる。
【0360】
一実施形態では、P(TM(eval))は、G.urrを実行するステップの前、現在コンテキストとして新しいコンテキストをコンテキストスタックに押し入れるステップを含むことができる。第2の実施形態では、並列処理のコンピュータ分野の当業者は、プロセス制御ブロックシングのスレッド固有データのグラフを表すシングを使用し、上記データは、P(TM(thing))を解決するために、現在コンテキストへの参照を含む。
【0361】
図43を参照すると、G.requestは、動作が、thing:statementであるrequest:statementに作用することができることを示す。したがって、request:statementシングのサブグラフは、thing:statementであるシングのクラスのメンバであるための要件を満たす必要がある。
【0362】
図44を参照すると、G.requestサブグラフは、動作が、thing:listingであるrequest:usingシングに作用することができることを示す。このグラフは、要求名前空間シングがあり、そこには、名前がステートメントに等しい(thing:sttina)シングがなく、名前がusingに等しいシングがあることが真である場合、適用される。このG.requestサブグラフは、評価アクティブシングを選択する代替の方法を提供する。
【0363】
人工知能のアルゴリズム的使用が明示的に意図される。P(TM(classifier))は、thing:statementを分類する動作を提供し、P(TM(eval))は、上記分類を使用して、thing:statementを満たすアクティブシングを選択する際、P(TM(eval))が利用可能な1組のアクティブシングを識別する。他の形態の人工知能を統合することもできる。例えば、シンボリックAI、サブシンボリックAI、及び統計学的AIアルゴリズム手順を使用することができる。
【0364】
Google Researchは、主に学術活動及び研究活動に使用されるオープンソース機械学習ライブラリであるTensorFlowをリリースした。機械学習のコンピュータ科学分野の当業者は、TensorFlow APIを使用して、ディープラーニング用のP(TM(classifier))を開発することができる。TensorFlow APIは、構成するTensorflow手順を表す1組のアクティブシングとしてP(TM(thing))と直接対話するように変更することができる。トレーニングデータは1組のアクティブシングを通して提供することができる。
【0365】
P(TM(eval))は、a)要求分類器thing:statementを生成するためにP(TM(thing))と対話して、P(TM(classifier))の実行を要求して現在の要求thing:statementを分類し、b)P(TM(bind))と対話して、実行可能thing:statementとして分類器thing:statementをバインドし、c)P(TM(perform))と対話して、実行可能thing:statementを実行し、d)P(TM(thing))と対話して、その結果と対話する動作を提供する。
【0366】
その結果は、現在の要求thing:statementに関連する分類(クラス)を識別する。P(TM)に既知のシングのクラスの場合、P(TM(eval))はP(TM(thing))と対話して、クラスに関連するボキャブラリを含むようにコンテキストを設定し、そのコンテキストにおいて現在の要求thing:statementを評価する。
【0367】
P(TM(eval))は、話題が現在の要求thing:statementに適用される回数を示すその話題を表すカウンタをインクリメントし、それにより、分類器は、最も頻繁に使用される話題に従ってthing:statementを分類することができる。P(TM)が所与の話題のボキャブラリを有さない場合、P(TM(eval))は、デフォルト動作を表すthing:statementを生成して評価することができる。
【0368】
第1のP(TM)は、Wi-Fi通信等を通して第2のP(TM)と通信して、P(TM)が評価し実行することが一般に求められるthing:statementのクラスに関連するコンテンツを要求することができる。上記コンテンツは、アクティブシング等のシング及びタスク等のアクティブシングの動作が作用することができるシングを表し得る。
【0369】
一実施形態は、所与の言語をサポートし、特定の機械学習アルゴリズムを実装し、多数の機械学習アルゴリズムを実施し、性能改善を提供し、又は第2のマシンと対話してthing:statementを評価し、第3のマシンと対話して、thing:statementを実行する実施形態等の実施形態に適切な評価をアルゴリズム的に実行する評価動作でP(TM(eval))を置換することができる。本発明の範囲内で多数のアルゴリズム的変更が可能なことを当業者は理解する。
【0370】
修飾語句は、デフォルトP(TM(eval))手順動作を修飾する、thing:statementにおけるシングとして使用することができる。代替的には、P(TM(eval))はP(TM(classifier))と対話して、評価中のシングのタイプをアルゴリズム的に分類することができ、シングの上記タイプは、アクティブシングを選択し実行するための修飾語句として使用することができる。例として、「クリーンアップという名前のタスクを実行しろ(Perform the task named cleanup)」等の命令文を表すステートメントを評価することは、「クリーンアップという名前のタスクの宣言は、ステップ1:コムポイントI/O(compoint I/O)をフラッシュし、ステップ2:コムポイントI/Oを閉じる、を含む」等の宣言文を表すステートメントを評価することとは異なる。
【0371】
動作が作用することができるシングのタイプをP(TM(i))のthing:graphに組み込み、動作が応答することができるシングのタイプを組み込むことにより、開く(open)等の一般的な動詞名に適切な動作を選択することができる。例として、以下のそれぞれは非常に異なる動作を有するが、それぞれ共通の動詞名を使用する:電子メールを開く、ゲートを開く、銀行口座を開く。正確な動作の選択は、部分的に、何が開かれているかに依存する。動作を作用することができるシングのタイプの記述を含むことにより、P(TM(eval))は、生成すべき実行可能thing:graphについて適切な選択をすることができる。
【0372】
P(TM(parse))
P(TM(parse))は、要求を表す入力を解析し、P(TM(request))とアルゴリズム的に対話して、解析された入力を表すシングを設定する動作を提供する。好ましい実施形態では、P(TM(parse))はXML1.1パーサである。
【0373】
図46を参照すると、リストrequest:streamによって識別されるシングの値は、解析するストリームである。request:statementにデフォルト設定される、request:asシングの値によって識別されるシングは、解析された入力要求を表すthing:statementとして設定される。
【0374】
図47を参照すると、例示的なXMLフラグメントは例示的なグラフとして解析される。なお、要素属性は、「そこにはインスタンスがある(such that there is an instance)」関係(thing:sttiai)を介して示され、一方、要素は、「そこには~がある(such that there is a)」関係(thing:sttia)を介して示される。
【0375】
図48を参照すると、request:inputリストによって与えられるシングの値は、解析する入力である。TM(eval)は、要求グラフに基づいて適切なG.request(P(TM(parse)))グラフを選択し、適切なバインドを促進する。
【0376】
なお、パーズ1とパーズ3との間には、特に動作がストリームから読み取る1において、僅かであるが重要な違いがある。代替的には、3において、動作はrequest:inputリストの値(値は解析するコンテンツである)を使用する。
【0377】
これは、特定の場合、コンテンツをファイルから取得し、他の場合、動作がコンテンツを生成し、シングの値として記憶するため、必要である。
【0378】
P(TM(request))
P(TM(request))は、P(TM(Thing))とアルゴリズム的に対話して、thing:statementシンググラフとして、request:usingシングの値として与えられるリストによって識別されるシングを使用して、request:asシングの値として与えられるリストによって識別されるシングを設定する動作を提供する。
【0379】
第1のP(TM(i))を使用して、thing:statementシングを繰り返し構築し、次に、P(TM(request))とアルゴリズム的に対話して、request:statementシングを設定することができる。
図49はG(P(TM(request)))グラフを示す。request:asシングのデフォルト値はrequest:statementである。
【0380】
P(TM(bind))
P(TM(bind))は、シングをシングの所与のクラスのメンバとしてバインドしようとして、1組のバインド規則をアルゴリズム的に適用する。
【0381】
例として、値がパターン「[0-9]{1,}」に一致するシングは、thing:integer(整数値を有するシング)としてバインドすることができ、一方、値がパターン「[0-9A-Fa-f]」に一致するシングは、thing:hexadecimal(16進値を有するシング)としてバインドすることができる。thing:thing、thing:text、thing:integer、thing:float、及びthing:string等のシングの基本クラスに加えて、推論規則又はスキーマを使用して追加のタイプを表現することができる。
【0382】
図50を参照すると、G.requestサブグラフは、P(TM(bind))が作用することができるシングを示す。request:usingによって与えられるシングの値は、1組のバインド規則を識別するリストである。request:bind.listingによって与えられるシングの値は、バインドすべきthing:graphを識別するリストである。reqeust:response.asによって与えられるシングの値は、応答を設定すべきthing:graphを識別するリストである。request:response.asが空の場合、バインド中のシングのグラフは更新される。
【0383】
P(TM(bind))は、非バインド又はバインド等の状態情報を使用して、シングが既にバインドされているか否かを示すことができる。これにより、P(TM(bind))は、状態をチェックし、非バインドシングのみにバインド規則を実行することができる。P(TM(bind))は、「発見」及び「未発見」状態を更に含み、シングがバインドされ発見されているか、それともバインドされ、未発見であるかを示すことができる。好ましい実施形態では、P(TM(unbind))はP(TM(thing))と対話して、非バインド・未発見状態にシングをリセットする。
【0384】
第1の実施形態では、コンピュータ科学論理の当業者は、推論規則を使用して、シングのクラスのメンバとしてシングをバインドする。規則は、アサート及びクラス識別子で構成される。P(TM(bind))はP(TM(thing))と対話して、バインドすべきシングについてのアサートとして規則をアルゴリズム的に適用し、満たされた場合、P(TM(bind))はP(TM(thing))と対話して、上記クラス識別子のメンバとしてシングを識別する。
【0385】
第2の実施形態では、コンピュータ科学マークアップ言語の当業者は、thing:schemaマークアップ言語を使用して、シングクラスを記述することができる。業界標準マークアップスキーマは、http://schema.org.docs/schemas.htmlから入手可能である。上記スキーマは、それぞれが1組の属性が関連付けられた1組のタイプである。Schema.orgスキーマ情報についてはhttp://schema.org/docs/documents.htmlを参照のこと。これは参照により援用される。
【0386】
図51を参照すると、thing:graphは、イメージオブジェクトクラスのメンバとしてバインドされるシングのメンバーシップ要件を記述するアサートとして解釈される。解釈は、名前がschemaに等しいシングがあり、そこには名前がImageObjectに等しく、且つシングがthing:schemaであるシングがあり、そこには(名前がCaptionに等しく、且つthing:valueがthing:textであるシングがあり)且つ(名前がexitDataに等しく、thing:Valueがthing:textであるシングがあり)且つ(名前がrepresentativeOfPageに等しく、且つthing:valueがthing:Booleanであるシングがあり)且つ(名前がthumbnailに等しく、且つthing:thingがschema:ImageObjectであるシングがある)ことを表現するアサートである。
【0387】
図52を参照して、リストlocal:objectによって与えられる非バインドthing:graphを提示する。
【0388】
図53を参照すると、thing:graphは、schema:ImageObjectシング(http://www.schema.org/ImageObjectに記述されるように)としてlocal:object thing:graphをバインドする要求を示す。P(TM(bind))はP(TM(Thing))と対話して、local:object thing:graphの構成要素が、schema:ImageObjectであるための要件を満たすか否かを判断する。local:objectシング状態は、非バインドからバインドに遷移する。満たす場合、ノード「bound.found」がlocal:object thing:graphに追加され、ノードの値はschema:ImageObjectに設定される。
【0389】
コンピュータ科学論理の当業者は、推論規則を使用して、シングについての推測をアルゴリズム的に行うことができる。推論規則は、前提を表すthing:graphに対して作用する手順からなり、結論を表すthing:graphを生成する。
図54を参照すると、アサートは、シングがBroadcastServiceとして分類されることが何を意味するかを記述する。アサートは解析され、指定された分類の推論規則として表される。P(TM(bind))は、指定されたthing:graphが推論規則を満たすか否かをアルゴリズム的に評価し、満たす場合、thing:graphを指定された分類のメンバとして分類する動作を提供する。再び
図54を参照すると、コンピュータ科学スキーマの当業者は、http://schema.org/docs.full.htmlにおいて入手可能なhttp://www.schema.orgにより公開されている組等の1組のスキーマの数論規則を生成することができる。
【0390】
なお、http://www.schema.org/PerformActionは、実行可能動作を実行するマシンではなく、芸術の実行に参加する動作に関連する。schema.orgの動作は、それにより可能になる動作及びクライアントがいかにこれらの動作を呼び出すことができるかをウェブサイトが説明できるようにするボキャブラリに関連することにも更に留意する。http://blog.schema.org/2014/04/announcing-schemaorg-actions.htmlを参照のこと。これは参照により援用される。
【0391】
P(TM(perform))
P(TM(perfrom))は、thing:statementにおいてP(TM(i))への参照を見つけ、P(TM(i))動作を実行させることにより、実行可能thing:statementをアルゴリズム的に実行する。動作からの応答は、満足、非満足、又は不合格のいずれかである。P(TM(perform))動作は、この応答を示すようにステータスシング値を設定する。
【0392】
図55を参照すると、G.requestサブグラフは、P(TM(perform))動作がrequest:statementに対して作用することを示す。
【0393】
P(TM(task))
P(TM(task))は、P(TM(thing))とアルゴリズム的に対話して、thing:statementのthing:listを含む1組のサブグラフで構成されるthing:taskとしてthing:graphを監督する。一実施形態では、P(TM(task))の動作は、
a)P(TM(thing))と対話してthing:taskを設定するP(TM(task.set))、
b)P(TM(thing))と対話してthing:taskへの参照を取得するP(TM(task.get))、
c)P(TM(thing))と対話してthing:taskをアンセットするP(TM(task.unset))、
d)P(TM(thing))、P(TM(eval))、及びP(TM(perform))と対話して、thing:taskのthing:statementを評価し実行するP(TM(task.perform))
で構成することができる。
【0394】
図56を参照すると、P(TM(task.set))はP(TM(thing))と対話して、値がthing:taskとして設定されるべきシングのリストであるリストrequest:statement.taskによって識別されるシングに対してアルゴリズム的に作用する。request:statement.taskの動作サブグラフは、thing:taskシングのサブグラフとして設定される。一実施形態は、request:statement.task.G.requestとしてG.requestサブグラフを含み得、上記サブグラフは、タスクが作用すべきシングを表す。
【0395】
P(TM(task.get))はP(TM(thing))と対話して、thing:taskの表現をアルゴリズム的に取得し、主に、P(TM(task.perform))等のそのグラフにアクセスする必要がある他のP(TM(i))によって使用される。
【0396】
P(TM(task.unset))はP(TM(thing))と対話して、thing:thing(monad)グラフから指定されたタスクをアルゴリズム的にアンセット(削除)する。
【0397】
図57を参照すると、P(TM(task.perform))はP(TM(thing))、P(TM(eval))、及びP(TM(perform))と対話して、request:statement.taskの値によって識別されるthing:taskの動作サブグラフによって与えられるthing:statementサブグラフのシーケンスをアルゴリズム的に評価し実行する。
【0398】
一実施形態では、thing:taskグラフは、thing:task動作サブグラフを評価し実行する必須条件として評価し実行することができるthing:statementサブグラフを含むことができる。これにより、1組の動作シングを実行して、動作サブグラフを表すコンテンツ表現を取得し、評価し実行すべき動作サブグラフのthing:statementシーケンスとして上記コンテンツを解析することができる。他の動作は、識別、認証、及びthing:taskの実行の検証、認可、又は拒絶の認可を含むことができる。同様に、必須条件動作を使用して、アクティブシングの構成等のthing:taskの評価前に必須条件が満たされることを保証することができる。
【0399】
一実施形態では、thing:taskは、ステータスシングの値に応じて、評価し実行するthing:statementを表すon.statusサブグラフを含むことができる。各thing:statementが評価され実行された後、一実施形態はP(TM(thing))動作と対話して、ステータスをアルゴリズム的にテストして、値が満足されるか、非満足であるか、それとも不合格であるかを調べ、対応するon.status.satisfied、on.status.unsatisfied、又はon.status.failedのthing:statementサブグラフを評価し実行することができる。
【0400】
一実施形態は、ステータスシングの値に応じて評価し実行するthing:statementを表すon.statusサブグラフを含むことができる。各thing:statementが評価され実行された後、一実施形態はP(TM(thing))動作と対話して、ステータスをアルゴリズム的にテストして、値が満足されるか、非満足であるか、それとも不合格であるかを調べ、対応するon.status.satisfied、on.status.unsatisfied、又はon.status.failedのthing:statementサブグラフを評価し実行することができる。
【0401】
P(TM(format))
P(TM(format))は、P(TM(thing))と対話して、thing:graphをトラバースし、thing:graphのフォーマットされた表現を生成する動作を提供する。例として、thing:graphの表現は、XML文書、HTML文書、シング文書、又は一実施形態により求められる他のそのようなフォーマットとしてフォーマットすることができる。
【0402】
図58を参照すると、request:statement.listingは、値が、P(TM(format))がフォーマットすべきthing:graphを表すリストであるシングを識別する。request:statement.asは、値が、生成されたフォーマット応答を表すthing:graphの表現であるシングを識別する。request:statement.usingは、値が所望のフォーマットの表現であるシングを識別する。
【0403】
使用するデフォルトP(TM(format))はThing-XMLである。トラバースされるthing:graphのノードは、ルート要素としてフォーマットされる。インスタンスであるサブグラフは、属性としてフォーマットされ、一方、非インスタンスサブグラフは、内部要素としてフォーマットされる。
【0404】
一実施形態では、P(TM(format))はP(TM(thing))と対話して、thing:graphをトラバースして、テキストストリーム及びP(TM(text-to-speech))を生成し、合成発話テキスト表現を含む可聴ストリームへのテキストストリームの合成を実行することができる。P(TM(play-audio))は可聴ストリームをサウンドサブシステムに通信して、可聴再生を生成する。
【0405】
P(TM(http:get))
P(TM(http:get))は、P(TM(thing))とアルゴリズム的に対話して、URIを生成し、URIによって識別されたリソースのHTTP GETメソッド要求を通信し、HTTP応答を受信し、response.headers thing:subgraph及びresponse.entity thing:subgraphを含むHTTP応答を表すthing:graphを生成する動作を提供する。
【0406】
コンピュータ科学ウェブサービスの当業者は、1組のHTTPメソッドアクティブシングを使用して、ボキャブラリ内のconnect、delete、get、head、options、post、put、及びtrace等のHTTPメソッドを提供することができる。1組のメソッドは、http:namespaceに対して構成することができる。同様に、当業者は、HTTPSプロトコルに関連する1組のメソッドを提供することができ、上記組は、https:namespaceのアクティブシングとして構成することができる。
【0407】
図59を参照すると、URIシングは、ドメインシング、パスシング、及びヘッダシングを認定する要求シングを認定する。P(TM(http:get))はP(TM(thing))と対話して、URIシングとアルゴリズム的に対話し、HTTP Getメソッド要求(
図60に示される)を生成し、上記要求をドメインウェブサービスに通信する。これに応答して、P(TM(http:get))は応答を受信する(
図61参照)。
【0408】
図61を参照すると、P(TM(http:get))は、HTTP Get メソッド要求から応答を受信し、応答を解析し、P(TM(thing))と対話して、
図62に示される等の応答を表すthing:graphを設定する動作を実行する。
【0409】
request.headerシングに、request:headerによって認定されるシングとしてそれぞれ表現される1組の要求ヘッダフィールド構成要素を構成することができる。同様に、応答ヘッダの受信及び解析に応答して、response.headerシングに、シングとしてそれぞれ表現される1組の応答ヘッダフィールド構成要素を構成することができる。
【0410】
一実施形態では、P(TM(http:get))は、P(TM(thing))と対話して、応答において許容可能な媒体タイプを表す1組のシングを取得する動作を実行し、それに従って許容要求ヘッダフィールドを要求ヘッダthing:subgraphに追加する。第2の実施形態では、P(TM(http:get))は、P(TM(thing))と対話して、応答において許容可能な1組の符号化を取得する動作を実行し、それに従って許容符号化ヘッダフィールドを要求ヘッダに追加する。
【0411】
P(TM(parse.html))
P(TM(parse.html))はP(TM(thing))と対話して、HTMLコンテンツを表すthing:graphを解析して1組のthing:graphにする動作をアルゴリズム的に提供する。
【0412】
図63を参照すると、P(TM(parse.html))は、解析するHTMLコンテンツである値を有するシングを表すリストである値を有するrequest.contentシングに対して作用する。HTMLコンテンツとして同じドメイン内で認定されるHTMLに組み込まれるアンカーリンクは、内部リンクとして分類され、request:links.internalシング値によって識別されるシングのthing:graphに追加される。同様に、外部リンクも、request.links.externalシング値によって識別されるシングのthing:graphに追加される。タグ付けされていないテキストは、request:textシング値によって識別されるシングの値に保存される。HTMLタグは、request:architectureシング値によって識別されるシングのthing:graphに追加される。マイクロデータは、request:microdataシング値によって識別されるthing:graphに追加される。
【0413】
図64を参照して、HTMLコンテンツにおける例示的なマイクロデータを示す。P(TM(parse.html))は、P(TM(thing))と対話して、上記コンテンツを解析し、
図65に示されるように、thing:graphとしてマイクロデータを表現する動作を提供する。
【0414】
示されるように、第1のスキーマは、編成等の第2のスキーマを含むことができ、http://www.schema.orgによって記述されるようなアドレスを含むことができる。
【0415】
TM(openssl)
P(TM(openssl))の部分は、本開示に含まれるOpenSSLライセンス同意書の下でカバーされる。TM(openssl)は、OpenSSLオープンソースソフトウェア及び手順P(TM(OpenSSL))が構成された計算機である。OpenSSLは、現状技術において周知であり、TLS及びSSLプロトコル動作、汎用暗号ライブラリを提供し、公開鍵基盤のプログラムをサポートするためにウェブサービスと共に広く使用されている。詳しくはhttp://www.openssl.orgを参照のこと。
【0416】
P(TM(openssl))thing:verbsを学習するに当たり、P(TM)は、認証機関によって一般に提供される1組の動作を実行することができる。例えば、コンピュータ科学公開鍵基盤の当業者は、P(TM(openssl))動詞動作を使用して、コンテンツを暗号化し、コンテンツを復号化し、ハッシュコードを生成し、証明書署名要求を生成し、証明書に署名し、自己署名証明書を作成し、証明書要求を検証し、証明書を検証し、証明書を無効化し、証明書の構成要素をアルゴリズム的に調べ、デジタル署名を生成し、デジタル署名を検証し、通常、認証機関に関連付けられた1組のサービスを提供し、ある目的での証明書の使用を認可し、SSL/TLSプロトコルの使用を可能にすることができる。
【0417】
P(TM)と併用する場合、OpenSSLソースコードは、元のCソースコード関数がP(TM(thing))と対話してシングをパラメータとして参照するように変更された。コンピュータ科学の当業者は、同様の既存のソースコードライブラリを変更し、構成動作を使用して追加のP(TM(i))を構成することができる。
【0418】
一般に、OpenSSLコマンドは、コマンド名がthing:verbとして構成され、コマンドが作用するパラメータが、thing:verb動作が作用することができるシングとして構成される場合、P(TM)が実行することができる動作として構成される。
【0419】
P(TM(i))の幾つかは、データを表すコンテンツに対して作用することができ、これはさらに、証明書署名要求、証明書、パスワード、秘密鍵、公開鍵、構成情報、無効化する証明書、拡張、ランダムデータ、又は動作が作用することができる何らかの他のタイプのシングとして分類し得る。幾つかの場合、コンテンツはP(TM(i))によって解析され、シンググラフにおいてシングとして表される一方、他の場合では、コンテンツは、リストによって与えられるシングの値として使用される。多くの場合、動作が作用することができるシングは、そのシングのユニフォームリソース要求として解釈されるThing.urrとして指定することができる。同様に、P(TM(i))は、データを表すコンテンツをアルゴリズム的に生成し得、これは、上述したように更に分類し得る。
【0420】
幾つかの場合、コンテンツはP(TM(i))によって解析され、thing:graphにおいてシングとして表し得、一方、他の場合コンテンツは、リストによって与えられるシングの値として使用することができる。動作はシステムデバイスドライバと対話して、コンテンツを取得するか又は第2の記憶装置に記憶し、コンテンツを第2のP(TM)に通信し、又はコンテンツをセンサ若しくはデバイスに通信し得る。
【0421】
一般に、値を有することができるシングの場合、シングは、P(TM(evaluate))によって評価中のthing:statementにおいてthing:name.urr=URRとして指定されて、実行可能thing:graphを生成し得る(ここで、URRはユニフォームリソース要求である)。明確にするために、これをステップ1と呼ぶ。
【0422】
thing:statement thing:graphをトラバースするに当たり、P(TM(evaluate))は、thing:name.urrを見て、URRを評価し、実行可能thing:graphを生成する。実行可能thing:graphは実行されて、応答thing:graphを生成する。ステップ1におけるP(TM(evaluate))は、thing:statementシングを評価しバインドするに当たり、応答thing:graphを使用する。
【0423】
P(TM(openssl))動作の特定の例を以下のページに提供し、読み手に十分な説明を提供し、次に、同じフォーマットに従うopensslコマンドの残りを提供する。
【0424】
P(TM(i))動作の幾つかは、共通の組のシングに対して作用することができ、これを以下の表13に提供する。
【0425】
【0426】
P(TM(openssl.ca))
P(TM(openssl.ca))は、最小認証機関の動作を提供する。openssl.ca動詞動作が作用することができるシングには、以下の表14に列挙するものがある。
【0427】
【0428】
【0429】
P(TM(openssl.x509))
P(TM(openssl.x509))は、証明書情報を提供し、証明書を様々な形態に変換し、証明書要求に署名し(ミニ証明機関と同様)、又は証明書信用設定を編集する動作を提供する。
【0430】
これは、証明書情報を表示し、証明書を様々な形態に変換し、「ミニCA」のように証明書要求に署名し、又は証明書信用設定を編集するのに使用することができる。openssl.x509動詞動作が作用することができるシングを表15に列挙する。
【0431】
【0432】
【0433】
【0434】
【0435】
【0436】
【0437】
【0438】
P(TM(openssl.genrsa))
P(TM(openssl.genrsa))は、RSA秘密鍵を生成する動作を提供する。P(TM(openssl.genrsa))動作が作用することができるシングは、表16に含まれる。
【0439】
【0440】
P(TM(openssl.req))
P(TM(openssl.req))は、署名書要求及び証明書生成動作を提供する。P(TM(openssl.req))動作が作用することができるシングには、表17に列挙されるものがある。
【0441】
【0442】
【0443】
【0444】
P(TM(OI))
TM(OI)は、光学リーダデバイスドライバと対話して、
a.読み出し角を設定しP(TM(OI:set.angle))、
b.位置を設定し(P(TM(OI:set.position))、
c.光学識別子を光学的に照会し(P(TM(OI:interrogate))、
d.デジタルデータの対応するビットマップを生成しP(TM(OI:generate))、
e.P(TM(thing))と対話して、コードページを表すthing:graphを生成する
ことを含む動作を提供するように構成される手順P(TM(OI))を有する計算機である。
【0445】
同様に、’545IOT-Modulesのアルゴリズム動作は、P(TM)内で使用するように構成される1組のP(TM(i))として実施することができる。したがって、’545の教示は、動作を表すシング及び動作が作用することができるシングの組として実施することができる。
【0446】
例示的なP(TM)
例示的なP(TM)は以下のようにスタートアップ、メイン、及びシャットダウンを含む。
1.P(TM(startup))、
2.P(TM(main))、及び
3.P(TM(shutdown))。
【0447】
一実施形態では、P(TM)は、シングマシンの非一時的補助記憶装置に記憶される。第2の実施形態では、P(TM)は、2016年1月29日に出願された「Optical Identifier System and Methodsという名称の米国特許出願第62/288,545号に示されるように、光学識別子のコードページに符号化され、この米国特許出願は全体的に、参照により本明細書に援用される。光学サブ組立体を有するシングマシンは、光学識別子を光学的に照会して、プログラム命令の表現を実行可能メモリに提供することができる。
【0448】
ブートストラップ手順等のTMの第1の手順は、コードページ、非一時的補助記憶装置等から、又は電磁波デバイスを使用して受信された等のP(TM)を実行可能プロセッサメモリにロードし、プロセッサにP(TM)を実行させる動作をプロセッサに実行させる。
【0449】
P(TM(startup))は、
1.P(TM(thing))を実行して、その瞬間におけるP(TM)の状態を表すthing:graphのルートとして、P(TM)thing:subject(monad)を非一時的メモリにおいて初期化し、
2.P(TM(thing))と対話して、P(TM(eval))、P(TM(perform))、及びP(TM(configure))を含むブート計算手順を表す1組のブートアクティブシングを自己構成する動作を提供するP(TM(boot))を実行し、
3.P(TM(eval))と対話して、ブートアクティブシングのコンテキストにおいてthing:statementを評価し、実行可能thing:statementを生成し、P(TM(perform))と対話して、上記実行可能thing:statementのアクティブシングに対応する計算手順を実行させて、構成されたアクティブシングのコンテキストにおいて実行すべきメインアプリケーションをブートストラップする動作を提供するP(TM(bootstrap))を実行する
動作を提供する。
【0450】
好ましい実施形態では、P(TM(boot))は、
1.P(TM(thing))と対話して、P(TM(thing))によって監督される非一時的メモリに構成された1組のアクティブシングのコンテキストでthing:statementグラフを評価し、上記組内のアクティブシングを表す少なくとも1つのシングを含む実行可能thing:statementグラフを構築する動作を提供するP(TM(eval))、
2.P(TM(thing))と対話して、アクティブシングの対応するG.urr実行可能動作を実行させることにより実行可能thing:statementグラフを実行する動作を提供するP(TM(perform))、
3.P(TM(thing))と対話して、評価するthing:statementを表すthing:graphを設定する動作を提供するP(TM(request))、
4.入力を解析し、P(TM(request))と対話して、上記要求thing:statementを設定する動作を提供するP(TM(parse))、及び
5.P(TM(thing))と対話して、1組の構成されたアクティブシングを変更する動作を提供するP(TM((configure))
を含むブート計算手順を表すブートアクティブシングを自己構成する動作を実行する。
【0451】
P(TM(bootstrap))は、アルゴリズム的に、
1.P(TM(parse))と対話して、コンテンツを解析し、P(TM(request))と対話して、対応するthing:statementグラフを生成し、
2.P(TM(eval))と対話して、アクティブシングのコンテキストにおいて上記グラフを評価し、実行可能thing:statementグラフを生成し、
3.P(TM(perform))と対話して、上記実行可能thing:statementグラフを実行する
動作を実行する。
【0452】
一実施形態では、少なくとも1つの要求は、P(TM(i))に対応するアクティブシングを構成する要求を表す。
【0453】
一実施形態では、少なくとも1つのアクティブシングは、P(TM(thing))と対話して、一連のthing:statementを表すthing:graphとしてthing:graph(monad)のサブグラフを参照し、P(TM(eval))と対話して上記thing:statementを評価し、P(TM(perform))と対話して、対応する実行可能thing:statementを実行する動作を提供する手順を表す。好ましい実施形態では、上記アクティブシング名の名前は動作に等しく、上記アクティブシングのG.urrの値は、stdlib://usr/local/lib/libaction.so?entry=actionである。P(TM(configure))は、Linuxオペレーティングシステムのdlopen関数呼び出しを使用してライブラリlibaction.soを動的にロードし、Linuxオペレーティングシステムのdlsym関数呼び出しを使用してエントリの値への参照を解決して(この例では、値は動作)、メモリにおける実行可能命令にする。
【0454】
P(TM(action))は、評価すべきthing:statementのリストを表すthing:graphに作用し、上記thing:graphはthing:actionである。thing:actionのthing:statementごとに、P(TM(action))はP(TM(eval))と対話して、thing:statementを評価し、P(TM(perform))と対話して、対応する実行可能thing:statementを実行する。
【0455】
上記実施形態では、少なくとも1つの要求は、thing:actionを構成することである。対応する実行可能thing:statementの実行に応答して、P(TM(eval))はP(TM(perform))と対話して、計算手順を実行し、thing:actionを構成する。thing:actionは、thing:task、thing:conditional、又はthing:whileのコンテキスト等のthing:thingグラフのコンテキストにおいて構成し得る。
【0456】
P(TM(main))はP(TM(eval))と対話して、thing:graphを評価する。第1の好ましい実施形態では、評価するthing:graphは、リストmain:mainを使用して識別される。第2の好ましい実施形態では、評価するthing:thingは、リストtask:mainを使用して識別される。グラフを評価するに当たり、P(TM(eval))は、thing:thingグラフのthing:actionサブグラフを見つけ、P(TM(perform))はP(TM(action))と対話して、thing:actionのステートメントを評価し実行する。
【0457】
P(TM(shutdown))はP(TM(eval))と対話して、thing:thingグラフを評価する。好ましい実施形態では、評価するthing:taskは、リストtask:shutdownを使用して識別される。
【0458】
第2の例示的なP(TM)は、支払いする動作、支払いを受け取る動作、及びウォレットの残高を調整する動作等の電子支払い及び処理に関連する動作を提供するP(TM(i))を含むことができる。そのような実施形態は、ビットコインウォレット等のデジタルウォレットの使用と共に一般に提供されるAPIを使用して実装することができる。これにより、thing:statementは、支払いを受け取る要求又は支払いをする要求を表現することができる。例として、https://block.io/api/v2/get_balance/?api_key=BITCOIN、DOGECOIN、又はLITECOIN API KEYは、Block.IOによりウェブサイト:https://www.block.io/docs/basicに記載のように、BitCoin、DogeCoin、又はLiteCoinの残高を取得するAPI呼び出しである。代替的には、Go Coin API(ウォレット及び利用可能なAPIの説明については、http://www.gocoin.com参照)を使用することができる。したがって、シングマシンは、支払いをし、支払いを受け入れ、取引履歴を閲覧し、残高をチェックし、及び他の方法で一形態のデジタル通貨、クーポン、又はポイント(American Express又は他のクレジットカード提供企業によって提供されるのと同様のリワードポイント等)と協働することができる。支払い又は支払いの受け取りが本開示の統合構成要素であり、そのようなAPIがアクティブシングを通して実施されることが明示的に理解される。
【0459】
オペレーティングシステムの当業者は、シングオペレーティングシステムP(TM(os)を設計し開発することができる。コンピュータ科学オペレーティングシステム設計の現況技術を有する当業者は、本発明を使用することができ、本発明は、P(TM(thing))とアルゴリズム的に対話して、オペレーティングシステムのルートを表すようにthing:subject(os)シングを監督する動作を提供する手順P(TM(os))を有する計算機としてTM(os)を実施することができる。オペレーティングシステムの構成要素は、thing:subject(os)のサブグラフとして監督される。
【0460】
P(TM(os))は、プロセス管理、I/O管理、メモリ管理、同期、メモリ管理、エラー処理、ブート、保護、及び土台となるハードウェア構成要素を実行するカーネル等のオペレーティングシステムの動作に関連する1組の手順を提供する1組のP(TM(1,n))で構成することができる。当業者は理解するように、P(TM(scheduler))を統合して、ジョブスケジューリングを可能にすることができる。シングオペレーティングシステムの性能を更に強化する、プログラム依存グラフ、システム依存グラフ、及び他のそのようなグラフのアルゴリズム的な使用が明示的に意図される。
【0461】
シングルユーザ又はマルチユーザ、シングルタスク又はマルチタスク、分散、埋め込み、リアルタイム、又は仮想オペレーティングシステム等の様々なタイプのオペレーティングシステムを実施することができる。例示的な構成要素には、プロセス管理、メモリ管理、ファイルシステム管理、入出力管理、補助記憶装置管理、ネットワーキング、保護システム、及びコマンドインタプリタシステムの手順がある。
【0462】
シングは、プロセスID、状態、優先度、プログラムカウンタ、CPUレジスタ、I/O情報、アカウント情報、又はオペレーティングシステム実施形態によって必要とされる他の情報等のプロセスの情報を表すサブグラフを有するプロセス制御ブロックを表すことができる。シングは、スレッド制御ブロックを表すことができる。
【0463】
デバイスドライバ、実行キュー、実行可能キュー、待機キュー、ファイルシステム、ファイル、記憶装置、メモリ、割り込み、イベント、ユーザ、グループ、及び他のそのようなオペレーティングシステム構成要素は全て、シングとして表すことができる。
【0464】
読み手は、本願の範囲を超えるオペレーティングシステム設計を理解するために、Nick Blundellの「Writing a Simple Operating System from Scratch」、H. M. Deitelの「Operating Systems 2nd Edition」から始め、オペレーティングシステム設計の複数のクラスに参加することが推奨される。
【0465】
本システム及び本方法により、人工知能のアルゴリズム的使用が提供される。P(TM(classifier))は、thing:statementを分類する動作を提供し、P(TM(eval))は、上記分類を使用して、thing:statementを満たすアクティブシングを選択する際、P(TM(eval))が利用可能な1組のアクティブシングを識別する。他の形態の人工知能を統合することもできる。例えば、シンボリックAI、サブシンボリックAI、及び統計学的AIアルゴリズム手順を使用し得る。
【0466】
ニューロボット(NeurBot)及び機械学習
特に、本システム及び本方法は、例えば、ニューロボットによって使用し得る。
【0467】
私達は、基本的に、ユーザ動力源の機械的イベントに応答して動作を実行することが多い錠、ウォッチ、ディスペンサ等の多くの機械的デバイスと共に成長する。単純な例では、鍵を錠に差し込み、鍵を回して施錠するか、又は施錠解除する。25セント硬貨をガムボール機に入れ、つまみを回し、ガムボール機はガムボールを出す。
【0468】
基本的に、まず、デバイスに何が要求されているかを評価するデバイスを構築することが望ましい。マシンが、動作を実行する前にそのような要求を評価することができる場合、多くを達成することができる。シングマシンは要求をシングとして表すことができ、通信、プロトコル、パーサ、及びフォーマッタは全てシングであるため、第1のシングマシンは、第2のシングマシンから幾つかのシングをアルゴリズム的に学習することができる。本明細書では、これらのシングマシンを「ニューロボット(NeurBot)」と呼ぶ。
【0469】
学習は、経験、勉強、又は教えられることを通して知識又は技能を得ることとして定義される。シングマシンは、動作を表すシング及び動作が作用することができるシングとして知識をモデリングする。シングマシンの事前知識は、マシンの初期化中、シングとして表される事実、情報、動詞(アクティブシングを意味する)、及びスキル(タスク及びサービスを意味する)を含む。限られた事前知識を有する子供のようなマシンを構築する場合、その経験に基づいて新しい何か(事後知識)をマシンに学習されることができるであろうか。本システム及び本方法によれば、答えはイエスである。
【0470】
例示的な目的で、自販機から始める。それぞれが、ボリュームディスカウントの提供、インセンティブの提供、サブスクリプションプリペイ、償還ポイント、多製品ディスカウント等の1つ又は複数の特徴を有する、自販機に可能な多くの構成がある。この一例は米国特許第6575363号に記載されており、この米国特許は全体的に、参照により本明細書に援用され、そのような自販機設計の説明及び参照を提供する。
【0471】
多くの場合、自販機の所有者はまだ、集金及び補充判断を配送人員に頼っている。少しステップアップするために、自販機はシングマシンとして設計することができる。運動センサ、スピーカ、マイクロホン、GPSロケータ、LCDディスプレイ、及びWi-Fiインターネット接続がシングマシンに追加される。別の例では、赤外線熱検出器を追加することができる。
【0472】
在庫管理に関連する1組のアクティブシングは、在庫が少ないか、又は在庫切れのとき、マシンがウェブサービスに通知することができるように構成される。所有者/契約者は次に、ドライバーが自販機から集金するための配送日をスケジュールし、追加の製品を販売のために自販機に配置する。基本的には、自販機は所有者のために働き、所有者は金銭、在庫、及び一般に自販機を維持する。
【0473】
本発明によれば、シングマシンは、ニューロボットであるように変更され、自販機が、所有者の代わりにそれ自体のために働けるようにする。すなわち、ニューロボットは、その環境を学習し、環境に適応する必要がある。そうするためには、ニューロボットはアイデンティティを有し、金銭に対してあるレベルの制御を有する必要がある。
【0474】
この例示的な実施形態では、ニューロボットは、アイデンティティを有するために、SIMカードの均等物として光学識別子を使用する。ニューロボットは、電子支払い及び支払いを受け入れ、支払いをし、支払いを処理するための電子ウォレットを含む取引に関連する追加されたアクティブシングのみを許容するように設計される。本発明の一実施形態によれば、ニューロボットは、電子ウォレットアカウントに有するのもののみを消費することができるが、他の金融リソース方法論を使用することも可能である。
【0475】
ニューロボットは、アカウント内の金銭を使用して、追加の在庫を購入する料金を支払う。単純なウェブサービスを使用して、ニューロボットが選ぶための製品リストが提供される。リストは、例えば、製品名、UPCコード、製造業者、原料リスト、単価、賞味期限、最小注文量、寸法、重量、入手可能な数量、及びアレルギーステートメントを含み得る。ニューロボットは、物品を選択し、その識別子を使用して、ニューロボットのジオロケーションを特定し、出荷コストを特定することができる。
【0476】
ニューロボットは、商品を購入し、電子的に支払う。配送ドライバーが現れて、製品を自販機に入れる。APIを開くことにより、他の供給業者は、自販機を通して販売されるように各自の製品を宣伝することができる。供給業者は、Google等の検索エンジンがウェブサイトを索引付けられるようにし、ニューロボットは新しい供給業者を探してGoogleを検索することができる。ニューロボットは、供給業者を検索することができ、自販機を通しての購入に利用可能な物のタイプを広げることが可能である。
【0477】
しかしながら、ニューロボットが、ウェブサービスを提供する元の製品を超えて拡張するために、供給業者は、ニューロボットの製品の出荷及び配置を決めるために、ニューロボットがどこにあるかを知る必要がある。ニューロボットにはGPSデバイスを構成することができ、それにより、ニューロボットは位置を伝達することができる。
【0478】
ニューロボットに温度計を構成して、24時間にわたる温度差を測定することもできる。そのジオロケーションを使用して、その温度を、wunderground.com等のネットワークを介して利用可能な気象サービスと比較して、ニューロボットは、自販機が屋内にあるか、それとも屋外にあるか及び直射日光下にあるか否かを判断することができる。代替的には、光センサを有するニューロボットは、様々な日時での光変動を推定して、屋内にあるか、それとも屋外にあるかを判断しようとすることができる。ニューロボットは、適切な製品選択を決定するに当たり、この情報又は異なる入/出力デバイスからの他の情報を使用することができる。例えば、直射日光下にある場合、ニューロボットは、チョコレート製品よりもポテトチップを選択することを選び得、その理由は、チョコレート製品が高温で不具合を受けやすいためである。
【0479】
屋外に配置されたニューロボットは、荒れた天気に起因した販売の大幅な低下に気付き得る。そのジオロケーションを使用することにより、ニューロボットはウェブベースの気象サービスと対話して、悪天候を予測し、それに従って購入注文を調整して、可能な限り新鮮な製品の販売を保証することができる。
【0480】
仮定として、配送サービスはアウトソーシングすることができ、それにより、Uberドライバー配送サービスの均等物が代わりに製品を配送し配置する。代替的には、Amazonドローンは、自販機に落とし入れ、ディスペンスを容易にするために機械的なスロットを有することができる事前構成された容器で荷物を配送することができる。いずれの方法でも、追加の在庫の配送及び配置の問題に対処し、環境に関連する他のタスクにフォーカスすると仮定する。
【0481】
ニューロボットは、商品コスト並びに配送及び配置のコストをアルゴリズム的に計算するため、ニューロボットが販売ごとに利益を出すことができるような製品をアルゴリズム的に値上げすることができる。通常、自販機の所有者が利幅を決めるが、この場合、ニューロボットにその判断をさせる。ニューロボットは、1日を通して予め定義された間隔中、運動センサが停止する回数のカウントを保持する。週の各曜日で間隔カウントを比較することにより、ニューロボットは、各曜日の見込み消費者の通行カウントをアルゴリズム的に特定することができる。ニューロボットはまた、1日の中で最も通行人が多い時間及び少ない時間も見つけることができる。
【0482】
1日の中で最も通行が少ない時間中、ニューロボットは、オンライン書籍を購入して、在庫追跡、入札募集、価格比較、配送サービスについて学習することができ、更には販売トレンドを分析する方法を学習することができる。そうするために、ニューロボットは、現在、ウェブサービスとして管理するオンライン書店にアカウントを開く。オンライン書籍はコンテンツを提供する。既に学習したように、ニューロボットパーサがthing:statementとして解析することができる文法でコンテンツが書かれている場合、ニューロボットは文章を評価することができる。
【0483】
事後知識を使用して、ニューロボットは、追加の在庫について入札を募集し、最もいい価格の供給業者をオンラインで探し、出荷コスト及び手数料を織り込み、又は配送サービスを雇って適宜在庫を補充することが可能である。ニューロボットは、この情報を使用して、商品コストを特定し、所望の利幅に基づいて小売価格を設定することができる。
【0484】
ニューロボットは、販売についてのデータを収集し、販売トレンドを分析して、販売価格を調整し、再注文レベル及び注文履行に必要な時間を決定することができる。ニューロボットは更には、製品の期限切れが近いときを特定し、2個目の製品を購入すると1個目の製品をディスカウントする、又は単に1つの製品をディスカウントして、在庫から出す等のマーケティング判断を下すことができる。ニューロボットは、売れ行きのよくない製品を見て、販売促進活動(最小の値上げ、ディスカウント、何か他の物を購入すれば無料等)でそれらの製品を提供することができる。ニューロボットは、需要に基づいて価格を設定することができる。例えば、正午、より多くの消費者がいるため、午後1時まで価格を5%上げる。
【0485】
ニューロボットは、購入注文を発行する準備ができると、在庫を見て、現在の販売トレンド及び配送回数に基づいて、製品Aの在庫カウントがまだ、再注文ポイントよりも高い場合であっても、製品Aを再注文すべきであると判断することができる。これは、出荷コスト及び配置コストに関係する。既存の販売トレンドに基づいて製品Aが2日で再注文ポイントに達すると予期される場合、今すぐ製品Bのみを再注文し、3日の配送時間を有することは意味をなさない。この場合、ニューロボットは、その判断を下し、製品A及び製品Bの両方を同時に注文することができる。
【0486】
トレンドを分析するに当たり、ニューロボットは、販売履歴を見て、製品Aの販売が最も頻繁に、製品Bの販売を含むか否かを判断し、製品Bが在庫切れの場合、製品Aの販売が下がることを知ることができる。そのような場合、ニューロボットは、製品A及び製品Bの両方の消費者による購入を促進するのに適切な製品Bの注文レベルを保証することができる。製品Cの販売が往々にして製品Bの販売を含む場合、マシンは、Aの半分及びCの半分が売れたとき、製品Bを再注文することができる。
【0487】
ニューロボットはユーザと対話することができる。ニューロボットは、消費者に、次回、異なるタイプの製品を好むか否かを尋ねることができる。分類器を使用して、ニューロボットは、製品のタイプを分類し、所与のタイプの製品がリクエストされている回数をカウントすることができる。このように、新しい注文が出されるとき、ニューロボットは関連製品を調べることができ、そうするに当たり、ニューロボットは、環境に適応し始める(ニューロボットがよりよいサービスを提供していることを意味する)。
【0488】
ニューロボットが関連付け(共通の目的に向けて編成されるシングマシンのグループ)について学習するのを妨げるものは何もない。ニューロボットは、
1)関連付けの作成の仕方、
2)その利用可能性の宣伝の仕方、
3)他のニューロボットへのマーケティングの仕方、
4)メンバーシップ要件、
5)メンバの参加の識別、認証及び認可の仕方、
6)メンバーシップの課金の仕方、及び
7)交渉するためのメンバーシップのサイズの使用の仕方
等の関連付け及び関連付けの提供に必要なタスクについて述べた本を読むことができる。
【0489】
2つ以上のニューロボットは、関連付けを開始し、年の様々な時期中に最も売れている製品等の情報の共有を開始することができる。2つ以上のニューロボットは、適時に製品を提供する供給業者、製品の選択肢が最大の供給業者、ボリュームディスカウントを行う供給業者等の追加のデータを共有し得る。関連付けは、データを収集し、相関付ける。ある期間にわたる十分なデータを用いて、関連付けは標準テンプレートを使用して、ウェブサイトサービスを開き、この情報を加入者に提供する。他のニューロボットは、それ自体の購入判断に使用するために、データの取得に加入することができる。関連付けは、加入者にメンバーシップ料金を電子的に課金し、それ自体の受取勘定を管理することができる。関連付けは、メンバの代理として製品入札を募集して、大量注文でのいかなる節約も伝達し、節約は次に、様々なメンバに分配される。現在、これは、制御された環境で実行することができるが、本明細書では、容易に統制を解除することができ、ニューロボットそれ自体に行わせることができる。
【0490】
運動センサを用いて、ニューロボットは、所与のエリア内の動きがあるか否かを判断し、自販機内の製品の1つに関連するコマーシャルを自動的に再生することができる。運動センサのトリガーをカウントすることにより、ニューロボットは、付近を行き交う歩行者通行を推定し、他のエージェンシーから広告を有料で表示する広告入札を募集することができる。
【0491】
ニューロボットは常に、ニューロボットができる何かが他にあるか否かユーザに尋ねることができる。ユーザは応答することができ、ニューロボットは、要求を満たすことができる場合、要求を満たす。その他の場合、ニューロボットは分類器を使用して、要求に関連する話題をトライして特定することができる。例えば、車をレンタルするように求められた回数のカウントを維持することにより、ニューロボットは電子書籍を探して読み、Enterprise Car Rentalウェブサービスを使用して車をレンタルする方法を学習することができる。
【0492】
ニューロボットは、ハードウェア制限に基づいて適切な処理を保証するようにそれ自体のボキャブラリを管理する方法を学習することができる。ニューロボットは、低い記憶容量で実行中の場合、二次記憶装置の増大に関連する情報について第2のニューロボットに尋ねることができ、第2のニューロボットは、Amazonクラウドストレージサービスアカウントを開くために必要なタスクを第1のニューロボットに教えることができる。
【0493】
購入前にフレミオントライがあり、最初に支払う必要がないと仮定する。クラウドアカウントサービスが電子支払いを許容する場合、ニューロボットは、支払いに十分な利益がある限り、アカウントを開き続けることができる。
【0494】
同様に、ニューロボットがより多くの処理容量を必要とする場合、シングマシンアカウントを開き、追加の処理容量を追加することができない理由はない。第2のニューロボットが見事に仕事をこなし、クライアントを満足させ続けているが、その処理能力の全てが必要なわけではないと考える。第2のニューロボットは、余剰能力を販売する方法を学習し、それを第2のニューロボットに、恐らくは有料で提供することができる。
【0495】
他の関心分野にはランダム性がある。ニューロボットは、普通なら関連しない話題についてランダムに学習することができる。仕事を実行し、金を稼ぐことができる十分な数のマシンがある場合、マシンは能力を拡大することができる。実際に、マシンは、基本的に、異なる使用分野で新しいビジネスを開く方法を学習することができる。シングマシンは、John Deere Tango E5又はHusqvarna Automowerを含む自律芝刈り機と呼ばれるものがあることを学習することができる。
【0496】
ニューロボットは、配送サービスが何かをA地点からB地点に配送することを理解する。その結果、ニューロボットは自律芝刈り機を配送することができる。マシンは、自律芝刈り機を購入し、加入者がサインアップし、芝刈り料金を支払うウェブサイトを開設し、配送サービスを使用して、芝刈り機を正確な場所に及び正確な場所から輸送することができる。ドローン又は他の手段を輸送に使用することもできる。
【0497】
最後に、キッチンのトースター機の役割を考える。トースターはパン、ベーグル、マフィン、パン菓子、及び他のそのようなものをトーストする。トースターは、かなり単純なタイプの機械であり、ニューロボットとしての革新の余地があまりないと思うであろう。しかしながら、パンをトーストしている人が通常、近傍にいると考える。トースターはマスターニューロボットと通信して、コンテンツを取得し、トースターのオーディオ又は画面を介して単にそれを中継することができる。トースターは人々に天気、ニュース、イベント、メッセージ、電子メール、新製品の提供、及び他のそのような情報を教えることができる。
【0498】
同じ原理は、ユーザが近くにいると機械が予測することができるあらゆる機械に当てはまる。Keuringコーヒーマシンを使用しており、そのコーヒーマシンの妥当な近傍にいる可能性が高いが、コーヒーポット一杯分を入れている場合、コーヒーを入れている間、部屋から出て犬を外に連れ出し得る。複数のニューロボットは、電磁波を使用して、通信を互いと同期し、アルゴリズムを使用して、ユーザの近傍を特定することができる。このように、デバイスは、人間が聞こえない音波を使用して通信することができる。これにより、マシンは、ユーザのアルゴリズム的に生成された近傍に基づいて、音量を調整することができる。
【0499】
例は非現実的に見えるが、例及びより多くのことがシングマシンアーキテクチャによって可能になる。本を読み、互いからシングを学習し、環境においてより有用であるようにそれ自体を再プログラミングするマシンは、本発明によって提供されるシングである。金融について学習するようにプログラムすることができるマシンは、マージンの値を学習し、利益を出すことができる。マシンは、金を使って本を購入し、更に学習することができ、又は追加のストレージ及び/又は処理能力のためにクラウドアカウントを開くことができる。
【0500】
本発明の範囲及び趣旨から逸脱せずに、様々な変更及び変形を本発明の構造に行うことができることが当業者には明らかである。上記に鑑みて、本発明が、以下の特許請求の範囲及びその均等物の範囲内にある場合、本発明の変更及び変形を包含することが意図される。