htmlを多項式にしてみた

動機と注意


もし,htmlが多項式になるなら,実際に作るとどうなるのか?

ということで,やってみた.

注意

今回実験的要素が多く含まれます.
さらに結果もたいしたことないので,見る価値も今一つありません.

プログラムはGitHubにあります.

一部,引用だったりコードブロックだったりしますが,引用部はhtmlがうまくコードブロックで書けなかった部分です.

——–

方針


  1. htmlを多項式にする

+ タグを変数に,文章を定数に置換
+ 1行ずつ処理
+ 同じ行の変数と定数は積として単項式に
+ 単項式の和(つまり多項式)としてhtmlを表現

"""
# 単項式にするイメージ!(Python)
# 変数

-> x1

-> x2
<i><i>  -> x3
</i></i> -> x4

# 定数
こんなhtml -> a1
あんなhtml -> a2
"""

単項式1 = 変換する関数("

こんなhtml

")
print(単項式1)
# 表示結果:x1 * a1 * x2

単項式2 = 変換する関数("<i><i>あんなhtml</i></i>")
print(単項式2)
# 表示結果:x3 * a2 * x4

多項式 = 単項式1 + 単項式2
print(多項式)
# 表示結果:x1*a1*x2 + x3*a2*x4
  1. 多項式を計算させてみる

+ 2つのhtml(多項式)でグレブナ基底を計算

  1. 計算結果をhtmlに戻してみる

——–

結果


htmlを多項式で表現

今回使用したhtmlは

<html>
<body>
<p>ここに文章</p>
<i>たとえばイタリックにしたり?</i>
<p><strong>文章を強調</strong>してみたり!</p>
</body>
</html>

と,

<html>
<body>
<p>ここに文章</p>
<p><strong>文章を強調</strong>してみたり!</p>
</body>
</html>

タグ(変数)と文章(定数)は次.

x1 = “<html>”
x2 = “<body>”
x3 = “<p>”
x4 = “<strong>”
x5 = “</html>”
x6 = “</body>”
x7 = “</p>”
x8 = “</strong>”
a1 = “ここに文章”
a2 = “<i>”
a3 = “たとえばイタリックにしたり?”
a4 = “</i>”
a5 = “文章を強調”
a6 = “してみたり!”

このとき,htmlを変換(タグを記号に置き換えるだけ)すると

x1 + x2 + x3*a1*x7 + a2*a3*a4 + x3*x4*a5*x8*a6*x7 + x6 + x5 ,
x1 + x2 + x3*a1*x7 + x3*x4*a5*x8*a6*x7 + x6 + x5

となる.

この2つの多項式でグレブナ基底を計算すると

a4*a3*a2, x1+x2+(a6*a5*x8*x4+a1)*x7*x3+x6+x5

これをhtmlに戻すと

<!– a4*a3*a2 の結果 –>
</i>たとえばイタリックにしたり?<i>
<!– x1+x2+(a6*a5*x8*x4+a1)*x7*x3+x6+x5 の結果 –>
<html>
<body>
してみたり!文章を強調</strong><strong></p><p>
ここに文章</p><p>
</body>
</html>

となる.

——–

まとめと考察?


もうすこしタグが基底っぽく機能するようなモデルにしたかった.
おそらく,一行が一つの単項式になるのが問題で,
一行が一つの多項式になると,もうすこし基底っぽいのがでてくると思われる.

結果がちゃんとhtmlになってない.
これは,順序を正しく与えてあげればそれっぽいのはできる.
ただし,入れ子構造が崩壊しているのは避けられない.
上記と同じく,一行が一つの単項式なのが原因と考えられる.

 

まとめると,今回作った方針でhtmlを多項式化しても特に意味はなさそう.
だが,説明としては使えなくもない・・・のかなぁという感想.

——–

使用したプログラム


今回は乗せると冗長だと判断したため,GitHubに掲載.