セマンティック web ・ メタデータ勉強会 #2-1

27
セセセセセセセ Web セセセセセセセセ #2-1 電電電電電電電電電 電電電電電電電電 電電電電電電 M2 電電電電

Upload: karma

Post on 09-Jan-2016

30 views

Category:

Documents


0 download

DESCRIPTION

セマンティック Web ・ メタデータ勉強会 #2-1. 電気通信大学大学院 電気通信学研究科 情報工学専攻 M2 間瀬哲也. 2. Structured Web Documents in XML. Contents. Introduction The XML Language Structuring Namespaces Addressing and Querying XML Documents Processing Summary. HTML & XML. HTML (HyperText Markup Language) Web ページ記述の標準 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: セマンティック Web ・ メタデータ勉強会 #2-1

セマンティックWeb・メタデータ勉強会

#2-1

電気通信大学大学院 電気通信学研究科情報工学専攻 M2

間瀬哲也

Page 2: セマンティック Web ・ メタデータ勉強会 #2-1

2. Structured Web Documents in XML

Page 3: セマンティック Web ・ メタデータ勉強会 #2-1

Contents

• Introduction

• The XML Language

• Structuring

• Namespaces

• Addressing and Querying XML Documents

• Processing

• Summary

Page 4: セマンティック Web ・ メタデータ勉強会 #2-1

HTML & XML

• HTML (HyperText Markup Language)– Web ページ記述の標準– SGML(Standard generalized ML) から派生– デバイスやシステムに非依存

• XML (eXtensible Markup Language)– HTML の欠点を克服するために開発

Page 5: セマンティック Web ・ メタデータ勉強会 #2-1

HTML vs XML

• 共通点– タグを使用– 人間は理解しやすい

• 相違点– 終了タグ– 計算機可読性– 拡張性– 表示能力

Page 6: セマンティック Web ・ メタデータ勉強会 #2-1

XML applications

• MathXML (mathmatics)

• BSML (bioinformatics)

• HRML (human resources)

• AML (astronomy)

• NewsML (news)

• IRML (investment)

• その他– SVG (Scalable Vector Graphics) , SMIL (Synchronized Multimed

ia Integration Language) , RDF (Resource Description Framework)

Page 7: セマンティック Web ・ メタデータ勉強会 #2-1

Prolog

• XML 宣言• 文書型宣言

<?xml version=“1.0” encoding=“UTF-8” ?>

<!DOCTYPE event SYSTEM “event.dtd” >

<event> <fireworks1> <name> 足立の花火大会 </name> <place> 荒川河川敷 </place> <date>2005.07.28</date> </fireworks1></event>

← XML 宣言

← 文書型宣言

Page 8: セマンティック Web ・ メタデータ勉強会 #2-1

Elements

• 要素 ::= 開始タグ 内容 終了タグ | 空要素• 内容 ::= テキスト | 要素• 空要素 ::= <name></name> | <name />

<?xml version=“1.0” encoding=“UTF-8” ?>

<!DOCTYPE event SYSTEM “event.dtd” >

<event> <fireworks1> <name> 足立の花火大会 </name> <place> 荒川河川敷 </place> <date>2005.07.28</date> </fireworks1></event>

← 要素

Page 9: セマンティック Web ・ メタデータ勉強会 #2-1

Attributes

• 要素に情報を付加– 一意に識別可能にする– 空要素に意味を持たせる

• 名前と値の対

<?xml version=“1.0” encoding=“UTF-8” ?>

<!DOCTYPE event SYSTEM “event.dtd” >

<event> <fireworks name=“ 足立の花火大会”

place=“ 荒川河川敷” date=“2005.07.28” /></event>

← 属性

Page 10: セマンティック Web ・ メタデータ勉強会 #2-1

Comments

• パーサに無視してくれと頼む例 )<!-- コメントだから無視してちょーだい -->

• タグの中に記述してはいけない• コメント中に「 -- 」は使えない

Page 11: セマンティック Web ・ メタデータ勉強会 #2-1

Processing Instructions (PIs)

• アプリケーションに対して処理をさせる<? ターゲット 処理命令 ?> のように記述

例 )<?stylesheet type=“text/css”

href=“sample.css”?>

Page 12: セマンティック Web ・ メタデータ勉強会 #2-1

Well-Formed XML Documents

• 整形式 XML 文書– 構文的に正しければよい

• 構文的に正しいとは?– ルート要素はひとつだけ– 開始タグとそれに対応する終了タグがある– タグがオーバーラップしていない

<creature><animal>Dog</creature></animal>– 属性名が一意である– DTD に則しているかどうかは関係ない

Page 13: セマンティック Web ・ メタデータ勉強会 #2-1

Valid XML Documents

• 妥当な XML 文書– 整形式であり,かつ文書型定義に則している

• DTD, XML Schema

Valid

Well-Formed

Page 14: セマンティック Web ・ メタデータ勉強会 #2-1

The Tree Model of XML Documents

• 整形式の XML は木構造で表現できる– 要素の順番は重要– 属性の順番は重要ではない

Root

fireworks2fireworks1

event

name place date

足立の花火大会 荒川河川敷 2005.07.28

Page 15: セマンティック Web ・ メタデータ勉強会 #2-1

DTD

• 要素名や階層構造などを定義

• 内部 DTD– XML 文書内に直接記述

• 外部 DTD– XML 文書とは別のファイルに作成– XML 文書には参照情報を記述

Page 16: セマンティック Web ・ メタデータ勉強会 #2-1

The Structure of DTD

• 要素型宣言 (element type declaration)

• 属性リスト宣言 (attribute list declaration)

• 実体宣言 (entity declaration)

• 記法宣言 (notation declaration)<!DOCTYPE menu [<!ELEMENT menu (name, price, explanation)><!ELEMENT name (#PCDATA)><!ELEMENT price (#PCDATA)><!ELEMENT explanation (#PCDATA)><!ATTLIST name alias CDATA #REQUIRED><!ENTITY …><!NOTATION …>]>

文書型宣言要素型宣言

属性リスト宣言実体宣言記法宣言

Page 17: セマンティック Web ・ メタデータ勉強会 #2-1

Keywords of DTD

• #PCDATA– その要素はテキストしか持たない ( 子要素なし )

cf. 子要素を持つときには子要素名にする• <!ELEMENT parent (child1+, child2*)>

• #REQUIRED– その属性は省略不可能

cf. # IMPLIED ( 省略可 )

• CDATA– その属性値は文字データ

cf. ID ( 一意識別子 ) , IDREF (ID への参照 )

Page 18: セマンティック Web ・ メタデータ勉強会 #2-1

XML Schema

• DTD は XML の文法に完全に従っていないからダメだ!!継承機能もないし…

• 新たなスキーマ言語が必要だ• そこで登場,本命“ XML Schema”

– 以下を定義• 要素の階層構造• 要素名• 属性名,属性値• 要素・属性のデータ型

Page 19: セマンティック Web ・ メタデータ勉強会 #2-1

The Structure of XML Schema

<?xml version=“1.0” encode=“UTF-8” ?><xsd:schema

xmlns:xsd=“http://www.w3.org/2001/XMLSchema”> <xsd:element name=“NewMenu” type=“menu”> <xsd:complexType name=“menu”> <xsd:sequence> <xsd:element name=“Name” type=“nameType” /> <xsd:element name=“Price” type=“xsd:int” /> <xsd:element name=“Explanation” type=“xsd:string” /> </xsd:sequence> </xsd:complexType> <xsd:complexType name=“nameType”> <xsd:element name=“name” type=“xsd:string” /> <xsd:attribute name=“alias” type=“xsd:string”

use=“optional” /> </xsd:complexType> </xsd:element></xsd:schema>

スキーマ宣言

要素宣言複合型宣言出現順指定

属性宣言

Page 20: セマンティック Web ・ メタデータ勉強会 #2-1

etc of XML Schema

• name– 要素・データ型・属性の名前を指定

• type– 要素・属性のデータ型を指定

• 名前空間に依存 ( 組み込みデータ型 )• complexType や simpleType によって定義も可能

• use– 属性が省略可能か明記

Page 21: セマンティック Web ・ メタデータ勉強会 #2-1

Data Type Extension

• あるデータ型をもとにして拡張することも可能

• さっきの例を使うと…<complexType

name=“extendedNameType”> <extension base=“nameType”> <sequence> <element name=“id” type=“int” /> </sequence> <attribute name=“developer”

type=“string” use=“optional” />

</extension></complexType>

<complexType name=“extendedNameType”>

<sequence> <element name=“name”

type=“string” /> <element name=“id” type=“int” /> </sequence> <attribute name=“alias”

type=“string” use=“optional” />

<attribute name=“developer” type=“string” use=“optional” />

</complexType>

つまり

Page 22: セマンティック Web ・ メタデータ勉強会 #2-1

Data Type Restriction

• あるデータ型に制約をつける• さっきの例を使うと

<complexType name=“restrictedNameType”>

<restriction base=“nameType”> <sequence> <element name=“name” type=“string”

maxOccurs=“2” /> </sequence> <attribute name=“alias”

type=“string” use=“required” />

</restriction></complexType>

Page 23: セマンティック Web ・ メタデータ勉強会 #2-1

about Namespace

• 複数のスキーマを使ったときに名前の衝突が起こるのを避ける– 接頭辞をつけることで,どのスキーマの名前空間

を使うかを指定prefix:name

• 名前空間の宣言xmlns:prefix=“location” (location は URI)– 接頭辞を省略するとデフォルトの名前空間となる

( 接頭辞の無い要素名はデフォルト NS を参照 )

Page 24: セマンティック Web ・ メタデータ勉強会 #2-1

XPath

XML 文書中のノードの位置を指定– 軸・ノードテスト・述語で構成

• /a/b– a という要素の下にある b という要素

• //b– 全要素のなかで b という要素ノードすべて

• /a/@attribute– a という要素の attribute という属性ノード

• //c/@attr=“XXX”– c という要素で属性 attr が XXX な属性ノード

Page 25: セマンティック Web ・ メタデータ勉強会 #2-1

XPath(2)

• //c[@attr=“XXX”]– 属性 attr が XXX な c という要素

• //d[1]– XML 文書中で最初に出てくる d という要素

• //d[1]/e[last()]– 最初の d という要素の中で最後の e という要素

• //e[not @attr]– 属性 attr を持たないすべての e という要素

Page 26: セマンティック Web ・ メタデータ勉強会 #2-1

the Role of Stylesheet

• XML には書式化の情報は含まれていない!→ スタイルシートで出力形式を決める→ 一度で何度もおいしい

• スタイルシート– CSS2 (Cascading Style Sheet level 2)– XSL (eXtensible Stylesheet Language)

• 変換 (XSLT) と書式化 (XSL-FO)

– XSLT (XSL Transformation)• 異なるスキーマをもつ XML 文書とのやりとりにも役立

Page 27: セマンティック Web ・ メタデータ勉強会 #2-1

Summary

• XML はメタ言語• 文書の構造はスキーマによって強化• XML は内容や構造を出力書式から分離• XML は構造化情報のデファクトスタンダード• XML は異アプリ間の情報変換をサポート• XML は QL にサポートされる