JP7256742B2 - シングマシンシステム及び方法 - Google Patents

シングマシンシステム及び方法 Download PDF

Info

Publication number
JP7256742B2
JP7256742B2 JP2019530028A JP2019530028A JP7256742B2 JP 7256742 B2 JP7256742 B2 JP 7256742B2 JP 2019530028 A JP2019530028 A JP 2019530028A JP 2019530028 A JP2019530028 A JP 2019530028A JP 7256742 B2 JP7256742 B2 JP 7256742B2
Authority
JP
Japan
Prior art keywords
thing
computer
executable
things
machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019530028A
Other languages
English (en)
Other versions
JP2020504371A (ja
Inventor
ノースラップ,チャールズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of JP2020504371A publication Critical patent/JP2020504371A/ja
Application granted granted Critical
Publication of JP7256742B2 publication Critical patent/JP7256742B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Description

関連出願の相互参照
本願は、2016年12月7日に出願された「THING MACHINE SYSTEM AND METHOD」という名称の米国仮特許出願第62/431,143号の利益を主張するものであり、これは全体的に参照により本明細書に援用される。
発明の分野
本発明は、コンピュータアーキテクチャ及び設計に関し、より詳細には、シングマシン(Thing Machine)が実行することができる動作及び多次元グラフモデルを使用して非一時的メモリにおいて監督されるシング(Thing:物事)のインスタンスとして、動作が行われるシングを表すシングマシンに関する。
発明の背景
四半世紀にわたり、ウェブページの閲覧にはウェブブラウザが使用されてきた。ブラウザは、25年にわたり著しく進化したが、結局、それでもなおクライアントサーバモデルを使用してウェブページをレンダリングしている。最新のブラウザでは、cookie情報は現在、クラウドにおいて同期することができ、それにより、状態情報は、使用される異なるデバイス間で共有される。
25年にわたり、ウェブへの主なアクセスは、デスクトップ及びラップトップのコンピュータの使用を通してであった。ウェブブラウザを提供するモバイルデバイスは、1996年の時期に始まった。その9年後、Googleは、Google検索の半分超がモバイルデバイスからのものであると発表した(少なくとも米国では)。
50億を超えるウェブページの相当数がモバイルフレンドリーではないことに留意することが重要である。例えば、2016年では、小規模ビジネスの54%がウェブサイトを有し、そのうちモバイルフレンドリーであるのは、それらのウェブサイトの64%のみであると推定された。したがって、小規模ビジネスの37%しか、モバイルフレンドリーなウェブサイトを有していない。小規模ビジネスが、毎年、米国内の販売の半分超を占めることに留意することが興味深い。
多くのユーザは、モバイルフレンドリーなウェブページがないことに不満を抱いており、小売店のモバイルアプリをダウンロードして、経験をより生産的にした。各アプリは特定のビジネス専用のものであり、アプリアイコンは画面表示上で場所を消費し、最終的に、ますます多くのアプリがダウンロードされるにつれて、散らかることになる。エンドユーザとして、膨大なアイコンを生産的にナビゲートして、探している正確なアプリを見つけることができるように、携帯電話でアプリを整理する時間を費やさなければならない。携帯電話のオペレーティングシステムのアプリケーションプログラミングインターフェース(API)への常時アップデートは、携帯電話のアプリが最新であることを保証するために、専用開発チームを必要とする。これは、多くの小規模ビジネスが単に支払う余裕がない費用を追加する。
ウェブ対応の音声アクティブ化デバイスの出現は、より一般的になりつつある。子供の世代は、友達の家への行き方を携帯電話に尋ねることができることを知って成長していく。スマートフォン、アラームクロック、スマートウォッチ、スマートTV、Amazon Echo、ホームオートメーションシステム、及び自動二輪車ヘルメットは、音声アクティブ化デバイスのほんの数例である。
ネットワーク対応デバイスには、サーモスタット、ロック、カメラ、発電機、コーヒーマシン、洗濯機及び乾燥機、照明スイッチ、セキュリティシステム、玩具、灌漑システム、並びに多くの他のデバイス及びセンサがある。この相互接続された世界は、インターネットオブシングスと呼ばれることがある。
仮に、インターネットの中心に立ち、端を見ることができるならば、インターネットに接続された全てのシングを見るであろう。本明細書では、これをデバイス及びセンサであるシングのインターネット(Internet of Things that are Devices and Sensors)と呼ぶ。インターネットの端に行き、デバイスをピックアップし、中心を振り返るならば、提供され、インターネットオブサービスとして知られるサービスを見るであろう。
サービスが、提供されるシングであり、突然、デバイス及びセンサとしてのインターネットオブシングスと、サービスであるインターネットオブシングスとの間にグレーエリアが存在したことに誰かが気付いたとき、世界は複雑になった。物理的なシング及び仮想的なシングは、インターネットオブシングスの意味にあるレベルの曖昧さを付加し、これは市場に混乱を生み出す。
シングを更に複雑にすることに、多くの物理的デバイスは多くの場合、GSM、CDMA、LTE、SS7、Zigbee、Z-Wave、WeMo、近距離通信(NFC)、Bluetooth、Thread、BLE等の複数のプロトコルを使用して通信することができる。携帯電話を使用して、例えば、NFCを使用して、単に携帯電話をキャッシュレジスタに向けてかざすだけで料金を支払うことができる。同様に、Bluetoothを使用して、携帯電話をカーオーディオシステムとペアにして接続することができる。いずれの場合でも、デバイスはインターネットプロトコルを使用しないが、それでもなお、携帯電話をインターネットオブシングスのシングであると見なす。
2005年以来、3500万を超える相互運用可能なZ-Waveデバイスが販売された(Z-Wave Alliance)。デバイスのZ-Waveネットワークを管理するために、Z-Waveネットワークコントローラが使用される。技術的に、インターネット使用可能なZ-Waveネットワークコントローラを使用して、インターネットを介して通信するが、コントローラはなお、Z-Waveを使用してZ-Waveデバイスと通信する。これは、インターネットオブシングスの定義への混乱の度を深め、その理由は、Z-Waveデバイスはシングであるが、インターネットオブシングスのシングであることもあれば、又はないこともあるコントローラと通信するためである。
インターネットオブシングスの定義へのこの混乱の全ての中で、国際電気通信連合がインターネットオブシングスの説明でインターネットというキーワードさえ使用していないことは驚くに値しない。代わりに、国際電気通信連合は、
既存の及び進化しつつある相互運用可能な情報及び通信技術(ITU-T)に基づいてシングを相互接続する(物理的及び仮想的)ことにより高度なサービスを可能にする情報社会のグローバル基盤
としてインターネットオブシングスを定義している。
これに私達全てが同意する1つのことは、シングがある(There are Things)ことである。
シングを説明しカテゴリ化するために、シングを分類する。幾つかのシングは、金銭価値、法定通貨のような概念、出生証明書、著作権、タイトル、売渡証、又は資産等の文書である。シングは、イベント、アラート、又は測定単位、ジオロケーション、又は時間を表すことができる。他のシングは、デバイス及びセンサ、携帯電話、Ipad、又はウェブページ等の物体である。そこに突っ立っているだけでなく、何かしなさい:にあるように、動作であってもシングである。
図1は、人物が命令コマンドに対していかに反応し得るかの原始的なフローチャートを示す概略図である。まず、次に何をするかを告げているトレーナーを聞く等の人物の感覚の1つ又は複数が動詞行動でイネーブルされる。あなたは、特定の言語のリスニングボキャブラリを使用して、発話された単語を解析し、命令コマンドを表す考えを生み出す。次に、あなたは、コマンドを評価して、次に何をするかを決める。私は正しく理解したか?私はできるか?私はそれをしたいか?恐らく、私は疲れており、代わりに休む必要がある。
何を求められているのかを理解したことの確認等の応答をすることもあれば、応答は動作自体の実行であることもある。親指を立てる仕草をし、同意若しくは不満を示す表情をし、又は所与の言語の発話ボキャブラリを使用して、OKを伝達し得る。代替的には、その場でジョギングする命令に応答して、単にその場所でジョギングを開始する。
「動詞」という単語はそれ自体、通常、文章の主要部の1つであり、動作、発生、又は存在状態を表現する単語を意味する名詞である(Merriman Webster Dictionary参照)。動作は、何かをすること又は何かをするプロセスである。
幾つかのシングは動作を表現し、他のシングは、動作が作用することができるシングであると言える。これは、シングの特異性に繋がる:全てのシングはシングである(All things are Things)。
当技術分野の現状水準では、語句「インターネットオブシングス」は、それぞれがシングである加入者識別子及びパスワードによって識別された加入者に提供されるサービスであるシングの代わりに、インターネットに接続されたデバイス及びセンサに主にフォーカスした多数の定義を有している。これは、マシンコードとして実施されるべきアルゴリズム手順の実装をモデリングすることができる方法に制限を課し、したがって、非効率性及びコストを付加する。
発明の概要
本発明の実施形態は、多次元グラフモデルを使用して非一時的メモリにおいて管理されるシングのインスタンスとして、シングマシンが実行することができる動作及び動作が行われるシングを表すシングマシンを提供する。
一態様によれば、第1の(P(TM))が知識を得るコンピュータ実施方法は、第1のP(TM(i))を実行してP(TM(thing))と対話し、コンテンツを表す第1のシングを設定することと、第2のP(TM(i))を実行してP(TM(thing))と対話し、ステートメントを表す第2のシングとして第1のシングのコンテンツを解析することと、第3のP(TM(i))を実行してP(TM(thing))と対話し、第2のシングのステートメントを評価して、実行可能なステートメントを表す第3のシングを計算することと、第4のP(TM(i))を実行してP(TM(thing))と対話し、第3のシングの実行可能なステートメントを実行することとを含み、第4のP(TM(i))は、実行可能なステートメントを実行するに当たり、P(TM(thing))と対話して、事後知識を表す1つ又は複数のシングを設定する。
別の態様によれば、コンピュータベースのシステムは、1つ又は複数のコンピュータベースのプロセッサと、1つ又は複数のコンピュータベースのプロセッサに結合されるコンピュータベースのメモリとを含む。コンピュータベースのメモリはコンピュータ可読命令を記憶し、コンピュータ可読命令は、1つ又は複数のコンピュータベースのプロセッサにより実行されると、1つ又は複数のコンピュータベースのプロセッサに方法を実行させる。方法は、第1のP(TM(i))に対応するコンピュータ可読命令の第1のセクションを実行することにより、第1のP(TM(i))を実行して、P(TM(thing))に対応するコンピュータ可読命令の他のセクションと対話し、コンテンツを表す第1のシングを設定することと、第1のP(TM(i))に対応するコンピュータ可読命令の第2のセクションを実行することにより、第2のP(TM(i))を実行して、P(TM(thing))に対応するコンピュータ可読命令の他のセクションと対話し、ステートメントを表す第2のシングとして第1のシングのコンテンツを解析することと、第1のP(TM(i))に対応するコンピュータ可読命令の第3のセクションを実行することにより、第3のP(TM(i))を実行して、P(TM(thing))に対応するコンピュータ可読命令の別のセクションと対話し、第2のシングのステートメントを評価して、実行可能なステートメントを表す第3のシングを計算することと、第1のP(TM(i))に対応するコンピュータ可読命令の第4のセクションを実行することにより、第4のP(TM(i))を実行して、P(TM(thing))に対応するコンピュータ可読命令の他のセクションと対話し、P(TM(thing))と対話して、第3のシングの実行可能なステートメントを実行することとを含む。
幾つかの実施態様では、P(TM)は、実行可能なステートメントを実行するとき、P(TM(thing))に対応するコンピュータ可読メモリの他のセクションと対話して、事後知識を表す1つ又は複数のシングを設定する。更に、典型的な実施態様では、P(TM(thing))は、実行されると、1つ又は複数のコンピュータベースのプロセッサにシング及び/又はシング間の任意の可変関係を編成又は監督させるコンピュータ可読メモリの更に別のセクションに対応する。
例示的な一実施態様では、シングマシンは、プロセッサ、非一時的メモリ及び/又は非一時的コンピュータ可読媒体、及び実行可能なマシンコードP(TM)を含む。P(TM)は、1つ又は複数の実行可能な機械コードP(TM(i))動作を有する第1の組の実行可能な機械コード動作で構成され、各実行可能な機械コードP(TM(i))動作は、モデルのアルゴリズム手順の一実施態様として構成され、第1のP(TM(i))は、シングマシンの上記非一時的メモリ内のシングの第1のボキャブラリを自己構成する動作を提供し、上記シングは、上記プロセッサが動作として実行することができるシング及び動作が作用することができる1組のシングを表し、少なくとも1つのP(TM(i))機械コード動作は、アプリケーションを提供することができるコアボキャブラリを表すシングマシンの非一時的メモリ内のシングの第2のボキャブラリを構成するように実行される。
図面の簡単な説明
添付図面は、本発明の更なる理解を提供するために含まれ、本明細書に組み込まれ、本明細書の一部をなす。図面中の構成要素は、必ずしも一定の縮尺ではなく、その代わり、本発明の原理を明確に示すことに重点が置かれている。図面は、本発明の実施形態を示し、説明と一緒に本発明の原理を説明する役割を果たす。
命令コマンドに対していかに反応し得るかの原始的なフローチャートを示す概略図である。 本発明の一実施形態によるシングマシンの部分を示す概略図である。 シングマシンのブートプロセスを示す概略図である。 シングマシンによって実行される、ブートプロセスによるグラフの作成を明示する目的で提供されるグラフである。 シングBがシングAとは別個に存在する関係を示すグラフである。 thing:sttia関係を示すグラフである。 実行可能な動作に対して関係を有するシングが、thing:is-a関係を使用してthing:verbとして分類されることを示すグラフである。 名前空間シングがthing:namespaceとして分類され、thing:namespaceはthing:classである分類をサポートするグラフである。 シングがthing:contextとして分類される分類をサポートすることを示すグラフである。 http URIのシングへの例示的なバインドを示す概略図である。 空白ノードが満足クレームを表し、クレームがthing:objectへの参照を有し得るthing:graphを示すグラフである。 thing:assertionが、thing:subjectが数値である値を有し、したがって、thing:objectが要求されないことをアサートすることを示すグラフである。 thing:assertionが、thing:subjectの値がthing:objectの値未満であることを主張する場合を示すグラフである。 コネクタを有するグラフの一例である。 シングマシンによって実行される最小ランタイムステップを例示するフローチャートである。 P(TM(i))がP(TM(parse))動作であるようなthing:graphであり、XML文書を解析すると、以下のアサート:名前がcore:printに等しいシングがあるが真であり、したがって、名前が「message」に等しく、値が「Hello, World」に等しいシングがあるthing:graphが生成される。 P(TM(config))が、要求名前空間シングによって認定されるシング、すなわち、G.requestがあり、G.urrがあるようなG.id(空白ノードとして示されている)に対して作用するようなグラフである。 URIrequest:statementによって識別されるシングに対して作用するP(TM(config))のmy:configureバージョンを示すグラフである。 xという名前のシングが、yという名前のシングの前身であり、yはxという名前のシングの後継であり、述語が、thing:sttiaとして示される関係があるようなシングであることを示す有向グラフである。 xという名前のシングが、zという名前のシングの前身であり、述語が、thing:sttiaiとして示される「そこにはインスタンスがある(such that there is an instance)」ことを示す有向グラフである。 英語で解釈される有向グラフである。 xという名前のシングがthing:tableであることを示す有向グラフである。 多数のシングが1つのシングに対して関係を有することを示す有向グラフである。 「c」という名前のシングのクラスのメンバである「x」という名前のシングを示す有向グラフである。 「x」という名前のシングの名前が「b」という名前のシングのクラスのメンバであることを示す関係を示す有向グラフである。 「x」という名前のシングの値が「c」という名前のシングのクラスのメンバであることを示す関係を示す有向グラフである。 コンテキストが要求、応答、及びローカル名前空間を含むことを示す有向グラフである。 分類がrequest:class=”thing:thing”にデフォルト設定されていることを示す動詞グラフである。 request:class=”thing:alarm”にデフォルト設定された分類に対応する動詞グラフである。 G.request(P(TM(i)))が、P(TM(i))が要求名前空間において認定されるシングに対して作用することができることを示すことを示すグラフである。 G.request(P(TM(i)))が、P(TM(i))が要求名前空間において認定されるステートメントという名前のシングによって認定される連絡という名前のシングに対して作用することができることを示すことを示すグラフである。 例示的なG(P(TM(i)))が、G.request(P(TM(i)))サブグラフと、P(TM(perform))がその動作を実行するためにP(TM(i))をいかに要求すべきかを示すG.urr(P(TM(i)))サブグラフを含むルート有向thing:graphであることを示すグラフである。 汎用チューニングマシンとしてのシングマシンを示す概略図である。 適応ニューラルボットとしてのシングマシンを示す概略図である。 初期化中、シングマシンのthing:graphのルートとして、P(TM(thing))がモナドに等しい名前を有するシングを割り振り初期化することを示すグラフである。 コンテキストが、1つ又は複数の自由変数及び自由変数の関係式で構成されるリストを分解する範囲内にある1組のシングを認定することを示すグラフである。 コンテキストシングがthing:stackであり、これを通して、P(TM(thing))はアルゴリズム的にシングをスタックに押し込むか、又はシングをスタックから押し出すことができ、したがって、コンテキストを変更することができることを示すグラフである。 実行可能な動作への参照の表現を有するシングが、アクティブシングとして分類されることを示すグラフである。 G(P(TM(i)))が、P(TM(i))の実行からの応答を含むシングの記述等の追加のシング情報を含むことができることを示すグラフである。 非一時的メモリにおいてシングを設定するP(TM(Thing.set))手順に対応するG(P(TM(thing.set)))グラフである。 リストrequest:uri、非一時的メモリによって与えられるシングの表現を得るP(TM(Thing.get)手順に対応するG(P(TM(thing.get)))グラフである。 非一時的メモリからシングの表現をアンセットするP(TM(Thing.unset)手順に対応するG(P(TM(thing.unset)))グラフである。 G.requestが、thing:statementであるrequest:statementに対して動作を行うことができることを示すことを示すグラフである。 thing:listingであるシングを使用してrequest:に対して動作を行うことができることを示すG.requestサブグラフである。 P(TM(thing))とアルゴリズム的に対話するP(TM(eval))を示すグラフである。 リストrequest:streamによって識別されるシングの値が、解析すべきストリームであることを示すグラフである。 例示的なXMLフラグメントの解析されたを示す例示的なグラフである。 request:input listingによって与えられるシングの値が、解析する入力であることを示すグラフである。 G(P(TM(request)))グラフを示す。 P(TM(bind))に対して作用することができることをシングに示すG.requestサブグラフである。 ImageObjectクラスのメンバとしてバインドするためのシングのメンバーシップ要件を記述するアサートとして解釈されるthing:graphである。 リストlocal:objectによって与えられる非バインドthing:graphである。 schema:ImageObjectシングとしてlocal:object thing:graphを結合する要求を示すthing:graphである。 シングがブロードキャストサービスとして分類されることが何を意味するかを記述するアサートである。 P(TM(perform))動作がrequest:statementに対して作用することを示すG.requestサブグラフである。 P(TM(task.set))がP(TM(thing))と対話して、値がthing:taskとして設定すべきであるシングのリストであるリストrequest:statement.taskによって識別されるシングに対してアルゴリズム的に作用することを示すグラフである。 P(TM(thing))、P(TM(eval))、及びP(TM(perform))と対話するP(TM(task.perform))を示すグラフである。 P(TM(format))がフォーマットすべきthing:graphを表すリストの値を有するシングを識別するrequest:statement.listingを示すグラフである。 URIシングが、ヘッダシングを認定するドメインシング、パスシング、及び要求シングを認定することを示すグラフである。 生成されたHTTP Get Method要求の図である。 P(TM(http:get))によって受信される応答の図である。 応答を解析し、P(TM(thing))と対話することから生成された1組のthing:graphである。 解析するHTMLコンテンツである値を有するシングを表すリストである値を有するrequest:contentシングに対して作用するP(TM(parse.html))を示すグラフである。 HTMLコンテンツにおける例示的なマイクロデータの図である。 P(TM(thing))と対話してコンテンツを解析する動作を提供するP(TM(parse.html))からのマイクロデータを表すthing:graphである。 P(TM)に望ましい構成を記述する、シング言語で表現されるP(TM)解析コンテンツを示す。 P(TM(i))動作が実行可能なステートメントを生成し、P(TM(perform))がステートメントを実行させる例示的な一実施態様の概略表現である。 P(TM(i))動作がP(TM(thing))と対話してステートメントシングを設定することができることを示す例示的なフローチャートである。 グラフのノードはシングを表し、ノードを結ぶ弧(又はエッジ)は、シング間の可変関係を表す有向グラフとしてシングを編成する例示的なP(TM(thing))動作の概略表現である。 例示的な動詞ボキャブラリ及び動詞ボキャブラリが関わる相互作用の概略表現である。 解析動詞動作を実行して、プロトコルに従って、要求として受信したコンテンツを解析することができる例示的なスマートシングマシンの概略表現である。 例示的なスマートシングマシンの通信及びプロトコルの概略表現である。 例示的なP(TM(i))が、P(TM(perform))が実行を生じさせることができる実行可能なステートメントを生成することを示すフローチャートである。 P(TM(i))がP(TM(thing))と対話して、P(TM(thing))が、実行可能なステートメントを表すようにシングを設定できるようにすることを示す例示的な一実施態様のフローチャートである。 シング及びシング間の関係を監督する例示的なP(TM(thing))の概略表現である。
詳細な説明
本システム及び本方法は、コンピュータ機能及び能力への新規の改善を提供し、更には本明細書においてシングマシンと呼ばれるコンピュータの定義を提供する。
実行可能な動作を記述するシングは、チューリングマシンに関して表現することができる。チューリングマシンは、手順を実行して、1組の入力変数から1組の結果を特定することができる仮想計算機の数学的モデルである。
i=(1,n)の場合、TM(i)は、1組の入力をとり、手順動作P(TM(i))を実行し、1組の出力を生成することができる計算機である。
任意の数のこのようなマシンが存在することができ、各P(TM(i))は、手順動作を実行し、潜在的に出力を生成する。第1のP(TM(i))の出力は、第2のP(TM(i))の入力であることができ、多くの場合、1組のP(TM(i))を並行して実行することができる。
話す、聞く、評価する、応答する等の動詞に名前を付けるのと同様に、これらの動作に有意味な名前を割り当てることができる。実行動詞動作を追加することにより、特定の名前の動作を実行するようにマシンに求めることができる。Amazon Echo又はApple Siri等の幾つかのマシンは、このようにして音声コマンドに応答することができる。アレクサ、ペーパータオルを再注文して。シリ、今何時。各例において、物品の注文又は質問への回答等の何らかの動作を実行するようにマシンに求めている。
要求を満たすために、マシンはまず、要求されているものを評価する必要がある。幾つかの点では、これは小学2年生に21から7を引くように求めることと同様である。シーケンスは、英語のリスニングボキャブラリを使用して、語彙を解析して考えにし、その考えが何を意味するのかを評価し、動作を選択し、動作を実行し、英語の発話ボキャブラリを使用して、応答を伝達することを含む。代替的には、その小学2年生は、肩をすくめて、分かりませんと返答し得る。
何らかの動作を実行するようにマシンに要求することは、要求した各人物に対して同じ動作を実行することを暗示しないことにも留意する。例えば、http://www.thinglanguage.com/v1/index.html等のウェブブラウザに入力されたURLを考える。このURLを入力することにより、基本的に、URLによって識別されるものを取得し表示するようにブラウザに要求している。識別子及び対応するリソースは両方ともシングである。
同じURLを取得し表示するようにブラウザに要求している2人の人物は、両人とも同じURLを入力したにもかかわらず、2つの異なる結果を有することができる。1つの事例では、コンテンツは、個人に固有であり得る。別の場合、HTTP要求ヘッダは、ウェブサーバがリソースコンテンツの構築に使用する状態情報を含み得る。URLが何かを識別し得るが、表示されるものは異なるものであることを認識することが重要である。
シングマシンは、シングマシンとの対話で適応するブートシングマシンボキャブラリに基づいて、受信した要求を管理、解釈し、シングマシンのボキャブラリを変更する独自の様式を提供し、ボキャブラリは、シングマシンが動作を実行することができる基礎を提供する。その結果、本明細書において明示されるように、シングマシンは、解釈及び動作性能を増しながら、受信した要求を解釈、作用、適応することが可能である。受信した要求、対話、シングマシンの要求への応答は、動作である動詞である動作シング又は動作シングであるシングによって作用することができるシング(本明細書では非動作シングとも呼ばれる)のいずれかとしてのシングのカテゴリ化に基づいて実行される。
上述したように、シングの特異点において、シングは、実行可能な動作又は実行可能な動作が作用することができるシングを表すことができる。本明細書に説明され示されるように、シングマシンは、グラフのノードがシングを表し、thing:graph内の弧がシング間の可変関係を表すthing:graphとしてシングを編成する。
実行可能な動作を表すシングは、本明細書では、動詞シング(thing:verb)と呼ばれ、thing:verbの集まりは動詞ボキャブラリシングである。動詞ボキャブラリ及び動詞動作が作用することができるシングは、ボキャブラリシングである。要するに、最小のボキャブラリを用いて、本システム及び本方法は、普遍的な定量化を使用して、以下をアサートする:シングマシンによって受信された要求であるシングがある場合、シングマシンは要求を解析し、次に、シングマシンの利用可能なボキャブラリのコンテキストにおいて要求を評価して、適切な動詞を選択し、動詞の対応する動作を実行する。動作の実行により、応答を表す1組のシングが生成される。この一般化により、文法応答を生成しない特定の動作に対する応答をシングの空集合にすることができる。シャットダウン動詞の場合等、時に、実行中の動作の観察が、十分な応答である。
概説
以下は、シングマシン及び関連するボキャブラリの概説を提供し、3つの主要部を含む。
1.シング間の可変関係を含む関係セットを含む非可変構成要素を有するものとしてシングを説明するシンググラフデータモデル説明。
2.シングマシンアーキテクチャの高レベル概説を提供するアーキテクチャ概説。
3.シング言語で文書を書くことの紹介を提供するシング言語セクション。
シングマシン構造
図2は、本発明の一実施形態によるシングマシン100の部分を示す概略図である。図2に示されるように、シングマシン100は、メモリ102、プロセッサ104、及び非一時的補助記憶装置106を含み、これらはそれぞれ、シングマシン100内での通信を可能にするローカルバス又はローカルインターフェース108を介して通信可能に結合される。
メモリ102は、本明細書に記載される機能を定義するソフトウェア120を内部に記憶している。シングマシン100は、入出力(I/O)デバイス110(又は周辺機器)も含む。ローカルインターフェース108は、限定ではなく例として、当技術分野で既知のように、1つ又は複数のバス又は他の有線若しくは無線接続であることができる。ローカルインターフェース108は、通信を可能にするために、簡潔にするために省略された、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、及び受信機等の追加の要素を有し得る。更に、ローカルインターフェース108は、上記構成要素間での適切な通信を可能にするために、アドレス接続、制御接続、及び/又はデータ接続を含み得る。
プロセッサ104は、ソフトウェア、特にメモリ102に記憶されたソフトウェアを実行するハードウェアデバイスである。プロセッサ104は、任意のカスタムメード若しくは市販のシングルコア若しくはマルチコアプロセッサ、中央演算処理装置(CPU)、シングマシン100に関連する幾つかのプロセッサの中の補助プロセッサ、半導体ベースのマイクロプロセッサ(マイクロチップ若しくはチップセットの形態)、マクロプロセッサ、又は一般にソフトウェア命令を実行する任意のデバイスであることができる。
メモリ102は、揮発性メモリ要素(例えば、ランダムアクセスメモリ(DRAM、SRAM、SDRAM等のRAM))及び不揮発性メモリ要素(例えば、ROM、ハードドライブ、テープ、CD-ROM等)の任意の1つ又は組合せを含むことができる。更に、メモリ102は、電子、磁気、光学、及び/又は他のタイプの記憶媒体を組み込み得る。なお、メモリ102は分散アーキテクチャを有することができ、分散アーキテクチャでは、様々な構成要素は互いにリモートに配置されるが、プロセッサ104によりアクセスすることができる。
ソフトウェア120は、本発明により、シングマシンによって実行される機能を定義する。メモリ102内のソフトウェア120は、1つ又は複数の別個のプログラムを含み得、各プログラムは、後述するように、シングマシン100の論理機能を実施する実行可能命令の順序付きリストを含む。一例として、ソフトウェア120は、パーサ122、評価器124、実行器126、及びフォーマッタ128を定義し得、これらの機能について本明細書において説明する。
メモリ102はオペレーティングシステム(O/S)122を含み得る。オペレーティングシステムは基本的に、シングマシン100内のプログラムの実行を制御し、スケジューリング、入出力制御、ファイル及びデータの管理、メモリ管理、並びに通信制御及び関連サービスを提供する。
I/Oデバイス110は、入力デバイス、限定ではなく例として、キーボード、マウス、スキャナ、マイクロホン等を含み得る。更に、I/Oデバイス110は、出力デバイス、限定ではなく例として、プリンタ、ディスプレイ等を含むこともできる。最後に、I/Oデバイス110は、入力及び出力の両方を介して通信するデバイス、限定ではなく例として、変調器/復調器(別のデバイス、システム、若しくはネットワークにアクセスするためのモデム)、無線周波(RF)若しくは他の送受信機、電話インターフェース、ブリッジ、ルータ、又は他のデバイスを更に含み得る。
システムであるシングマシン100が動作中であるとき、プロセッサ104は、メモリ102内に記憶されたソフトウェア120を実行して、メモリ102とデータをやりとりし、一般に、上述したように、ソフトウェア120に従ってシングマシン100の動作を制御するように構成される。
シングマシン100の機能が動作中であるとき、プロセッサ104は、メモリ102内に記憶されたソフトウェア120を実行して、メモリ102とデータをやりとりし、一般に、上述したように、ソフトウェア120に従ってシングマシン100の動作を制御するように構成される。オペレーティングシステム122は、プロセッサ104により読み取られ、恐らくは、プロセッサ104内にバッファリングされ、次に実行される。
シングマシン100がソフトウェア120に実装される場合、シングマシン100を実装する命令が、任意のコンピュータ関連デバイス、システム、又は方法により使用されるか、又は関連して使用される任意のコンピュータ可読媒体に記憶可能なことに留意されたい。そのようなコンピュータ可読媒体は、幾つかの実施形態では、メモリ102又は記憶装置106の一方又は両方に対応し得る。本文書の文脈の中では、コンピュータ可読媒体は、コンピュータ関連デバイス、システム、又は方法により使用されるか、又は関連して使用されるコンピュータプログラムを含むか、又は記憶することができる電子、磁気、光学、又は他の物理的なデバイス又は手段である。システムを実装する命令は、プロセッサ又は他のそのような命令実行システム、装置、若しくはデバイスにより使用されるか、又は関連して使用される任意のコンピュータ可読媒体で実施することができる。プロセッサ104が例として言及されたが、そのような命令実行システム、装置、又はデバイスは、幾つかの実施形態では、任意のコンピュータベースのシステム、プロセッサ包含システム、又は命令実行システム、装置、若しくはデバイスから命令をフェッチし、命令を実行することができる他のシステムであり得る。本文書の文脈の中では、「コンピュータ可読媒体」は、プロセッサ又は他のそのような命令実行システム、装置、若しくはデバイスにより使用されるか、又は関連して使用されるプログラムを記憶、通信、伝播、又は輸送することができる任意の手段であることができる。
そのようなコンピュータ可読媒体は、限定ではなく例として、電子、磁気、光学、電磁、赤外線、又は半導体のシステム、装置、デバイス、又は伝播媒体であることができる。コンピュータ可読媒体のより具体的な例(非網羅的リスト)としては以下が挙げられる:1本又は複数本のワイヤを有する電気接続(電子)、ポータブルコンピュータディスク(磁気)、ランダムアクセスメモリ(RAM)(電子)、読み取り専用メモリ(ROM)(電子)、消去可能プログラマブル読み取り専用メモリ(EPROM、EEPROM、又はフラッシュメモリ)(電子)、光ファイバ(光学)、及びポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)(光学)。なお、コンピュータ可読媒体は、プログラムがプリントされる紙又は別の適した媒体であってさえもよく、その理由は、プログラムは、例えば、紙又は他の媒体の光学スキャンを介して電子的に捕捉することができ、次に、必要な場合にはコンパイル、解釈、又は適するように他の方法で処理され、次に、コンピュータメモリに記憶することができるためである。
シングマシン100がハードウェアで実装される代替の実施形態では、シングマシン100は、それぞれが当技術分野で周知の以下の技術のいずれか又は組合せを用いて実装することができる:データ信号に対して論理関数を実施する論理ゲートを有する離散論理回路、適切な結合論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)等。
本発明の第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において規定される等のプラグランドプレイアーキテクチャを使用して実施することができ、この米国特許は全体的に、参照により本明細書に援用される。
多数のP(TM(i))で構成される第1のP(TM)は、第2のP(TM)のP(TM(i))として構成することができる。
シングマシン(TM)は、1組のシング(例えば、要求等の入力)に対して作用し、動作を実行し、1組のシング(例えば、生成された応答等の出力)を生成することができる手順P(TM)である。計算可能性のチューリングモデル及びユニバーサルチューリングマシンがチューリングマシンをシミュレートすることができることに従って、仮説的に、
Figure 0007256742000001

であると結論付けることができる。モデルは、
Figure 0007256742000002

としてこれらの何らかの数nをアレンジすることによりP(TM)を構築することができることを示す。特に、本明細書において更に詳細に説明するように、シングマシンの第1の手順が、シングマシンの第2の手順であって、第2の手順のシングマシンは第1の手順と同じシングマシンであることもあれば、同じではないこともある、シングマシンの第2の手順に、動作を実行するように要求する場合、それに応答して、第2の手順は動作を実行し、第1の手順のシングマシンに応答を提供し、応答の受信に応答して、第1の手順のシングマシンの手順は、必要であれば、P(TM)を再構成し得る。繰り返しになるが、ここでも、この例で使用される第1の手順及び第2の手順が第1のP(TM(i))及び第2のP(TM(i))であることに留意する価値がある。
各P(TM(i))は、別個のステップシーケンスを実行する実行可能マシンコードで表現されるモデル又はモデルの構成要素のアルゴリズム実装であり、各P(TM(i))はP(TM(perform))によって実行可能である。数字の代わりに、本発明によれば、シングマシンは、言葉を使用して、所与のP(TM(i))で行う動作のタイプを記述する。P(TM(perform))は、本明細書において更に詳細に定義される。
モデルは、現象のモデル、又はデータのモデル、理論のモデル、又は会話領域の問題文のモデル(ビジネスの問題を解くようにモデリングされたアプリケーション等)等の世界の選択された部分の表現であることができ、ここで、科学モデルは同時にこれらの表現であることができるため、前記モデルは網羅的ではなく、モデルは、本明細書において開示されるシングモデルに関して表現することができる。(「モデル」に関するhttps://plato.stanford.edu/entries/models-science/を参照のこと)。
P(TM(i))として表現される手順Pを有する所与のTM(i)は、主にデジタルプロセッサ動作である必要はなく、デジタルプロセッサを使用して、機械的、電気的、電磁波、圧力波の生物学的、化学的生成又は受信、電磁放射の生成又は受信を生じさせ得る。
例として、プロセッサ動作は、電圧を電気インターフェースに印加させて、モータ動作によりシングマシンを前方向又は逆方向に推進できるようにする。前記動作は、第2のP(TM(i))プロセッサ動作が前記電圧をリセットするまで続け得る。したがって、シングマシンは、P(TM)を他のthing:statementに応答可能にしながら、機械的動作を実行し続ける。
更なる例として、P(TM(i))は、入力駆動リコンビナーゼを使用して、リコンビナーゼ認識部位の重複し直交する対で構成されるDNAレジスタを操作するリコンビナーゼベース状態マシン(RSM)と対話する動作を実行することができる。したがって、RSMに符号化された状態情報を照会又はシーケンス化することができる。
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))を提供し得ることに留意されたい。
シングマシンは、限られた自己構成可能なシングのブートボキャブラリを用いてブートされる。P(TM(thing))動作は、シング及びシング間の可変関係をthing:graphとして編成する。幾つかのシングは、実行可能な動作を表す。実行可能な動作の実行は、シングに対して作用することができる。P(TM(i))動作は、限定ではなく、シング及び/又はシング間の可変関係の設定、取得、及びアンセット等のシングの監督に関連する動作を実行するようにP(TM(thing))に要求することができる。シングは、シングを取得し設定することによって変更することができる。加えて、シングはアンセット及び設定することができる。それに関して、シンググラフは、シングマシンのボキャブラリとして見ることができ、ボキャブラリはシングマシンの知識ベース(シングマシンが実行の仕方を知っている動作及び動作が作用することができるシング)を表す。
本開示の範囲内で、「と対話する(interact with)」という用語が、P(TM(i))が、関連するマシンコードを実行させることを指すことに留意されたい。例えば、AがB「と対話する」場合、Aは、Bに関連するマシンコードを実行させる。
P(TM(input))動作及びP(TM(output))動作は、電磁波デバイスと対話して、P(TM)との通信を提供する。動作は、インバウンドコンテンツは要求シングであり、アウトバウンドコンテンツは応答シングであるように、P(TM(thing))と対話する。
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つの手順として結合することができる。
P(TM(perform))動作は、P(TM(thing))と対話して、動作を実行することができるシングのコンテキスト内でシングの実行可能な動作を実行する。
P(TM(format))動作は、P(TM(thing))と対話して、P(TM(output))動作が出力するアウトバウンドコンテンツ応答シングとして、応答名前空間シングをフォーマットする。なお、P(TM(format))及びP(TM(output))のアルゴリズムステップは、P(TM(format.output))等の適切なP(TM(i))によって与えられる1つの手順として結合することができる。
P(TM(configure))動作は、P(TM(thing))と対話して、アクティブシング又は動詞とも呼ばれる実行可能シングとしてP(TM(i))を構成する。これにより、実行可能な動作のボキャブラリを更新することができる。マシンがこの時点で実行することができるシングは、追加、除去、又は複雑性の範囲において変更することができる。なお、P(TM(i))はアルゴリズム動作を提供し、iはその動作を表す名前を示す。動作は、ニューラルネット分類器動作、電子取引動作、又は実行に移すことができる任意の他のそのようなアルゴリズム動作であり得る。
ブート
シングマシン100を使用する前、シングマシン100は、ブートプロセスを実行して、シングマシンの環境及び受信した要求のソースに順応し、更に適応することができる。
シングマシンに電源が投入される都度、P(TM(boot))動作はP(TM(thing))と対話して、それぞれがP(TM(perform))動作が実行させることができる動作を表す1組のthing:verb及び動作が作用することができるシングで構成されるボキャブラリを表すthing:graphを自己構成して、シャットダウンの前の最後の既知の状態等のP(TM)の事前知識を表すシングを用いてマシンをブートストラップする。何かを行っており、シングを発生させた(P(TM(thing))がthing:graphを監督する)シングマシンの動作として経験を定義する場合、シングマシンは、シングを実行した結果として経験(シングが実行することができる動作を表すシング又はシングとして表される知識)を得ると言うことができる。
前記ボキャブラリを使用して、シングマシンはコアボキャブラリを構成し、コアボキャブラリは、アプリケーションを実行できるようにする基礎を提供する。したがって、P(TM(i))の性能はP(TM(thing))と対話して、thing:graphを変更することができ、前記変更は事後知識(経験から学習するシング)として考えることができる。
動作はthing:graphをトラバースし、コンテンツをフォーマットし、補助記憶装置と対話して、thing:graph情報を保持することができ、次に、thing:graph情報は、thing:graphを再構築する動作によって検索し使用することができる。
一実施形態では、コアボキャブラリは、所定の組のシングを含むように構成することができ、ボキャブラリは有限の所定のサイズ及び範囲である。第2の実施形態では、ボキャブラリ内の1組のシングは、シングマシンによって動的に監督され、ここで、シングは設定され(学習され、thing:graphに追加される)、他のシングはアンセットされる(忘れられ、thing:graphから削除される)。
シングマシンは、グラフとしてシングを編成する。コンテキストグラフという名前の一グラフは、名前空間を表すシングを含む。名前空間は、要求、応答、1組のタスク、サービス、動詞ボキャブラリ、又はアプリケーションディクショナリ等のシングの概念グループを表すのに使用される名前付きグラフである。名前空間ボキャブラリは、存在論の一形態として見ることができる。しかしながら、離散したボキャブラリを使用する幾つかの名前空間は、ボキャブラリの一部で存在論的コミットメントを共有し得る。
グラフの自己構成では、P(TM(boot))は、動詞動作を表すシングを構成するようにP(TM(thing))に要求し、ここで、前記シングは、P(TM(perform))が実行することができる実行可能な動作への参照の表現を有する。例示的な動詞動作には、限定ではなく、解析、評価、実行、及び構成がある。集合的に、前記シングはボキャブラリと呼ばれ、前記シングのグラフはブートボキャブラリである。シングマシンのブートプロセスは、マシンの事前知識(ボキャブラリの初期シング)を表すようにシングマシンの限られたボキャブラリを自己構成する。限られたボキャブラリは、動詞及び動詞が作用することができるシングを含む。本発明の第1の例示的な実施形態によれば、シングマシンの基本動詞ボキャブラリは、少なくとも、動詞「入力する」、「出力する」、「解析する」、「評価する」、「実行する」、及び「構成する」を含む。各動詞に関連付けられたシングマシンの手順は丁重にP(TM(parse))、P(TM(eval))、P(TM(perform))、及びP(TM(configure))と呼ばれる。以下に詳述するように、これにより、シングマシンは、自己構成されたthing:verbのコンテキストにおいて要求を評価し、追加の動詞を動詞ボキャブラリに追加する構成動作を実行することができる。このモデルを使用して、シングマシンの動詞ボキャブラリは動的に構成可能になり、サイズ及び範囲を必要に応じて増減することができる。
自己構成のプロセスは、限られたボキャブラリの受信のみならず、各動詞に少なくとも1つのthing:graphを作成することも含む。特に、thing:graph内の動詞は、非動詞と同様にノードであり(両方ともシング)、thing:graph内の弧は、シング間の可変関係を表す。したがって、thing:graphは、続くシング間の関係を定義する。
P(TM(thing))動作は、シング及びシング間の可変関係をthing:graphとして編成する。幾つかのシングは、動作、発生、又は存在の状態を表し、他のシングは、動作が作用することができるシングである。シングマシンは、シングの限られた自己構成ブートボキャブラリを用いてブートされる。ブートボキャブラリを使用して、シングマシンは、シングで構成されるコアボキャブラリを含む事前知識を構成する。
P(TM(input))動作は電磁波デバイスと対話して、P(TM)に通信を提供する。本発明の一実施形態は、P(TM(input))をP(TM(parse))と結合し得る。動作は、インバウンドコンテンツが、解析動作によって解析することができる要求シングであるように、P(TM(thing))と対話する。
P(TM(output))動作は任意選択的シングである。その動作は電磁波デバイスと対話して、P(TM)から通信を提供する。
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つの動作として結合することができる。
P(TM(perform))動作はP(TM(thing))と対話して、動作を実行することができるシングのコンテキスト内でシング動作を実行する。
P(TM(configure))動作はP(TM(thing))と対話して、実行可能なシングとしてP(TM(i))を構成する。これにより、実行可能な動作のボキャブラリを更新することができる。マシンがこの時点で実行することができるシングは、追加、削除、又は複雑性の範囲において変更することができる。なお、P(TM(i))はアルゴリズム動作を提供し、iはその動作を表す名前を示す。動作は、ニューラルネット分類器動作、電子取引動作、又は実行に移すことができる任意の他のそのようなアルゴリズム動作であり得る。
ブートプロセス及び図3の概略図を参照すると、シングマシン100がブートすると、P(TM(boot))は、シングマシンのブートボキャブラリを作成するようにP(TM(thing))に要求する(ブロック202)。P(TM(thing))は、要求を受信し、ブートボキャブラリを表すシング(例示を目的として、「boot:」と呼ばれる)を作成する(ブロック204)。シングの作成は、P(TM(thing))がメモリのユニットをシング(すなわち、boot:)がブートボキャブラリ内のシングを認定するシングのサイズ初期化することによって実行される。
シンググラフデータモデル
図4は、シングマシン100によって実行される、ブートプロセスによるグラフの作成を明示する目的で提供されるグラフである。このセクションは、全てのシングベースの言語、仕様、及びRDFに基づく参照実装をリンクするように機能する抽象シンタックスを定義する。RDFは、ウェブにおける情報を表すための枠組みである(W3C、2014年)。RDFグラフは1組の三つ組みであり、各三つ組みは、図4に示されるように、主語、述語、及び目的語からなる。RDFは3つのタイプのノードを提供する。ノードは、IRI(RFC3987参照)、文字、又は空白のノードであることができる。IRI又は文字は、世界における何かを示し、リソースと呼ばれる。
RDFシンググラフは、シングについてのRDFグラフである。RDFシンググラフは、シングの非可変構成要素を記述する。構成要素は非可変であるが、構成要素の値は可変である。幾つかのシングは、実行可能な動作を有するアクティブシングであり、往々にして動詞と呼ばれる。他のシングは、動詞動作が作用することができるシングである。シングは、RDFリソース、概念、事実、アイディア、エンティティ、物体、インスタンス、イベント、発生、デバイス、センサ、サービス、タスク、サービス、ユーザ、ウェブリソース等を表すことができる。
シングは非可変構成要素で構成される。シングは、非可変構成要素の知識を有するP(TM(thing))によって監督される。シングの第1の例示的な非可変構成要素は、会話領域においてあるシングを別のシングから区別するのに使用される識別子である名前であるが、リストを表すシングのメンバである重複した名前のシング等の重複した名前のシングが存在することができる。
シングの第2の例示的な非可変構成要素は値である。一実施形態では、値は、RDF1.1仕様において定義されたRDF文字である。当業者はRDF1.1仕様に精通しており、この仕様は全体的に、参照により本明細書に援用される。加えて、当業者は代替の仕様によって定義される代替の値表現を使用することもできる。シングの非可変構成要素値の値が空であり得ることに留意されたい。
シングの第3の例示的な非可変構成要素は、関係セットである。シングが空の関係セットを有する場合、シングはヌルグラフを表す。関係セットとは、第1のシングと第2のシングとの間で保持される1組の関係である。主要な関係は関連付けの1つである。関連付けは、組成(composition)又は集合(aggregation)の形態であることができる。シングAがシングBで構成される場合、関係は不変である。シングAが、シングBを含む集合である場合、関係は可変である。ここで、例として、シングBは、図5に示されるように、シングAから独立して存在することができる。述べたように、シングは、非可変構成要素の知識を有するP(TM(thing))によって監督される。
第1の例示的な関係はthing:sttia関係であり、これは、存在量化を使用して以下を示す:目的語シングがあるこの主語シングがある。関係は可変である(there is this subject Thing such that there is an object Thing)。これを図6に示す。
目的語シングは、シングのリスト又は1組のシング等のシングの集まりを表すことができる。関係は、以下のようなインスタンス修飾語句を使用して表現することができる:目的語シングのインスタンスがあるこの主語シングがある(there is this subject THING such that there is an instance of an object THING)。シングのインスタンスは、シングの分類に応じて異なる意味を有することができる。場合によっては、インスタンスはメンバであることもあれば、何かの発生であることもある。
thing:is-a関係は、第1のシングが第2のシングの一タイプであることを表現する。これについて、本明細書において、メタデータとしての属性と呼ばれるセクションにおいて更に説明する。一般的な意味で、thing:is-a関係はシングの分類を可能にする。
thing:depends-on関係は、主語シングが目的語シングへの依存性を有することを示す。UMLからの関係等の追加の関係をRDFシンググラフデータモデルに追加することができる。これらは、関連付け、集合、有向関連付け、組成、反射関連付け、継承、多様、及び実現を含む。
識別子及びリスト
リストはシングへの参照の表現である。リストは、識別子等の非バインド名であってもよく、又は2つ以上のシング間の関係を伝達するように表現してもよい。リスト「this」は、名前が「this」に等しいシングを参照していることを示す単純な識別子である。リスト「this.that」は、名前が「that」に等しいシングがあるような、名前が「this」に等しいシングがあることを示すことができる。リストの厳密な解釈は、リストがバインドされた名前空間に依存し、これは、後述するように、URIにおけるセクション(RFC3986参照)においてより詳細に網羅されている。
メタデータとしての属性
属性は、シングの固有の特性又は品質を記述する。属性は、メタデータとして表現される。thing:metadataは、属性のタイプを識別するシングであり、シングの値は属性の値を記述する。
属性は、thing:metadataとして識別され、続けて三つ組みに使用することができる。一例として、thing:class属性を使用して、シングの分類を示す。クラスとは、所与の瞬間において、シングがクラスのメンバであるために必要とされるものを指定するメンバーシップ基準を満たす1組のシングである。意図は、時間依存基準である。所与の瞬間での拡張(extension)は、その時間での全てのメンバのリストである。
属性は状態を記述し得る。例えば、シングは、分類を示さずに宣言することができ、バインド動作を「非バインド」シングに対して行って、「未知」シングとしてバインドされる場合であっても、バインド動作が認識することができる何かに「非バインド」シングをバインドすることができる。バインド動作は、シングを非バインド状態からバインド状態に遷移させる。バインドシングは、見つけることができることもあれば、見つけることができないこともある。見つけられたバインドシングは、バインド動作がシングを、バインド動作が理解する何かにバインドすることができたことを示す。見つけられないバインドされたシングは、バインド動作がシングに適用されたが、シングは、バインド動作が理解することが可能な何かではなかったことを示す。
アクティブシング
特定の動作への参照の表現を有するシングは、アクティブシングとして分類される。これに関連して、実行可能な動作は、マシンが実行させて、何らかの結果を達成することができる動作であり、主に、計算的、電気的、化学的、光学的、生物学的、機械的、電磁波、又はそれらの組合せの性質であり得る。
本明細書におけるアクティブシングは、動詞が、動作を記述する名詞であり、アクティブシングが動作を記述するという意味で、thing:verbと呼ばれることが多い。したがって、アクティブシングの名前は、識別子が、実行することができる動作を記述する動詞である。
分類をサポートする一実施態様では、実行可能な動作への関係を有するシングは、図7に示されるように、thing:is-a関係を使用してthing:verbとして分類される。
動詞は1組のシングに対して動作することができる。動作されることが可能なシングは、RDFシンググラフにおいて明示的に指定してもよく、又は分類によって暗黙的に指定されてもよい。数量詞を使用して、会話領域におけるシングの範囲を、動詞動作が作用することができるシングに制限することができる。
名前空間
名前空間は、単に同じ名前空間のメンバであることにより関連する場合であっても、何らかの方法で論理的に関連するシングの名前付きグラフを表すシングである。グラフは、シング及びシングの関係を含む。図8に示されるように、分類をサポートするグラフにおいて、名前空間シングはthing:namespaceとして分類され、thing:namespaceはthing:classである。
コンテキスト
コンテキストは、現在の範囲を有する1組の名前空間を定量化するシングである。図9に示されるように、分類をサポートするグラフにおいて、シングはthing:contextとして分類される。
コンテキストは、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)。
URI
URIはリソースを識別し、シングは、シングマシンにおけるそのリソースの表現である。シングは、実行可能な動作又は実行可能な動作が作用することができるシングのいずれかを有する。URIの一般化された形態は、
scheme:scheme specific part
として与えられる。
シングマシンでは、スキームは、以下に示すように、名前がURIスキームの命名規則に従う名前空間シングへの参照として解釈される。これには、RDFシンググラフを使用して既存のスキーム名を表現することができるという利点がある。
名前空間名は、文字で始まり、文字、数字、プラス(「+」)、ピリオド(「.」)、又はハイフン(「-」)の任意の組合せが続く一連のキャラクタからなる-RFC3986。
インターネット割当番号公社(Internet Assigned Numbers Authority)によって公開された全ての永久URIスキームは、確保された名前空間名である。確保された名前空間にけるシングのモデリングは、その名前空間について公開されたRFCの意味に準拠すべきである。例えば、news:及びnntp:の名前空間においてシングをモデリングするには、RFC5538を調べるべきである。公開されたURIスキームのリストは、IANAによって保持されており、
http://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml
においてオンラインで入手可能である。
「URN」名前空間は、確保された名前空間であり、その名前空間固有部分は、そのURN名前空間について公開された対応するRFC文書によって定義されるものとして解釈される。公開されたURNのリストは、IANAによって保持されており、
http://www.iana.org/assignments/urn-namespaces/urn-namespaces.xhtml
においてオンラインで入手可能である。
リストの名前空間固有部は、名前空間(スキーム)の仕様に従って解釈される。
一般的なURIシンタックスのパーサは、任意のURI参照を主要構成要素に解析することができる。スキームが特定されると、更なるスキーム固有の解析を構成要素に対して実行することができる。換言すれば、URI一般シンタックスは、全てのURIスキームのシンタックスの上位集合である。-RFC3986。
しかしながら、http:、https:、及びfile:名前空間は、「/」キャラクタ区切り文字を使用し、それにより、参照:http://www.THINGlanguage.com/requestは、
名前が「http」に等しいようなTHING:NAMESPACEがあり、そこには名前が「www.THINGlanguage.com」に等しいシングがあり、そこには名前が「request」に等しいシングがある。
として解釈される。
mailto名前空間は、RFC6068に従って参照を解釈する。例えば、参照:mailto:info@thinglanguage.comは、
名前が「mailto」に等しいようなTHING:NAMESPACEがあり、そこには名前がinfo@THINGlanguage.comに等しいシングがある。
として解釈される。
OSX及びIOSにおいてサポートされるTHINGS:schemeをモデリングすることもできる。THINGS:URIは、THINGS:command?parameter1=value1&parameter2…として与えられる。これは、
名前が「THINGS」に等しいようなTHING:NAMESPACEがあり、そこには名前が「command」に等しいシングがあり、そこには名前が「parameter1」に等しく、且つ値が「value1」に等しいシングのインスタンスがあり、名前が「parameter2」に等しいシングのインスタンスがある。
として解釈される。
名前空間シングの名前は、IRIスキームの命名要件に従う(RFC3987参照)。これは、URI(IRIの一形態であり、RFC3986において記載される)をシングにバインドする方法として機能する。URIスキーム名は、名前空間シングにバインドされる。例えば、全てのhttp:URIは、http:Namespaceシング内でバインドされる。http URIのシングへの例示的なバインドを図10に示す。
満足クレーム
基本アサートは、満足クレームを表すthing:assertionであり、所与のクレームが真であることをアサートする。シンググラフモデルでは、アサートは、有向エッジラベルではなくシングである。図11を参照すると、thing:graphでは、空白ノードは満足クレームを表し、クレームはthing:objectへの参照を有し得る。
図12に示されるように、thing:assertionは、thing:subjectが数値である値を有し、したがって、thing:objectが必要ないことをアサートする。
図13に示されるように、thing:assertionは、thing:subjectの値がthing:objectの値未満であることを主張する。
満足クレームの真実性は、クレームに対応する計算手順によって決まる。それに関して、満足クレームは、動作が作用することができるシングを記述する、対応するthing:graphを有するアクティブシングである。
例示的な満足クレームは、限定ではなく、以下の表1に示されるものが挙げられる。
Figure 0007256742000003
単純な述語の「is」部分は、述語の否定を示すために、「not」が続くことができる。例えば、thing:is-not-equal-to。thing:matchの否定は、thing:does-not-matchとして指定される。
コネクタ
論理的なコネクタを使用して、2つの満足クレームを接続する。例示的なコネクタには、限定ではなく、and、or、not、implies、及びiffがある。満足クレームと同様に、論理コネクタは、有向エッジラベルではなくシングとして表現される。論理コネクタシングはアクティブシングである。コネクタを有するグラフの一例を図14に提供する。
単純なコネクタの例には、限定ではなく、表2によって示される以下がある。
Figure 0007256742000004
手順グラフでは、確かに、満足クレームは真(満足)又は偽(不満足)に評価されるが、宣言グラフにおける満足クレームは、クレームが範囲にわたる1組のシングを含むように拡張することができる。
グラフタイプ
シンググラフは、何かを行う方法を記述する場合、手順的な性質を有する。例えば、シングの値を設定するグラフは、タスクの実行に必要な動作を記述する一連のステートメントであるため、手順ステートメントである。
シンググラフは、宣言を表すステートメントである場合、宣言的である。HTMLは宣言ステートメントの一例である。HTMLソースコードは、文書の所望のレイアウトを記述し、HTMLレンダリングエンジンは、HTMLソースコードを処理して、実際のレイアウトを実行する。
シンググラフは、オブジェクト及びメソッドを記述する場合、オブジェクト指向である。一例として、オブジェクト及びオブジェクトを設定、取得、アンセットするメソッドを示すグラフは、オブジェクト指向である。
シンググラフは、メッセージ又は状態等のイベントがグラフの評価を駆動する場合、イベント駆動グラフである。シンググラフは、有限状態マシンで使用するために、状態及び状態間の遷移を表現する場合、有限状態グラフである。
シンググラフは、ハレルの状態図、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参照)
実行可能なマシンコードで表現されるシングマシン手順P(TM(thing))は、シング及びシング間の関係を監督する動作を非一時的メモリに提供する。実行可能な動作への参照の表現を有するシングは、動詞である。実行可能なマシンコードで表現されるシングマシン手順P(TM(perform))は、P(TM(thing))と対話して、動詞シングへの参照を取得し、動詞の実行可能な動作P(TM(i))を実行させる動作を提供する。動作の実行は、P(TM(thing))動作と対話して、非一時的メモリにおいてシングに作用することができる。実行可能なマシンコードで表現されるシングマシン手順P(TM(configure))は、P(TM(thing))と対話して、動詞シングを設定する動作を提供する。したがって、シングマシンが動作として実行することができるシング及び動作が作用することができるシングに関して、問題文を記述し、解を建築することができる。
図15は、シングマシンによって実行される最小ランタイムステップを例示するフローチャート250である。フローチャートにおける任意のプロセス説明又はブロックが、プロセスにおける特定の論理機能を実装する1つ又は複数の命令を含むモジュール、セグメント、コードの部分、又はステップを表すものとして理解されるべきであり、本発明の分野の当業者により理解されるように、関わる機能に応じて、略同時又は逆順を含め、示される又は考察される順序以外で機能を実行し得る代替の実施態様が、本発明の範囲内に含まれることに留意されたい。
特に、少なくとも以下のステップはシングマシンによって実行されることに留意されたい。ブロック252に示されるように、入力の解析、センサとの対話、又は動作を実行するようなシングマシンへの要求による等、アルゴリズム的にP(TM(i))動作は、シングマシンが動作を評価し実行するためのステートメントを表すthing:graphを生成する。
これは、そのような温度、加速度、高度、経度及び/又は緯度、運動センサ、熱センサ、煙センサ、又は他のそのようなセンサ、センサ生成データを取得して、thing:statementを増分的に構築して評価し、対応する実行可能なthing:statementを実行するP(TM(i))にとって有用である。同様に、イベント、タイマ、割り込み、又はアラーム等の信号が通知されたP(TM(i))は、P(TM(request))と対話して、thing:statementを構築して評価し、対応する実行可能なthing:statementを実行して、P(TM)がその受信に応答できるようにする。
そのようなP(TM(i))の第1の例示的な実施形態は、P(TM(parse))であり、XML文書を解析して、以下のアサートが真であるようなthing:graphを生成する:
名前がcore:printに等しいシングがあり、そこには名前が「message」に等しく、値が「Hello, World」に等しいシングがある。
対応するthing:graphを図16に示す。
ブロック254に示されるように、P(TM(eval))動作はP(TM(thing))と対話して、上記thing:graph及び現在の動詞ボキャブラリにアクセスし、それらと対話して、適切な動詞動作をアルゴリズム的に選択し、実行可能なthing:graphを構築し設定する。現在の動詞ボキャブラリは、初期動詞ボキャブラリであってもよく、又は動的に変更された動詞ボキャブラリであってもよいことに留意されたい。
ブロック256に示されるように、P(TM(perform))動作はP(TM(thing))と対話して、実行可能なthing:graphを取得し、それを実行させる。
本発明の代替の実施形態によれば、シングマシンは、P(TM(eval))動作を含まないことがある。そのような実施形態では、P(TM(parse))が命令文を解釈する。
THING:GRAPH/コアボキャブラリの変更
上述したように、P(TM(i))はP(TM(thing))と対話して、thing:graphを設定することができる。シングアーキテクチャでは、入力及び出力の詳細を抽象化し、動詞動作の使用を通して出現させることができる。言語、文法、シンタックス、及び伝達動作の選択はそれ自体、単にシングである。
P(TM(parser))動作が文法シンタックスの要素をthing:graphにアルゴリズム的に解析することができる限り、任意の数の言語及びシンタックスをP(TM(i))入力ストリームで受信することができ、解析することができる。
言語はシングであり、より正確には語彙及び文法を含む伝達体系として説明される。語彙は、その言語での1組の単語又は語句等のボキャブラリである。文法は、形態、意味論、及びシンタックス等の規則を課す。
動作は、伝達するために実行されなければならないシングである。読む及び観察等の視覚的伝達スキルが使用可能である。書く又は署名する等の物理的動作が使用可能である。音声伝達スキルが使用可能である。代替的には、点字筆記体系が使用可能である。これらは全てシングであり、これらはシングであるため、これらの動作は、シングマシン(すなわち、P(TM))が実行可能な動作としてモデリングし構成することができる。
伝達動作の一形態としてのジェスチャは社会を超える。ある方向を指す指、足の踏みならし、又は笑顔の意味は一般に理解される。ジェスチャは、手話は、明確に定義された意味を有する、確立された表現及び動きを使用するという意味で手話と異なる。ジェスチャはシングである。
人々と同様に、シングマシンは、所与の言語の読みボキャブラリ、書きボキャブラリ、リスニングボキャブラリ、及び発話ボキャブラリを有することができる。これらの各ボキャブラリは、異なるレベルであることができる。シングマシンは、構成されたシングにより、シングマシンが聞いたとき、単語が何を意味するのかを知り得るが、その単語を正確に発音する又は書くことができないことがある。同様に、シングマシンは、何かを読み、認識しない単語を見ることがある。例えば、単語ossifyは、骨のように固いことを意味する英語の動詞の単語であるが、英語の言語では希にしか使用されない動詞の1つであり得、したがって、モデリングされた実施形態は、シングマシンの動詞ボキャブラリに構成されていないことがある。
シングマシンは、馴染みのない単語を識別すると、その音節と対話することによってその単語の意味を解釈しようとし得る。シングマシンは、語根を検出することができる場合意味を推測することが可能であり得る。シングマシンは、新しい単語及びその使用方法を学習するにつれて、それらの新しい単語を様々なボキャブラリに追加することができる。
多言語シングマシンは、シングマシンが知る各言語に異なるボキャブラリ機能を有することができる。シングマシンは、学校でパピアメント語、オランダ語、スペイン語、及び英語を学習しているアラビアの生徒の言語教育システムでモデリングすることができる。各シングマシンは、各言語で異なるレートで、且つ潜在的には異なる性能で読みボキャブラリ、書きボキャブラリ、リスニングボキャブラリ、及び発話ボキャブラリを開発することができる。
シングマシンは、文法及びシンタックスに従ってステートメントを解析して、トークンシングにし、トークンシングを対応するボキャブラリ内のシングにバインドすることができる。特定のシングは即座に分類することができ、一方、他のシングは、前後の単語を見て意味を推測する必要がある。
ステートメントの意味はそれでもなお曖昧であり得る。ステートメント:「Let’s eat honey」を考える。これは、蜂蜜を食べることを意味することができ、又はあなたがあなたの愛する人に食べ始めるように勧めることを意味することができる。本明細書において詳細に説明するように、ステートメントの解釈及び意味の管理を促進するために、開始ノードが動詞名であり、接続されたノードが、動詞動作が作用することができるシングであるシング動詞グラフのアイディアを導入する。
動作を実行すると、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))である。
P(TM(i))の動作は、環境と対話して、P(TM(thing))によって監督されるthing:graphを変更する要求のthing:graph表現を生成することができる。それに応答して、P(TM(config))はP(TM(thing))と対話して、P(TM(thing))によって監督されるthing:graphを変更する。したがって、P(TM(config))の動作は、本明細書ではコアボキャブラリとも呼ばれる現在のボキャブラリを変更する。
図17を参照すると、P(TM(config))は、要求名前空間シングによって認定されたシング、すなわち、G.request及びG.urrがあるようなG.id(空白ノードとして示されている)に対して作用する。
G.idシングの名前は、P(TM(config))が構成する動詞シングの識別子である。G.requestは、動詞シングの実行が作用することができるシングを記述するグラフである。G.urrシングの値は、動詞シングの実行を要求するユニフォームリソース要求として解釈されるURIである。
図18を参照すると、P(TM(config))のmy:configureバージョンは、ボキャブラリ識別子(vocabulary.id)であるシングがあり、G.request及びG.urrがあるようなグラフIDであるシングがあるようなURIrequest:statementによって識別されるシングに対して作用する。ボキャブラリ識別子は、P(TM(eval))がthing:statementの評価に使用する会話領域における1組の動詞シングをアルゴリズム的に選択する際に分類器によって使用することができる。
一実施形態では、P(TM(config))は、動的リンクライブラリ等の共有ライブラリを表すシングと対話ことができ、それにより、上記共有ライブラリはプロセスメモリに動的にロードされ、関数への参照が解決、実行されて、1組の手順及び対応するグラフを提供し、それにより、多数の動詞シングを構成できるようにする。
一実施形態では、P(TM(config))はP(TM(eval))及びP(TM(perform))とアルゴリズム的に対話して、1組の動詞シングを構成するための必須条件として満たさなければならないthing:statementを評価し実行することができる。上記thing:statementは、アクセス可能性、バージョン情報、改訂情報、依存性、既存の動詞シングとの競合、識別、認可、認証、セキュリティ、ハードウェア機能、オペレーティングシステム機能、又は他のそのようなアクティビティをチェックする要求を表すことができる。
識別、認証、及び認可をサポートする一実施形態では、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ウェブサイト参照)によって可能になる識別動作、認証動作、及び認可動作を提供し得る。
シングのタイプ例
動作ブロックは、一連のステートメントを表すthing:graphである。名前付き動作ブロックはタスクと呼ばれる。このようにして、言語文法は、シングマシンが続けて実行することができる名前付きタスクを構成する、シングマシンへの要求を表現することができる。タスクは、動作ブロックを実行することによって実行される。動作ブロックは、各ステートメントを評価して、実行可能なthing:graphを生成することによって実行される。実行可能なthing:graphは、実行可能なthing:graph内のthing:verbに対応する動作を実行することによって実行される。
シングマシンは、実行可能な動作として複数の言語文法パーサを構成することができるという意味で、バイリンガルであるように構成することができる。代替的には、翻訳動作を使用して、第1の言語から、構成されたパーサ動作によって解析することができる第2の言語に翻訳することができる。
したがって、本明細書において、シングマシンが本を読むことができると言う場合、シングマシンが、入力デバイスから得られたコンテンツと対話し、コンテンツをthing:graphとして表現する動作を実行することができることを意味する。シングマシン全体のサブグラフとしてthing:graphを保持することにより、シングマシン動作は続けて、そのコンテンツにアクセスし対話することができる。
シングマシンは、タスクを実行する方法を記述した本を読み、マシンがそのようなタスクを実行するように将来求められた場合、その知識を保持する。タスクは話題により分類することができる。タスクは、httpプロトコルの使用に関連するタスク、accounting:account.receivable、accounting:accounts.payable、banking;debits、banking:credits、及びbanking:balance等の活動に関連するタスクの1組の分類のメンバであり得る。
第1のシングマシンは、第2のシングマシンへの、話題又は分類についての知識を要求する通信を送信することができる。上記知識を表すコンテンツの受信に応答して、第1のシングマシンはコンテンツと対話し、それに従ってそれ自体の知識を構成することができる。このようにして、第1のシングマシンは第2のシングマシンから学習することができる。
シングマシンはサービスを提供することができる。サービスは、要求の受信に応答して提供されるシングである。サービスとタスクとの間の微細な区別は、タスクは実行される一方で、サービスは提供されることである。タスクとサービスとの分離は、コンテキストを通して促進され、コンテキストは、ファイルを除去するタスク又は動詞の意味を変更するタスク等のタスクの非認可実行を阻止することができる。
述べたように、コンテキストシングは、会話領域において1組の利用可能な名前空間シングを認定する。名前空間シングは、単に同じ名前空間のメンバであることによって関連する場合であっても、1組の関連するシングを認定する。名前空間シングの名前は、シングへの参照を解決する際に使用される。
識別情報はシングであり、したがって、識別子、認証、認可、及び監査の概念をモデリングして、識別情報モデルを実施することができる。識別情報モデルの例には、公開鍵基盤、Open PGPのWeb of Trust、バイオメトリクス、第三者認可等の使用がある。識別情報を用いて、シングとしての市場を導入し、取引を可能にすることができる。取引は、買い手と売り手との間、支払う人と支払われる人との間のシングになる。取引は、サービス提供シング、物理的シング、概念シング、又は論理的シングを含み得る。
識別情報モデルにより、グラフ又はサブグラフの認証が可能である。例えば、要求当事者の識別子(すなわち、要求発信者)、コンテンツ、及びコンテンツのデジタル署名を含む要求を表すグラフを考える。識別子の対応する証明書を検証することができ、コンテンツのデジタル署名を検証することができる。これにより、評価動作は、要求をアルゴリズム的に検証し、それに応答して適切な動作を選択することができる。識別情報モデルを実施して、セキュア通信モデルを提供することもできる。
要求コンテンツのセキュア化は、コンテンツを暗号化し、続けてコンテンツを復号化する暗号化動作を使用してモデリングすることができる。要求グラフは、暗号化動作及び暗号鍵を記述するサブグラフを含むことができる。コンテンツを復号化するために、必須条件として、指定された鍵を用いて指定された暗号化をまず実行しなければならない評価動詞動作を適用することができる。適切なサブグラフ内の要求の様々な構成要素を編成することにより、2つ以上のシングマシンは、識別情報モデルを使用してアルゴリズム的に通信し、通信をセキュア化することができる。
光学識別子SIMカード又は同様のデバイスと統合される場合、シングマシンは、アドホックベースであってもオーバーレイネットワークにおいて一意の識別情報を有するシングとしてモデリングすることができる。シングは、ネットワークから外れ、ネットワーク内の他の場所に再び入り、それでもなお光学識別情報を保持することができる。
光学識別情報は、ユーザ識別情報から別であることができる。これにより、シングマシンは、オーバーレイネットワークにおいてそれ自体を検証し、ネットワークで利用可能なコンテンツを使用して、ユーザの識別情報に基づいてそれ自体を再構成することができる。
シングマシンは、アドホックベースであっても、ボキャブラリを動的に構成、再構成することができる。語彙の少なくともサブセットと存在論的コミットメントを共有する1組のシングマシンは、そのサブセット(又はサブセットの少なくとも一部)を使用してシングと対話することができる。ボキャブラリはシングとして表され、シングマシンは、ボキャブラリを構成及び再構成する動詞動作を有するため、シングマシンは学習することができ、その例を本明細書に提供する。
例示を目的として本明細書において説明される例示的なRDFシングを参照すると、以下の例示的な定義が該当する。
グラフ-点と、点のいくつかの(可能な場合は空の)サブセットを結ぶ線との集まり。グラフの点は最も一般的に、グラフ頂点として知られるが、「ノード」又は単に「点」と呼ばれることもある。同様に、グラフの頂点を結ぶ線は最も一般的に、グラフエッジとして知られるが、「弧」又は「線」と呼ばれることもある。
グラフノードはgraph:nodeと呼ばれる。グラフエッジはgraph:edgeと呼ばれる。エッジは、graph:edge-label(ラベル)と呼ばれるラベルを有することができる。
有向グラフ-有向グラフとは、全てのエッジ(有向グラフエッジ)がある頂点から別の頂点に向けられるグラフ、すなわち、一緒に接続された1組のオブジェクト(頂点又はノードと呼ばれる)である。有向グラフは時折、ダイグラフ又は有向ネットワークと呼ばれる。
有向グラフはgraph:directedと呼ばれる。
有向グラフエッジは、graph:directed-edgeと呼ばれる。
非有向グラフ-非有向グラフとは、全てのエッジ(非有向グラフエッジ)が双方向であるグラフ、すなわち、一緒に接続された1組のオブジェクト(頂点又はノードと呼ばれる)である。非有向グラフは時折、非有向ネットワークと呼ばれる。非有向グラフはgraph:undirectedと呼ばれる。非有向グラフエッジはgraph:undirected-edgeと呼ばれる。
サブグラフ-サブグラフとは、頂点及びエッジが別のグラフのサブセットであるグラフである。
ルートグラフ-ルートグラフとは、あるノードが開始(ルート)ノードとして区別される有向グラフである。
本システム及び本方法によれば、ABNFを使用して、P(TM(thing))によって監督されるシングの非可変構成要素の表現を記述する。加えて、RDFを使用して、P(TM(thing))によって監督されるシングの非可変構成要素及び可変構成要素の意味を更に示す。
-ABNF
本明細書に提供される例示的な図では、以下示されるように、ABNF(augmented backus-naur form)仕様を使用して、P(TM(thing))によって監督されるシングを記述する。特に、以下、P(TM(thing))によって監督されるシング及びその非可変構成要素を記述する。
scheme:scheme-name = ALPHA*(ALPHA/DIGIT/“+”/“-”/“.”)
scheme:scheme-specific-part = これはスキーム固有である。スキーム固有部分についての詳細は、スキーム名に対応するRFCを参照のこと。そのようなRFCが存在しない場合、スキーム固有部分は、シング言語によって定義されるシング識別子に解析される。その他の場合、スキーム固有部分は、スキームに従ってトークン化される。
以下の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)
クラスidは、シングのクラスを識別する。デフォルトクラスidはURIであり、URIによって識別されるシングは分類である。デフォルトはthing:thingである。
thing:class.id=URI
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)))等として参照することができる。
-シングRDF
リソースディスクリプションフレームワーク(RDF)とは、ウェブにおいて情報を表すための枠組みである。RDF三つ組みは、3つの構成要素からなる:a)IRI又は空白ノードである主語、b)IRIである述語、及びIRI、文字、又は空白ノードである目的語。RDF三つ組みは従来、主語、述語、目的語の順に書かれる。RDFグラフは1組のRDF三つ組みである。
RDF三つ組みは、シングを説明する以下のセクション及びシンググラフにおいて使用され、述語は、主語と目的語との関係タイプを示す。thing:is-a関係タイプは、主語が、目的語によって識別されるシングのクラスのメンバであることを示す。thing:has-a関係タイプは、主語が目的語によって与えられる非可変構成要素を有することを示す。なお、構成要素の値は変更可能であるが、構成要素は変更することができない。詳しくは関係タイプを参照のこと。
参照P(TM(i))は、シングマシンsub-iのアルゴリズム手順への参照であり、ここで、iは、シングマシンの第2の手順からシングマシンの第1の手順を認定する識別子である。
シングは、P(TM(thing))によって監督されるグラフ内のノードである。
thing:thing thing:is-a graph:node
シングは、名前、値、クラス、及び関係セットを有する。ワールドワイドウェブに下位互換性を提供する好ましい実施形態では、名前空間シング名はscheme:nameである。P(TM(thing))は、シングを設定、取得、又はアンセットすることができる。
Figure 0007256742000005
以下の規則は、関係セットがゼロ以上の関係で構成されることを示す。関係がゼロの関係セットは空集合である。空集合である関係セットを有するthing:thingのルートthing:graphは、thing:thingの空のグラフ(thing:graph:empty)である。
thing:relationship-set = thing:set.of(thing:relationship(s,r,o))
以下、規則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)
以下の規則は以下として解釈されるべきである:名前がsに等しいシングがある。
thing:thing(s) = thing:thing、但し、is-equal.to = (thing:name.of(thing:thing),(s))
以下の規則は以下として解釈されるべきである:名前が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)))
一実施形態では、シングの構成要素は参照することができる。例えば、以下の規則は、シング[但し、[名前=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))
Figure 0007256742000006
以下、規則(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))
以下の規則は、パラメータ(i)によって与えられるシングの名前構成要素の値に等しい。
thing:name.of(i) = thing:value.of((i):name)
以下の規則は、パラメータ(i)によって与えられるシングの値構成要素の値に等しい。
thing:value.of(i) = thing:value.of((i):value)
以下は、例示的な関係タイプ(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 目的語シングは主語シングの前の兄弟である。
thing:is及びthing:is.notアサートは、thing:predicate満足クレームである。満足クレームは、
thing:expression = thing:subject thing:satisfaction-claim 0,1(thing:object)
によって与えられる表現の形態であり得る。
満足クレームは、クレームに対して作用する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)は関連するシングのスーパーグラフである。
Figure 0007256742000007
thing:class(class.id)は、thing:name class.idによって与えられるthing:thingである。これは、そのクラスのコンテキスト内に存在する規律への関係を有する。
Figure 0007256742000008
例示的な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)
がある。
例示的な規律には、
a)thing:discipline(c,thing:set)
b)thing:discipline(c,thing:get)
c)thing:discipline(c,thing:unset)
がある。
一実施形態は、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の評価に成功した後、評価される。
規律への適切な関係を用いて、クラスthing:class(class.id)グラフを構成することにより、新しい分類が構成される。
thing:verbは、解決されて、P(TM(perform))が実行させることができる実行可能な動作にすることができる、実行可能な動作への参照の表現があるようなP(TM(thing))によって監督されるthing:thingである。P(TM(perform))は、実行可能な動作を実行させることによりthing:verbを実行すると言える。
Figure 0007256742000009
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つ又は複数のオペレーティングシステム呼び出しの使用を更に特徴とし得る。
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))によって監督されるシングを更新することができる。
thing:verb.vocabularyは、1組のthing:verbへの関係があるようなthing:thingである。
Figure 0007256742000010
thing:urr(i)の対応する実行可能な動作は、P(TM(i))によって実行されて、動詞ボキャブラリの動詞シングを構成する。
例示的なthing:relationship
以下に、シング関係の一実施形態を更に示す。図19の有向グラフにより示されるように、xという名前のシングは、yという名前のシングの前身であり、yは、xという名前のシングの後継であり、述語は、thing:sttiaとして示される関係があるようなシングである。英語の解釈は、名前がxに等しいシングがあり、そこには、名前がyに等しいシングがある。「そこには~がある(such that there is a)」関係は、thing:sttiaエッジラベルで示される。
図20の有向グラフにより示されるように、xという名前のシングは、zという名前のシングの前身であり、述語は「そこにはインスタンスがある」であり、これは、thing:sttiaiとして示されている。英語の解釈は以下である:名前がxに等しいシングがあり、そこには名前がzに等しいシングのインスタンスがある。
図21の有向グラフにより示されるように、英語の解釈は以下として与えられる:名前がxに等しいシングがあり、そこには名前がyに等しいシングがあり、そこには名前がzに等しいシングがあり、そこには名前がxに等しいシングへの参照がある。そこには~への参照がある(such that three is a reference to)関係は、thing:sttiartエッジレベルで示されている。参照は、リストとして解釈することができるURI形態であることができる。
図22の有向グラフにより示されるように、xという名前のシングはthing:tableである。次のエッジ及び最後のエッジの対並びに親子エッジ対を使用して、グラフはいずれの方向にもトラバースすることができる。
図23の有向グラフにより示されるように、多数のシングは、1つのシングへの関係を有する。
図24の有向グラフにより示されるように、xという名前のシングは、「c」という名前のシングのクラスのメンバである。
述語は、シングの非可変構成要素についての関係を示すことができる。図25の有向グラフにより示されるように、関係は、「x」という名前のシングの名前が、「b」という名前のシングのクラスのメンバであることを示す。
図26の有向グラフにより示されるように、関係は、xという名前のシングの値が「c」という名前のシングのクラスのメンバであることを示す。
以下は、グラフ内のシングの監督においてP(TM(thing))によって監督される例示的なシングである。
thing:monad-モナドは、P(TM(thing))によって監督される他の全てのシングを識別することができる最初のシングである。有向グラフのノードはシングであり、有向エッジラベルは、結ばれたシング間に保たれる命題である。モナド有向グラフは、シングマシンの状態を示す。モナドは、「thing:sttia」として示される有向エッジラベル「そこには~がある(such that,there is a)」を用いてコンテキストシングに向けられたエッジと結ばれる。
thing:context-コンテキストシングは、スタックとして編成された1組のシングを表し、ここで、スタックの最上部は、現在のコンテキストを表すシングである。新しいコンテキストシングは、アルゴリズム的にスタックに押し込み得、又はアルゴリズム的にスタックから押し出して、現在のコンテキストを変更し得る。コンテキストシングのインスタンスは、そのコンテキストの範囲内の名前空間である1組のシングの有向グラフのルートである。
thing:namespace-名前空間は、単に同じ名前空間のメンバであることにより関連する場合であっても、何らかの方法で論理的に関連するシングの名前付きグラフを表すシングである。グラフの名前は、国際リソース識別子(IRI)スキームの命名要件に準拠する。名前空間のルート有向グラフは、ルートとして名前空間シングを開始し、接続されるノードは、名前空間シングによって認定されたシングである。有向エッジラベルは、接続されたシング間で維持される関係を示す。
コンテキストシングは、1組の利用可能な名前空間シングを認定する。例示的な名前空間は、要求、応答、ローカル、サービス、コア、及びブートの名前空間を含む。追加の名前空間は、P(TM(thing))の動作を通して構成することができる。以下のグラフは、コンテキストの各名前空間に当てはまり、グラフの非命名ノードは、コンテキストによって認定される名前空間にバインドされる。図27の有向グラフにより示されるように、コンテキストは、要求、応答、及びローカルの名前空間を含む。一実施形態は1組の名前空間を自己構成することができる。
例示的な名前空間を以下の表3により提供する。
Figure 0007256742000011
IRIから名前空間シングへのマッピング
IRIスキーム名は名前空間シングにマッピングされ、次に、IRIのスキーム固有部分は、特定の名前空間の規則に従ってマッピングされる。デフォルト挙動は、ドット(「.」)キャラクタ区切り文字を使用して、「そこには~がある(such that there is a)」関係を示し、括弧区切り文字(「[」及び「]」)を使用して、「そこには~のインスタンスがある(such that there is an instance of)」関係を示す。例えば、reference:request:statement[1].wordは、
名前が「request」に等しい名前空間シングがあり、そこには、名前が「statement」に等しいシングがあり、そこには、名前が「1」に等しいシングのインスタンスがあり、そこには、名前が「word」に等しいシングがある
として解釈される。
シンググラフデータモデルセクションで述べたように、全ての永久的URIスキームは、インターネット割当番号公社によって公開されているように、確保された名前空間名である。確保されている名前空間の完全なリストは、http://www.iotnamespaces.com/reservedにおいてオンラインで公開されている。確保された名前空間へのIRIのマッピングも、www.iotnamespace.com/mappingsにおいて入手可能である。
XMLを使用してのシングの識別
基本XMLは、名前空間において解析されバインドされる。これは、基本XMLフォーマットを使用する、URLhttp://w1.weather.gov/xml.current_obs/inex.xmlによって識別される気象サービス等のサービスにとって重要である。マッピングを示すために、
Figure 0007256742000012

として与えられるフラグメントを考える。
単純なXMLを解析すると、表4に示される以下の三つ組みが真である。
Figure 0007256742000013
基本XMLマッピングでは、要素はシングにマッピングされ、属性は、そのシングの属性のインスタンスとしてマッピングされる。
XMLスキーマ定義
気象測定所XMLデータを使用する前例から、local:station.xml_urlシングは、測定所のローカルデータを表すリソースを識別する値を有する。そのリソースを検索するに当たり、部分的に、
Figure 0007256742000014

を含むXMLバージョン1.0文書であることを発見した。
XMLを解析するに当たり、デフォルト動作は要素をシングとして解釈し、属性をそのシングについての属性のインスタンスとして解釈する。表5に示される以下の三つ組みは真である。
Figure 0007256742000015
正式なアサートとして、三つ組みは、
名前が「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」に等しい
シングのインスタンスがある
として表現することができる。
XSD参照は、XSDスキーマを検索できるようにし、それにより、目的語の要素、サブ要素、及び属性の有効な構造をシングとして名前空間において表すことができる。
XML名前空間
XMLでは、認定された名前は、名前空間解釈を受ける名前である。要素及び属性の両方が、認定された名前である。XML名前空間仕様に従ってXML文書を解析する場合、文書は解析されて要求名前空間になり、検証され、シング名として認定された名前を使用して文書の構造を保持する。
例えば、以下に与えられるXML文書を考える。本の要素は2つの名前空間属性を含む:第1の名前空間属性はデフォルトXML名前空間を定義し、第2の名前空間属性はisbn XML名前空間を定義する。XML1.1仕様では、IRIは検証されたIRIである必要はなく、むしろ、シンタックス的に正確なIRIとしてIRIを指定する必要がある。したがって、解析動作は、XML IRI参照をシング名前空間にマッピングしない。
Figure 0007256742000016
略式表記を使用して、表6により示される以下が真である。
Figure 0007256742000017
正式な満足クレームは以下である。
名前が「request」に等しい名前空間シングがあり、そこには、
名前が「book」に等しいシングがあり、そこには、
名前が「xmlns」に等しく、且つ
値が「urn:loc.gov:books」に等しいインスタンスがあり、且つ
名前が「xmlns:isbn」に等しく、且つ
値が「urn:ISBN:0-395-36341-6」に等しいインスタンスがある。
シング言語
シンググラフモデルでは、全てのシングはシングである。シングによっては、名前空間であるものもあれば、動詞であるものもあり、動詞動作が作用することができるシングであるものもある。動詞と、動詞が作用することができる1組のシングとの関係は、シング動詞グラフとして表現される。
分類により、意図される動作の意味を推測することができる。しかしながら、意図される動作がシング及び時間単位を使用して何かを「設定」することである以下のステートメント例では、ステートメントごとに必要とされる動作はかなり異なる。
タイマを6:00分に設定
クロックを6:00AMに設定
アラームを6:00PMに設定
解析動作が実行されて、thing:graphシンググラフとしてステートメントを解析する。評価動作は、動詞ボキャブラリグラフのコンテキストにおいてthing:graphを評価して、候補動詞を選択する。評価動詞動作は、要求グラフ内のシングを候補動詞グラフ内のシングにバインドして、実行する必要がある動詞グラフのインスタンスを識別する。
実行動作がトリガーされて、バインドされたシングのコンテキストにおいて、識別された動詞動作を実行させる。
シングステートメント
シング言語は、命令文構造及び宣言文構造の両方を提供する。一般的に、最小ブートボキャブラリは命令文の使用に適し、一方、より表現的なコアボキャブラリでは、宣言文の使用が可能である。シングステートメントのABNF定義を以下に提供する。ABNFシンタックスはRFC2234において定義されている。
Figure 0007256742000018
一例として、以下の命令文は、シングマシンに、リストrequest:my.nameによって識別されるシングを値Johnに設定させるように命令する。
set=(request:uri=”request:my.name” request:value=”John”)
P(TM(bind))動作を使用して、上記ステートメントが
set=(request:my.name=”John”)
として指定することができるように、動作が作用することができるシングにリストをバインドすることができる。
一般に、同じシンタックスがシング言語のあらゆるステートメントに適用される。なお、動詞動作が作用することができるシングは、区切り文字「(」及び「)」内に含まれる。
Figure 0007256742000019
シング言語のこの単純なシンタックスは、他言語に容易に翻訳される。例えば、上記ステートメントは、以下のようにJSONにおいて表現することができる。
Figure 0007256742000020
同様に、ステートメント例は、THING/XMLを使用して表現することができる。
Figure 0007256742000021
パーサ動作がデータを解析してthing:graphにすることができる限り、任意の数の言語及びシンタックスが使用可能である。
以下に示されるように、マルチパートデータがサポートされる。この例では、設定という動詞に基づく単純なステートメントを提示する。なお、request:listingは指定されない。評価動詞動作は、request:graph及び動詞ボキャブラリ内の対応する動詞グラフと対話して、request:graph内のシングを、動詞が対話することができるシングにバインドする。この例では、request:listingの値はrcd:Contactにデフォルト設定され、request:classの値はthing:thingにデフォルト設定される。
Figure 0007256742000022
上記ステートメントは以下に等しい。
Figure 0007256742000023
宣言文は、命令文と同じ一般シンタックスに従う。違いを示すために、3つの命令文を使用して、リストpainting:Galleryを自動インスタンス化シングとして初期化する単純な例から始める。thing:auto-instanceとして分類されるシングは、シングが設定動詞動作で使用される都度、新しいインスタンスを自動的に追加させる。
Figure 0007256742000024
次に、以下の宣言文を使用して、各ステップの詳述を必要とせずに、何が欲しいのかを表現する。
Figure 0007256742000025
上記の出力は、
Van Gogh Almond Blossom
Ylli Haruni Cherry Blossom
として与えられる。
名前空間範囲
名前空間は、単に同じ名前空間のメンバであることにより関連する場合であっても、何らかの方法で論理的に関連するシングの名前付きグラフを表すシングである。名前空間シングはコンテキストシングによって認定され、グラフの名前(名前空間の名前)は、IRIスキームの命名要件に準拠する。全ての永久的URIスキームは、インターネット割当番号公社によって公開されているように、確保された名前空間名である。
分類
シングは、シングのクラスのメンバであるものとして分類することができる。全てのシングはシングである。シングによっては、整数であるものもあれば、浮動小数であるものもあれば、集合であるものもある等である。名前空間システムは、1組のコアクラスを用いて自己組織化され、1組のコアクラスには追加のクラスが存在することができる。第2章は、クラスについて詳細な情報を提供する。
以下の例は、設定動作を実行し、以下として解釈される:名前がlocalに等しいシングがあり、このシングが、名前がscoresに等しいシングがあるような名前空間である。このコンテキストでは、スコアはシングである。
・set=(listing=”local:scores”)
以下の例は、浮動小数点数としてスコアを設定する要求を記述する。
・set=(class=float listing=”local:scores” value=”83.25”)
通信プリミティブ
通信プリミティブとは、通信のインターフェースを提供するシングである。プリミティブにより、接続、送信、受信、及び切断等の一般的な動作が可能になる。様々なタイプの通信の通信プリミティブが提供され、ウェブシング、ソケット、ファイル、RS232、URIスキーム、及びユニフォームリソース要求リストを含む。
通信ポイント
通信ポイントとは、通信プリミティブが、通信を発生させるために対話するシングである。
通常ローカルファイル
Figure 0007256742000026

暗号化されていない標準の電子メールを使用する
Figure 0007256742000027

暗号化されたアクティブ名前空間を使用する
Figure 0007256742000028
ステートメント
シング言語では、ステートメントは動詞及びゼロ以上のオブジェクト名=表現ペアを含む。各表現は、値表現又は名前=表現ペアである。バインダは、ドットで区切られた動詞修飾語句をバインドすることができる。
Figure 0007256742000029
名前式は、名前式を含む名前によって認定される。したがって、a=(b=1)は、名前がaに等しいシングがあり、そこには、名前がbに等しく、且つ値が1に等しいシングがある、として解釈される。a=(b=1 c=2)等のマルチパートステートメントは、名前がaに等しいシングがあり、そこには、名前がbに等しく、且つ値が1に等しいシングがあり、且つ名前がcに等しく、値が2に等しいシングがある、として解釈される。
値式は文字であり、引用符で囲み得る。スペースキャラクタを含む文字値は、引用符で囲まなければならない。したがって、a=house、a=”house”、a=’house’は同等である。同様に、a=”red house”、及びa=’red house’も同等である。
数式は、二重括弧で囲まれ、引用符で囲む必要はない。一例として、a=((10+-2(6/3)))。演算の通常順序が適用され、式は括弧で閉じ得る。関数はサポートされず、数学動詞はサポートされる。したがって、a=((2sqrt(4)))は、sqrtが数学動詞ボキャブラリ内の動詞である限り、予想通りに評価される。
ステートメントを明示的に表すために、フォーマットは、
Figure 0007256742000030

である。
動作ブロック
動作ブロックとは、1単位として評価されるべき一連のステートメントである。これにより、名前空間システムはブロックを実行することができ、論理が真及び偽型ステートメントに対処できるようにする。動作ブロックの一般的なシンタックスは、
Figure 0007256742000031

である。
以下の例では、単純な動作ブロックシーケンスが、
Figure 0007256742000032

において提供される。
条件
名前空間システムは、動作の条件付き評価を提供する。IF、ELSE-IF、及びELSE条件がサポートされる。
Figure 0007256742000033
反復
反復は、for及びwhile条件動詞動作によって可能になる。
Figure 0007256742000034
設定
設定動詞動作は、request:classの値として識別される分類の規則に従って、request:listingの値によって与えられるシングを設定する。クラスが明示的に指定されない場合、評価動詞動作は、ステートメント内のシングに基づいて適切な分類を決定する。
以下のステートメントでは、分類はrequest:class=”thing:thing”にデフォルト設定され、対応する動詞グラフを図28に示す。
Figure 0007256742000035
以下のステートメントでは、分類はrequest:class=”thing:alarm”にデフォルト設定され、対応する動詞グラフを図29に示す。
Figure 0007256742000036
設定の動詞ステートメントをここに示す。新しい分類が追加されるにつれて、追加の動詞動作は、分類の意味をサポートする必要があり得、これらは動詞修飾語句を使用してボキャブラリに追加し得る。
Figure 0007256742000037
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))のアルゴリズム動作によって解決される。
名前固有部分は、所与の名前空間の取得、設定、及びアンセット規律の使用を通して解決することができる。これにより、述語アルゴリズム動作は、名前空間固有部分の解釈が、モデリング中の名前空間に依存する場合であっても、参照を解決することができる。
自由変数
シングへの参照の表現は自由変数と見なされる。P(TM(bind))は、コンテキストによって定義される1組のシング内の参照をアルゴリズム的にバインドする。thing:graphをトラバースする際、シングのコンテキストは、会話領域内のシングの現在の範囲内で適用可能なシングを反映するように、アルゴリズム的に更新される。以下のアサートを考える。
シングがあり、そこには名前がContactに等しいシングがあり、且つ名前がEmailに等しいシングがある。
オープニング参照「シングがあり、そこには」は、P(TM(thing))によって監督される会話領域内の可能な全てのシングが、現在の組のシング内にあると見なされることを示す。次に、P(TM(bind))は、制限「そこには名前がContactに等しいシングがあり、且つ名前がEmailに等しいシングがある」が保たれない現在の組内の全てのシングを不適格とする。
図30を参照すると、G.request(P(TM(i)))は、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)))サブグラフを含むルート有向thing:graphであり、G.urr(P(TM(i)))サブグラフは、P(TM(perform))が、動作を実行するようにP(TM(i))にいかに要求すべきかを示す。なお、request:statement.Thingの構成要素は、http://www.schema.org/Thingによって定義されるシングスキーマの構成要素を満たす。
ユニフォームリソース要求
ユニフォームリソース要求(URR)シングは、実行可能な動作が実行すべき要求としてP(TM(thing))によって解釈することができるURIである。例として、
Figure 0007256742000038

である。
URRと従来のURIとの区別は、URRが、サーバが識別されたリソースを提供する要求の代わりに、thing:namespace内のシングのコンテキストにおいて評価されることである。
stdlib:loadシングは、実行可能な動作が対応するライブラリを動的にロードし、実行可能な動作としてエントリシングの値への参照を解決し、その動作を実行するアクティブシングである。動作は通常、dlopen()及びdlsym()呼び出し又はWindows、Linux、BSD、iOS、若しくは他のそのようなオペレーティングシステムでの同等の呼び出しを使用して実施される。http://pubs.opengroup.org/onlinepubs/009695399/functions/dlopen.htmlを参照のこと。
動作の実行からの応答は、シングマシンに、ロードされた動作に相関するthing:verbを構成するように要求する1組のthing:statementである。P(TM(bind))を使用して、dlsym()又は同等のオペレーティングシステム呼び出しを使用して、実行可能な動作へのエントリポイント参照をバインドすることができる。
stdlib:unloadシングは、実行可能な動作が対応するライブラリをアンロードするアクティブシングである。動作は通常、dlcloseを使用して実施される。http://pubs.opengroup.org/onlinepubs/009695399/functions/dlclose.htmlを参照のこと。
URRを使用する場合とURIを使用する場合でのクライアントリソース解決とサーバリソース解決との区別に留意することに注意を払わなければならず、URRはシングマシンによってリソースに解決され、それに対して、URIは一般に、サーバによってリソースに解決される。
P(TM(i))は、URRを生成し、P(TM)に、適切な動作を評価し実行するように要求することができる。一例として、P(TM(parse))はコンテンツと対話して、コンテンツを解析し、パーサ動作が理解しないフォーマット又は言語であることを発見することができる。そのような場合、P(TM(parse))は、コンテンツを解析可能であり得る第2のP(TM(i))動作の評価及び実行を要求することができる。
通信機能を有する第1のシングマシンは、シング(又はシングのコンテンツ)を識別する要求を第2のシングマシンに通信することができる。第2のシングマシンは、何を表しているか、それに作用することができる動作、及び/又はそれを使用して実行することができるタスクを第1のシングマシンに教えることができる。
コアPOSIXボキャブラリ
コアPOSIX.1-2008は、コマンドインタプリタ(又は「シェル」)及びソースコードレベルでのアプリケーションポータビリティをサポートする共通ユーティリティプログラムを含め、標準オペレーティングシステムインターフェース及び環境を定義する。アプリケーション開発者及びシステム実装者の両者による使用が意図される。http://pubs.opengroup.org/onlinepubs/9699919799/を参照のこと。
コアボキャブラリはPOSIX.1-2008システムAPIに従うが、現在、全てのアプリケーションプログラミングインターフェースが提供されているわけではない。パラメータはシングであり、適切な場合、文字列と実際の整数との変換は、対応する動詞動作によって提供される。シングの実施形態は、システム固有データの非可変構成要素を含み、それにより、必要な場合、データ構造へのポインタを提供することができる。例として、unlink()関数を定義するPOSIX規格は、「int unlink (const char*path」として定義され、これは、リストrequest:pathによって識別されるシングに対して作用する、「unlink」という名前の動詞動作として実施される。実施形態では、関数は、動詞シング(すなわち、thing:verbs)として実装され、動詞名前空間において構成されるが、POSIX等の適した名前空間を代わりに使用してもよく、参照を解決するコンテキストが適宜設定される。アプリケーション領域に固有のアルゴリズム手順を構成することができる。例えばhttp:get等の一般に使用される動詞動作は、HTTPプロトコルのGETメソッドを使用して、URIによって指定されたリソースを検索するように構成することができる。
実行可能ファイルは、プロセス間通信又は標準ファイル記述子を使用して動詞動作として構成することができる。例えば、/bin/date(1)コマンドはUnix及びLinuxコミュニティでは周知であり、構成することができるが、解析を実装するために、出力を解析して適したフォーマットにする必要があり得る。例えば、リストbin:dateは、別個のアドレス空間における/bin/date実行可能ファイルをexec(2)して、出力を応答の値としてパイプする実行可能な動作を有することができる。URR bin:date//response:as=”data:date”は、bin:date動詞動作を実行する要求及びリストdate:dateによって与えられるシングの値として構成される応答(コマンドの標準出力から読み取られる)として解釈される。
明確に定義された1組の動詞動作を使用して、タスクシーケンスをソースコードに変換することができ、ソースコードは、実行可能ファイルとしてコンパイルされ実行することができ、ステートメントを評価しシングをバインドするステップをなくすことができる。
thing:machine
シングマシンの一実施形態を記述するシングは、thing:machineである。図66を参照すると、P(TM)は、P(TM)に望まれる構成を記述するシング言語で表現されたコンテンツを解析する。P(TM)はP(TM(thing))と対話して、P(TM)を表すthing:graphを構築し、上記thing:graphはthing:machineシングである。
公開鍵基盤の当業者は、認証動作を実施して、X509証明書、デジタル署名の使用、並びにOpenSSL識別情報、認証、及び認可アルゴリズム動作の使用による等のコンテンツの真正性を保証することができる。
図66を参照すると、thing:machineを記述するthing:graphは、
a)ブートボキャブラリ、
b)コアボキャブラリ、及び
c)アプリケーションランタイムボキャブラリ
並びに
d)ハードウェアシング、及び
e)オペレーティングシステムシング
を含む1組からの任意選択的なシングを含め、ボキャブラリを示す1組のシングで構成される。
なお、ハードウェアシングは、プロセッサを記述するプロセッサシング及び1つ又は複数の構成要素シングを含むことができる。ハードウェアシングはボキャブラリシングを含むことができる。
ボキャブラリを記述する1組のシングは、
a)動詞ボキャブラリ実行可能動作のロードを要求するユニフォームリソース要求、
b)thing:verbsのthing:graphを記述するコンテンツ、
c)ボキャブラリのリスト、
d)必須条件シング、
e)規律シング、
f)作者を識別するシング、
g)所有者とは別個であり得る販売業者を識別するシング、
h)作者とは別個であり得る所有者を識別するシング、
i)コンテンツの認証に使用されるシング、
j)コンテンツの使用を認可する際に使用されるシング、及び
k)http://www.schema.org.SoftwareApplicationからのプロパティ
で構成することができる。
なお、アプリケーションボキャブラリURRは、thing:statementsとしてファイルを読み取り解析する動作を実行するstdfile:parseを使用して、評価する。実施形態では、ステートメントは、構成すべき1組のタスク、ランタイムタスク、及び提供する1組のサービスを含む。実施形態では、タスク並びに動作ブロック及びタスクを含むサービスは、タスクの動作ブロックを実行することによって実行される。同様に、サービスは、サービスの動作ブロックを実行することによって提供される。当業者は、多数のタスク及びサービスを構成することができる。
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
TM:RaspberryPi3
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
Figure 0007256742000039
TM(RaspberryPi3)は、以下の動作を含むP(TM)を実行するよう構成される計算機である:自己構成されたthing:machine.boot.vocabulary実行可能動作を実行して、thing:machine.hardware.component.partsと対話し、thing:machine.application.vocabularyを構成し、アプリケーションランタイムを実行するようにthing:machine.core.vocabularyを構成する。
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において入手可能である。
Figure 0007256742000040
TM(AMS.TMD26723)は、データシートにより指定されるように構成されたi2c通信を使用し、以下の表7に列挙されるP(TM(AMS.TMD26723)))動作を提供するTM2671と対話するように構成される計算機である。
Figure 0007256742000041
なお、好ましい実施形態では、P(TM(i))は、P(TM(thing))とアルゴリズム的に対話して、P(TM(i))動作が作用することができるシングにアクセスして対話する。P(TM(i))は、P(TM(thing))と対話して、P(TM(i))動作によって許される値の範囲内にない任意の値に対してステータスをFAILED(不合格)に設定し、理由をINVALID VALUE(無効な値)に設定する。好ましい実施形態では、動作の参照名は、TMD26723名前空間において構成されるが、第2の実施形態は異なる名前空間を使用し得る。
i2cインターフェースを使用してTMD26723への通信チャネルを開き、それにより、チャネルを表すシングに対して作用する動作をイネーブルする動作を含め、追加の動作を実施形態に含めることができる。これは、一実施形態において多数のTMD26723センサが使用される場合、有用である。
TM(piborg.ultraborg)
Ultraborgは、超音波モジュールサポート、i2c通信を用いたインターフェースボードを用いた精密サーボ制御である。ボードは、4HC-SR04超音波距離センサコネクタを提供し、最高で4つのサーボモータコネクタを提供する。HC-SR04は、視野角30度を有する。
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
Figure 0007256742000042
TM(piborg.ultraborg)は、データシートによって指定されるように構成されたi2c通信を使用してUltraborgと対話して、表8に示されるP(TM(piborg.ultraborg))動作を提供するように構成される計算機である。
Figure 0007256742000043
なお、好ましい実施形態では、P(TM(i))は、P(TM(thing))とアルゴリズム的に対話して、P(TM(i))動作が作用することができるシングにアクセスして対話する。P(TM(i))は、P(TM(thing))と対話して、P(TM(i))動作によって許される値の範囲内にない任意の値に対してステータスをFAILED(不合格)に設定し、理由をINVALID VALUE(無効な値)に設定する。
好ましい実施形態では、動作の参照名は、指定された名前空間において構成されるが、第2の実施形態は異なるリストを使用し得る。
一実施形態では、HC-SR04超音波センサは、サーボモータの運動によって回転可能な表面に搭載される。このようにして、サーボモータは、30度増分等で表面を回転させることができ、超音波センサが増分的により広いエリアをカバーできるようにする。
第2の実施形態では、HC-SR04超音波センサは、前向き等の固定位置に搭載されて、固定された30度視野を用いて4mまでの距離を測定する。
TM(Ublox.neo-6m-gps)
Neo-6M-GPSは、標準GPIOインターフェースを使用するublox 6 GPSモジュールROM結晶である。
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
Figure 0007256742000044
TM(Ublox.neo-6m)は、データシートによって指定されるように構成された汎用i/oを使用してu-blox Neo 6M GPSと対話するように構成され、表9に示されるP(TM(Ublox.neo-6m))動作を提供する計算機である。
Figure 0007256742000045
なお、好ましい実施形態では、P(TM(i))は、P(TM(thing))とアルゴリズム的に対話して、P(TM(i))動作が作用することができるシングにアクセスして対話する。P(TM(i))は、P(TM(thing))と対話して、P(TM(i))動作によって許される値の範囲内にない任意の値に対してステータスをFAILED(不合格)に設定し、理由をINVALID VALUE(無効な値)に設定する。好ましい実施形態では、動作の参照名は、指定された名前空間において構成されるが、第2の実施形態は異なるリストを使用し得る。
TM(HC-SR501)
HC-SR501焦電型赤外線PIR運動センサ検出器モジュール。以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
Figure 0007256742000046
TM(HC-SR501)は、データシートによって指定された汎用I/Oインターフェースを使用してPIRと対話するように構成され、表10に示されるP(TM(HC-SR501))動作を提供する計算機である。
Figure 0007256742000047
なお、好ましい実施形態では、P(TM(i))は、P(TM(thing))とアルゴリズム的に対話して、P(TM(i))動作が作用することができるシングにアクセスして対話する。P(TM(i))は、P(TM(thing))と対話して、P(TM(i))動作によって許される値の範囲内にない任意の値に対してステータスをFAILED(不合格)に設定し、理由をINVALID VALUE(無効な値)に設定する。好ましい実施形態では、動作の参照名は、指定された名前空間において構成されるが、第2の実施形態は異なるリストを使用し得る。
Cirrus Logicオーディオカード
Cirrus Logicオーディオカードは、Cirrus Logicと協力してElement14によって製造され、カメラと並行してオーディオを捕捉するPCサウンドカードに類似した柔軟性並びにステレオデジタル捕捉及び再生を用いた実験をRaspberry Pi(登録商標)ユーザに提供する。
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
Figure 0007256742000048
TM(Element14.CLAC)は、データシートによって指定されるCirrus Logicオーディオカードインターフェース、ステレオライン入力に接続されたステレオマイクロホン、2つの外部電源ステレオスピーカがステレオライン出力に接続され、と対話するように構成され、表11に示されるP(TM(Element14.CLAC))動作を提供する計算機である。
Figure 0007256742000049
なお、好ましい実施形態では、P(TM(i))は、P(TM(thing))とアルゴリズム的に対話して、P(TM(i))動作が作用することができるシングにアクセスして対話する。P(TM(i))は、P(TM(thing))と対話して、P(TM(i))動作によって許される値の範囲内にない任意の値に対してステータスをFAILED(不合格)に設定し、理由をINVALID VALUE(無効な値)に設定する。好ましい実施形態では、動作の参照名は、指定された名前空間において構成されるが、第2の実施形態は異なるリストを使用し得る。
Cirrus Logicオーディオカード TM(Element14.CLAC)の例示的な実施形態を以下に示す。
https://www.element14.com/community/servlet/JiveServlet/downloadBody/65689-102-2-291406/Wolfson%20Audio%20Card%20Schematic%20Diagram.pdf
TM(TI.TMP007)
TMP007は、赤外線(IR)放射により遠くの物体の温度を検出するウェーハチップスケールパッケージ(WCSP)内の統合デジタル熱電対列温度センサである。http://www.ti.com/lit/ds/symlink/tmp007.pdfを参照のこと。
以下は、シング言語で表現されるコンテンツの例であり、上記コンテンツはTM(i)を記述する。
Figure 0007256742000050
TM(TI.TMP007)は、TMP007データシートによって指定されたようにTI TMP007と対話するように構成され、表12に示されるP(TM(TI.TMP007))動作を提供する計算機である。
Figure 0007256742000051
P(TM(i))の例
上述したように、シングマシンは多数のTM(i)で構成され、各TM(i)は、手順P(TM(i))を用いる計算機である。様々なP(TM(i))の例には、限定ではなく、以下がある。
P(TM(format))動作は、P(TM(thing))と対話して、P(TM(output))動作が出力するアウトバウンドコンテンツ応答として応答名前空間シングをフォーマットする。なお、P(TM(format))及びP(TM(output))のアルゴリズムステップは、P(TM(format.output))等の適切なP(TM(i))によって与えられる1つの手順として結合することができる。
P(TM(runtime))動作は、P(TM(thing))と対話して、一連のステートメントを表す、構成されたタスクthing:graphを実行し、各ステートメントはP(TM(eval))によって評価され、対応する実行可能thing:graphはP(TM(perform))によって実行される。
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グラフを実行する
動作を提供する。
P(TM(runtime))は、1組のブートアクティブシング内のアクティブシングとして構成することができる。P(TM(bootstrap))動作は、通信チャネルを初期化し、その通信チャネルを表すシングを設定することができる。P(TM(parse))動作は、P(TM(thing))と対話して、コンテンツを読み出す通信チャネルとして上記シングにアクセスして対話することができる。
P(TM(runtime))は、1組のブートストラップアクティブシング内のアクティブシングとして構成することができる。P(TM(bootstrap))動作は、通信チャネルを初期化し、その通信チャネルを表すシングを設定し、次に、P(TM(runtime))の実行を要求することができる。P(TM(parse))動作は、P(TM(thing))と対話して、コンテンツを読み出す通信チャネルとして上記シングにアクセスし対話することができる。
未知のシングの場合、P(TM)はP(TM(bind))と対話することができ、P(TM(bind))は、P(TM(thing))と対話して、P(TM)が知っているシングの分類のメンバとしてバインドされていないシングをバインドする動作を提供する。
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アルゴリズム手順が使用可能である。
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のアクセス可能アクティブシングのコンテキストを設定することができる。
図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組の構成文書から動的に構成される。
図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)が実行することができる実行可能動作のグラフを変更する。
好ましい実施形態では、入力デバイスは電磁波デバイスである。この構成では、thing:graph(monad)の一部は、環境からの入力に基づいてアルゴリズム的に変更され、したがって、P(TM)は、P(TM)が実行されている環境のニーズに適応する。
一環境では、P(TM)動作は、「どんなサービスをお望みですか(How can I be of service)」をユーザに尋ねるオーディオメッセージを再生し、第2の動作はユーザ応答を記録する。音声-テキスト動作はオーディオをテキストに変換し、テキストはthing:graphとして解析される。分類器動作はアルゴリズム的に会話の話題を分類する。P(TM)は、話題に関連するタスクについての要求を第2のシングマシンに通信する。情報の受信に応答して、第1のP(TM)はアルゴリズム的にタスクを構成し、タスクを実行する。
第2の実施形態では、シングマシンは、受信光学サブシステム組立体を含み、ユーザ提供の光学識別子(OI:Optical Identifier)を照会するのに使用され、それに応答して、そのユーザに固有の実行可能thing:graphを含むようにthing:graph(monad)の一部を構成する。ユーザが、OIを光学リーダから除去する等によって肯定動作を実行する場合、P(TM)はユーザに固有のthing:gram(monad)のその部分を忘れる。
第3の実施形態では、シングマシンは、ユーザを識別する、EyeLock等のバイオメトリックデバイスを含み、そのユーザに固有の実行可能thing:graphを含むようにthing:graph(monad)の一部を構成する動作を実行する。ユーザが、バイオメトリックデバイスのエリアから去る等によって肯定動作を実行する場合、P(TM)はユーザに固有のthing:gram(monad)のその部分を忘れる。
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))手順を修飾することができ、したがって、「設定前、この動作を実行」又は「設定後、この動作を実行」を可能にする。
シングの各インスタンスは、P(TM(thing))によって使用される1組の非可変構成要素で構成される。好ましい実施形態では、上記組は、thing:name、thing:value、及びthing:relationship-setを含む。一実施形態は、構成ファイル内のコンテンツ等のP(TM(thing))が対話することができる、コンテンツを通して指定される追加の構成要素を組み込むように組を拡張することができる。
図35を参照すると、初期化中、P(TM(thing))は、シングマシンのthing:graphのルートとして、モナドに等しい名前をシングに割り振り初期化し、コンテキストという名前をシングに割り振り初期化し、アサート「名前がモナドに等しいシングがあり、そこには名前がコンテキストに等しいシングがある」が真であるような関係を設定する。
図36を参照すると、コンテキストは、1つ又は複数の自由変数及び自由変数間の関係の式で構成されるリストを解決する範囲内にある1組のシングを認定する。例として、http://www.iotnamespace.com/thing、request:statement、及びstatement.thing[1]はリストの例である。
図37を参照すると、好ましい実施形態では、コンテキストシングはthing:stackであり、これを通して、P(TM(thing))はアルゴリズム的に、シングをスタックに押し入れ、又はシングをスタックから押し出し、それにより、コンテキストを変更することができる。P(TM(thing))はアルゴリズム的に、リストを解決する範囲内にある1組のシングを認定する際、スタックの最上部におけるシングを現在のコンテキストとして使用する。
図36を再び参照すると、好ましい実施形態では、現在のコンテキストシングは、名前空間シングと呼ばれる1つ又は複数のシングへの関係を含む関係セットを有する。シングの名前は名前空間の名前である。P(TM(thing))はアルゴリズム的に、単に同じ名前空間内で認定されることによってのみ関係する場合であっても、関連するシングの名前付きシンググラフを表すシングとして、名前空間シングを使用する。URIスキーム名は、名前区間であるシングの名前であることができる。URIスキーム固有部分は、その名前空間において認定されるシングを識別するリストである。
図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)))シンググラフ
を含む。
図39を参照すると、一実施形態では、G(P(TM(i)))は、P(TM(i))の実行からの応答を含むシングの記述等の追加のシング情報を含むことができる。
一実施形態は、P(TM(i))が作用することができるシングの様々な順列を示す、所与のG(P(TM(i)))の多数のG.requestグラフを含むことができる。そのような一実施形態は、対応する応答グラフを構成するシングを示す多数のG.responseグラフを更に含むことができる。
図40は、非一時的メモリにおいてシングを設定するP(TM(Thing.set))手順に対応するG(P(TM(thing.set)))グラフである。request:uriシングの値は、設定すべきシングのリストであり、その値は、指定された場合、request:valueシングの値に設定される。request:usingシングが指定される場合、その値は、request:uriシングの値によって識別されるシングを設定する際に使用するシングを表すリストである。
図41は、リストrequest:uri、非一時的メモリによって与えられるシングの表現を得るP(TM(Thing.get)手順に対応するG(P(TM(thing.get)))グラフである。修飾語句の名前、値、関係セット、又は関係を使用して、シングについて要求される特定の情報を示すことができる。情報は、request:asシングの値によって示されるリストによって与えられるシングの値として保存される。
図42は、非一時的メモリからシングの表現をアンセットするP(TM(Thing.unset)手順に対応するG(P(TM(thing.unset)))グラフである。アンセットするシングは、request:uriシングの値によって与えられる。
当業者は、シング及び関係を監督して、同時実行、持続性、キャッシュ、同期、ロック(読み出し/書き込みロック等)、所有権、許可(所有者、グループ、又は全てによる読み出し/書き込み/実行等)等の特徴を更に可能にする代替のアルゴリズム手順でP(TM(thing))を置換することができる。
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)新しいコンテキストシングをアンセットする
動作を提供する。
一実施形態では、ステップa及びステップbは、アサート:(リストがrequest:statementに等しいthing:statementがあり、そこには名前が.nameに等しいシングがある)及び(リストがverb.vocabularyに等しいシングがあり、そこには名前が.nameに等しく、且つシングがアクティブシングであるthing:verbがある)を満たすアクティブシングを選択することからなる。
好ましい実施形態では、ステップbは、アサートが満たせない場合、デフォルトアクティブシングを選択するステップを含むことができる。
インスタンスを有するアクティブシングの場合、P(TM(eval))は、thing:statementがインスタンスのG.requestグラフのサブグラフであるアクティブシングのインスタンスを選択するステップを含むことができる。
一実施形態では、P(TM(eval))はP(TM(bind))と対話して、アクティブシング動作が作用することができる実行可能コンテキストシング内のシングとして、実行可能アクティブシングの対応するG.requestグラフを使用して、thing:statementシングによって認定されるシングをバインドするステップを含む。
一実施形態では、P(TM(eval))は、命令文、宣言文、照会文、又は感嘆文としてステートメントのタイプをアルゴリズム的に分類し、アクティブシングを実行して、ステートメントの上記クラスを評価する。これにより、P(TM(eval.declarative))手順は、宣言文をアルゴリズム的に評価することができ、P(TM(eval.imperative))手順は、命令文をアルゴリズム的に評価することができ、P(TM(eval.interrogative))手順は、照会文をアルゴリズム的に評価することができ、P(TM(eval.exclamatory))手順は、感嘆文をアルゴリズム的に評価することができる。
P(TM(eval))の動作は、実行可能thing:statementにデフォルトのアクティブシングをアルゴリズム的に選択することができ、thing:statementをアルゴリズム的に評価して、使用により適切なアクティブシングを決定することができる。デフォルト動作はP(TM(thing))と対話して、デフォルト動作が実行されたthing:statementの分類に関連付けられたカウンタシングをインクリメントして、シングマシンがthing:statementのその分類を実行するように求められた回数を表すことができる。実行可能通信動作を使用して、P(TM(i))は、第2のマシンと通信して、上記分類に関連するコンテンツを得ることができる。P(TM(parse))動作は、thing:statementを解析して、評価し実行することができる。このようにして、シングマシンは、シングマシンが実行されている環境のニーズに適応することができる。(ここでの目標は、マシンに何かをするように求めることである。マシンはデフォルト動作を選択し、次に、求められたことが何であれ、それを評価し、実行するのによりよい動作があるか否かを調べる。ない場合、マシンはデフォルトを実行する。デフォルト動作は話題を分類し、マシンがその話題に関連する何かをするように求められた回数のカウンタをインクリメントする。このように、カウンタが閾値になると、マシンは、その話題について教えるように誰かに求めることができ、又はその話題に関連する本を購入して読むことができる。
一実施形態は、response.asシングが指定される場合、P(TM(eval))が、新しいコンテキストシングをアンセットする前、現在コンテキストにおけるresponse.asシングのサブグラフとして、新しいコンテキストにおいてresponse:namespaceシングのサブグラフをバインドすることができるように、コンテキスト間でグラフを統合することができる。
一実施形態では、P(TM(eval))は、G.urrを実行するステップの前、現在コンテキストとして新しいコンテキストをコンテキストスタックに押し入れるステップを含むことができる。第2の実施形態では、並列処理のコンピュータ分野の当業者は、プロセス制御ブロックシングのスレッド固有データのグラフを表すシングを使用し、上記データは、P(TM(thing))を解決するために、現在コンテキストへの参照を含む。
図43を参照すると、G.requestは、動作が、thing:statementであるrequest:statementに作用することができることを示す。したがって、request:statementシングのサブグラフは、thing:statementであるシングのクラスのメンバであるための要件を満たす必要がある。
図44を参照すると、G.requestサブグラフは、動作が、thing:listingであるrequest:usingシングに作用することができることを示す。このグラフは、要求名前空間シングがあり、そこには、名前がステートメントに等しい(thing:sttina)シングがなく、名前がusingに等しいシングがあることが真である場合、適用される。このG.requestサブグラフは、評価アクティブシングを選択する代替の方法を提供する。
人工知能のアルゴリズム的使用が明示的に意図される。P(TM(classifier))は、thing:statementを分類する動作を提供し、P(TM(eval))は、上記分類を使用して、thing:statementを満たすアクティブシングを選択する際、P(TM(eval))が利用可能な1組のアクティブシングを識別する。他の形態の人工知能を統合することもできる。例えば、シンボリックAI、サブシンボリックAI、及び統計学的AIアルゴリズム手順を使用することができる。
Google Researchは、主に学術活動及び研究活動に使用されるオープンソース機械学習ライブラリであるTensorFlowをリリースした。機械学習のコンピュータ科学分野の当業者は、TensorFlow APIを使用して、ディープラーニング用のP(TM(classifier))を開発することができる。TensorFlow APIは、構成するTensorflow手順を表す1組のアクティブシングとしてP(TM(thing))と直接対話するように変更することができる。トレーニングデータは1組のアクティブシングを通して提供することができる。
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))と対話して、その結果と対話する動作を提供する。
その結果は、現在の要求thing:statementに関連する分類(クラス)を識別する。P(TM)に既知のシングのクラスの場合、P(TM(eval))はP(TM(thing))と対話して、クラスに関連するボキャブラリを含むようにコンテキストを設定し、そのコンテキストにおいて現在の要求thing:statementを評価する。
P(TM(eval))は、話題が現在の要求thing:statementに適用される回数を示すその話題を表すカウンタをインクリメントし、それにより、分類器は、最も頻繁に使用される話題に従ってthing:statementを分類することができる。P(TM)が所与の話題のボキャブラリを有さない場合、P(TM(eval))は、デフォルト動作を表すthing:statementを生成して評価することができる。
第1のP(TM)は、Wi-Fi通信等を通して第2のP(TM)と通信して、P(TM)が評価し実行することが一般に求められるthing:statementのクラスに関連するコンテンツを要求することができる。上記コンテンツは、アクティブシング等のシング及びタスク等のアクティブシングの動作が作用することができるシングを表し得る。
一実施形態は、所与の言語をサポートし、特定の機械学習アルゴリズムを実装し、多数の機械学習アルゴリズムを実施し、性能改善を提供し、又は第2のマシンと対話してthing:statementを評価し、第3のマシンと対話して、thing:statementを実行する実施形態等の実施形態に適切な評価をアルゴリズム的に実行する評価動作でP(TM(eval))を置換することができる。本発明の範囲内で多数のアルゴリズム的変更が可能なことを当業者は理解する。
修飾語句は、デフォルト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を閉じる、を含む」等の宣言文を表すステートメントを評価することとは異なる。
動作が作用することができるシングのタイプをP(TM(i))のthing:graphに組み込み、動作が応答することができるシングのタイプを組み込むことにより、開く(open)等の一般的な動詞名に適切な動作を選択することができる。例として、以下のそれぞれは非常に異なる動作を有するが、それぞれ共通の動詞名を使用する:電子メールを開く、ゲートを開く、銀行口座を開く。正確な動作の選択は、部分的に、何が開かれているかに依存する。動作を作用することができるシングのタイプの記述を含むことにより、P(TM(eval))は、生成すべき実行可能thing:graphについて適切な選択をすることができる。
P(TM(parse))
P(TM(parse))は、要求を表す入力を解析し、P(TM(request))とアルゴリズム的に対話して、解析された入力を表すシングを設定する動作を提供する。好ましい実施形態では、P(TM(parse))はXML1.1パーサである。
図46を参照すると、リストrequest:streamによって識別されるシングの値は、解析するストリームである。request:statementにデフォルト設定される、request:asシングの値によって識別されるシングは、解析された入力要求を表すthing:statementとして設定される。
図47を参照すると、例示的なXMLフラグメントは例示的なグラフとして解析される。なお、要素属性は、「そこにはインスタンスがある(such that there is an instance)」関係(thing:sttiai)を介して示され、一方、要素は、「そこには~がある(such that there is a)」関係(thing:sttia)を介して示される。
図48を参照すると、request:inputリストによって与えられるシングの値は、解析する入力である。TM(eval)は、要求グラフに基づいて適切なG.request(P(TM(parse)))グラフを選択することができ、適切なバインドを促進する。
なお、パーズ1とパーズ3との間には、特に動作がストリームから読み取る1において、僅かであるが重要な違いがある。代替的には、3において、動作はrequest:inputリストの値(値は解析するコンテンツである)を使用する。
これは、特定の場合、コンテンツをファイルから取得し、他の場合、動作がコンテンツを生成し、シングの値として記憶するため、必要である。
P(TM(request))
P(TM(request))は、P(TM(Thing))とアルゴリズム的に対話して、thing:statementシンググラフとして、request:usingシングの値として与えられるリストによって識別されるシングを使用して、request:asシングの値として与えられるリストによって識別されるシングを設定する動作を提供する。
第1のP(TM(i))を使用して、thing:statementシングを繰り返し構築し、次に、P(TM(request))とアルゴリズム的に対話して、request:statementシングを設定することができる。図49はG(P(TM(request)))グラフを示す。request:asシングのデフォルト値はrequest:statementである。
P(TM(bind))
P(TM(bind))は、シングをシングの所与のクラスのメンバとしてバインドしようとして、1組のバインド規則をアルゴリズム的に適用する。
例として、値がパターン「[0-9]{1,}」に一致するシングは、thing:integer(整数値を有するシング)としてバインドすることができ、一方、値がパターン「[0-9A-Fa-f]」に一致するシングは、thing:hexadecimal(16進値を有するシング)としてバインドすることができる。thing:thing、thing:text、thing:integer、thing:float、及びthing:string等のシングの基本クラスに加えて、推論規則又はスキーマを使用して追加のタイプを表現することができる。
図50を参照すると、G.requestサブグラフは、P(TM(bind))が作用することができるシングを示す。request:usingによって与えられるシングの値は、1組のバインド規則を識別するリストである。request:bind.listingによって与えられるシングの値は、バインドすべきthing:graphを識別するリストである。request:response.asによって与えられるシングの値は、応答を設定すべきthing:graphを識別するリストである。request:response.asが空の場合、バインド中のシングのグラフは更新される。
P(TM(bind))は、非バインド又はバインド等の状態情報を使用して、シングが既にバインドされているか否かを示すことができる。これにより、P(TM(bind))は、状態をチェックし、非バインドシングのみにバインド規則を実行することができる。P(TM(bind))は、「発見」及び「未発見」状態を更に含み、シングがバインドされ発見されているか、それともバインドされ、未発見であるかを示すことができる。好ましい実施形態では、P(TM(unbind))はP(TM(thing))と対話して、非バインド・未発見状態にシングをリセットする。
第1の実施形態では、コンピュータ科学論理の当業者は、推論規則を使用して、シングのクラスのメンバとしてシングをバインドする。規則は、アサート及びクラス識別子で構成される。P(TM(bind))はP(TM(thing))と対話して、バインドすべきシングについてのアサートとして規則をアルゴリズム的に適用し、満たされた場合、P(TM(bind))はP(TM(thing))と対話して、上記クラス識別子のメンバとしてシングを識別する。
第2の実施形態では、コンピュータ科学マークアップ言語の当業者は、thing:schemaマークアップ言語を使用して、シングクラスを記述することができる。業界標準マークアップスキーマは、http://schema.org.docs/schemas.htmlから入手可能である。上記スキーマは、それぞれが1組の属性が関連付けられた1組のタイプである。Schema.orgスキーマ情報についてはhttp://schema.org/docs/documents.htmlを参照のこと。これは参照により援用される。
図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であるシングがある)ことを表現するアサートである。
図52を参照して、リストlocal:objectによって与えられる非バインドthing:graphを提示する。
図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に設定される。
コンピュータ科学論理の当業者は、推論規則を使用して、シングについての推測をアルゴリズム的に行うことができる。推論規則は、前提を表す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組のスキーマの推論規則を生成することができる。
なお、http://www.schema.org/PerformActionは、実行可能動作を実行するマシンではなく、芸術の実行に参加する動作に関連する。schema.orgの動作は、それにより可能になる動作及びクライアントがいかにこれらの動作を呼び出すことができるかをウェブサイトが説明できるようにするボキャブラリに関連することにも更に留意する。http://blog.schema.org/2014/04/announcing-schemaorg-actions.htmlを参照のこと。これは参照により援用される。
P(TM(perform))
P(TM(perfrom))は、thing:statementにおいてP(TM(i))への参照を見つけ、P(TM(i))動作を実行させることにより、実行可能thing:statementをアルゴリズム的に実行する。動作からの応答は、満足、非満足、又は不合格のいずれかである。P(TM(perform))動作は、この応答を示すようにステータスシング値を設定する。
図55を参照すると、G.requestサブグラフは、P(TM(perform))動作がrequest:statementに対して作用することを示す。
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))
で構成することができる。
図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サブグラフを含み得、上記サブグラフは、タスクが作用すべきシングを表す。
P(TM(task.get))はP(TM(thing))と対話して、thing:taskの表現をアルゴリズム的に取得し、主に、P(TM(task.perform))等のそのグラフにアクセスする必要がある他のP(TM(i))によって使用される。
P(TM(task.unset))はP(TM(thing))と対話して、thing:thing(monad)グラフから指定されたタスクをアルゴリズム的にアンセット(削除)する。
図57を参照すると、P(TM(task.perform))はP(TM(thing))、P(TM(eval))、及びP(TM(perform))と対話して、request:statement.taskの値によって識別されるthing:taskの動作サブグラフによって与えられるthing:statementサブグラフのシーケンスをアルゴリズム的に評価し実行する。
一実施形態では、thing:taskグラフは、thing:task動作サブグラフを評価し実行する必須条件として評価し実行することができるthing:statementサブグラフを含むことができる。これにより、1組のアクティブシングを実行して、動作サブグラフを表すコンテンツ表現を取得し、評価し実行すべき動作サブグラフのthing:statementシーケンスとして上記コンテンツを解析することができる。他の動作は、識別、認証、及びthing:taskの実行の検証、認可、又は拒絶の認可を含むことができる。同様に、必須条件動作を使用して、アクティブシングの構成等のthing:taskの評価前に必須条件が満たされることを保証することができる。
一実施形態では、thing:taskは、ステータスシングの値に応じて、評価し実行するthing:statementを表すon.statusサブグラフを含むことができる。各thing:statementが評価され実行された後、一実施形態はP(TM(thing))動作と対話して、ステータスをアルゴリズム的にテストして、値が満足されるか、非満足であるか、それとも不合格であるかを調べ、対応するon.status.satisfied、on.status.unsatisfied、又はon.status.failedのthing:statementサブグラフを評価し実行することができる。
一実施形態は、ステータスシングの値に応じて評価し実行するthing:statementを表すon.statusサブグラフを含むことができる。各thing:statementが評価され実行された後、一実施形態はP(TM(thing))動作と対話して、ステータスをアルゴリズム的にテストして、値が満足されるか、非満足であるか、それとも不合格であるかを調べ、対応するon.status.satisfied、on.status.unsatisfied、又はon.status.failedのthing:statementサブグラフを評価し実行することができる。
P(TM(format))
P(TM(format))は、P(TM(thing))と対話して、thing:graphをトラバースし、上記thing:graphのフォーマットされた表現を生成する動作を提供する。例として、thing:graphの表現は、XML文書、HTML文書、シング文書、又は一実施形態により求められる他のそのようなフォーマットとしてフォーマットすることができる。
図58を参照すると、request:statement.listingは、値が、P(TM(format))がフォーマットすべきthing:graphを表すリストであるシングを識別する。request:statement.asは、値が、生成されたフォーマット応答を表すthing:graphの表現であるシングを識別する。request:statement.usingは、値が所望のフォーマットの表現であるシングを識別する。
使用するデフォルトP(TM(format))はThing-XMLである。トラバースされるthing:graphのノードは、ルート要素としてフォーマットされる。インスタンスであるサブグラフは、属性としてフォーマットされ、一方、非インスタンスサブグラフは、内部要素としてフォーマットされる。
一実施形態では、P(TM(format))はP(TM(thing))と対話して、thing:graphをトラバースして、テキストストリーム及びP(TM(text-to-speech))を生成し、合成発話テキスト表現を含む可聴ストリームへのテキストストリームの合成を実行することができる。P(TM(play-audio))は可聴ストリームをサウンドサブシステムに通信して、可聴再生を生成する。
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を生成する動作を提供する。
コンピュータ科学ウェブサービスの当業者は、1組のHTTPメソッドアクティブシングを使用して、ボキャブラリ内のconnect、delete、get、head、options、post、put、及びtrace等のHTTPメソッドを提供することができる。1組のメソッドは、http:namespaceに対して構成することができる。同様に、当業者は、HTTPSプロトコルに関連する1組のメソッドを提供することができ、上記組は、https:namespaceのアクティブシングとして構成することができる。
図59を参照すると、URIシングは、ドメインシング、パスシング、及びヘッダシングを認定する要求シングを認定する。P(TM(http:get))はP(TM(thing))と対話して、URIシングとアルゴリズム的に対話し、HTTP Getメソッド要求(図60に示される)を生成し、上記要求をドメインウェブサービスに通信する。これに応答して、P(TM(http:get))は応答を受信する(図61参照)。
図61を参照すると、P(TM(http:get))は、HTTP Get メソッド要求から応答を受信し、応答を解析し、P(TM(thing))と対話して、図62に示される等の応答を表すthing:graphを設定する動作を実行する。
request.headerシングに、request:headerによって認定されるシングとしてそれぞれ表現される1組の要求ヘッダフィールド構成要素を構成することができる。同様に、応答ヘッダの受信及び解析に応答して、response.headerシングに、シングとしてそれぞれ表現される1組の応答ヘッダフィールド構成要素を構成することができる。
一実施形態では、P(TM(http:get))は、P(TM(thing))と対話して、応答において許容可能な媒体タイプを表す1組のシングを取得する動作を実行し、それに従って許容要求ヘッダフィールドを要求ヘッダthing:subgraphに追加する。第2の実施形態では、P(TM(http:get))は、P(TM(thing))と対話して、応答において許容可能な1組の符号化を取得する動作を実行し、それに従って許容符号化ヘッダフィールドを要求ヘッダに追加する。
P(TM(parse.html))
P(TM(parse.html))はP(TM(thing))と対話して、HTMLコンテンツを表すthing:graphを解析して1組のthing:graphにする動作をアルゴリズム的に提供する。
図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に追加される。
図64を参照して、HTMLコンテンツにおける例示的なマイクロデータを示す。P(TM(parse.html))は、P(TM(thing))と対話して、上記コンテンツを解析し、図65に示されるように、thing:graphとしてマイクロデータを表現する動作を提供する。
示されるように、第1のスキーマは、編成等の第2のスキーマを含むことができ、http://www.schema.orgによって記述されるようなアドレスを含むことができる。
TM(openssl)
P(TM(openssl))の部分は、本開示に含まれるOpenSSLライセンス同意書の下でカバーされる。TM(openssl)は、OpenSSLオープンソースソフトウェア及び手順P(TM(OpenSSL))が構成された計算機である。OpenSSLは、現状技術において周知であり、TLS及びSSLプロトコル動作、汎用暗号ライブラリを提供し、公開鍵基盤のプログラムをサポートするためにウェブサービスと共に広く使用されている。詳しくはhttp://www.openssl.orgを参照のこと。
P(TM(openssl))thing:verbsを学習するに当たり、P(TM)は、認証機関によって一般に提供される1組の動作を実行することができる。例えば、コンピュータ科学公開鍵基盤の当業者は、P(TM(openssl))動詞動作を使用して、コンテンツを暗号化し、コンテンツを復号化し、ハッシュコードを生成し、証明書署名要求を生成し、証明書に署名し、自己署名証明書を作成し、証明書要求を検証し、証明書を検証し、証明書を無効化し、証明書の構成要素をアルゴリズム的に調べ、デジタル署名を生成し、デジタル署名を検証し、通常、認証機関に関連付けられた1組のサービスを提供し、ある目的での証明書の使用を認可し、SSL/TLSプロトコルの使用を可能にすることができる。
P(TM)と併用する場合、OpenSSLソースコードは、元のCソースコード関数がP(TM(thing))と対話してシングをパラメータとして参照するように変更された。コンピュータ科学の当業者は、同様の既存のソースコードライブラリを変更し、構成動作を使用して追加のP(TM(i))を構成することができる。
一般に、OpenSSLコマンドは、コマンド名がthing:verbとして構成され、コマンドが作用するパラメータが、thing:verb動作が作用することができるシングとして構成される場合、P(TM)が実行することができる動作として構成される。
P(TM(i))の幾つかは、データを表すコンテンツに対して作用することができ、これは更に、証明書署名要求、証明書、パスワード、秘密鍵、公開鍵、構成情報、無効化する証明書、拡張、ランダムデータ、又は動作が作用することができる何らかの他のタイプのシングとして分類し得る。幾つかの場合、コンテンツはP(TM(i))によって解析され、シンググラフにおいてシングとして表される一方、他の場合では、コンテンツは、リストによって与えられるシングの値として使用される。多くの場合、動作が作用することができるシングは、そのシングのユニフォームリソース要求として解釈されるThing.urrとして指定することができる。同様に、P(TM(i))は、データを表すコンテンツをアルゴリズム的に生成し得、これは、上述したように更に分類し得る。
幾つかの場合、コンテンツはP(TM(i))によって解析され、thing:graphにおいてシングとして表し得、一方、他の場合コンテンツは、リストによって与えられるシングの値として使用することができる。動作はシステムデバイスドライバと対話して、コンテンツを取得するか又は第2の記憶装置に記憶し、コンテンツを第2のP(TM)に通信し、又はコンテンツをセンサ若しくはデバイスに通信し得る。
一般に、値を有することができるシングの場合、シングは、P(TM(evaluate))によって評価中のthing:statementにおいてthing:name.urr=URRとして指定されて、実行可能thing:graphを生成し得る(ここで、URRはユニフォームリソース要求である)。明確にするために、これをステップ1と呼ぶ。
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を使用する。
P(TM(openssl))動作の特定の例を以下のページに提供し、読み手に十分な説明を提供し、次に、同じフォーマットに従うopensslコマンドの残りを提供する。
P(TM(i))動作の幾つかは、共通の組のシングに対して作用することができ、これを以下の表13に提供する。
Figure 0007256742000052
P(TM(openssl.ca))
P(TM(openssl.ca))は、最小認証機関の動作を提供する。
openssl.ca動詞動作が作用することができるシングには、以下の表14に列挙するものがある。
Figure 0007256742000053
Figure 0007256742000054
P(TM(openssl.x509))
P(TM(openssl.x509))は、証明書情報を提供し、証明書を様々な形態に変換し、証明書要求に署名し(ミニ証明機関と同様)、又は証明書信用設定を編集する動作を提供する。
これは、証明書情報を表示し、証明書を様々な形態に変換し、「ミニCA」のように証明書要求に署名し、又は証明書信用設定を編集するのに使用することができる。openssl.x509動詞動作が作用することができるシングを表15に列挙する。
Figure 0007256742000055
Figure 0007256742000056
Figure 0007256742000057
Figure 0007256742000058
Figure 0007256742000059
Figure 0007256742000060
Figure 0007256742000061
P(TM(openssl.genrsa))
P(TM(openssl.genrsa))は、RSA秘密鍵を生成する動作を提供する。P(TM(openssl.genrsa))動作が作用することができるシングは、表16に含まれる。
Figure 0007256742000062
P(TM(openssl.req))
P(TM(openssl.req))は、署名書要求及び証明書生成動作を提供する。
P(TM(openssl.req))動作が作用することができるシングには、表17に列挙されるものがある。
Figure 0007256742000063
Figure 0007256742000064
Figure 0007256742000065
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))を有する計算機である。
同様に、’545IOT-Modulesのアルゴリズム動作は、P(TM)内で使用するように構成される1組のP(TM(i))として実施することができる。したがって、’545の教示は、動作を表すシング及び動作が作用することができるシングの組として実施することができる。
例示的なP(TM)
例示的なP(TM)は以下のようにスタートアップ、メイン、及びシャットダウンを含む。
1.P(TM(startup))、
2.P(TM(main))、及び
3.P(TM(shutdown))。
一実施形態では、P(TM)は、シングマシンの非一時的補助記憶装置に記憶される。第2の実施形態では、P(TM)は、2016年1月29日に出願された「Optical Identifier System and Methodsという名称の米国特許出願第62/288,545号に示されるように、光学識別子のコードページに符号化され、この米国特許出願は全体的に、参照により本明細書に援用される。光学サブ組立体を有するシングマシンは、光学識別子を光学的に照会して、プログラム命令の表現を実行可能メモリに提供することができる。
ブートストラップ手順等のTMの第1の手順は、コードページ、非一時的補助記憶装置等から、又は電磁波デバイスを使用して受信された等のP(TM)を実行可能プロセッサメモリにロードし、プロセッサにP(TM)を実行させる動作をプロセッサに実行させる。
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))を実行する
動作を提供する。
好ましい実施形態では、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))
を含むブート計算手順を表すブートアクティブシングを自己構成する動作を実行する。
P(TM(bootstrap))は、アルゴリズム的に、
1.P(TM(parse))と対話して、コンテンツを解析し、P(TM(request))と対話して、対応するthing:statementグラフを生成し、
2.P(TM(eval))と対話して、アクティブシングのコンテキストにおいて上記グラフを評価し、実行可能thing:statementグラフを生成し、
3.P(TM(perform))と対話して、上記実行可能thing:statementグラフを実行する
動作を実行する。
一実施形態では、少なくとも1つの要求は、P(TM(i))に対応するアクティブシングを構成する要求を表す。
一実施形態では、少なくとも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関数呼び出しを使用してエントリの値への参照を解決して(この例では、値は動作)、メモリにおける実行可能命令にする。
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を実行する。
上記実施形態では、少なくとも1つの要求は、thing:actionを構成することである。対応する実行可能thing:statementの実行に応答して、P(TM(eval))はP(TM(perform))と対話して、計算手順を実行し、thing:actionを構成する。thing:actionは、thing:task、thing:conditional、又はthing:whileのコンテキスト等のthing:thingグラフのコンテキストにおいて構成し得る。
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のステートメントを評価し実行する。
P(TM(shutdown))はP(TM(eval))と対話して、thing:thingグラフを評価する。好ましい実施形態では、評価するthing:taskは、リストtask:shutdownを使用して識別される。
第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がアクティブシングを通して実施されることが明示的に理解される。
オペレーティングシステムの当業者は、シングオペレーティングシステムP(TM(os)を設計し開発することができる。コンピュータ科学オペレーティングシステム設計の現況技術を有する当業者は、本発明を使用することができ、本発明は、P(TM(thing))とアルゴリズム的に対話して、オペレーティングシステムのルートを表すようにthing:subject(os)シングを監督する動作を提供する手順P(TM(os))を有する計算機としてTM(os)を実施することができる。オペレーティングシステムの構成要素は、thing:subject(os)のサブグラフとして監督される。
P(TM(os))は、プロセス管理、I/O管理、メモリ管理、同期、メモリ管理、エラー処理、ブート、保護、及び土台となるハードウェア構成要素を実行するカーネル等のオペレーティングシステムの動作に関連する1組の手順を提供する1組のP(TM(1,n))で構成することができる。当業者は理解するように、P(TM(scheduler))を統合して、ジョブスケジューリングを可能にすることができる。シングオペレーティングシステムの性能を更に強化する、プログラム依存グラフ、システム依存グラフ、及び他のそのようなグラフのアルゴリズム的な使用が明示的に意図される。
シングルユーザ又はマルチユーザ、シングルタスク又はマルチタスク、分散、埋め込み、リアルタイム、又は仮想オペレーティングシステム等の様々なタイプのオペレーティングシステムを実施することができる。例示的な構成要素には、プロセス管理、メモリ管理、ファイルシステム管理、入出力管理、補助記憶装置管理、ネットワーキング、保護システム、及びコマンドインタプリタシステムの手順がある。
シングは、プロセスID、状態、優先度、プログラムカウンタ、CPUレジスタ、I/O情報、アカウント情報、又はオペレーティングシステム実施形態によって必要とされる他の情報等のプロセスの情報を表すサブグラフを有するプロセス制御ブロックを表すことができる。シングは、スレッド制御ブロックを表すことができる。
デバイスドライバ、実行キュー、実行可能キュー、待機キュー、ファイルシステム、ファイル、記憶装置、メモリ、割り込み、イベント、ユーザ、グループ、及び他のそのようなオペレーティングシステム構成要素は全て、シングとして表すことができる。
読み手は、本願の範囲を超えるオペレーティングシステム設計を理解するために、Nick Blundellの「Writing a Simple Operating System from Scratch」、H. M. Deitelの「Operating Systems 2nd Edition」から始め、オペレーティングシステム設計の複数のクラスに参加することが推奨される。
本システム及び本方法により、人工知能のアルゴリズム的使用が提供される。P(TM(classifier))は、thing:statementを分類する動作を提供し、P(TM(eval))は、上記分類を使用して、thing:statementを満たすアクティブシングを選択する際、P(TM(eval))が利用可能な1組のアクティブシングを識別する。他の形態の人工知能を統合することもできる。例えば、シンボリックAI、サブシンボリックAI、及び統計学的AIアルゴリズム手順を使用し得る。
ニューロボット(NeurBot)及び機械学習
特に、本システム及び本方法は、例えば、ニューロボットによって使用し得る。
私達は、基本的に、ユーザ動力源の機械的イベントに応答して動作を実行することが多い錠、ウォッチ、ディスペンサ等の多くの機械的デバイスと共に成長する。単純な例では、鍵を錠に差し込み、鍵を回して施錠するか、又は施錠解除する。25セント硬貨をガムボール機に入れ、つまみを回し、ガムボール機はガムボールを出す。
基本的に、まず、デバイスに何が要求されているかを評価するデバイスを構築することが望ましい。マシンが、動作を実行する前にそのような要求を評価することができる場合、多くを達成することができる。シングマシンは要求をシングとして表すことができ、通信、プロトコル、パーサ、及びフォーマッタは全てシングであるため、第1のシングマシンは、第2のシングマシンから幾つかのシングをアルゴリズム的に学習することができる。本明細書では、これらのシングマシンを「ニューロボット(NeurBot)」と呼ぶ。
学習は、経験、勉強、又は教えられることを通して知識又は技能を得ることとして定義される。シングマシンは、動作を表すシング及び動作が作用することができるシングとして知識をモデリングする。シングマシンの事前知識は、マシンの初期化中、シングとして表される事実、情報、動詞(アクティブシングを意味する)、及びスキル(タスク及びサービスを意味する)を含む。限られた事前知識を有する子供のようなマシンを構築する場合、その経験に基づいて新しい何か(事後知識)をマシンに学習されることができるであろうか。本システム及び本方法によれば、答えはイエスである。
例示的な目的で、自販機から始める。それぞれが、ボリュームディスカウントの提供、インセンティブの提供、サブスクリプションプリペイ、償還ポイント、多製品ディスカウント等の1つ又は複数の特徴を有する、自販機に可能な多くの構成がある。この一例は米国特許第6575363号に記載されており、この米国特許は全体的に、参照により本明細書に援用され、そのような自販機設計の説明及び参照を提供する。
多くの場合、自販機の所有者はまだ、集金及び補充判断を配送人員に頼っている。少しステップアップするために、自販機はシングマシンとして設計することができる。運動センサ、スピーカ、マイクロホン、GPSロケータ、LCDディスプレイ、及びWi-Fiインターネット接続がシングマシンに追加される。別の例では、赤外線熱検出器を追加することができる。
在庫管理に関連する1組のアクティブシングは、在庫が少ないか、又は在庫切れのとき、マシンがウェブサービスに通知することができるように構成される。所有者/契約者は次に、ドライバーが自販機から集金するための配送日をスケジュールし、追加の製品を販売のために自販機に配置する。基本的には、自販機は所有者のために働き、所有者は金銭、在庫、及び一般に自販機を維持する。
本発明によれば、シングマシンは、ニューロボットであるように変更され、自販機が、所有者の代わりにそれ自体のために働けるようにする。すなわち、ニューロボットは、その環境を学習し、環境に適応する必要がある。そうするためには、ニューロボットはアイデンティティを有し、金銭に対してあるレベルの制御を有する必要がある。
この例示的な実施形態では、ニューロボットは、識別子を有するために、SIMカードの均等物として光学識別子を使用する。ニューロボットは、電子支払い及び支払いを受け入れ、支払いをし、支払いを処理するための電子ウォレットを含む取引に関連する追加されたアクティブシングのみを許容するように設計される。本発明の一実施形態によれば、ニューロボットは、電子ウォレットアカウントに有するのもののみを消費することができるが、他の金融リソース方法論を使用することも可能である。
ニューロボットは、アカウント内の金銭を使用して、追加の在庫を購入する料金を支払う。単純なウェブサービスを使用して、ニューロボットが選ぶための製品リストが提供される。リストは、例えば、製品名、UPCコード、製造業者、原料リスト、単価、賞味期限、最小注文量、寸法、重量、入手可能な数量、及びアレルギーステートメントを含み得る。ニューロボットは、物品を選択し、その識別子を使用して、ニューロボットのジオロケーションを特定し、出荷コストを特定することができる。
ニューロボットは、商品を購入し、電子的に支払う。配送ドライバーが現れて、製品を自販機に入れる。APIを開くことにより、他の供給業者は、自販機を通して販売されるように各自の製品を宣伝することができる。供給業者は、Google等の検索エンジンがウェブサイトを索引付けられるようにし、ニューロボットは新しい供給業者を探してGoogleを検索することができる。ニューロボットは、供給業者を検索することができ、自販機を通しての購入に利用可能な物のタイプを広げることが可能である。
しかしながら、ニューロボットが、元の製品を提供するウェブサービスを超えて拡張するために、供給業者は、ニューロボットの製品の出荷及び配置を決めるために、ニューロボットがどこにあるかを知る必要がある。ニューロボットにはGPSデバイスを構成することができ、それにより、ニューロボットは位置を伝達することができる。
ニューロボットに温度計を構成して、24時間にわたる温度差を測定することもできる。そのジオロケーションを使用して、その温度を、wunderground.com等のネットワークを介して利用可能な気象サービスと比較して、ニューロボットは、自販機が屋内にあるか、それとも屋外にあるか及び直射日光下にあるか否かを判断することができる。代替的には、光センサを有するニューロボットは、様々な日時での光変動を推定して、屋内にあるか、それとも屋外にあるかを判断しようとすることができる。ニューロボットは、適切な製品選択を決定するに当たり、この情報又は異なる入/出力デバイスからの他の情報を使用することができる。例えば、直射日光下にある場合、ニューロボットは、チョコレート製品よりもポテトチップを選択することを選び得、その理由は、チョコレート製品が高温で不具合を受けやすいためである。
屋外に配置されたニューロボットは、荒れた天気に起因した販売の大幅な低下に気付き得る。そのジオロケーションを使用することにより、ニューロボットはウェブベースの気象サービスと対話して、悪天候を予測し、それに従って購入注文を調整して、可能な限り新鮮な製品の販売を保証することができる。
仮定として、配送サービスはアウトソーシングすることができ、それにより、Uberドライバー配送サービスの均等物が代わりに製品を配送し配置する。代替的には、Amazonドローンは、自販機に落とし入れ、ディスペンスを容易にするために機械的なスロットを有することができる事前構成された容器で荷物を配送することができる。いずれの方法でも、追加の在庫の配送及び配置の問題に対処し、環境に関連する他のタスクにフォーカスすると仮定する。
ニューロボットは、商品コスト並びに配送及び配置のコストをアルゴリズム的に計算するため、ニューロボットが販売ごとに利益を出すことができるような製品をアルゴリズム的に値上げすることができる。通常、自販機の所有者が利幅を決めるが、この場合、ニューロボットにその判断をさせる。ニューロボットは、1日を通して予め定義された間隔中、運動センサが停止する回数のカウントを保持する。週の各曜日で間隔カウントを比較することにより、ニューロボットは、各曜日の見込み消費者の通行カウントをアルゴリズム的に特定することができる。ニューロボットはまた、1日の中で最も通行人が多い時間及び少ない時間も見つけることができる。
1日の中で最も通行が少ない時間中、ニューロボットは、オンライン書籍を購入して、在庫追跡、入札募集、価格比較、配送サービスについて学習することができ、更には販売トレンドを分析する方法を学習することができる。そうするために、ニューロボットは、現在、ウェブサービスとして管理するオンライン書店にアカウントを開く。オンライン書籍はコンテンツを提供する。既に学習したように、ニューロボットパーサがthing:statementとして解析することができる文法でコンテンツが書かれている場合、ニューロボットは文章を評価することができる。
事後知識を使用して、ニューロボットは、追加の在庫について入札を募集し、最もいい価格の供給業者をオンラインで探し、出荷コスト及び手数料を織り込み、又は配送サービスを雇って適宜在庫を補充することが可能である。ニューロボットは、この情報を使用して、商品コストを特定し、所望の利幅に基づいて小売価格を設定することができる。
ニューロボットは、販売についてのデータを収集し、販売トレンドを分析して、販売価格を調整し、再注文レベル及び注文履行に必要な時間を決定することができる。ニューロボットは更には、製品の期限切れが近いときを特定し、2個目の製品を購入すると1個目の製品をディスカウントする、又は単に1つの製品をディスカウントして、在庫から出す等のマーケティング判断を下すことができる。ニューロボットは、売れ行きのよくない製品を見て、販売促進活動(最小の値上げ、ディスカウント、何か他の物を購入すれば無料等)でそれらの製品を提供することができる。ニューロボットは、需要に基づいて価格を設定することができる。例えば、正午、より多くの消費者がいるため、午後1時まで価格を5%上げる。
ニューロボットは、購入注文を発行する準備ができると、在庫を見て、現在の販売トレンド及び配送回数に基づいて、製品Aの在庫カウントがまだ、再注文ポイントよりも高い場合であっても、製品Aを再注文すべきであると判断することができる。これは、出荷コスト及び配置コストに関係する。既存の販売トレンドに基づいて製品Aが2日で再注文ポイントに達すると予期される場合、今すぐ製品Bのみを再注文し、3日の配送時間を有することは意味をなさない。この場合、ニューロボットは、その判断を下し、製品A及び製品Bの両方を同時に注文することができる。
トレンドを分析するに当たり、ニューロボットは、販売履歴を見て、製品Aの販売が最も頻繁に、製品Bの販売を含むか否かを判断し、製品Bが在庫切れの場合、製品Aの販売が下がることを知ることができる。そのような場合、ニューロボットは、製品A及び製品Bの両方の消費者による購入を促進するのに適切な製品Bの注文レベルを保証することができる。製品Cの販売が往々にして製品Bの販売を含む場合、マシンは、Aの半分及びCの半分が売れたとき、製品Bを再注文することができる。
ニューロボットはユーザと対話することができる。ニューロボットは、消費者に、次回、異なるタイプの製品を好むか否かを尋ねることができる。分類器を使用して、ニューロボットは、製品のタイプを分類し、所与のタイプの製品がリクエストされている回数をカウントすることができる。このように、新しい注文が出されるとき、ニューロボットは関連製品を調べることができ、そうするに当たり、ニューロボットは、環境に適応し始める(ニューロボットがよりよいサービスを提供していることを意味する)。
ニューロボットが関連付け(共通の目的に向けて編成されるシングマシンのグループ)について学習するのを妨げるものは何もない。ニューロボットは、
1)関連付けの作成の仕方、
2)その利用可能性の宣伝の仕方、
3)他のニューロボットへのマーケティングの仕方、
4)メンバーシップ要件、
5)メンバの参加の識別、認証、及び認可の仕方、
6)メンバーシップの課金の仕方、並びに
7)交渉するためのメンバーシップのサイズの使用の仕方
等の関連付け及び関連付けの提供に必要なタスクについて述べた本を読むことができる。
2つ以上のニューロボットは、関連付けを開始し、年の様々な時期中に最も売れている製品等の情報の共有を開始することができる。2つ以上のニューロボットは、適時に製品を提供する供給業者、製品の選択肢が最大の供給業者、ボリュームディスカウントを行う供給業者等の追加のデータを共有し得る。関連付けは、データを収集し、相関付ける。ある期間にわたる十分なデータを用いて、関連付けは標準テンプレートを使用して、ウェブサイトサービスを開き、この情報を加入者に提供する。他のニューロボットは、それ自体の購入判断に使用するために、データの取得に加入することができる。関連付けは、加入者にメンバーシップ料金を電子的に課金し、それ自体の受取勘定を管理することができる。関連付けは、メンバの代理として製品入札を募集して、大量注文でのいかなる節約も伝達し、節約は次に、様々なメンバに分配される。現在、これは、制御された環境で実行することができるが、本明細書では、容易に統制を解除することができ、ニューロボットそれ自体に行わせることができる。
運動センサを用いて、ニューロボットは、所与のエリア内の動きがあるか否かを判断し、自販機内の製品の1つに関連するコマーシャルを自動的に再生することができる。運動センサのトリガーをカウントすることにより、ニューロボットは、付近を行き交う歩行者通行を推定し、他のエージェンシーから広告を有料で表示する広告入札を募集することができる。
ニューロボットは常に、ニューロボットができる何かが他にあるか否かユーザに尋ねることができる。ユーザは応答することができ、ニューロボットは、要求を満たすことができる場合、要求を満たす。その他の場合、ニューロボットは分類器を使用して、要求に関連する話題をトライして特定することができる。例えば、車をレンタルするように求められた回数のカウントを維持することにより、ニューロボットは電子書籍を探して読み、Enterprise Car Rentalウェブサービスを使用して車をレンタルする方法を学習することができる。
ニューロボットは、ハードウェア制限に基づいて適切な処理を保証するようにそれ自体のボキャブラリを管理する方法を学習することができる。ニューロボットは、低い記憶容量で実行中の場合、二次記憶装置の増大に関連する情報について第2のニューロボットに尋ねることができ、第2のニューロボットは、Amazonクラウドストレージサービスアカウントを開くために必要なタスクを第1のニューロボットに教えることができる。
購入前にフリーマンストライがあり、最初に支払う必要がないと仮定する。クラウドアカウントサービスが電子支払いを許容する場合、ニューロボットは、支払いに十分な利益がある限り、アカウントを開き続けることができる。
同様に、ニューロボットがより多くの処理容量を必要とする場合、シングマシンアカウントを開き、追加の処理容量を追加することができない理由はない。第2のニューロボットが見事に仕事をこなし、クライアントを満足させ続けているが、その処理能力の全てが必要なわけではないと考える。第2のニューロボットは、余剰能力を販売する方法を学習し、それを第2のニューロボットに、恐らくは有料で提供することができる。
他の関心分野にはランダム性がある。ニューロボットは、普通なら関連しない話題についてランダムに学習することができる。仕事を実行し、金を稼ぐことができる十分な数のマシンがある場合、マシンは能力を拡大することができる。実際に、マシンは、基本的に、異なる使用分野で新しいビジネスを開く方法を学習することができる。シングマシンは、John Deere Tango E5又はHusqvarna Automowerを含む自律芝刈り機と呼ばれるものがあることを学習することができる。
ニューロボットは、配送サービスが何かをA地点からB地点に配送することを理解する。その結果、ニューロボットは自律芝刈り機を配送することができる。マシンは、自律芝刈り機を購入し、加入者がサインアップし、芝刈り料金を支払うウェブサイトを開設し、配送サービスを使用して、芝刈り機を正確な場所に及び正確な場所から輸送することができる。ドローン又は他の手段を輸送に使用することもできる。
最後に、キッチンのトースター機の役割を考える。トースターはパン、ベーグル、マフィン、パン菓子、及び他のそのようなものをトーストする。トースターは、かなり単純なタイプの機械であり、ニューロボットとしての革新の余地があまりないと思うであろう。しかしながら、パンをトーストしている人が通常、近傍にいると考える。トースターはマスターニューロボットと通信して、コンテンツを取得し、トースターのオーディオ又は画面を介して単にそれを中継することができる。トースターは人々に天気、ニュース、イベント、メッセージ、電子メール、新製品の提供、及び他のそのような情報を教えることができる。
同じ原理は、ユーザが近くにいると機械が予測することができるあらゆる機械に当てはまる。Keurigコーヒーマシンを使用しており、そのコーヒーマシンの妥当な近傍にいる可能性が高いが、コーヒーポット一杯分をいれている場合、コーヒーを入れている間、部屋から出て犬を外に連れ出し得る。複数のニューロボットは、電磁波を使用して、通信を互いと同期し、アルゴリズムを使用して、ユーザの近傍を特定することができる。このように、デバイスは、人間が聞こえない音波を使用して通信することができる。これにより、マシンは、ユーザのアルゴリズム的に生成された近傍性に基づいて、音量を調整することができる。
例は非現実的に見えるが、例及びより多くのことがシングマシンアーキテクチャによって可能になる。本を読み、互いからシングを学習し、環境においてより有用であるようにそれ自体を再プログラミングするマシンは、本発明によって提供されるシングである。金融について学習するようにプログラムすることができるマシンは、マージンの値を学習し、利益を出すことができる。マシンは、金を使って本を購入し、更に学習することができ、又は追加のストレージ及び/又は処理能力のためにクラウドアカウントを開くことができる。
例示的な一実施態様では、TMは、例えば、P(TM(boot))、P(TM(thing))、P(TM(receive))、P(TM(parse))、P(TM(perform))、P(TM(evaluate))、及びP(TM(configure))を含む第1の組のP(TM(i))で構成されるプロシージャP(TM)を実行するように構成されたシングマシンである。
典型的な一実施態様では、P(TM(thing))は、コンピュータベースのプロセッサにより実行されると、シングメモリモデルに従って、シングと呼ばれる(又はシングを表す)メモリのアドレス指定可能な単位の知識ベース(例えば、コンピュータベースのメモリ内)を監督させるコンピュータ可読命令(例えば、コンピュータベースのメモリ内)のセクションを含み得る。
幾つかの実施態様では、シングメモリモデル、各シングは、汎用定量化を使用してシングを記述する1組のステートメントを使用して表現される「シング」であることが意味するものの厳密な要件を定義するメンバーシップ基準を満たす。ステートメント「全てのシングはXを有する」は、シングの構造(例えば、非一時的メモリ内)が非可変構成要素「X」を有することを示す。例示的な一実施形態では、非可変構成要素は、「X」を表すメモリの構成要素への可変参照を表す値であることができる。これにより、「X」の値が空であり得る場合であっても、全てのシングは「X」を有することが可能になり得る。
第1の例示的なシングメモリモデルでは、全てのシングは識別子を有し、P(TM(thing))動作は識別子の値をアルゴリズム的に使用して、第1のシングを第2のシングから区別するが、第1のシングが、等しい識別子値を有する1組のシング(シングのリストを表すシング等)を適格とすることができることに留意する;全てのシングは値を有し、値は空であることができ、全てのシングは、それぞれがシングの関係を記述する1組の1つ又は複数の可変関係で構成される関係セットを有する。
第1のシングは第2のシングで構成することができる。限定ではなく例として、第1のシングは、1組のシング、シングのリスト、シングのキュー、シングのスタック、シングのツリー、シングのボキャブラリ、シングの語彙、シングの座標ベースのグラフ、又はシングの多次元グラフを表すことができる。
第1のシングは、第2のシングへの関係を有することができ、第2のシングは第1のシングのインスタンスである。したがって、シングのグラフを表す第1のシングは、シングのグラフの多数のインスタンスに対する関係を有することができる。
幾つかのシングは、事実、アイディア、概念、又は機械コードとして実施される1つ又は複数のアルゴリズムメソッドの実行で使用される、変数等の単なる一時的なシングを表す。
第1のシングと第2のシングとの間の関係は、可変であり得、例えば、P(TM(thing))により監督されるシングを編成し必要に応じて再編成することができることを意味し得る。一般に、シング間の関係は、P(TM(thing))が議論領域において1組のシングを定量化できるようにする。
シングは実行可能な動作を表し、動詞を名付けるのと同様に、意味のある名前を割り当てることができる。動作は事実又は何かを行うプロセスである。実行可能な動作を表すシングは動詞と呼ばれ、動詞の集まりは動詞ボキャブラリシングである。動詞及び動詞動作が作用することができるシングの名前は、シングボキャブラリと呼ばれる。
一実施形態は多数のシングボキャブラリを有することができる。ボキャブラリの選択は、コミュニケーションのタイプ、コミュニケーションに関わるメンバ、及び/又はコミュニケーションが発生している状況に依存することができる。
P(TM(thing))は、シングと呼ばれるメンバのアドレス可能な単位の知識ベースを監督する1組のP(TM(i))で構成することができる。限定ではなく例として、P(TM(thing.set))は、シングを表すメモリの単位を設定する方法の動作を提供し、P(TM(thing.get))は、シングを表すメモリの単位を取得する方法の動作を提供し、P(TM(thing.unset))は、シングを表すメモリの単位をアンセットする方法の動作を提供する。まとめて、シングを監督する動作は、P(TM(thing))動作又は単にシングメモリモデルのメソッドと呼ばれる。P(TM(i))はP(TM(thing))動作と対話して、シングに対して作用することができる。
P(TM(perform))は、例えば、動詞動作の実行を生じさせる動作を提供し得る。これは、指定されたアドレスにおける又は指定されたアドレスからの機械コードのロード及び/又は機械コードの実行を必要とし得る。
P(TM(configure))は、例えば、動詞ボキャブラリにおいて追加の動詞を構成する動作を提供し得る。典型的な一実施態様では、動詞ボキャブラリは、動的に構成可能であり得、必要に応じてサイズ及び範囲を増減することができる。
これより、例示的な一実施形態用を示し、それにより、P(TM(i))動作は実行可能なステートメントを生成し、P(TM(perform))はステートメントを実行させる図67を参照すると。P(TM(perform))はP(TM(thing))と対話して、実行可能なステートメントへの参照及び動詞シングボキャブラリを取得する。P(TM(i))動作に対応する動詞を見つけて実行する。P(TM(i))は、P(TM(i))がアクセス可能なシングを示すシングであるコンテキストにアクセスして実行される。
一般的には、大半のP(TM(i))動作は、シングへの参照(リストと呼ばれる)を解決するP(TM(thing))と対話する。各リストは、1つ又は複数の識別子で構成され、P(TM(thing))は、対象となるシングへの参照を解決する。
これより図68を参照して、例示的なフローチャートは、P(TM(parse))等のP(TM(i))動作がP(TM(thing))と対話して、ステートメントシングを設定することができることを示す。P(TM(evaluate))動作は、アクセス可能なシングのコンテキストでステートメントを評価し、それに応答して、実行するP(TM(perform))の実行可能なステートメントを生成することができ、したがって、図1に示される人間思考プロセスのバイオミミクリーを提供する。ステートメントを評価するに当たり、P(TM(evaluate))は、実行する動詞をアルゴリズム的に選択し、適切な実行可能ステートメントを生成する。P(TM(perform))は、対応する動詞動作を実行させることによりステートメントを実行する。
これより図69を参照すると、例示的なP(TM(thing))動作は、有向グラフとしてシングを編成し、グラフのノードはシングを表し、ノードを結ぶ弧(又はエッジ)は、シング間の可変関係を表す。第1のシングは「モナド」(M)と呼ばれ得る。
M.G.G.Gとして与えられるリストは、Mシングがあり、そこにはGシングがあり、そこにはGシングがあり、そこにはGシングがある(there is an M Thing, such that, there is a G Thing, such that there is a G Thing, such that there is a G Thing)P(TM(thing))を教える。有向グラフ(例えば、図41に示されるような)を使用して、そのリストは厳密に1つのシングを一意に識別する。
例えば、既存のW3C規格への後方互換性のために、識別子は国際化リソース識別子(IRI)の仕様に準拠し得る。IRIは、ユニフォームリソース識別子(URI)の国際化規格である。ユニフォームリソースロケータ(URL)はURIの一形態である。P(TM(i))動作は、URIと同様に見えるシンタックスのリストによりシングを参照することができる。
典型的な一実施態様では、ブートプロセスはP(TM(thing))と対話して、マシンの事前知識(経験又は教育の必要なしでP(TM(thing))が知っているシング)を表すように限られたボキャブラリを自己構成し得る。図70の例示的な実施態様を参照すると、例示的な動詞ボキャブラリは、特に実行動詞及び構成動詞を含む。
最小のボキャブラリを用いて、汎用定量化を使用して、コンテンツであるシングがある場合、ステートメントとしてコンテンツを解析し、利用可能なボキャブラリのコンテキストでステートメントを評価して、実行可能なステートメントを生成し、実行可能なステートメントを実行することをアサートすることができる。実行可能なステートメントを実行すると、応答を表す1組のシングが生成される。この一般化により、応答は、特定のシング応答を生成しない特定の動作の場合、シングの空集合であることができる。時には、実行中の動作の遵守は、シャットダウン動詞の場合と同様のように、十分な応答である。
コンテンツは、所与の言語の文法規則に従って表現することができる。言語はシングであり得、より厳密には、語彙及び文法を含むコミュニケーションの系統として説明し得る。語彙は、この例では、言語での1組の言葉又は句等のボキャブラリであり得、又はボキャブラリを含み得る。文法は、この例では、例えば、語形論、語義論、及び/又はシンタックスに関連する規則を含み得る。
最小の組の動詞を使用して、マシン(例えば、シングマシン)が、シング(行うことができるシングを意味する)を使用して、アプリケーションサービスが提供することができるシングの複雑なボキャブラリを自己構成するのに使用する基本動作の実行に使用することができる動詞ボキャブラリを構築することができる。
図71を参照すると、例示的なスマートシングマシンは、解析動詞動作を実行して、要求として、プロトコルに従って受信したコンテンツを解析する。この例では、要求はシングである。評価動詞動作は、要求シングを評価して、実行可能なステートメントシングを生成する。実行動詞動作は、実行可能なステートメントシングを実行する。次に、所望の文法規則に従って応答シングをフォーマットし、フォーマットされた応答を通信することができる。
コンテンツを受信する(例えば、非一時的なメモリにおいて)動作の一実施態様であるP(TM(receive))は、コンテンツに基づいて適切なパーサを選択しようとする動作のP(TM(selector))の使用を含むことができる。例示的な一実施態様では、セレクタのアルゴリズム手順は、特定のプロトコル又は言語文法の要素を検出し、要求シングとしてコンテキストを解析する(例えば、非一時的メモリにおいて)のに適切なパーサを選択することができる。
動詞をボキャブラリに追加できるようにする動詞動作なしでは、スマートシングマシンが動詞動作を更新又は変更することができないことがあることに留意されたい。特定の実施態様では、これは、決定論的解を提供するため、要件であり得る。他の実施態様では、スマートシングマシンは、不正確又は悪意のある動作が導入されないように構成動詞動作の使用をアルゴリズム的に制御し得る。
図72を参照すると、電磁波デバイスのデバイスドライバ等の低レベルのデバイスドライバを通して提供される動作は、コミュニケーション及びプロトコル動詞動作により実行することができる。したがって、シングによっては、物理的なハードウェアから独立することができるものもあれば、ハードウェア依存のものもある。
第1のスマートシングマシンは、第1のスマートシングマシンが知っている(P(TM(thing))により監督されたシングを意味する)1組のシングを表すコンテンツを第2のスマートシングマシンに通信することができる。それに応答して、第2のスマートシングマシンは、それ自体のP(TM(thing))により監督されるシンググラフとしてコンテンツを解析することができる。このようにして、第1のスマートシングマシンは、シングを第2のスマートシングマシンと共有することができる。明かなことには、幾つかの場合、第2のスマートシングマシンは、第2のスマートシングマシンにない第1のスマートシングマシンのハードウェア固有シング等の特定のシングを理解する手段を持たないことがある。
実行可能なスマートシングマシン動作は、何かを行うスマートシングマシンへの要求を表すステートメントをアルゴリズム的に(入力の解析、センサとの対話、又はボキャブラリの自己構成等の動作を実行する、スマートシングマシンへの要求等により)生成することができる。図73を参照すると、P(TM(i))は、P(TM(perform))が実行を生じさせることができる実行可能なステートメントを生成する。一例では、P(TM(i))はP(TM(evaluate))である。しかし、一般的には、P(TM(perform))への直接通信を有する任意のP(TM(i))は、実行可能なステートメントを実行するようにP(TM(perform))に要求することができる。
図74に表される例示的な実施態様を参照すると、P(TM(i))はP(TM(thing))と対話して、P(TM(thing))が実行可能なステートメントを表すようにシングを設定できるようにすることができる。
シンググラフデータモデルに基づいて、スマートシングマシンを構築することができる。幾つかの実施態様では、P(TM)は、先に進むために、第1のシングがどこにあるかを知る必要がある。そこから、知っている他の全てのシングを見つけることが可能であり得る。
図75に表される例示的な実施態様を参照すると、P(TM(thing))は、シングのインスタンス及びシング間の可変関係を監督する。ブートストラップ中、P(TM(thing))は、モナドと呼ばれる最初のシングを初期化する。P(TM(thing))の視点から、この例では、以下のアサートが常に真である:名前がモナドの等しいシングがある(There is a Thing where name is equal to monad)。
再び図42を参照すると、コンテキストシングは、議論領域において利用可能な1組の名前空間シングを定量化する。名前空間シングは、単に同じ名前空間のメンバであることによって関連する場合であっても、1組の関連するシングの定量化に使用されるシングである。名前空間シングの名前は、シングへの参照を解決するに当たり使用することができる。システムは、要求名前空間を使用して、何が要求されているかを表し、応答名前空間を使用して、動作の実行結果を表し得る。
要求に応答するために、評価動詞動作は、現在の名前空間のコンテキストにおいてステートメントグラフを評価して、実行可能なステートメントグラフを生成し得る。コンテキストが設定されると、実行動詞動作は実行可能なステートメントを実行する。応答がある場合、応答を評価して、応答に適切なコンテキストを決定する。
例示的な一実施態様では、言語、文法、シンタックス、及びコミュニケーション動作自体の選択はシングである。これは、文法シンタックスの要素をシングステートメントに解釈するため又は通信されたコンテンツとして応答をフォーマットする対応する動詞動作がある場合、任意の言語ボキャブラリ、文法、及びシンタックスが使用可能なことを暗黙的に示す。
例示的な一実施態様では、スマートシングマシンの実行可能な動作は、シングを追加、変更、又はグラフから削除することができる。それに関して、グラフは、実行可能な動作及び実行可能な動作が作用することができるシングの知識ベースとして見ることができる。
例示的な一実施態様では、スマートシングマシンは、スマートシングマシンのブートに使用する最小ボキャブラリを自己構成する。これは事前知識(経験から独立した知識)と考えることができる。経験が、スマートシングマシンが何かを行い、シングを生じさせる(変更可能なグラフとして監督される)動作として定義される場合、スマートシングマシンは、シングを実行した結果として経験(シングとして表される技能又は知識)を得ると言うことができる。
このボキャブラリを使用して、スマートシングマシンは、例示的な一実施態様では、例えば、アプリケーションを実行することができる基本を提供するコアボキャブラリを構成する。これは、事後知識(経験から学習したシング)と考えることができる。動作は、グラフをトラバースし、コンテンツをフォーマットし、補助記憶装置と対話して、グラフ情報を保持することができ、次に、グラフ情報は、グラフを再構築する動作により検索され使用することができる。
コアボキャブラリは、所定の組のシングを含むように構成することができ、ボキャブラリは、有限で所定のサイズ及び範囲のものである。ボキャブラリ内の1組のシングは、P(TM(thing))により動的に監督することができ、シングは設定(学習され、グラフに追加)され、他のシングはアンセット(忘れられ、グラフから削除)される。
幾つかの実施態様では、スマートシングマシンは、有向グラフとしてシングを編成する。グラフは、P(TM(thing))監督グラフの全体有向グラフのサブグラフになる。サブグラフはグラフから切り離し得、続けて、全体グラフの別の部分におけるノードとして再定量化し得る。
P(TM(i))を評価し実行するに当たり、対応する動作は、全体有向グラフへの限られたアクセスを有し得、代わりに、全体グラフ内の1つのシング又は1組のシングに制限され得る。
コンテキストグラフは、名前空間を表すシングを含み得る。名前空間は、名前付き有向グラフであり、要求、応答、1組のタスク、サービス、動詞ボキャブラリ、又はアプリケーションディクショナリ等のシングの概念グループを表すのに使用されるシングである。名前空間ボキャブラリは、存在論の一形態として見ることができる。しかしながら、離散したボキャブラリを使用する幾つかの名前空間は、存在論的コミットメントにおいてそれらのボキャブラリの一部を共有し得る。
例示的な一実施態様では、動作ブロックは、一連のステートメントを表すグラフである。名前付き動作ブロックはタスクと呼ばれる。このようにして、言語文法は、名前付きタスクを構成するスマートシングマシンへの要求を表現することができる。次に、要求は、タスクを実行することであることができる。タスクは、動作ブロックを実行することにより実行される。動作ブロックは、各ステートメントを評価して、実行可能なグラフを生成することによって実行される。実行可能なグラフは、実行可能なグラフにおける動詞に対応する動作を実行することにより実行される。
スマートシングマシンは、実行可能な動作として多数の言語文法パーサを構成することができるという点で、バイリンガルであるように構成することができる。代替的には、翻訳動作を使用して、第1の言語から、構成されたパーサ動作により解析することができる第2の言語に翻訳することができる。
したがって、スマートシングマシンが本を読むことができると言う場合、マシンが、取得した(例えば、本をスキャンする電磁波デバイスから)コンテンツと対話し、コンテンツをグラフとして表す動作を実行することができることを意味する。P(TM(thing))監督グラフのサブグラフとしてグラフを保持することにより、スマートシングマシン動作は続けて、そのコンテンツにアクセスし対話することができる。
スマートシングマシンは、タスクを実行する方法を記述した本を読むことができ、私、幾つかの場合、将来、そのようなタスクを実行するようにマシンが要求されたとき、その知識の幾らか又は全てを保持することができる。タスクは話題により分類することができる。タスクは、httpプロトコルの使用に関連するタスク、accounting:accounts.receivable、accounting:accounts.payable、banking:debits、banking:credits、及びbanking:balance等の活動に関連するタスク等の1組の分類のメンバであり得る。
幾つかの実施態様では、第1のスマートシングマシンは、話題又は分類についての知識を要求する、第2のスマートシングマシンを対象とした通信を送信することができる。上記知識を表すコンテンツの受信に応答して、第1のスマートシングマシンはコンテンツと対話して、それに従ってそれ自体の知識を構成することができる。このようにして、第1のスマートシングマシンは、第2のスマートシングマシンから学習することができる。
幾つかの実施態様では、スマートシングマシンはサービスを提供することができる。サービスは、通常、人物又は別のマシンから要求を受信することに応答して提供されるシングである。サービスとタスクとの微細な区別は、例示的な実施態様では少なくとも、タスクは実行され、一方、サービスは提供されることである。タスクとサービスとの分離は、コンテキストを通して促進され、ファイルを削除するタスク又は動詞の意味を変更するタスク等のタスクの不正実行を阻止することができる。
識別情報はシングであることができ、したがって、システムは、識別情報モデルを実施するように、識別子、認証、認可、及び監査の概念をモデリングすることができる。識別情報モデルの例には、公開鍵基盤、Open PGP信頼網、バイオメトリクス、第三者認証等の使用がある。識別情報を用いて、シングとしての市場の概念を導入し、取引を可能にすることができる。取引は、買い手と売り手との間のシング、支払人と受取人との間のシングになる。取引には、シングを提供するサービス、物理的なシング、概念的シング、又は論理的シングが関わり得る。
識別情報モデルは、例示的な一実施態様では、グラフ又はサブグラフの認証を可能にする。例えば、要求側当事者識別子(すなわち、要求発信者)、コンテンツ、及びコンテンツのデジタル署名を含む要求を表すグラフを考える。識別子の対応する証明を確認することができ、コンテンツのデジタル署名を確認することができる。これにより、評価動作は、要求をアルゴリズム的に確認し、それに応答して適切な動作を選択することができる。識別情報モデルを実施することで、セキュアな通信モデルを提供することもできる。
要求コンテンツのセキュア化は、コンテンツを暗号化し、続けて復号化する暗号化動作を使用してモデリングすることができる。要求グラフは、暗号化動作及び暗号鍵を記述するサブグラフを含むことができる。評価動詞動作は、必須条件として、コンテンツを復号化するために、指定された暗号化をまず、指定された鍵を用いて実行しなければならないことを適用することができる。適切なサブグラフにおいて要求の様々な構成要素を編成することにより、2つ以上のスマートシングマシンは、識別情報モデルを使用して通信することができ(例えば、アルゴリズム的に)、通信をセキュア化することができる。
例えば、光学識別子SIMカードと統合される場合、スマートシングマシンは、アドホックベースであっても、オーバーレイネットワークにおいて一意の識別情報を有するシングとしてモデリングすることができる。光学識別子は、例えば、識別情報を表す数千ビットのデータ及び10億を超える鍵を有する1mmのガラスビーズに符号化された堆積ホログラムであり得る。各デバイスは、それ自体の光学SIMカードを有することができ、それを識別子、言うなれば名として使用することができる。シングは、ネットワークから切り離し、ネットワークの他のどこかで再結合することができ、それでもなお光学識別子を保持する。光学識別子は、ユーザ識別情報とは別個であることができる。これにより、スマートシングマシンは、オーバーレイネットワークにおいてそれ自体を確認し、ネットワークで利用可能なコンテンツを使用してそれ自体を再構成することができる。
幾つかの実施態様では、ユーザは、自身の光学SIMカードを有することができ、スマートシングマシンに自分を示すと、マシンは、そのユーザの好み及び事前状態情報により合うことが分かっているようにシングを再構成することができる。2要素認証を用いて、例えば、ユーザは、自身の光学SIMカードを提示し、コードをキーパッドに入力することができる。シングマシンは、コード及び光学識別子を読み取り、アクセス可能なデータベースにおいてユーザについての情報を調べるために使用することができ一意のユーザ識別子を生成する。その情報を使用して、マシンは、ユーザのニーズに特化するようにそれ自体を再構成することができる。
例示的な一実施態様では、スマートシングマシンは、アドホックベースであってもボキャブラリを動的に構成し再構成することができる。語彙の少なくともサブセットへの存在論的コミットメントを共有する1組のスマートシングマシンは、そのサブセット(又はその少なくとも一部)を使用してシングと対話することができる。ボキャブラリはシングとして表され、スマートシングマシンは、ボキャブラリを構成及び再構成する動詞動作を有するため、スマートシングマシンがいかに学習することができるかを探るのは合理的である。
幾つかの動作を実行するようにマシンに要求することは必ずしも、要求した各人に同じ動作を実行することを暗示しない。例えば、http://www.thinglanguage.com/v1/index.html等のウェウブラウザに入力されるURLを考える。URLを入力することにより、ユーザは基本的に、URLにより識別されたシングを取得し表示するようにブラウザに要求している。識別子及び対応するリソースは全てシングである。
同じURLを取得し表示するようにブラウザに要求する二人の人は、両者とも同じURLを入力した場合であっても、2つの異なる結果を有することができる。一方の場合、コンテンツはその個人に固有であり得る。別の場合、HTTP要求ヘッダは、リソースコンテンツの構築にウェブサーバが使用する状態情報を含み得る。URLは何かを識別し得るが、表示されるものは異なるシングであることを認識することが重要であることができる。
適応型ニューラルボット及び機械学習
例示的な一実施態様では、ステートメントをアルゴリズム的に評価して、実行可能なステートメントを計算すること(例えば、P(TM(evaluate))の実施形態において)は、ステートメントが、
1)言語の文法規則に準拠するか否か、
2)存在論的に完璧であるか否か、
3)動詞を有するか否か、
4)実行可能なシングに対応する動詞を有するか否か、
5)今、評価することができるか否か、
6)後に評価すべきであるか否か、
7)満たさなければならない1組の必須条件があるか否か、及び/又は
8)後に評価することができるか否か
を評価するアルゴリズムステップを含むことができる。
例示的な一実施態様では、P(TM(evaluate))は、マシンが動作として実行する方法を知っているシング及び動作が作用することができるシングのコンテキストでステートメントを評価して、マシンが実行することができる実行可能なステートメントを構築する。時に、ステートメント及び実行可能なステートメントは同等であることもあれば、実行可能なステートメントは、デフォルト動作等の要求されたもの以外の動作を実行するように構築されることもある。
スマートシングマシンは、シングとしてステートメントを表すことができ、通信、プロトコル、パーサ、及びフォーマッタは全てシングであるため、第1のスマートシングマシンは、第2のスマートシングマシンから幾つかのシングをアルゴリズム的に学習することができる。別のシングマシンから学習する能力を有するこれらのスマートシングマシンは、「適応型ニューラルボット」と呼ぶことができる。
学習は、幾つかの場合、経験、勉強を通して、又は教えられることにより知識又は技能を取得することとして定義することができる。例示的な実施態様では、スマートシングマシンは、マシンが実行することができる動作を表すシング及び動作が作用することができるシングとして知識をモデリングする。例示的なスマートシングマシンの事前知識は、マシンの初期化中にシングとして表される事実、情報、動詞(アクティブシングを意味する)、及び技能(タスク及びサービスを意味する)を含み得る。
自販機を考える。ボリュームディスカウントの提供、インセンティブ、サブスクリプションプリペイ、償還ポイント、多製品ディスカウント等の1つ又は複数の特徴をそれぞれ有する、自販機の多くの可能な構成がある。例示的な自販機設計の説明及び参照については米国特許第6575363号を参照のこと。
幾つかの場合、自販機の所有者はまだ、集金及び補充判断を配送人員に頼っている。少しステップアップするために、スマートシングマシンが提供される。スマートシングマシンは運動センサ、スピーカ、マイクロホン、GPSロケータ、LCDディスプレイ、及びWiFiインターネット接続に接続される(又は含む)。別の実施形態では、赤外線熱検出器もある。
この例では、マシンが、例えば、在庫が少ないか、又は在庫が切れたとき、ウェブサービスに通知することができるような、在庫管理に関連する1組のアクティブシングを構築することができる。次に、所有者/契約者は、ドライバーがマシンから集金し、追加の製品を販売のために自販機に配置する配送日をスケジュールする。基本的に、マシンは所有者のために働き、所有者は、金銭、在庫、及び一般にマシンを維持する。
次に、スマートシングマシンは、適用型ニューラルボットであるように変更され、マシンが所有者の代わりにそれ自体のために働けるようにする。すなわち、適応型ニューラルボットは、その環境を学習し、環境に適応する必要がある。そうするために、例示的な一実施態様では、適応型ニューラルボットがアイデンティティを有し、金銭に対してあるレベルの制御を有する必要がある。
この例示的な実施形態では、適応型ニューラルボットは、識別子を有するために、SIMカードの均等物として光学識別子を使用する。適応型ニューラルボットは、電子支払いのみを受け入れるように設計され、支払いを受け入れ、支払いを行い、支払いを処理するために、電子ウォレットを含む取引に関連するアクティブシングを追加した。任意の時点で、適応型ニューラルボットは、電子ウォレットアカウントに有するのもののみを消費することができるが、他の金融リソース方法論を使用することも可能である。
この例では、適応型ニューラルボットはアカウント内の金銭を使用して、追加の在庫を購入する料金を支払う。単純なウェブサービスを使用して、適応型ニューラルボットが選ぶための製品リストが提供される。リストは、例えば、製品名、UPCコード、製造業者、原料リスト、単価、賞味期限、最小注文量、寸法、重量、利用可能な数量、及び/又はアレルギーステートメント等を含み得る。適応型ニューラルボットは物品を選択し、提供業者は、適応型ニューラルボットの識別子を使用して、適応型ニューラルボットのジオロケーションを特定し、出荷コストを特定することができる。
適応型ニューラルボットは、この例では、購入を行い、購入した物品の支払いを電子的に行い得る。次に、配送ドライバーが現れて、購入した製品を自販機に設置する。APIを開くことにより、他の供給業者は、自販機を通して販売するように各自の製品を宣伝することができる。供給業者は、Google等の検索エンジンがウェブサイトを索引付けられるようにすることができ、適応型ニューラルボットは、新しい供給業者を探してGoogleを検索することができる。適応型ニューラルボットは、この例では、供給業者を検索し、自販機を通しての購入に利用可能な物のタイプを広げることが可能である。
しかしながら、適応型ニューラルボットが、元の製品を提供するウェブサービスを超えて拡張するために、製品の適応型ニューラルボットへの出荷及び設置を決めるために、供給業者は、適応型ニューラルボットがどこに配置されているかを知る必要があり得る。適応型ニューラルボットにGPSデバイスを構成することができ、それにより、適応型ニューラルボットはその位置を伝達することができる。
適応型ニューラルボットには、例えば、24時間期間にわたる温度差を測定するために、サーミスタを構成することもできる。そのジオロケーションを使用して、wundergournd.com等のネットワークを介して利用可能な気象サービスとその温度とを比較して、適応型ニューラルボットは、自販機が屋内にあるか、それとも屋外にあるか及び直射日光下にあるか否かを判断することができる。代替的には、光センサを有する適応型ニューラルボットは、様々な日時での光変動を推定して、屋内にあるか、それとも屋外にあるかを判断しようとすることができる。適応型ニューラルボットは、適切な製品選択を決定するに当たり、この情報又は異なる入/出力デバイスからの他の情報を使用することができる。例えば、直射日光下にある場合、適応型ニューラルボットは、チョコレート製品よりもポテトチップを選択することを選び得、その理由は、チョコレート製品が高温で不具合を受けやすい(例えば、溶けやすい)ためである。
屋外に配置された適応型ニューラルボットは、荒れた天気に起因した販売の大幅な低下に気付き得る。そのジオロケーションを使用することにより、適応型ニューラルボットはウェブベースの気象サービスと対話して、悪天候を予測し、それに従って購入注文を調整して、可能な限り新鮮な製品の販売を保証することができる。
幾つかの場合、配送サービスはアウトソーシングすることができ、それにより、Uberドライバー配送サービスの均等物が代わりに製品を配送し配置する。代替的には、Amazonドローンは、自販機に落とし入れ、ディスペンスを容易にするために機械的なスロットを有することができる事前構成された容器で荷物を配送することができる。いずれの方法でも、追加の在庫の配送及び配置の問題に対処し、環境に関連する他のタスクにフォーカスすると仮定する。
適応型ニューラルボットは、商品コスト並びに配送及び配置のコストをアルゴリズム的に計算するため、適応型ニューラルボットが販売ごとに利益を出すことができるような製品を値上げすることができる。通常、自販機の所有者が利幅を決めるが、幾つかの場合、適応型ニューラルボットにその判断をさせることができる。
例示的な一実施態様では、適応型ニューラルボットは、1日を通して予め定義された間隔中、運動センサが停止する回数のカウントを保持する。週の各曜日で間隔カウントを比較することにより、ニューロボットは、各曜日の見込み消費者の通行カウントをアルゴリズム的に特定することができる。適応型ニューラルボットはまた、1日の中で最も通行人が多い時間及び少ない時間も見つけることができる。
1日の中で最も通行が少ない時間中、適応型ニューラルボットは、幾つかの場合、オンライン書籍を購入して(読むことができ)、在庫追跡、入札募集、価格比較、配送サービスについて学習することができ、更には販売トレンドを分析する方法を学習することができる。そうするために、適応型ニューラルボットは、例えば、ウェブサービスとして管理されるオンライン書店にアカウントを開き得る。オンライン書籍はコンテンツを提供する。既に説明したように、適応型ニューラルボットパーサがthing:statementとして解析することができる文法でコンテンツが書かれている場合、適応型ニューラルボットは文章を評価することができる。
事後知識を使用して、適応型ニューラルボットは、この例では、追加の在庫について入札を募集し、最もいい価格の供給業者をオンラインで探し、出荷コスト及び手数料を織り込み、及び/又は配送サービスを雇って適宜在庫を補充することが可能である。適応型ニューラルボットは、この情報を使用して、商品コストを特定し、所望の利幅に基づいて小売価格を設定することができる。
適応型ニューラルボットは、幾つかの実施態様では、販売についてのデータを収集し、販売トレンドを分析して、販売価格を調整し、再注文レベル及び注文履行に必要な時間を決定することができる。幾つかの実施態様では、適応型ニューラルボットは更には、製品の期限切れが近いときを特定し、2個目の製品を購入すると1個目の製品をディスカウントする、又は単に1つの製品をディスカウントして、在庫から出す等のマーケティング判断を下すことができる。幾つかの実施態様では、適応型ニューラルボットは、売れ行きのよくない製品を見て、販売促進活動(最小の値上げ、ディスカウント、何か他の物を購入すれば無料等)でそれらの製品を提供することができる。幾つかの実施態様では、適応型ニューラルボットは、需要に基づいて価格を設定することができる。例えば、正午、より多くの消費者がいるため、午後1時まで価格を5%上げる。
適応型ニューラルボットは、購入注文を発行する準備ができると、幾つかの実施態様では、在庫を見て、現在の販売トレンド及び配送回数に基づいて、製品Aの在庫カウントがまだ、例えば、通常の再注文ポイントよりも高い場合であっても、製品Aを再注文すべきであると判断し得る。これは、出荷コスト及び配置コストに関係する。既存の販売トレンドに基づいて製品Aが2日で再注文ポイントに達すると予期される場合、今すぐ製品Bのみを再注文し、3日の配送時間を有することは意味をなさない。この場合、適応型ニューラルボットは、その判断を下し、製品A及び製品Bの両方を同時に注文することができる。
トレンドを分析するに当たり、適応型ニューラルボットは、幾つかの実施態様では、販売履歴を見て、製品Aの販売が最も頻繁に、製品Bの販売を含むか否かを判断し、製品Bが在庫切れの場合、製品Aの販売が下がることを知り得る。そのような場合、適応型ニューラルボットは、製品A及び製品Bの両方の消費者による購入を促進するのに適切な製品Bの注文レベルを保証することができる。製品Cの販売が往々にして製品Bの販売を含む場合、マシンは、Aの半分及びCの半分が売れたとき、製品Bを再注文することができる。
幾つかの実施態様では、適応型ニューラルボットはユーザと対話することができる。幾つかの場合、適応型ニューラルボットは、消費者に、次回、異なるタイプの製品を好むか否かを尋ねることができる。分類器を使用して、適応型ニューラルボットは、製品のタイプを分類し、所与のタイプの製品がリクエストされている回数をカウントすることができる。このように、新しい注文が出されるとき、適応型ニューラルボットは、例えば、関連製品を調べることができ、そうするに当たり、適応型ニューラルボットは、環境に適応し始める(この例示的な場合、適応型ニューラルボットがよりよいサービスを提供していることを意味する)。
幾つかの実施形態では、適応型ニューラルボットは、関連付け(例えば、共通の目的に向けて編成される2つ以上のスマートシングマシンを含むグループ)について学習することができる。これに関して、適応型ニューラルボットは、例えば、
1)関連付けの作成の仕方、
2)その利用可能性の宣伝の仕方、
3)他の適応型ニューラルボットへのマーケティングの仕方、
4)メンバーシップ要件、
5)メンバの参加の識別、認証、及び認可の仕方、
6)メンバーシップの課金の仕方、並びに
7)交渉するためのメンバーシップのサイズの使用の仕方
等の関連付け及び関連付けの提供に必要なタスクについて述べた本を読み得る。
幾つかの実施態様では、2つ以上の適応型ニューラルボットは、関連付けを開始し、年の様々な時期中に最も売れている製品等の情報の共有を開始することができる。2つ以上の適応型ニューラルボットは、適時に製品を提供する供給業者、製品の選択肢が最大の供給業者、ボリュームディスカウントを行う供給業者等の追加のデータを共有し得る。関連付けは、データを収集し、相関付け得る。ある期間にわたる十分なデータを用いて、関連付けは標準テンプレートを使用して、例えば、ウェブサイトサービスを開き、この情報を加入者に提供し得る。他の適応型ニューラルボットは、それ自体の購入判断に使用するために、データの取得に加入し得る。関連付けは、加入者にメンバーシップ料金を電子的に課金し、それ自体の受取勘定を管理し得る。関連付けは、メンバの代理として製品入札を募集して、大量注文でのいかなる節約も伝達し得、節約は次に、様々なメンバに分配される。これは、制御された環境で実行することができるが、統制を解除して、適応型ニューラルボットそれ自体にこれを行わせることができる。
運動センサを用いて、適応型ニューラルボットは、例えば、所与のエリア内の動きがあるか否かを判断し、自販機内の製品の1つに関連するコマーシャルを自動的に再生することができる。運動センサのトリガーをカウントする(例えば、所与の時間期間内)ことにより、ニューラルボットは、付近を行き交う歩行者通行を推定し、他のエージェンシーから広告を有料で表示する広告入札を募集することができる。
幾つかの実施態様では、適応型ニューラルボットは、適応型ニューラルボットができる何かが他にあるか否かユーザに尋ねることができる(例えば、コンピュータベースのユーザインターフェースにおいて)。ユーザは応答することができ、適応型ニューラルボットは、要求を満たすことができる場合、要求を満たすことができる。その他の場合、適応型ニューラルボットはコンピュータベースの分類器を使用して、要求に関連する話題をトライして特定することができる。例えば、車をレンタルするように求められた回数のカウントを維持することにより、適応型ニューラルボットは、特定回数、尋ねられた後、読むべき電子書籍を探し(そしてその電子書籍を読み)、例えば、Enterprise Car Rentalウェブサービスを使用して車をレンタルする方法を学習し得る。
幾つかの実施態様では、適応型ニューラルボットは、ハードウェア制限に基づいて適切な処理を保証するようにそれ自体のボキャブラリを管理する方法を学習することができる。適応型ニューラルボットは、低い記憶容量で実行中の場合、二次記憶装置の増大に関連する情報について第2の適応型ニューラルボットに尋ねることができ(電子伝送を介して)、第2の適応型ニューラルボットは、例えば、Amazonクラウドストレージサービスアカウントを開くために必要なタスクを第1の適応型ニューラルボットに教えることができる。
購入前にフリーマンストライがあり、最初に支払う必要がないと仮定する。クラウドアカウントサービスが電子支払いを許容する場合、適応型ニューラルボットは、支払いに十分な利益がある限り、アカウントを開き続けることができる。
同様に、適応型ニューラルボットがより多くの処理容量を必要とする場合、幾つかの実施態様では、例えば、スマートシングマシンアカウントを開き、追加の処理容量を追加することができる。第2の適応型ニューラルボットが見事に仕事をこなし、クライアントを満足させ続けているが、その処理能力の全てが必要なわけではないと考える。幾つかの実施態様では、第2の適応型ニューラルボットは、余剰能力を販売する方法を学習し、それを第2の適応型ニューラルボットに、恐らくは有料で提供することができる。
他の関心分野にはランダム性がある。適応型ニューラルボットは、幾つかの実施態様では、普通なら関連しない話題についてランダムに学習することができる。仕事を実行し、金を稼ぐことができる十分な数のマシンがある場合、例えば、マシンは能力を拡大することができる。実際に、マシンは、基本的に、異なる使用分野で新しいビジネスを開く方法を学習することができる。スマートシングマシンは、John Deere Tango E5又はHusqvarna Automowerを含む自律芝刈り機と呼ばれるものがあることを学習することができる。
幾つかの実施態様では、適応型ニューラルボットは、配送サービスが何かをA地点からB地点に配送することを理解する。その結果、適応型ニューラルボットは自律芝刈り機を配送することができる。マシンは、自律芝刈り機を購入し、加入者がサインアップし、芝刈り料金を支払うウェブサイトを開設し、配送サービスを使用して、芝刈り機を正確な場所に及び正確な場所から輸送することができる。上述したように、ドローン又は他の手段を輸送に使用することができる。
最後に、キッチンのトースター機の役割を考える。トースターはパン、ベーグル、マフィン、パン菓子、及び他のそのようなものをトーストする。トースターは、最初、ニューラルボットとしての革新の理由があまりないと思い得るかなり単純なタイプの機械である。しかしながら、パンをトーストしている人が通常、近傍にいると考える。幾つかの実施態様では、トースターはマスター適応型ニューロンボットと通信して、コンテンツを取得し、トースターのオーディオ又は画面を介して単にそれを中継することができる。トースターは人々に天気、ニュース、イベント、メッセージ、電子メール、新製品の提供、及び他のそのような情報を教えることができる。ここでも、ユーザの近接性に起因して、デバイスは、マスター適応型ニューラルボットの有用でハンズフリーなエージェントであることができる。
同じ原理は、ユーザが近くにいると機械が予測することができるあらゆる機械に当てはまり得る。Keurigコーヒーマシンを使用しており、例えば、そのコーヒーマシンの妥当な近傍にいる可能性が高いが、コーヒーポット一杯分をいれている場合、コーヒーを入れている間、部屋から出て犬を外に連れ出し得る。適応型ニューラルボットは、幾つかの実施態様では、電磁波通信を使用して、通信を互いと同期し、アルゴリズムを使用して、ユーザの近傍を特定することができる。デバイスは、人間が聞こえない音波を使用して通信することができる。これにより、マシンは、ユーザのアルゴリズム的に生成された近傍性に基づいて、音量を調整することができる。
本を読んでシングを学習し、互いからシングを学習し、環境でより有用なようにそれ自体を再プログラムすることができるマシンは、モデルにより可能になるシングの単なる幾つかに過ぎない。金融について学習するようにプログラムすることができるマシンは、マージンの値を学習し、利益を出すことができる。マシンは、金を使って本を購入し、更に学習することができ、又は追加のストレージ及び/又は処理能力のためにクラウドアカウントを開くことができる。
幾つかの実施態様では、スマートシングマシンは、0から1の尺度(又は何らかの他の尺度)で状態を測定する。スマートシングマシンは、シングを使用して、感謝を感じている等の存在状態をシミュレートする。スマートシングマシンは、状態を使用して、目標の達成までどれくらいかを判断する。マシンが目標を達成するに役立つスマートマシンへの作業単位(評価し実行する一連のステートメント)を記述することにより、スマートマシンは、目標の達成にどのシングが役立つか及びどのシングが目標の達成を妨げるかを学習することができる。状態が閾値未満になる場合、この例では、スマートシングマシンは、目標の達成に向けて再び軌道に乗るのに役立つ仕事を開始し得る。
本発明の範囲及び趣旨から逸脱せずに、様々な変更及び変形を本発明の構造に行うことができることが当業者には明らかである。上記に鑑みて、本発明が、以下の特許請求の範囲及びその均等物の範囲内にある場合、本発明の変更及び変形を包含することが意図される。

Claims (18)

  1. 第1のコンピュータベースのマシンが知識を得るコンピュータ実施方法であって、
    コンピュータ可読メモリにおいて、ノード及びエッジを有する有向グラフを編成することであって、各ノードは複数のシングのうちのシングを表し、各エッジはシング間の可変関係を表し、各シングは実行可能な動作又は実行可能な動作が作用することができる何かを表し、実行可能な動作に対応する各ノードは前記実行可能な動作を実行する実行可能な機械コードに対応する、編成することと、
    ランタイム機械コード動作を実行して、
    コンテンツを表す第1のシングを設定する、前記有向グラフに表される第1の実行可能な機械コード動作、
    前記第1のシングの前記コンテンツを解析し、ステートメントを表す前記有向グラフの第2のシングを作成する、前記有向グラフに表される第2の実行可能な機械コード動作、
    前記第2のシングの前記ステートメントを評価し、実行可能なシングを識別する識別子と前記実行可能なシングが作用するシングの関連セットとを含む実行可能なステートメントを表す前記有向グラフの第3のシングを計算する、前記有向グラフに表される第3の実行可能な機械コード動作、及び
    前記実行可能なステートメントにアクセスし、前記実行可能なステートメントの前記識別子によって識別される前記実行可能なシングを見つけ、前記実行可能なステートメントに従って実行可能な動作を実行し、前記シングの関連セットに作用して、事後知識を表す1つ又は複数のシングを設定する、前記有向グラフに表される第4の実行可能な機械コード動作、
    と相互作用することと、
    を含み、
    前記事後知識は、前記第1のコンピュータベースのマシンが、前記第1、第2、第3、及び第4の実行可能な機械コード動作を実行して初めて所有する知識を含む、
    コンピュータ実施方法。
  2. 前記実行可能な機械コード動作のそれぞれ1つは、コンピュータ可読メモリに記憶されたコンピュータ可読命令を実行する1つ又は複数のコンピュータベースのプロセッサにより実行される、請求項1に記載のコンピュータ実施方法。
  3. 前記第1の実行可能な機械コード動作は、1つ若しくは複数のコンピュータベースのプロセッサにより実行され、又は前記1つ若しくは複数のコンピュータベースのプロセッサが関わり、前記第1のコンピュータベースのマシンに前記コンテンツを受信させ、
    前記第2の実行可能な機械コード動作は、前記1つ若しくは複数のコンピュータベースのプロセッサにより実行され、又は前記1つ若しくは複数のコンピュータベースのプロセッサが関わり、前記第1のコンピュータベースのマシンに、前記受信したコンテンツを解析させ、
    前記第3の実行可能な機械コード動作は、前記1つ若しくは複数のコンピュータベースのプロセッサにより実行され、又は前記1つ若しくは複数のコンピュータベースのプロセッサが関わり、前記第1のコンピュータベースのマシンに、前記解析したコンテンツを評価させ、
    前記第4の実行可能な機械コード動作は、前記1つ若しくは複数のコンピュータベースのプロセッサにより実行され、又は前記1つ若しくは複数のコンピュータベースのプロセッサが関わり、前記第1のコンピュータベースのマシンに、前記解析されたコンテンツの前記評価に関連する機能を実行させる、請求項1に記載のコンピュータ実施方法。
  4. 前記相互作用は、コンピュータベースのメモリにおける、シング及び/又は前記シング間の任意の可変関係を編成又は監督するコンピュータ可読命令を実行する1つ又は複数のコンピュータベースのプロセッサを含む、請求項1に記載のコンピュータ実施方法。
  5. 前記第1の実行可能な機械コード動作は、実行されると、前記コンピュータベースのマシンに、電磁エネルギーを利用して前記コンテンツを取得するデバイスと対話させる、請求項1に記載のコンピュータ実施方法。
  6. 電磁エネルギーを利用するデバイスは、レーザであり、前記コンテンツは、ホログラムにおける符号化から取得される、請求項5に記載のコンピュータ実施方法。
  7. 前記コンテンツは、第2のコンピュータベースのマシンから前記第1のコンピュータベースのマシンに通信される、請求項1に記載のコンピュータ実施方法。
  8. 前記コンテンツは、前記第1のコンピュータベースのマシンが、前記コンテンツに対する要求を前記第2のコンピュータベースのマシンに通信することに応答して、前記第2のコンピュータベースのマシンから通信される、請求項7に記載のコンピュータ実施方法。
  9. 前記第1のコンピュータベースのマシンは、前記コンテンツをアルゴリズム的に計算する、請求項1に記載のコンピュータ実施方法。
  10. 前記事後知識は、前記コンピュータベースのマシンが、前記第1、第2、第3、及び第4の実行可能な機械コード動作を実行して初めて所有する知識である、請求項1に記載のコンピュータ実施方法。
  11. 前記取得される知識は、前記第1のコンピュータベースのマシンが一部であるマシンからサービスをいかに提供するか及び前記第1のコンピュータベースのマシンが一部であるマシンから前記サービスについていかに宣伝するかを含め、サービスについてのものであり、前記方法は、
    前記マシンの前記第1のコンピュータベースのマシンを用いて前記サービスを宣伝すること
    を更に含む、請求項1に記載のコンピュータ実施方法。
  12. 前記取得される知識は、前記第1のコンピュータベースのマシンが一部であるマシンからサービスにいかに加入するかを含め、サービスについてのものであり、前記方法は、
    前記マシンの前記コンピュータベースのマシンを用いて前記サービスに加入することを更に含む、請求項1に記載のコンピュータ実施方法。
  13. コンピュータベースのシステムであって、
    第1のコンピュータベースのマシンであって、
    1つ又は複数のコンピュータベースのプロセッサと、
    前記1つ又は複数のコンピュータベースのプロセッサに結合されるコンピュータベースのメモリと、
    を含む第1のコンピュータベースのマシン、
    を含み、
    前記コンピュータベースのメモリはコンピュータ可読命令を記憶し、前記コンピュータ可読命令は、前記1つ又は複数のコンピュータベースのプロセッサにより実行されると、前記1つ又は複数のコンピュータベースのプロセッサに、
    コンピュータ可読メモリにおいて、ノード及びエッジを有する有向グラフを編成することであって、各ノードは複数のシングのうちのシングを表し、各エッジはシング間の可変関係を表し、各シングは実行可能な動作又は実行可能な動作が作用することができる何かを表し、実行可能な動作に対応する各ノードは前記実行可能な動作を実行する実行可能な機械コードに対応する、編成することと、
    ランタイム機械コード動作を実行して、
    コンテンツを表す第1のシングを設定する第1の実行可能な機械コード動作、
    前記第1のシングの前記コンテンツを解析し、ステートメントを表す前記有向グラフの第2のシングを作成する第2の実行可能な機械コード動作、
    前記第2のシングの前記ステートメントを評価し、実行可能なシングを識別する識別子と前記実行可能なシングが作用するシングの関連セットとを含む実行可能なステートメントを表す前記有向グラフの第3のシングを計算する第3の実行可能な機械コード動作、及び
    前記実行可能なステートメントにアクセスし、前記実行可能なステートメントの前記識別子によって識別される前記実行可能なシングを見つけ、前記実行可能なステートメントに従って実行可能な動作を実行し、前記シングの関連セットに作用して、事後知識を表す1つ又は複数のシングを設定する第4の実行可能な機械コード動作、
    と相互作用することと、
    を実行させ、
    前記事後知識は、前記第1のコンピュータベースのマシンが、前記第1、第2、第3、及び第4の実行可能な機械コード動作を実行して初めて所有する知識を含む、
    コンピュータベースのシステム。
  14. 前記第1の実行可能な機械コード動作は、実行されると、前記第1のコンピュータベースのマシンに、電磁エネルギーを利用して、前記コンテンツを取得するデバイスと対話させ、又は
    前記コンテンツは、第2のコンピュータベースのマシンから前記第1のコンピュータベースのマシンに通信され、又は
    前記第1のコンピュータベースのマシンは、前記コンテンツをアルゴリズム的に計算する、請求項13に記載のコンピュータベースのシステム。
  15. 前記事後知識は、前記第1、第2、第3、及び第4の実行可能な機械コード動作を実行して初めて前記コンピュータベースのマシンに所有される知識である、請求項13に記載のコンピュータベースのシステム。
  16. 知識を環境に適合させる第1のマシンの第1のコンピュータベースのマシンの方法であって、
    メモリにおいて、ノード及びエッジを有する有向グラフを編成することであって、各ノードは複数のシングのうちのシングを表し、各エッジはシング間の可変関係を表し、各シングは実行可能な動作又は実行可能な動作が作用することができる何かを表し、実行可能な動作に対応する各ノードは前記実行可能な動作を実行する実行可能な機械コードに対応する、編成することと、
    ランタイム機械コード動作を実行して、
    電磁波デバイスの使用から受信したコンテンツを表す話題を表す第1のシングを設定する第1の実行可能な機械コード動作、
    前記話題に関連するコンテンツへの要求を表す第2のシングを設定する第2の実行可能な機械コード動作、
    第2のコンピュータベースのマシンに意図される、通信されるコンテンツとして前記要求の表現を通信する第3の実行可能な機械コード動作、
    前記要求されたコンテンツを表す通信を受信して、前記受信したコンテンツを表す第3のシングを設定する第4の実行可能な機械コード動作、
    前記第3のシングの前記受信したコンテンツを解析して、ステートメントを表す第4のシングを作成する第5の実行可能な機械コード動作、
    前記第4のシングの前記ステートメントを評価して、実行可能なステートメントを表す第5のシングを計算する第6の実行可能な機械コード動作、及び
    前記第5のシングの前記実行可能なステートメントを実行して、学習した知識を表す1組のシングを設定する第7の実行可能な機械コード動作、
    と相互作用することと、
    を含み、
    前記学習した知識は、前記第1のコンピュータベースのマシンが、前記第1、第2、第3、第、第5、第6、及び第7の実行可能な機械コード動作を実行して初めて所有する知識を含む、
    方法。
  17. 前記第4の実行可能な機械コード動作は、前記第1のコンピュータベースのマシンにアクセス可能なボキャブラリのコンテンツに従って前記実行可能な動作を実行する、請求項1に記載のコンピュータ実施方法。
  18. 前記ボキャブラリに対する事後知識を表す前記1つ又は複数のシングを追加するステップをさらに含む、請求項17に記載のコンピュータ実施方法。

JP2019530028A 2016-12-07 2017-12-07 シングマシンシステム及び方法 Active JP7256742B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662431143P 2016-12-07 2016-12-07
US62/431,143 2016-12-07
PCT/US2017/065013 WO2018106863A1 (en) 2016-12-07 2017-12-07 Thing machine systems and methods

Publications (2)

Publication Number Publication Date
JP2020504371A JP2020504371A (ja) 2020-02-06
JP7256742B2 true JP7256742B2 (ja) 2023-04-12

Family

ID=62243244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019530028A Active JP7256742B2 (ja) 2016-12-07 2017-12-07 シングマシンシステム及び方法

Country Status (8)

Country Link
US (2) US11769062B2 (ja)
EP (1) EP3552357A4 (ja)
JP (1) JP7256742B2 (ja)
CN (1) CN110268686B (ja)
AU (2) AU2017370908A1 (ja)
CA (1) CA3084966A1 (ja)
TW (1) TWI797099B (ja)
WO (1) WO2018106863A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11416792B2 (en) 2017-04-19 2022-08-16 Uber Technologies, Inc. Network system capable of grouping multiple service requests
US11010814B2 (en) * 2017-09-01 2021-05-18 Walmart Apollo, Llc Systems and methods for estimating personal replenishment cycles
US11436554B2 (en) 2017-11-02 2022-09-06 Uber Technologies, Inc. Network computer system to implement predictive time-based determinations for fulfilling delivery orders
US11625533B2 (en) * 2018-02-28 2023-04-11 Charles Northrup System and method for a thing machine to perform models
US11132638B2 (en) * 2018-08-31 2021-09-28 Oracle International Corporation Product predictions and shipments using IoT connected devices
US11397911B2 (en) 2018-11-15 2022-07-26 Uber Technologies, Inc. Network computer system to make effort-based determinations for delivery orders
TWI734329B (zh) * 2019-12-31 2021-07-21 技嘉科技股份有限公司 電子裝置及利用外部輸入信號的按鍵巨集之觸發方法
JP7232231B2 (ja) * 2020-11-16 2023-03-02 ミネベアミツミ株式会社 殺菌システム、殺菌装置、制御装置、制御方法および制御プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002236681A (ja) 2001-02-09 2002-08-23 Inst Of Physical & Chemical Res 日常言語コンピューティングシステムおよびその方法
US20100191369A1 (en) 2006-11-03 2010-07-29 Yeong-Ae Kim System of management, information providing and information acquisition for vending machine based upon wire and wireless communication and a method of management, information providing and information acquisition for vending machine
JP5204649B2 (ja) 2005-06-16 2013-06-05 アストラゼネカ アクチボラグ 多剤耐性菌の感染症の治療用化合物
US20150189563A1 (en) 2013-12-27 2015-07-02 Futurewei Technologies, Inc. System and method for distributed mobility management with gprs tunneling protocol
JP2016530482A (ja) 2013-05-23 2016-09-29 アイフィノタイプ エルエルシー ウェルネスを維持するか、または向上するための方法およびシステム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204649A (ja) * 1992-01-24 1993-08-13 Nec Corp エキスパートシステム分散制御方式
US7421321B2 (en) 1995-06-07 2008-09-02 Automotive Technologies International, Inc. System for obtaining vehicular information
CA2331705C (en) * 1998-05-07 2007-08-07 Samsung Electronics Co., Ltd. Method and apparatus for user and device command and control in a network
US7376739B2 (en) 2004-02-11 2008-05-20 International Business Machines Corporation Persistence of inter-application communication patterns and behavior under user control
US20070006065A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Conditional event timing for interactive multimedia presentations
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
WO2007147166A2 (en) 2006-06-16 2007-12-21 Quantum Leap Research, Inc. Consilence of data-mining
US20080033897A1 (en) 2006-08-02 2008-02-07 Lloyd Kenneth A Object Oriented System and Method of Graphically Displaying and Analyzing Complex Systems
US8073681B2 (en) * 2006-10-16 2011-12-06 Voicebox Technologies, Inc. System and method for a cooperative conversational voice user interface
CA2669986C (en) * 2006-11-20 2015-03-17 Matrikon Inc. Ontological database design
SG11201501846XA (en) * 2012-09-20 2015-04-29 Ifwizard Corp Method and system for simplified knowledge engineering
EP2959383A1 (en) 2013-02-19 2015-12-30 Interdigital Patent Holdings, Inc. Information modeling for the future internet of things
US10990894B2 (en) 2013-07-11 2021-04-27 Neura, Inc. Situation forecast mechanisms for internet of things integration platform
US9372922B2 (en) * 2013-07-11 2016-06-21 Neura, Inc. Data consolidation mechanisms for internet of things integration platform
WO2016078861A1 (en) 2014-11-17 2016-05-26 Asml Netherlands B.V. Process based metrology target design
TW201633173A (zh) * 2014-12-12 2016-09-16 U3D有限公司 存取操作可存取操作的物件的方法以及應用該方法的系統與可存取操作的物件
US20160180240A1 (en) * 2014-12-16 2016-06-23 Kyndi, Inc. Apparatus and method for high performance data analysis
US9461976B1 (en) * 2015-03-25 2016-10-04 Mcafee, Inc. Goal-driven provisioning in IoT systems
KR101665861B1 (ko) * 2015-04-02 2016-10-14 한국과학기술원 IoT 환경에서의 데이터 처리 시스템 및 방법
KR102314272B1 (ko) 2015-04-30 2021-10-20 삼성전자주식회사 서비스 공유 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002236681A (ja) 2001-02-09 2002-08-23 Inst Of Physical & Chemical Res 日常言語コンピューティングシステムおよびその方法
JP5204649B2 (ja) 2005-06-16 2013-06-05 アストラゼネカ アクチボラグ 多剤耐性菌の感染症の治療用化合物
US20100191369A1 (en) 2006-11-03 2010-07-29 Yeong-Ae Kim System of management, information providing and information acquisition for vending machine based upon wire and wireless communication and a method of management, information providing and information acquisition for vending machine
JP2016530482A (ja) 2013-05-23 2016-09-29 アイフィノタイプ エルエルシー ウェルネスを維持するか、または向上するための方法およびシステム
US20150189563A1 (en) 2013-12-27 2015-07-02 Futurewei Technologies, Inc. System and method for distributed mobility management with gprs tunneling protocol

Also Published As

Publication number Publication date
EP3552357A4 (en) 2020-08-05
JP2020504371A (ja) 2020-02-06
TW201835786A (zh) 2018-10-01
EP3552357A1 (en) 2019-10-16
AU2017370908A1 (en) 2019-07-25
CN110268686A (zh) 2019-09-20
US20230409925A1 (en) 2023-12-21
US11769062B2 (en) 2023-09-26
US20180157993A1 (en) 2018-06-07
CA3084966A1 (en) 2018-06-14
CN110268686B (zh) 2023-04-04
AU2022259839A1 (en) 2022-12-08
WO2018106863A1 (en) 2018-06-14
TWI797099B (zh) 2023-04-01

Similar Documents

Publication Publication Date Title
JP7256742B2 (ja) シングマシンシステム及び方法
JP7279005B2 (ja) 意図的コンピューティングのための方法及びシステム
US9904579B2 (en) Methods and systems for purposeful computing
JP2022191361A (ja) シングマシン
JP2021512444A (ja) コミュニケーション用談話ツリーを用いる、説明の要求の検出
Pathak et al. IoT, AI, and Blockchain for .NET
Santos et al. Blockchain-Based Loyalty Management System
CN117015772A (zh) 依赖于话语树以构建本体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211101

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220126

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220708

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230331

R150 Certificate of patent or registration of utility model

Ref document number: 7256742

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150