- XMLコンソーシアム

NewsML検索アプリケーションの
デモンストレーション
NewsMLワーキンググループ
日本ユニシス株式会社 小林 茂
読売新聞社 三宅 学
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
1
NewsML-WGの概要
„
„
„
„
メーカー、ベンダー、新聞社で組織するワーキンググループ
XMLベースでの研究・問題点の洗い出し
ツールキットの開発
アプリケーション構築と検証
„ データ構築、閲覧、データベース
„ クライアント、サーバーサイド・アプリケーション
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
2
メンバー紹介
„
„
„
„
„
„
„
„
„
朝日新聞
日本アイ・ビー・エム
日本ユニシス
読売新聞
メディアフュージョン
メディアフュージョン
日本電気
NECソフト
その他、メーリングリスト・メンバー
竹原
藤原
小林
三宅
木下
北島
新田
矢川
大祐(リーダー)
隆弘(サブリーダー)
茂
学
正尚
聡
一樹
隆志
順不同
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
3
NewsMLとは
98年、ロイターのマーク・ハント氏、ジョウ・レイベン氏が定義
99年10月 IPTCがNewsMLを標準化
IPTC:世界約55社の通信社・新聞社・ベンダーが標準化と開発に参加
(ニューヨークタイムズ、AP、共同通信など)
IInternational Press Telecommunication Council )国際新聞通信評議会
00年初 IPTCが機能定義、DTD作成
00年10月 IPTCでバージョン1.0発行
00年6月 NewsMLの分析と解説
「新データフォーマット策定チーム」
01年8月 NSK-NewsMLレベル1公開
新幹線ニュースの配信もNewsML形式で配信
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
4
ニュースを伝える世界標準フォーマット
„
収集 あらゆるフォーマット
„
統合 あらゆる素材
„
更新 最新の版
1. 素材の加工フローを効率化
2. 素材のパッケージ化 配信手
段や配信チャネルにあわせて
GIF, JPEG,
NSKNSK-TIFF
etc
AVI, AU, WAV etc.
DOC,
HTML
etc.
MPEG
etc.
JPEG, GIF etc.
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
5
NewsMLへの変換
JavaコンソーシアムのXMLニュースをNewsMLへ変換する。
XMLニュース
NewsML
<?xml version="1.0" encoding="UTF
<?xml version="1.0" encoding="utf-16"?
<news xmlns="http://www.javacons.gr.j
<NewsML>
…
<newsdoc id="w2001030101">
…
変換
...
<NewsLines>
<HeadLine>Synchronized Multim
<headline>Synchronized Multimedia I
<body>
<div>
SMIL2.0 は,対話的なマルチメディ
記述するためのXMLベースの言
SMIL2.0は,他の言語(XHTML,S
2002/2/7
...
<DataContent>
<div>SMIL2.0 は,対話的なマル
記述するためのXMLベースの言
SMIL2.0は,他の言語(XHTML,S
機能ごとにモジュール化され提供
XMLコンソーシアム応用技術部会
NewsML-WG
6
XMLニュースとNewsMLの違い
XMLニュースとNewsMLには、下記の差異がある。
XMLニュース
NewsML
単一ファイル/複数ニュース
単一ファイル/単一ニュース※1
単一ファイル/複数ニュース
独自スキーマ
IPTC標準のニュース配信スキ
ーマ
※1 WGでは、XMLニュースを、単一ファイル/単一ニュースのNewsMLに変
換した。
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
7
XMLニュース → NewsML変換
変換は、 個別に作成した「分割」、「変換」をバッチで組み合わせ
て、一括変換する。
分割
„
変換
分割
Javaプログラムで、ニュース単位にXMLニュースを分割
„
変換
スタールシートを作成して、XMLニュースをNewsMLに変換
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
8
NewsML変換
„
変換用のスタイルシート
Stylus Studioを使用して、おおまかな変換用のスタイルシー
トを作成後、スタイルシートをエディタで編集し微調整を行っ
た。
„
XSLTプロセッサ
Xerces-J/Xalan-J or MSXML
„
DTD(今回は未使用)
書式に則っていない文書があった場合に正しく変換できない
ため、変換元のXML文書のDTDを作成して、Valid XML文
書にする。
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
9
Stylus Studioを使用した変換
スタイルシート作成
XMLニュースとNewsMLのマッピングを作成して、スタイルシートを作成する。
NewsML
XMLニュース
線で結ぶことでマッピング
を設定する。
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
10
XMLニュースをNewsMLに変換した
結果
NewsComponent(親)
<NewsML>
<NewsEnvelope>
<DateAndTime>20020131T142500+0900</DateAndTime>
</NewsEnvelope>
NewsComponent(子)
<NewsItem>
...
<NewsComponent>
日本語のXMLニュース内容
<NewsLines>
<HeadLine>ヘッドライン</HeadLine>
(Role/@FormalName=“Main”)
<KeywordLine>キーワード</KeywordLine>
</NewsLines>
<NewsComponent xml:lang="ja">
<Role FormalName="Main"/>
NewsComponent(子)
<ContentItem>
<DataContent>
...
</DataContent>
</ContentItem>
XMLニュースのオリジナル
</NewsComponent>
(Role/@FormalName=“Supporti
<NewsComponent xml:lang="en">
<Role FormalName="Supporting"/>
ng”)
<ContentItem>
<DataContent>
...
</DataContent>
</ContentItem>
</NewsComponent>
</NewsComponent>
XMLコンソーシアム応用技術部会
...
2002/2/7
NewsML-WG
11
ニュース素材の検索
„
XMLを操作する手法の検討
„
„
„
XPATH
スタイルシート(XSLT)
検索ツール
„
1XMLファイルの検索
„
„
複数XMLファイルの検索
„
„
Javaコンソーシアムの実験方式
実際のニュースは新規、変更されるものである
複数XMLファイルから検索するために、XMLデータ
ベースを検討
„
2002/2/7
Yggdrasill(イグドラシル)で実験
XMLコンソーシアム応用技術部会
NewsML-WG
12
イグドラシルのXBath
„
NewsLines以下のどこかに、対象となる文字列が存在す
るNewsItemをすべて列挙する
/NewsML/NewsItem[/NewsComponent/NewsLines/*= '文字列']
„
対象となる文字列が存在するNewsItemの
PublicIdentifierをすべて列挙する
/NewsML/NewsItem[/NewsComponent/NewsLines/*= '文字列']
/Identification/PublicIdentifier
„
DataContent以下のどこかに、対象となる文字列が存在
するNewsItemをすべて列挙する
/NewsML/NewsItem[//NewsComponent/ContentItem
/DataContent/*= '文字列']
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
13
イグドラシルでの検索結果
„
検索結果はファイル名ではなく、XBathの結果がXMLのフ
ラグメントで返ってくる
„
検索結果はNewsML以下ではなく、NewsItem以下を取り出すよう
にした
<NewsML>
<NewsEnvelope>
<DateAndTime>20020131T142500+0900</DateAndTime>
</NewsEnvelope>
<NewsItem>
...
<NewsComponent>
<NewsLines>
<HeadLine>ヘッドライン</HeadLine>
<KeywordLine>キーワード</KeywordLine>
</NewsLines>
<NewsComponent xml:lang="ja">
...
„
NewsMLは世界でユニークなIDがあるので、これをXPATHで結果
として返せば、別の利用も可能
<PublicIdentifier>urn:newsml:xmlconsortium.org:20020131:xmlnewsw2001030101:1
</PublicIdentifier>
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
14
「NewsML検索デモ」の
説明と実演
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
15
NewsML検索デモ
HTML
検索画面
ASPファイル
検索用クエリ
XSLT
検索結果
XBath
VBScript
XMLDB Yggdrasill 1.5
XML Document Fragment
NewsML
HTML
結果表示
XMLデータベースエンジンYggdrasill1.5
株式会社メディアフュージョン URL: www.mediafusion.co.jp Mail: info@mediafusion.co.jp
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
16
ワーキンググループ開発量
„
デモプログラム開発作業時間
XMLWEBアプリケーションなので開発が容易
File
用途
File数
作業数
HTML
XSLT
検索用Form、SVG、HTML
HTML変換
4
6
5時間
14時間
ASP
API操作用
6
7時間
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
17
ASPファイルの記述
XMLデータベースエンジンYggdrasill使用の場合
<%@Language=VBScript%>
<%
Set fxoBasket = Server.CreateObject("Yggdrasill_15.YgBasket")
イグドラシルのインスタンス生成
fxoBasket.Login "", "d:¥DB¥NewsML15", "admin", "admin"
セッション〜ポケットのオープン手続
fxoBasket.OpenPocket "NewsML15“
‘querystring = Xpath記述部
Set XMLDoc = Server.CreateObject("Microsoft.XMLDOM")
ワーク用DOM生成
Set XSLDoc = Server.CreateObject("Microsoft.XMLDOM")
XMLDoc.async = false
XMLDoc.loadXML(fxoBasket.GetDocumentFragments(1,querystring))
イグドラシル検索結果取得
XSLDoc.async = false
XSLDoc.load(Server.MapPath("xsl¥kensaku0.xsl"))
response.write(XMLDoc.documentElement.transformNode(XSLDoc.documentElement))
HTML生成
fxoBasket.ClosePocket
fxoBasket.Logout
.….
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
18
NewsMLのスタイル表示
„
ボタンの種類に応じたスタイルシートで体裁
を変えられる。
概要スタイル
XSLT
概要
検索結果
XML
詳細
電光
詳細スタイル
XSLT
電光スタイル
XSLT
タイトル ・・・・・・・・・・
・・・・・
名前
会社名 株式会社・・・・・
記事
ニュースの内容・・・・
・・・・・・・・・・・・・・・
Copyright 著作権表示
Identification
提供者
識別名
NewsManagement
ニュース型
・・・・・
ニュースのデータ
XML
データベース
2002/2/7
検索
XMLコンソーシアム応用技術部会
NewsML-WG
ニュース1・・・・・・・・・
ニュース2・・・・・・・・・
ニュース3・・・・・・・・・
ニュース4・・・・・・・・・
19
NewsMLのスタイルシート
<xsl:template match="yggdrasill:result">
検索結果のルートにたいする指示
<html>
<head>
<style type="text/css">・・・・・・ CSSによるスタイル指示 ・・・・・</style>
<script>・・・・・・ スクリプトの記述 ・・・・・</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<xsl:apply-templates/>
</body>
必要な子要素にたいして他のテンプレートを適用
</html>
</xsl:template>
<xsl:template match="NewsItem">
<div class="para" check="1">
<div class="header"><xsl:value-of select=".//HeadLine"/></div>
<div>
<xsl:apply-templates />
</div>
</div>
</xsl:template>
NewsItem に対するテンプレート
・・・・・・・・・ 後略 ・・・・・・・・・・・
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
20
NewsML検索デモ
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
21
NewsML-WGの今後
„
新規登録
NewsMLデータを新規作成
„
XPathでの検索
Yggdrasill 1.5 からXpath対応
„
プログラム(出版をめざす)
NewsMLツールキットやXSLTなど
„
更新に関係する操作
NewsML仕様に従った更新処理の実装
„
„
マルチメディア・ニュース
WEBサービスとの連携
WEBサービスワーキンググループと検討
2002/2/7
XMLコンソーシアム応用技術部会
NewsML-WG
22