语义web教程.docx
《语义web教程.docx》由会员分享,可在线阅读,更多相关《语义web教程.docx(16页珍藏版)》请在冰豆网上搜索。
语义web教程
XSLT:
XML加入xsl转化表
1.在xml头部加入:
xmlversion=”1.0”encoding=”gb2312”?
>
xml-stylesheettype=”text/xsl”href=”路径”?
>
2.xsl文件内容:
xmlversion=”1.0”encoding=”gb2312”?
>
stylesheetversion=”1.0”xmlns:
xsl=“http:
//www.w3.org/1999/XSL/Transform”?
>
templatematch=”/”>
for-eachselect=”xPath路径”>
-------------------HTML内容--------------------------
value-ofselect=”选择的值”/>
或:
iftest="expression">
...
...如果条件成立则输出...
...
if>
或
choose>
whentest="expression">
...输出...
when>
otherwise>
...输出....
otherwise>
choose>
注:
expression合法的过滤运算符:
∙= (等于)
∙!
=(不等于)
∙<(小于)
∙>(大于)
-------------------HTML内容--------------------------
for-each>
template>
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。
/bookstore/book[price>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)>
]>
George
John
Reminder
Don'tforgetthemeeting!
以上DTD解释如下:
!
DOCTYPEnote (第二行)定义此文档是 note 类型的文档。
!
ELEMENTnote (第三行)定义 note 元素有四个元素:
"to、from、heading,、body"
!
ELEMENTto (第四行)定义 to 元素为"#PCDATA"类型
外部方式加入DTD
Xml文件:
xmlversion="1.0"?
>
DOCTYPEnoteSYSTEM"note.dtd">
Dtd文件:
ELEMENTnote(to,from,heading,body)>
ELEMENTto(#PCDATA)>
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的引用:
xmlversion="1.0"?
>
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="note.xsd">
George
John
Reminder
Don'tforgetthemeeting!
Schema实例:
(note.xsd)
xmlversion="1.0"?
>
schemaxmlns:
xs="http:
//www.w3.org/2001/XMLSchema">
elementname="note">
complexType>
sequence>
elementname="to"type="xs:
string"/>
elementname="from"type="xs:
string"/>
sequence>
complexType>
element>
schema>
最常用的类型是:
∙xs:
string
∙xs:
decimal
∙xs:
integer
∙xs:
boolean
∙xs:
date
∙xs:
time
定义简易元素的语法:
elementname="xxx"type="yyy"{default=””fixed=""}/>
定义属性的语法是:
attributename="xxx"type="yyy"{default=””fixed=""}/>
可选的和必需的属性
在缺省的情况下,属性是可选的。
如需规定属性为必选,请使用"use"属性:
attributename="lang"type="xs:
string"use="required"/>
XSD复合元素
什么是复合元素?
复合元素指包含其他元素及/或属性的XML元素。
有四种类型的复合元素:
空元素、包含其他元素的元素、仅包含文本的元素、包含元素和文本的元素
在XMLSchema中,我们有两种方式来定义复合元素:
1.通过命名此元素,可直接对"employee"元素进行声明,就像这样:
elementname="employee">
complexType>
sequence>
elementname="firstname"type="xs:
string"/>
elementname="lastname"type="xs:
string"/>
sequence>
complexType>
element>
注意其子元素,"firstname"以及"lastname",被包围在指示器中。
这意味着子元素必须以它们被声明的次序出现。
2."employee"元素可以使用type属性,这个属性的作用是引用要使用的复合类型的名称:
elementname="employee"type="personinfo"/>
complexTypename="personinfo">
sequence>
elementname="firstname"type="xs:
string"/>
elementname="lastname"type="xs:
string"/>
sequence>
complexType>
XSD复合类型指示器
Order指示器:
All、Choice、Sequence
Occurrence指示器:
maxOccurs、minOccurs
Group指示器:
Groupname、attributeGroupname
指示器规定子元素可以按照任意顺序出现,且每个子元素必须只出现一次:
all>
elementname="firstname"type="xs:
string"/>
elementname="lastname"type="xs:
string"/>
all>
指示器规定可出现某个子元素或者可出现另外一个子元素(非此即彼):
指示器可规定某个元素可出现的最大次数:
指示器可规定某个元素能够出现的最小次数:
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文档的其中几行:
xmlversion="1.0"?
>
RDF
xmlns:
rdf="http:
//www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:
cd="http:
//www.recshop.fake/cd#">
Description
rdf:
about="http:
//www.recshop.fake/cd/EmpireBurlesque">
artist>BobDylan
artist>
country>USA
country>
company>Columbia
company>
price>10.90
price>
year>1985
year>
Description>
Description
rdf:
about="http:
//www.recshop.fake/cd/Hideyourheart">
artist>BonnieTyler
artist>
country>UK
country>
company>CBSRecords
company>
price>9.90
price>
year>1988
year>
Description>
RDF>
xmlns:
cd 命名空间,规定了带有前缀cd的元素来自命名空间"http:
//www.recshop.fake/cd#"。
Description> 元素包含了对被 rdf:
about 属性标识的资源的描述。
元素:
artist>、country>、company> 等是此资源的属性。
RDF容器用于描述一组事物。
RDF元素用于描述这些的组:
、以及
Bag>元素Bag>元素用于描述一个规定为无序的值的列表。
Bag>元素可包含重复的值。
Seq>元素Seq>元素用于描述一个规定为有序的值的列表(比如一个字母顺序的排序)。
Bag>元素可包含重复的值。
Alt>元素Alt>元素用于一个可替换的值的列表(用户仅可选择这些值的其中之一)。
Description
rdf:
about="http:
//www.recshop.fake/cd/Beatles">
format>
Alt>
li>CD
li>
li>Record
li>
li>Tape
li>
Alt>
format>
Description>
RDFSchema(RDFS)
为什么要定义RDFSchema和应用程序的类
RDF通过类、属性和值来描述资源。
此外,RDF还需要一种定义应用程序专业的类和属性的方法。
应用程序专用的类和属性必须使用对RDF的扩展来定义。
RDFSchema就是这样一种扩展。
RDFSchema不提供实际的应用程序专用的类和属性,而是提供了描述应用程序专用的类和属性的框架。
RDFSchema中的类与面向对象编程语言中的类非常相似。
这就使得资源能够作为类的实例和类的子类来被定义。
RDFS实例
下面的实例演示了RDFS的能力的某些方面:
xmlversion="1.0"?
>
RDF
xmlns:
rdf="http:
//www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:
rdfs="http:
//www.w3.org/2000/01/rdf-schema#"
xml:
base="http:
//www.animals.fake/animals#">
Descriptionrdf:
ID="animal">
type
rdf:
resource="http:
//www.w3.org/2000/01/rdf-schema#Class"/>
Description>
Descriptionrdf:
ID="horse">
type
rdf:
resource="http:
//www.w3.org/2000/01/rdf-schema#Class"/>
subClassOfrdf:
resource="#animal"/>
Description>
RDF>
在上面的例子中,资源"horse"是类"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实例:
机场实例
RDF
xmlns:
rdf="http:
//www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:
rdfs="http:
//www.w3.org/2000/01/rdf-schema#"
xmlns:
owl="http:
//www.w3.org/2002/07/owl#"
>
Ontologyrdf:
about="">
comment>Airport
comment>
Ontology>
Classrdf:
ID="Airport">
subClassOf>
Restriction>
onPropertyrdf:
resource="#name"/>
toClassrdf:
resource="http:
//www.w3.org/2000/10/XMLSchema#string"/>
Restriction>
subClassOf>
subClassOf>
Restriction>
onPropertyrdf:
resource="#iataCode"/>
toClassrdf:
resource="http:
//www.w3.org/2000/10/XMLSchema#string"/>
Restriction>
subClassOf>
subClassOf>
Restriction>
onPropert