どうも~。こんばんは。
今日は久々にXMLをいじりました。
そいでもって、いつものごとく会社の帰りにいろいろ妄想してたんですが。
画期的なXMLの処理エンジンを作りたい!
たとえばこんなXMLがあります。
<?xml version="1.0" encoding="UTF-8">
<memberlist>
<member no="1">
<name>山中 聡</name>
<age>35</age>
<address>yamanaka@yamanaka.orz</address>
<birth>1986/05/25/</birth>
</member>
</memberlist>
皆さんはぱっと見何のデータだと思いますか?
どうやら個人情報っぽいってのがわかりますよね。
ところが同じ情報を表そうとすると、
<?xml version="1.0" encoding="UTF-8">
<会員名簿>
<山中聡 番号="1">
<年齢>35</年齢>
<連絡先>yamanaka@yamanaka.orz</連絡先>
<誕生日>昭和61年5月25日</誕生日>
</山中聡>
</会員名簿>
とも表せますよね。(正直こんなつくりのXMLは実用性ないけど)
人間にはこの違いを吸収して同じデータとして扱うことが出来るじゃないですか。
つまり何がいいたいかというと、この違いをパーサーレベルで吸収できないなか。
ということです。
はい。
無理です。
正直、僕のXMLの技術が未熟なせいもあり、
構造の変化でプログラムをやたらいじるのがどうも違和感を感じているんですね。
主にDOMを使ってるんですが、
いつものやり方上の方のXMLから名前を取って出力してみます。
(とりあえずPHPで書きます。)
$nodeslist = get_element_by_tagname(“name”);
foreach ($nodeslist as $node){
echo $node->get_content();
]
とまぁこんな感じなんですが。
下の方のXMLから名前を抜き出そうとすると、今度は名前がノード名に
なっているので、ぜんぜん違う方法を取る必要が出てきます。
おまけにこれだとタグ名が変わったり、取り出したいデータが増えるたびに
ソースを改変する必要がありますよね。
もちろん、あらかじめ必要なタグ名を配列に入れておいて、その配列
をループさせながら取得するとい方法もありますが。
それもめんどくさいし、どうせ、こっちでXMLの構造把握しとかないと
使えないわけじゃないですか。
(当たり前っちゃあたりまえですが)
つまり、日付がきたら概ね誕生日とか、入会日とかw
男、女、men,women,male,femaleなら性別。
みたいなXMLの形態素解析?みたいなことをやって、
勝手にいい感じのデータ構造(配列や、ハッシュテーブル)に変えてくれないかな~。
たとえばどちらのXMLを解析させても
$result[“No”] = 1
$result[“名前”] = “山中聡”
$result[“年齢”] = 35
$result[“誕生日”] = “1986/05/25/”
見たいなとっても使いやすいデータになって出せないかな?
とか思ったわけです。
人間だったら可能じゃないですか?
まぁ。実際実現して利用価値があるか?と言われるとありませんし、XMLのノードの親子関係や、兄弟関係などの表現の仕方もあるでしょうし、
実現は厳しいかな?
とりあえず、どんなデータが来ても理解してくれるってのが出来たらおもしろいかな~と。
そしたらコンピュータが大きく人間側に近づけるんじゃないかな?
という妄想です。
妄想ほど、楽しいものはないし、人間特有ではないでしょうか?
自分で言うのも変ですが、こういう妄想を繰り返していくうちに、
不意に新しいアイデアや、既存の問題へのブレークスルーにつながるのでは?
と思った今日この頃でした。
しょーもない上にわかりにくくてすみませんm(_ _”m)ペコリ
ではでは。またの機会に。
AI(人工知能の世界)やね
>>k
もともとAIが作りたかった人間ですからw
AIが止まらない!を呼んでまじでCをいじりだしたこともあった。
雷が落ちるのを待ったりしたこともあった。
なつかしい。