on the Curl Web Content Markup Language

on the Curl Web Content Markup and Programming Language from www.curl.com and www.curlap.com
Showing posts with label data. Show all posts
Showing posts with label data. Show all posts

Monday, August 4, 2014

Kodansha KLC kanji : first 500 in groups using Curl web markup


What you see below is the post to the kanjirecog blog shown here as Curl markup instead of HTML :

{curl-file-attributes character-encoding = "utf8"}
{br} {k 12, 丸} {k 13, 円} {k 14, 〇}
{br} {k 15, 人}
{br} {k 16, 百} {k 17, 千} {k 18, 万}
{br} {k 19, 口} {k 20, 田}
{br} {k 21, 目}
{br} {k 22, 川}
{br} {k 23, 月} {k 24, 明} {k 25, 曜}
{br} {k 26, 火} {k 27, 水}
{br} {k 28, 木} {k 29, 金} {k 30, 土} {k 31, 本} {k 32, 東}
{br} {k 33, 大} {k 34, 小} {k 35, 中}
{br} {k 36, 生}
{br} {k 37, 山} {k 38, 出}
{br} {k 39, 入} {k 40, 下} {k 41, 上} {k 42, 止} {k 43, 正}
{br} {k 44, 足} {k 45, 定} {k 46, 手} {k 47, 用} {k 48, 無} {k 49, 不} {k 50, 回}
{br} {k 51, 言} {k 52, 舌} {k 53, 話} {k 54, 活}
{br} {k 55, 行} {k 56, 心} {k 57, 耳} {k 58, 又} {k 59, 取} {k 60, 身}
{br} {k 61, 休} {k 62, 体} {k 63, 信} {k 64, 付} {k 65, 受} {k 66, 以}
{br} {k 67, 立} {k 68, 部} {k 69, 倍} {k 70, 成} {k 71, 代}
{br} {k 72, 王} {k 73, 玉} {k 74, 宝} {k 75, 国} {k 76, 白} {k 77, 皇} {k 78, 全}
{br} {k 79, 書} {k 80, 事}
{br} {k 81, 自} {k 82, 貝} {k 83, 見}
{br} {k 84, 力} {k 85, 刀} {k 86, 切} {k 87, 刃} {k 88, 分}
{br} {k 89, 公} {k 90, 別} {k 91, 長}
{br} {k 92, 男} {k 93, 女} {k 94, 子} {k 95, 好} {k 96, 安} {k 97, 案}
{br} {k 98, 字} {k 99, 学} {k 100, 父} {k 101, 文} {k 102, 交} {k 103, 校}
{br} {k 104, 母} {k 105, 毎} {k 106, 海} {k 107, 者}
{br} {k 108, 工} {k 109, 式} {k 110, 弐} {k 111, 武}
{br} {k 112, 糸} {k 113, 前} {k 114, 後}
{br} {k 115, 午} {k 116, 牛} {k 117, 年} {k 118, 件}
{br} {k 119, 条} {k 120, 化} {k 121, 花} {k 122, 北} {k 123, 比} {k 124, 背}
{br} {k 125, 車} {k 126, 気} {k 127, 汽} {k 128, 性} {k 129, 畑}
{br} {k 130, 青} {k 131, 麦} {k 132, 素} {k 133, 毒}
{br} {k 134, 先} {k 135, 洗} {k 136, 元} {k 137, 光} {k 138, 去} {k 139, 法}
{br} {k 140, 走} {k 141, 当} {k 142, 思}
{br} {k 143, 早} {k 144, 草} {k 145, 朝} {k 146, 潮}
{br} {k 147, 形} {k 148, 発} {k 149, 廃}
{br} {k 150, 音} {k 151, 意}
{br} {k 152, 作} {k 153, 昨}
{br} {k 154, 雨} {k 155, 電}
{br} {k 156, 頁} {k 157, 首} {k 158, 道} {k 159, 通}
{br} {k 160, 乳}
{br} {k 161, 豆} {k 162, 頭}
{br} {k 163, 予} {k 164, 矛} {k 165, 預}
{br} {k 166, 句} {k 167, 旬} {k 168, 勺} {k 169, 的} {k 170, 約}
{br} {k 171, 勿} {k 172, 物} {k 173, 方} {k 174, 防}
{br} {k 175, 面} {k 176, 画} {k 177, 両} {k 178, 岡} {k 179, 満}
{br} {k 180, 顔} {k 181, 産}
{br} {k 182, 同} {k 183, 向} {k 184, 尚} {k 185, 高} {k 186, 圧}
{br} {k 187, 地} {k 188, 池} {k 189, 他} {k 190, 集} {k 191, 進}
{br} {k 192, 込} {k 193, 斤} {k 194, 近} {k 195, 辺} {k 196, 最}
{br} {k 197, 皿} {k 198, 血} {k 199, 温} {k 200, 湿}
{br} {k 201, 爪} {k 202, 瓜} {k 203, 巾} {k 204, 布} {k 205, 市} {k 206, 吊}
{br} {k 207, 泉} {k 208, 原} {k 209, 源} {k 210, 線} {k 211, 綿} {k 212, 絹} {k 213, 錦} {k 214, 願}
{br} {k 215, 内} {k 216, 肉} {k 217, 猪} {k 218, 豚} {k 219, 家}
{br} {k 220, 吾} {k 221, 我} {k 222, 語} {k 223, 伝} {k 224, 転} {k 225, 芸} {k 226, 会}
{br} {k 227, 合} {k 228, 今} {k 229, 令} {k 230, 念}
{br} {k 231, 印} {k 232, 命} {k 233, 亡}
{br} {k 234, 米} {k 235, 粒} {k 236, 和} {k 237, 私} {k 238, 広} {k 239, 細}
{br} {k 240, 林} {k 241, 森} {k 242, 松} {k 243, 竹} {k 244, 都} {k 245, 京}
{br} {k 246, 政} {k 247, 府}
{br} {k 248, 戸} {k 249, 所}
{br} {k 250, 至} {k 251, 致} {k 252, 屋} {k 253, 室}
{br} {k 254, 古} {k 255, 居} {k 256, 局} {k 257, 故} {k 258, 胡} {k 259, 湖}
{br} {k 260, 固} {k 261, 箇} {k 262, 個} {k 263, 且} {k 264, 組}
{br} {k 265, 夕} {k 266, 外} {k 267, 多} {k 268, 汐} {k 269, 名}
{br} {k 270, 天} {k 271, 未} {k 272, 末} {k 273, 味} {k 274, 来} {k 275, 新} {k 276, 親}
{br} {k 277, 欠} {k 278, 次} {k 279, 席} {k 280, 度} {k 281, 渡}
{br} {k 282, 限} {k 283, 銀} {k 284, 根} {k 285, 良} {k 286, 郎} {k 287, 廊}
{br} {k 288, 食} {k 289, 飲}
{br} {k 290, 官} {k 291, 館} {k 292, 宿}
{br} {k 293, 犬} {k 294, 太}
{br} {k 295, 器}
{br} {k 296, 凶} {k 297, 区} {k 298, 図} {k 299, 番}
{br} {k 300, 号} {k 301, 品} {k 302, 楽} {k 303, 薬}
{br} {k 304, 周} {k 305, 週} {k 306, 調}
{br} {k 307, 束} {k 308, 整} {k 309, 数} {k 310, 類}
{br} {k 311, 示} {k 312, 禁} {k 313, 礼} {k 314, 社} {k 315, 申} {k 316, 神}
{br} {k 317, 員} {k 318, 質}
{br} {k 319, 党} {k 320, 堂} {k 321, 常}
{br} {k 322, 賞} {k 323, 償} {k 324, 掌} {k 325, 覚}
{br} {k 326, 悟} {k 327, 感} {k 328, 央} {k 329, 映} {k 330, 決} {k 331, 快}
{br} {k 332, 英}
{br} {k 333, 並} {k 334, 平} {k 335, 半}
{br} {k 336, 馬} {k 337, 尺} {k 338, 尽} {k 339, 駅} {k 340, 鳥} {k 341, 島}
{br} {k 342, 角}
{br} {k 343, 虫} {k 344, 触} {k 345, 解} {k 346, 独}
{br} {k 347, 店} {k 348, 占} {k 349, 点}
{br} {k 350, 士}
{br} {k 351, 商}
{br} {k 352, 買}
{br} {k 353, 売} {k 354, 続} {k 355, 読}
{br} {k 356, 共} {k 357, 供} {k 358, 洪} {k 359, 昔}
{br} {k 360, 冬} {k 361, 寒} {k 362, 春} {k 363, 夏} {k 364, 秋}
{br} {k 365, 主} {k 366, 住} {k 367, 駐} {k 368, 注}
{br} {k 369, 志} {k 370, 誌} {k 371, 仕} {k 372, 任}
{br} {k 373, 支} {k 374, 反} {k 375, 坂} {k 376, 阪} {k 377, 飯} {k 378, 返}
{br} {k 379, 雑}
{br} {k 380, 乱}
{br} {k 381, 寸} {k 382, 寺} {k 383, 時} {k 384, 持} {k 385, 特} {k 386, 待} {k 387, 得} {k 388, 侍} {k 389, 詩}
{br} {k 390, 即} {k 391, 節} {k 392, 筋} {k 393, 等}
{br} {k 394, 均}
{br} {k 395, 季} {k 396, 委}
{br} {k 397, 穴} {k 398, 空} {k 399, 友} {k 400, 有}
{br} {k 401, 左} {k 402, 右}
{br} {k 403, 石} {k 404, 若} {k 405, 苦} {k 406, 在} {k 407, 存}
{br} {k 408, 干} {k 409, 刊} {k 410, 汗} {k 411, 竿}
{br} {k 412, 利}
{br} {k 413, 害}
{br} {k 414, 益} {k 415, 溢}
{br} {k 416, 割}
{br} {k 417, 憲}
{br} {k 418, 羽} {k 419, 翌} {k 420, 習}
{br} {k 421, 弓} {k 422, 引} {k 423, 強} {k 424, 弱}
{br} {k 425, 風}
{br} {k 426, 己} {k 427, 記} {k 428, 紀} {k 429, 改} {k 430, 起}
{br} {k 431, 姓}
{br} {k 432, 由} {k 433, 油}
{br} {k 434, 井} {k 435, 囲} {k 436, 丼}
{br} {k 437, 丁} {k 438, 寧} {k 439, 町} {k 440, 灯} {k 441, 庁} {k 442, 貯}
{br} {k 443, 易} {k 444, 賜} {k 445, 場} {k 446, 湯}
{br} {k 447, 門} {k 448, 間} {k 449, 閉} {k 450, 開} {k 451, 関} {k 452, 問} {k 453, 聞}
{br} {k 454, 訪} {k 455, 送} {k 456, 券} {k 457, 包} {k 458, 巻} {k 459, 圏} {k 460, 勝}
{br} {k 461, 戦} {k 462, 単} {k 463, 簡} {k 464, 過} {k 465, 骨} {k 466, 昼}
{br} {k 467, 夜} {k 468, 液} {k 469, 戒} {k 470, 幾} {k 471, 畿} {k 472, 磯} {k 473, 機} {k 474, 械}
{br} {k 475, 飛} {k 476, 氏} {k 477, 民} {k 478, 紙} {k 479, 低} {k 480, 抵} {k 481, 邸} {k 482, 底}
{br} {k 483, 巨} {k 484, 臣}
{br} {k 485, 基} {k 486, 期}
{br} {k 487, 毛} {k 488, 尾}
{br} {k 489, 育}
{br} {k 490, 羊} {k 491, 洋}
{br} {k 492, 魚} {k 493, 鮮} {k 494, 蘇}
{br} {k 495, 詳} {k 496, 祥}
{br} {k 497, 美} {k 498, 業} {k 499, 実} {k 500, 養} {k 501, 様}
{br} {k 502, 企}
{br} {k 503, 曲} {k 504, 典}
{br} {k 505, 興} {k 506, 輿}
{br} {k 507, 竜} {k 508, 滝} {k 509, 籠} {k 510, 辰} {k 511, 農} {k 512, 濃} {k 513, 豊}
{br} 

|| # eof line 277 ########################################


The {k } could be your user defined layout macro or a function coded in the Curl web content programming language, an expression-based PL from MIT in Cambridge MA and now at SCSK Corp in Tokyo.

My next version will use a function to emit Curl TextShape objects within a container, so they will become an array with each {k ... } separated by commas, all line break {br} deleted and '{k' replaced with maybe {KLCTextShaper to give a more explanatory name for instances of objects. An easy transition from declarative markup to data.

Monday, May 28, 2012

Curl data versus JSON data (light-weight markup)

Here is the top of a validated JSON katakana data file for Japanese e-learning:

{"katakana": [
{"ucs": "30AB", "utf-8": "E382AB", "kana": "カ", "info": "katakana letter KA"},
{"ucs": "30AC", "utf-8": "E382AC", "kana": "ガ", "info": "katakana letter GA"},
{"ucs": "30AD", "utf-8": "E382AD", "kana": "キ", "info": "katakana letter KI"},
{"ucs": "30AE", "utf-8": "E382AE", "kana": "ギ", "info": "katakana letter GI"},

and here is the Curl:

{let katakana-array:{Array-of Katakana} = {new {Array-of Katakana},
{Katakana "30AB", "E382AB", "カ", "katakana letter KA"},
{Katakana "30AC", "E382AC", "ガ", "katakana
letter GA"},
{Katakana "30AD", "E382AD", "キ", "katakana
letter KI"},
{Katakana "30AE", "E382AE", "ギ", "katakana
letter GI"},

In Curl, both require field definitions for processing - except that the Curl data requres a minimal class definition and a default constructor declaring all fields as being assigned (simple value class).

Of course both could have been reduced to mere arrays of strings, but then the iteration over the data would use no tags or keys.  The Curl version is tagged, but internally:

{define-value-class public final Katakana
  field private constant ucs-code:String || = "0000"
  field private constant utf8-code:String || = "000000"
  field private constant kana-char:String || = {String '\u5B57'} || "字"
  field private constant kana-name:String || = "Ji"
  {getter public {ucs}:String
    {return self.ucs-code}
  }
  {getter public {utf-8}:String
    {return self.utf8-code}
  }
  {getter public {katakana}:String
    {return self.kana-char}
  }
  {getter public {character}:String
    {return self.kana-name}
  }
  {constructor {default ucs:String, utf:String, kana:String, info:String}
    set self.ucs-code = ucs
    set self.utf8-code = utf
    set self.kana-char = kana
    set self.kana-name = info
  }
 }
{include "./katakana-unicode.scurl"}

The iterator block accesses each instance as, e.g., val.ucs and so forth.

In fairness, the JSON could have been

{"katakana-array": [
{"katakana": ["ucs": "30AB", "utf-8": "E382AB", "kana": "カ", "info": "katakana letter KA"]},

but it further complicated iterating over the data.

In the Curl applet the Curl data is processed dramatically faster, naturally.

The JSON data can be used anywhere, e.g., by Pharo Smalltalk or jQuery in web page widgets.

Note: the UTF-8 can be used to urlencode:  "E382B6" becomes %E3%82%B6 for a URL.

Here is one result using the Curl data: (click to view)

 

The applet is located at www.aule-browser.com/kanji/kana-charts.html