从WEB生态圈的应用开放环境看CNML的推广及发展
时间:2013-03-28

    中文新闻信息置标语言CNML以文档、信封-稿件、内容项三个层级,辅以元数据、稿件关系、内容项关系、受控词表等全面构建了中文新闻信息标准,为中文新闻信息相关应用系统的开发奠定了坚实的基础。其中的很多内容,包括对稿件、内容项的定义,对相关、部分、从属、衍生的关系的总结,对新闻、广告业务的考虑,对全媒体内容的涵盖,对由行业经验挖掘和提炼的受控词表的持续改进,对版权、签名、统计等管理功能的设计,对文件的命名等等,其全面性、细致性、逻辑性,让笔者这样从业近三十年的技术工作者都深感震撼。中文新闻信息置标语言CNML的意义无疑是巨大的,而从笔者的角度来看,其全面性最具特点,未来其他相关新闻信息的标准的制定,都可以以中文新闻信息置标语言CNML为根本,完善并细化目前未展开的部分,防止再做重复性的工作。 在中文新闻信息置标语言CNML的应用和推广中,新华社的全力推进,给人以深刻印象,建立了非常优秀的模式。这种基础性的工作,工作量巨大,商业回报周期较长,但意义重大。没有新华社的推动,是不可想象的。同时,新华社的全球性的新闻发稿系统,为标准的使用及推广提供了宽阔的舞台,CNML的下一步发展,还需要新华社的大环境给予支持,也必然能促进包括新华社在内的整个中国新闻传媒界的技术进步。
    作为媒体数字化的传统研发公司,华光是参加“七四八工程”会战的主要单位之一,近30年来一直致力于中文信息处理技术及相关领域的研究和开发,为中文信息处理技术的发展做出了重要贡献,在整个发展过程中,借助华光电子出版系统,参与并推进了大量标准或第三方系统的实施和成熟过程,从计算机网络技术到苹果系统的率先使用及推广,汉字编码从新华码到国标码到GB18030的升级,五笔字型等输入法的推广流行,批处理语言到S2语言的页面描述语言的探索,以及CNML在各报刊新版采编系统及与其他系统接口的应用等等,大量的实践了各种标准的推广。也有责任和义务对CNML的推广及发展提供一些建议。
    和制定中文新闻信息置标语言CNML的大量工作对比,CNML的行业应用范围,目前还不是非常广泛。其实,中文新闻信息置标语言CNML的很多成果,包括不断丰富的受控词表这样的具备行业级别的类似宏定义、全局定义的特色内容,都是非常有价值,值得全面展开,共同促进的。相比而言,近几年,基于互联网的WEB系统的各种应用,大型的主流的互联网巨头,均高度重视开放平台的建设,推动围绕开放平台API的大量第三方开发商开发各种海量应用,显得非常富有活力,值得借鉴。这方面比较有代表性的与基础设施相关的谷歌的GAE(Google App Engine)开放平台、亚马逊AWS(Amazon Web Services) 开放平台;国内公司,如淘宝、百度、新浪、腾讯均展开形形色色的开放平台计划,制定相关数据及API的标准,吸引开发者参与到其生态链中。而这些开放平台中,近年来影响较大的,也最具特色的,是Twitter 的开放接口API,以及其衍生的新浪微博的开放接口API。
    笔者至今还能想起初次见到Twitter 的API的兴奋:基本上只有User和Status 两种资源的API异常简洁,由status的唯一性ID和全面的检索接口,形成了一种key-value数据结构,以至于可以把Twitter 的API网站看成一个在线的数据库系统,在此之上可以构建任何扩展应用;Twitter的具有RESTful风格的json数据格式,使得前端利用javascript脚本即可操作获取的数据,实现逻辑和展现;理论上,只要在互联网上找到一个安置主页和JS脚本的简单空间,就可以连接Twitter API 构建起复杂的应用了,这在以前是不可想象的,事实上,早期也确实冒出了不少这样的简单应用。Twitter 是使用云计算的代表,引领REST架构的开放API的潮流,而他的实际提供的功能却非常简单:脱胎于手机短信的140个字符长度的微型博客系统。
    Twitter的核心是真正的开放,串起了大量系统,让开发者只需要专注于一个高内聚的小应用,再让这些小应用拼合起来满足大众上网的主要需求,这个多少年来业界梦寐以求的效果,在 Twitter 生态圈中初步实现了,其简单性,保证了强大的终端友好性,Twitter网站和应用几乎覆盖主要的手机操作系统、WAP网站、WAP-dhtml网站,短信,彩信等移动终端领域;桌面应用涵盖独立的程序,Air程序,FireFox、Chrome扩展;手机应用涵盖iOS、Android等高端智能平台、和JAVA,WM,诺基亚等传统智能机平台。甚至涵盖智能家居、浇水的花草、菜单、椅子、电力数据、健康仪器这样的硬件系统接入等等。在其发展的鼎盛时期,凭借着这样大量的无障碍应用方式,Twitter 及其 API应用进入到了各种需求领域:新闻信息、客户服务、社交网络 、业务管理、网站流量、数据挖掘等等。
    所以说,Twitter的意义,即在应用和满足丰富需求的震撼,也在技术上的Twitter生态圈应用系统对构建开放环境的启发。以下是2010年4月的Twitter Chirp开发者大会的一些统计数据:
   
    注册用户:105779710
    每日新增用户:300000
    大约有60%用户来自美国之外
    每月独立访客数:1.8亿
    75%流量来自第三方应用
    60%推讯来自第三方应用
    每日搜索次数为6亿次
    Twitter应用已经超过10万个
    每天通过API发来的请求为30亿个
    37%活跃用户通过手机发推
   
    Twitter的开放API是一个业界流行的RESTful架构的开放平台的最佳实践,以下是它的一个典型API调用:
   
    GET statuses/home_timeline 利用 http get 过程获取用户的个人及其关注者的timeline
    默认调用http://api.twitter.com/1/statuses/home_timeline 以json格式返回最新的20条status
    可以附加一系列参数 count ,since_id … 比如
    http://api.twitter.com/1/statuses/home_timeline?count=30 会返回最新的30条status
   
    返回的 JSON 内容
    [{
    "id": 18700887835,
    "created_at": "Fri Jul 16 16:58:46 +0000 2010",
    "text":"一条发言的额内容",
    "user": { //发言者的信息
    "screen_name": "cindyli",
    … //其他字段信息
    } … //其他字段信息
    },{
    …//第二条status
    }, …
    ]
   
    具有如下几个特点:
    1.简捷:就是USER、STATUS两个主要类 ,简单内涵保证复杂外延。
    2.Live:可以直接获取Twitter正在运行的鲜活数据。
    3.WEB化:RESTful架构,充分挖掘HTTP、JSON 等轻量级标准。
    4.开放:几乎全部的Twitter资源和功能都实现相应的API。
    5.完备:开发环境非常完备,文档齐全,各语言脚本示例。
   
    讲到Twitter的API,就不能不说一下RESTful架构。像互联网新出现的很多通用名词一样,RESTful架构并没有一个非常权威准确的定义,基本都是对一系列的典型应用,比如Twitter API,达成共识:这就是RESTful架构的典型;而不会刻意去质疑某个应用是或不是RESTful架构。RESTful架构最早是Roy Thomas Fielding在他2000年的博士论文中提出的,本质上,这是一个分析了WEB网站系统的成功后的反思,并考虑能否分析出其基本技术路线并利用在跨互联网的应用开发上。RESTful架构的内容比较多,本文不可能展开来说,分享以下个人体会:
    1.RESTful架构首先是利用互联网已经存在的各种标准如http(URL寻址,动作,状态码…),xml,json,Ajax等,不必要再重造车轮。
    2.发现资源,是设计的核心点,比如Twitter的主要资源:User和Status;而CNML目前来看,文档是一个主要资源,但展开后,应该可以分解出多个主要窗拿判戮┢止偻鴄pp试矗 item(DataContent) user(sendform sendto) product。分析资源的好处是可以设计高内聚的API接口,只针对某种资源进行读写操作。
    3.利用 http 的动作 GET、POST、PUT、DELETE 去实现对资源的操作,即可利用现有成熟技术,也达到明晰操作资源的API。
    这种方式当然可以利用在新闻信息的分享上,纽约时报的API就是一个比较典型的应用,下面是The Times Newswire API 热线新闻,和CNML的很多理念是相通的:
   
    GET http://api.nytimes.com/svc/news/{version}/content
    这更像是一个查询接口,有一系列查询参数: locations , organizations, …
    返回结果
    { "num_results":20, //获取的 新闻数量
    "results":[{
    "title":"Weather Aids Crews in Oil Spill Cleanup Efforts ",
    "abstract":"Calm in the Gulf of Mexico let crews step up multiple …",
    "url":"http:\/\/www.nytimes.com\/2010\/05\/05\/us\/05spill.html",
    "byline":"By IAN URBINA, JUSTIN GILLIS and LIZ ROBBINS",
    "published_date":"2010-05-05T00:00:00-04:00",
    //关键词信息
    "material_type_facet":"News",
    "des_facet":["Accidents and Safety",…],
    "org_facet":"","per_facet":"",
    "geo_facet":["Gulf of Mexico","Louisiana"],
    "related_urls":[{ //相关链接
    "suggested_link_text":"Gulf Oil Spill Is Bad, but How Bad?",
    "url":"http:\/\/www.nytimes.com\/\/…html"
    } ],
    "multimedia":[ //多媒体附件信息
    {"url":"….jpg",
    "caption":"Local fishermen hired by British Petroleum left….",
    "copyright":"Nicole Bengiveno\/The New York Times"
    …}]
    }, { //下一条消息},…] }
   
    纽约时报利用其API开发了大量的应用,从网站到桌面阅读器到移动阅读器,在业界的技术实践上走在了前列,实际上,Twitter 后期也推出了 Streaming API ,类似于条件设置下的最新内容广播消息。这三种的应用场合和应用方式,是有很大的共同性的。笔者曾经制作过一个获取Twitter信息及新浪微博信息和纽约时报信息的试验客户端,整个开发体验是比较一致的,这种统一的方式会降低开发门槛,促进更多开发者开发应用,如果CNML有类似的API,也肯定可以促进相关应用的开发,融入这个生态圈中。
    有鉴于此,围绕中文新闻信息置标语言CNML,让澳门新京浦官网app来设想:如果有这样一个类似的WEB开放平台,应该可以实现那些功能,解决那些需求。
    第一个层面,这个WEB开放平台应该成为中文新闻信息置标语言CNML的官方网站,围绕着CNML的各种标准的稳定版本、标准的改进版本、标准的修改建议、标准子集、各种受控词表的最新版本、稳定版本、演进版本,可以下载官方文档,下载开发资源,展开建议讨论,建立开发者社区。
    第二个层面,这个WEB开放平台应该成为开放API的平台,将中文新闻信息置标语言CNML逐渐稳定下来的部分形成API接口调用规范。
    目前的中文新闻信息置标语言CNML有比较重的单向广播的组织模式,这种模式的优点是:即使在离线状态下所有数据也可以自成体系,实现类似于在线系统的效果;但是也带来一些不便:单个XML文档中可能牵扯到几乎全部系统的数据,导致XML的文档定义及结构比较复杂;重要的受控词表等宏定义,可能需要依赖旧的接收数据,不能即时查询。
    让澳门新京浦官网app设想一下双向模式的WEB开放平台下,CNML可以增加什么样的API:
    对普通的获取稿件的媒体,可以有一个这样的调用API获取订阅的产品内容列表:
    http://{url}/private_timleline?since_id=8a8b8c8d8e80&format=json
   
    [
    {
    ‘id’:’8a8b8c8d8e80’,
    ‘PublicId:’ urn:CNML:xinhua.org:20110401:CnynycC000542_20110331_GWTFN1:1’,
    ‘HeadLine’:’ (国际)科特迪瓦前总理武装包围经济首都阿比让’
    },
    {
    ‘id’:’8a8b8c8d8e81’,
    ‘PublicId:’…’,
    ‘HeadLine’:’…’
    },
    {
    ‘id’:’8a8b8c8d8e8d’,
    ‘PublicId:’…’,
    ‘HeadLine’:’…’
    },
    ]
   
    参照流行的API,增加一个顺序的唯一流水ID,此唯一ID可以用来在获取信息时作为检索更新依据,并且以此ID可以在后续的调用中获得详细内容。
    获取某个具体稿件的信息,可以利用它的唯一流水ID获取剪裁版的文档:
    http:// {url}/smart_doc? Id=8a8b8c8d8e80&format=json
    [
    {
    ‘id’:’8a8b8c8d8e80’,
    ‘PublicId:’ urn:CNML:xinhua.org:20110401:CnynycC000542_20110331_GWTFN1:1’,
    ‘CurrentRevisionTime’: 2011-04-01T04:15:09+08:00,
    ‘HeadLine’:’ (国际)科特迪瓦前总理武装包围经济首都阿比让’,
    ‘Author’: ‘吴昌荣’,
    ‘SubjectCode’:[‘XH_InternalInternational’:’国际新闻’,’XH_NewsCategory’:’政治法律’,]
    ‘keyword’:’科特迪瓦局势’,
    Contents:[{
    ‘type:’txt’,
    ‘DataContent’:’ (国际)科特迪瓦前总理武装包围经济首…’,
    },{ //第二个 ContentItem },…], },
    {//第二个 item }, …
    ] //items
   
    在很多字段中,可以利用互联网的现有标准,比如type 可以使用现有的mime标准;text/plain ;好处是不需要再制定受控词表或只需制定扩展的项目,对开发者来讲,可以统一对此元数据的理解。
    以上的示例应用,很不规范,仅为说明之用,中文新闻信息置标语言CNML标准牵扯的面非常广,这个API标准的制定工作肯定相当有挑战性。
   
    第三个层面 提供剪裁标准的试验平台。
   
    中文新闻信息置标语言CNML标准的某些设计思想考虑了创建者和使用者的共同需要,这种思想的优势是全面考虑了新闻信息的各个方面,不过在很多应用场合下也可以针对性的做一个简化。比如信封的概念,对于要给许多读者寄信的发信人当然必要,但对于上门获取自己内容的读者来讲拿到需要的信件后,信封基本失去了意义,也无太大必要获知内容被发送的其他读者;这一点和CNML的稿件获取非常相似,按订阅内容获取稿件的用户,其信封数据基本成为冗余。再比如CNML标准信封中的产品信息,也是属于对创建者的内部系统需要的信息,这些信息在整个标准的制定中非常必要,但在各种使用场景中可做剪裁定制。针对性的简化至少带来如下收益:
    1.降低数据传递的冗余,提高新闻传播速度。
    2.简化的标准,使得针对某一需求的开发降低复杂性。
    3.包裹其他场合需要的内容可能迷惑使用者。
    实际上,当XML的定义趋于稳定时,甚至可以在各种领域的应用中使用这种简洁版的表现方式。上面的示例中smart_doc 已经非常原始的演示了这种裁剪的效果。
   
    第四个层面,提供 live数据, 建立统一文件的管理。
   
    中文新闻信息置标语言CNML标准的使用当然可以不局限在广播模式或是双向模式,但目前的现实是由于首先应用在新华社的发稿系统上,使得标准更多的展现了广播模式的应用,利用在线的双向模式,可以让标准也展现出另一个方面的优势。双向的方式下可以更易于试验CNML的各种简化实现。
    可以将过期一段时间的新华社数据放在互联网上,让开发者既可以调用制定的API接口,还可以获取真实的数据,促进开发平台的推广应用,使得开发者开发的产品在交付使用时,可以平滑的过渡到接收即时数据,增加开发的积极性和价值。
    CNML文档中对附件的管理,如图像、视频、应用文件等,在开放WEB开放平台的模式下,需要建立一个在线的统一文件管理,服务于获取这些文档中出现的附件,在CNML中已经对这些附件给予了唯一性的产品ID,可以设计据此ID获取文件内容的API。
   
    最后,设想一下利用中文新闻信息置标语言CNML标准来扩展报刊见报内容数据的使用。
    传统媒体的优势和劣势,很容易被一些表面的观点迷惑,比如澳门新京浦官网app最喜欢强调新内容的多媒体化、流行终端化,而对真正有价值的见报内容没有给以应有的重视。简单分析一下,传统的出版方式在互联网的时代异乎寻常的继续发展是有其深层原因的,这种期版认证模式至少有如下优质价值:
   
    期 – 检索 , 展现单位
    版 – 检索 , 展现单位
    认证 – 作者 , 对内容作者的真实性认证
    认证 – 内容 , 对内容的真实性认证
    艺术 – 二维版面展示 , 字体,字号 …
    互动 – 实名 编辑,记者,作者,专家
    权威 – 认证和实名及报社影响力带来的权威性
    文献 – 历史内容累计形成的文献价值
   
    而这些并没有得到系统的挖掘和发扬。中文新闻信息置标语言CNML作为新闻信息的标准的推广,下一步完全可以拓展到报刊内容,制定这一部分导航信息和二维版面信息,让中文新闻信息置标语言开拓第二个应用战场,得以更全面地发展。
    以上内容均为笔者对中文新闻信息置标语言CNML推广和发展的大胆设想,对CNML的理解肯定会有错误或不当之处,欢迎大家指正,让澳门新京浦官网app共同推进中文新闻信息置标语言CNML标准的发展和壮大。
    (澳门新京浦官网app-【3730com】 魏明震 唐金宝)

设为澳门新京浦官网app  |  收藏澳门新京浦官网app  |  联系澳门新京浦官网app  | 友情链接: 山东省版权服务中心 华光字库   澳门新京浦官网app研发中心   华光民文技术中心  
©2004-2021 澳门新京浦官网app-【3730com】(Weifang Beida Jade Bird Huaguang Information Technology Co.,Ltd) All rights reserved. |
鲁ICP备05004482号 网警:37070129000004
0536-8863500 8865625
点击这里给澳门新京浦官网app发消息
XML 地图 | Sitemap 地图