GNOWSYS (Gnowledge Networking and Organizing system)は、汎用的な分散ネットワークベースのメモリ/知識管理システムの仕様です。セマンティックWebコンテンツの開発と保守のためのアプリケーションとして開発されました。Pythonで記述されており、Djangoアプリケーションとして実装されています。GNOWSYSプロジェクトは、Nagarjuna G.氏がHomi Bhabha Centre for Science Education(HBCSE)に勤務していた2001年に開始されました。
GNOWSYSのメモリはノード指向空間として設計されています。ノードは、リンクを持つ他のノードによって記述されます。ノードは、近傍と呼ばれる複雑なデータ構造に従って編成および処理されます。[ 1 ]
このアプリケーションは、Web ベースの知識表現およびコンテンツ管理プロジェクト、構造化された知識ベースの開発、共同オーサリング ツールとして、電子用語集、辞書、百科事典の作成、大規模な Web サイトやリンクの管理、書籍を含むあらゆるもののライブラリのオンライン カタログの開発、オントロジーの作成、あらゆるオブジェクトの分類とネットワーク化などに使用できます。このツールは、さまざまな概念やソフトウェア パッケージ間の依存関係管理を備えたオンライン チュータリング システムにも使用されることを意図しています。たとえば、Debianパッケージ間の依存関係は、 Wayback Machineに 2018 年 5 月 14 日にアーカイブされたgnowledge ポータル によって表現されています。
カーネルは、用語、述語などの知識表現の非常に細かいノードや、引数、ルール、公理系、緩やかに保持された段落、より複雑な構造化された一貫性のある構成などの非常に複雑な命題体系を永続的に保存するためのサポートを提供するように設計されています。GNOWSYS のすべてのコンポーネント クラスは、複雑さに応じて 3 つのグループに分類され、最初の 2 つのグループは、一階述語論理で許容されるすべての可能な整形式式を表現するために使用されます。[ 2 ]
宣言的知識を表す「オブジェクト」、「オブジェクト型」、時間的オブジェクトを表す「イベント」、「イベント型」、上位オントロジーを表す「メタ型」があります。このグループのオブジェクトは、知識エンジニアが知識ベースに表現して格納しようとするあらゆるもの、つまり議論の対象です。これらの構成要素クラスのインスタンスは、インスタンス関係やサブクラス関係を明示して格納することも、明示せずに格納することもできます。
このグループは、宣言的知識を表現するための「関係」と「関係タイプ」、および手続き的知識を表現するための「関数」と「関数タイプ」で構成されます。このグループは、知識ベースに格納されているさまざまなインスタンス間の質的および量的関係を表現するためのものです。述語をインスタンス化する際には、これらの述語オブジェクトの単項述語として、関係、量化子、および基数といった論理的特性によって特徴付けることができます。
「システム」、「カプセル化クラス」、「プログラム」、「プロセス」は、複雑な構造のための他の基本クラスであり、これらを反復的に組み合わせることで、より複雑なシステムを生成できます。コンポーネントクラス「システム」は、オントロジー、公理系、人体や車両などの人工物といった複雑なシステムなど、整合性チェックの有無にかかわらず、一連の命題を知識ベースに格納します。「カプセル化クラス」は、宣言的オブジェクトと振る舞いオブジェクトを柔軟な方法で構成してクラスを構築します。「プログラム」は、知識ベースに既に存在する振る舞いインスタンスと組み込みのコネクタ(条件とループ)から構成される、完全なプログラムまたはコンポーネントクラスのロジックを格納するだけでなく、Webサービスとして実行します。「プロセス」は、シーケンス、並行性、同期または非同期の仕様を使用して、時間オブジェクトを構造化します。
データベース内の各ノードは、そのオブジェクトが役割を担うスーパークラス、サブクラス、インスタンス関係、その他の関係など、近傍情報を述語の形で保持します。この機能により、グラフ描画や推論の計算、依存関係やナビゲーションパスの計算が非常に容易になります。すべてのデータとメタデータは中央カタログにインデックス化されているため、クエリとリソースの検索が効率的に行えます。