CBORの記述の診断の正確性を確認するツールが存在する。
https://github.com/cabo/cbor-diag
私自身はCBORのユーザではまだないのであるが、本ツールを使うと、JSON schemaのチェックに利用することもできる。
本ツールの機能として、JSON schemaをCBORに変換する、もしくはその逆返還をすることができるため、その際のエラーの有無によりJSON schemaの修正を実施することができる。
https://github.com/cabo/cbor-diag
ネットワークの構造を示すものがネットワークトポロジであるが、これを数式化できれば、コンピュータで扱いやすくなる。その数式化の手法として、ここでは隣接行列、ラプラシアン行列、そしてTotal Accessibility Matrixというものが存在する。以下、そのそれぞれについて簡単に説明する。
1. 隣接行列
n個のノードを持つネットワークGは、n x nの隣接行列Aで表され、その要素Ai;j (1 <= i; j <= n)は、以下のように表される。
Ai;j = 1 ( i link to j) OR 0 (otherwise)
隣接行列があれば、例えば、ノード iの持つリンク数の合計はすべてのj値に対するAi;jの値の総和にて表される。
2. ラプラシアン行列
次元ベクトルから隣接行列を減算することで、ラプラシアン行列Lを作成することができる。
ラプラシアン行列が手に入ると、例えば、その固有値を導出し、その値が0となる固有値の個数をカウントすることで、分割で切るネットワーク数を知ることができる。
3. Total Accessibility Matrix
ネットワークにおける各ノードに対するアクセシビリティを算出するためのパラメータがTotal Accessibility Matrix。この値が高いほど、アクセシビリティが高いノードとなる。
XMLの構文を定義するものには、W3CのXML schemaが存在するが、このほかにも、時期を同じくしてOASISが策定したRELAX NG (リラクシングと読む)が存在する。これは、XMLに準拠したスキーマと、XMLに準拠しないスキーマ(RELAX NG Compact schema)を定義しており、特に後者は短縮構文といわれている。俺はW3CのXML schemaに既に慣れているので特にXML schemaに文句はないが、そうでなければ、このRELAX NG Compact schemaはよいかもしれない。
https://ja.wikipedia.org/wiki/RELAX_NG
Just another WordPress site