语义web教程文档格式.docx
《语义web教程文档格式.docx》由会员分享,可在线阅读,更多相关《语义web教程文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
template>
/xml:
stylesheet>
xPath手册:
选取节点
下面列出了最有用的路径表达式:
表达式
描述
nodename
选取此节点的所有子节点。
/
从根节点选取。
//
从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
.
选取当前节点。
..
选取当前节点的父节点。
@
选取属性。
实例
在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:
路径表达式
结果
bookstore
选取bookstore元素的所有子节点。
/bookstore
选取根元素bookstore。
注释:
假如路径起始于正斜杠(/),则此路径始终代表到某元素的绝对路径!
bookstore/book
选取属于bookstore的子元素的所有book元素。
//book
选取所有book子元素,而不管它们在文档中的位置。
bookstore//book
选择属于bookstore元素的后代的所有book元素,而不管它们位于bookstore之下的什么位置。
//@lang
选取名为lang的所有属性。
谓语(Predicates)
谓语用来查找某个特定的节点或者包含某个指定的值的节点。
谓语被嵌在方括号中。
在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:
/bookstore/book[1]
选取属于bookstore子元素的第一个book元素。
/bookstore/book[last()]
选取属于bookstore子元素的最后一个book元素。
/bookstore/book[last()-1]
选取属于bookstore子元素的倒数第二个book元素。
/bookstore/book[position()<
3]
选取最前面的两个属于bookstore元素的子元素的book元素。
//title[@lang]
选取所有拥有名为lang的属性的title元素。
//title[@lang='
eng'
]
选取所有title元素,且这些元素拥有值为eng的lang属性。
/bookstore/book[price>
35.00]
选取bookstore元素的所有book元素,且其中的price元素的值须大于35.00。
35.00]/title
选取bookstore元素中的book元素的所有title元素,且其中的price元素的值须大于35.00。
选取未知节点
XPath通配符可用来选取未知的XML元素。
通配符
*
匹配任何元素节点。
@*
匹配任何属性节点。
node()
匹配任何类型的节点。
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
/bookstore/*
选取bookstore元素的所有子元素。
//*
选取文档中的所有元素。
//title[@*]
选取所有带有属性的title元素。
DTD&
schema教程:
DTD(文档类型定义)的作用是定义XML文档的合法构建模块。
为什么使用DTD?
通过DTD,您的每一个XML文件均可携带一个有关其自身格式的描述。
通过DTD,独立的团体可一致地使用某个标准的DTD来交换数据。
而您的应用程序也可使用某个标准的DTD来验证从外部接收到的数据。
带有DTD的XML文档实例
xmlversion="
1.0"
!
DOCTYPEnote[
ELEMENTnote(to,from,heading,body)>
ELEMENTto(#PCDATA)>
ELEMENTfrom(#PCDATA)>
ELEMENTheading(#PCDATA)>
ELEMENTbody(#PCDATA)>
]>
note>
to>
George<
/to>
from>
John<
/from>
heading>
Reminder<
/heading>
body>
Don'
tforgetthemeeting!
/body>
/note>
以上DTD解释如下:
DOCTYPEnote
(第二行)定义此文档是
note
类型的文档。
ELEMENTnote
(第三行)定义
元素有四个元素:
"
to、from、heading,、body"
ELEMENTto
(第四行)定义
to
元素为"
#PCDATA"
类型
外部方式加入DTD
Xml文件:
DOCTYPEnoteSYSTEM"
note.dtd"
Dtd文件:
PCDATA的意思是被解析的字符数据(parsedcharacterdata)。
可把字符数据想象为XML元素的开始标签与结束标签之间的文本。
CDATA的意思是字符数据(characterdata)。
申明出现的次数:
ELEMENTnote(to+,from?
header*,(message|body))>
声明属性
属性声明使用下列语法:
ATTLIST元素名称属性名称属性类型默认值>
DTD实例:
ATTLISTpaymenttypeCDATA"
check"
默认值参数可使用下列值:
值
解释
属性的默认值
#REQUIRED
属性值是必需的
#IMPLIED
属性不是必需的
#FIXEDvalue
属性值是固定的
语法
ATTLIST元素名称属性名称属性类型#IMPLIED>
XMLSchema
XMLSchema的作用是定义XML文档的合法构建模块,类似DTD。
XMLSchema:
∙定义可出现在文档中的元素
∙定义可出现在文档中的属性
∙定义哪个元素是子元素
∙定义子元素的次序
∙定义子元素的数目
∙定义元素是否为空,或者是否可包含文本
∙定义元素和属性的数据类型
∙定义元素和属性的默认值以及固定值
XMLSchema是DTD的继任者
我们认为XMLSchema很快会在大部分网络应用程序中取代DTD。
理由如下:
∙XMLSchema可针对未来的需求进行扩展
∙XMLSchema更完善,功能更强大
∙XMLSchema基于XML编写
∙XMLSchema支持数据类型
∙XMLSchema支持命名空间
XMLSchema支持数据类型
XMLSchema最重要的能力之一就是对数据类型的支持。
通过对数据类型的支持:
可更容易地描述允许的文档内容,可更容易地验证数据的正确性,可更容易地与来自数据库的数据一并工作,可更容易地定义数据约束(datafacets),可更容易地定义数据模型(或称数据格式),可更容易地在不同的数据类型间转换数据
Xml对schema的引用:
note
xmlns:
xsi="
http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
note.xsd"
Schema实例:
(note.xsd)
xs:
schemaxmlns:
xs="
//www.w3.org/2001/XMLSchema"
elementname="
note"
complexType>
sequence>
to"
type="
string"
/>
from"
/xs:
element>
schema>
最常用的类型是:
∙xs:
string
decimal
integer
boolean
date
time
定义简易元素的语法:
xxx"
yyy"
{default=””fixed="
}/>
定义属性的语法是:
attributename="
可选的和必需的属性
在缺省的情况下,属性是可选的。
如需规定属性为必选,请使用"
use"
属性:
lang"
use="
required"
XSD复合元素
什么是复合元素?
复合元素指包含其他元素及/或属性的XML元素。
有四种类型的复合元素:
空元素、包含其他元素的元素、仅包含文本的元素、包含元素和文本的元素
在XMLSchema中,我们有两种方式来定义复合元素:
1.通过命名此元素,可直接对"
employee"
元素进行声明,就像这样:
firstname"
lastname"
注意其子元素,"
以及"
,被包围在指示器<
中。
这意味着子元素必须以它们被声明的次序出现。
2."
元素可以使用type属性,这个属性的作用是引用要使用的复合类型的名称:
personinfo"
complexTypename="
XSD复合类型指示器
Order指示器:
All、Choice、Sequence
Occurrence指示器:
maxOccurs、minOccurs
Group指示器:
Groupname、attributeGroupname
all>
指示器规定子元素可以按照任意顺序出现,且每个子元素必须只出现一次:
choice>
指示器规定可出现某个子元素或者可出现另外一个子元素(非此即彼):
maxOccurs>
指示器可规定某个元素可出现的最大次数:
minOccurs>
指示器可规定某个元素能够出现的最小次数:
RDF教程:
什么是RDF?
∙RDF指资源描述框架(ResourceDescriptionFramework)
∙RDF是一个用于描述Web上的资源的框架
∙RDF提供了针对数据的模型以及语法,这样独立的团体们就可以交换和使用它
∙RDF被设计为可被计算机阅读和理解
∙RDF被设计的目的不是为了向人们显示出来
∙RDF使用XML编写
∙RDF是W3C语义网络活动的组成部分
∙RDF是一个W3C推荐标准
RDF资源、属性和属性值
RDF使用Web标识符来标识事物
(URIs)
,并通过属性和属性值来描述资源。
∙资源是可拥有URI的任何事物,比如
∙属性是拥有名称的资源,比如"
author"
或"
homepage"
∙属性值是某个属性的值,比如"
David"
(请注意一个属性值可以是另外一个资源)
资源、属性和属性值的组合可形成一个陈述(被称为陈述的主体、谓语和客体)。
RDF实例
这是一个CD列表的其中几行:
Title
Artist
Country
Company
Price
Year
EmpireBurlesque
BobDylan
USA
Columbia
10.90
1985
Hideyourheart
BonnieTyler
UK
CBSRecords
9.90
1988
这是一个RDF文档的其中几行:
rdf:
RDF
rdf="
//www.w3.org/1999/02/22-rdf-syntax-ns#"
cd="
//www.recshop.fake/cd#"
Description
rdf:
about="
//www.recshop.fake/cd/EmpireBurlesque"
cd:
artist>
BobDylan<
/cd:
country>
USA<
company>
Columbia<
price>
10.90<
year>
1985<
/rdf:
Description>
//www.recshop.fake/cd/Hideyourheart"
BonnieTyler<
UK<
CBSRecords<
9.90<
1988<
RDF>
cd
命名空间,规定了带有前缀cd的元素来自命名空间"
。
元素包含了对被
about
属性标识的资源的描述。
元素:
、<
等是此资源的属性。
RDF容器用于描述一组事物。
RDF元素用于描述这些的组:
Bag>
Seq>
以及<
Alt>
元素<
元素用于描述一个规定为无序的值的列表。
元素可包含重复的值。
元素用于描述一个规定为有序的值的列表(比如一个字母顺序的排序)。
元素用于一个可替换的值的列表(用户仅可选择这些值的其中之一)。
//www.recshop.fake/cd/Beatles"
format>
li>
CD<
Record<
Tape<
RDFSchema(RDFS)
为什么要定义RDFSchema和应用程序的类
RDF通过类、属性和值来描述资源。
此外,RDF还需要一种定义应用程序专业的类和属性的方法。
应用程序专用的类和属性必须使用对RDF的扩展来定义。
RDFSchema就是这样一种扩展。
RDFSchema不提供实际的应用程序专用的类和属性,而是提供了描述应用程序专用的类和属性的框架。
RDFSchema中的类与面向对象编程语言中的类非常相似。
这就使得资源能够作为类的实例和类的子类来被定义。
RDFS实例
下面的实例演示了RDFS的能力的某些方面:
rdf="
rdfs="
//www.w3.org/2000/01/rdf-schema#"
base="
//www.animals.fake/animals#"
Descriptionrdf:
ID="
animal"
type
resource="
//www.w3.org/2000/01/rdf-schema#Class"
horse"
type
rdfs:
subClassOfrdf:
#animal"
在上面的例子中,资源"
是类"
的子类。
OWL(WebOntologyLanguage)教程
什么是OWL?
∙OWL指的是web本体语言
∙OWL构建在RDF的顶端之上
∙OWL用于处理web上的信息
∙OWL被设计为供计算机进行解释
∙OWL不是被设计为供人类进行阅读的
∙OWL由XML来编写
∙OWL拥有三种子语言
∙OWL是一项web标准
什么是本体?
给出构成相关领域词汇的基本术语和关系,以及利用这些术语和关系构成的规定这些词汇外延的规则的定义。
OWL与RDF不同
OWL与RDF有很多相似之处,但是较之RDF,OWL是一门具有更强机器解释能力的更强大的语言。
与RDF相比,OWL拥有更大的词汇表以及更强大的语言。
OWL有三门子语言:
∙OWLLite
∙OWLDL(包含OWLLite)
∙OWLFull(包含OWLDL)
简单的OWL实例:
机场实例
xmlns:
rdf="
owl="
//www.w3.org/2002/07/owl#"
owl:
Ontologyrdf:
comment>
Airport<
/rdfs:
/owl:
Ontology>
Classrdf:
Airport"
subClassOf>
Restriction>
onPropertyrdf:
#name"
toClassrdf:
//www.w3.org/2000/10/XMLSchema#string"
#iataCode"
onPropert