<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>james008的博客</title>
<link>http://blogger.org.cn/blog/blog.asp?name=james008</link>
<description>james008的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[XP下安装IIS6.0的办法]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=36076</link>
<author>james008</author>
<pubDate>2008/5/28 9:12:58</pubDate>
<description><![CDATA[XP下安装IIS6.0的办法<BR>首先在运行中输入“c:\windows\inf\sysoc.inf”，系统会自动使用记事本打开sysoc.inf这个文件。
<P>在sysoc.inf中找到“[Components]”这一段，找到类似“iis=iis.dll,OcEntry,iis.inf,hide,7”的一行字,把这一行替换为“iis=iis2.dll,OcEntry,iis2.inf,,7”。之后保存并关闭。</P>
<P>在iis6.0安装包中找到iis.dl_和iis.in_两个文件，一起拷贝到硬盘某个目录（如C:\）。打开开始菜单中的“命令提示符”，使用Expand命令解开iis.dl_和iis.if_，命令格式为：</P>
<P>在运行中输入“CMD”然后回车，打开命令行模式，在命令行下输入下列的两条命令，在每一行命令结束后回车：</P>
<P>Expand d:\i386\iis.dl_ c:\windows\system32\setup\iis2.dll</P>
<P>Expand d:\i386\iis.in_ c:\windows\inf\iis2.inf</P>
<P>这 时，打开你的控制面板，并点击“添加删除程序”图标，之后点击“添加删除Windows组件”，你会发现，Internet信息服务（IIS）重新出现 了！接下来就是循规蹈矩安装IIS。但需要提醒一点，在安装过程中若跳出定位相关文件时，请把目录指向iis6.0安装包所在目录。</P>
<P>最后还有一点注意的：</P>
<P>如 果你在安装过程中，系统需要你插入Window Whistler CD或者需要你提供exch_adsiisex.dll这个文件，那是因为你按照默认的选项安装了IIS。要解决这个问题，只要在安装IIS的时候先点击 “详细信息”，然后取消对<SPAN id=linkeyes3 onmouseover="thunderdisplayarr[3].Display(3, event)" style="DISPLAY: inline; CURSOR: pointer; COLOR: #0000ff; BORDER-BOTTOM: #0000ff 1px dashed; TEXT-DECORATION: underline" onclick="thunderdisplayarr[3].Click(3, 1000, event)" onmouseout=thunderdisplayarr[3].Hide(3)>SM</SPAN>TP的选择（即，不要安装SMTP服务器），那么复制文件的时候就不会需要那两个文件了。</P>
<P>附：<A href="http://www.softhy.net/softhy.net_down/IIS6.0.rar" target=_blank><FONT color=#000000>IIS6.0完整包下载</FONT></A></P>
<P>=============================================================</P>
<P>突破XP下IIS连接数10的限制</P>
<P>WindowsXP<SPAN id=linkeyes4 onmouseover="thunderdisplayarr[4].Display(4, event)" style="DISPLAY: inline; CURSOR: pointer; COLOR: #0000ff; BORDER-BOTTOM: #0000ff 1px dashed; TEXT-DECORATION: underline" onclick="thunderdisplayarr[4].Click(4, 1000, event)" onmouseout=thunderdisplayarr[4].Hide(4)>专业</SPAN>版操作系统中最多允许10个客户端的连接，在Windows2000服务器版或Windows2003服务器版操作系统中不存在这种连接限制问题，他们使用的IIS基本上一致。那就肯定有办法突破其设置。</P>
<P>到Microsoft网站看看，找到一个管理IIS的小工具MetaEdit，MetaEdit工作在WindowsNT4.0、 Windows2000上，我发现它在WindowsXP上也能正常工作，另外，MetaEdit只能管理II4.0、IIS5.0或更高版本的IIS。</P>
<P>下面利用这个工具突破WindowsXP专业版IIS客户端连接限制：</P>
<P>首先，你需要到下面的地址下载MetaEdit，最新版本是2.2 <A href="http://download.microsoft.com/download/iis50/Utility/5.0/NT45/EN-US/MtaEdt22.exe" target=_blank><FONT color=#000000>http://download.microsoft.com/download/iis50/Utility/5.0/NT45/EN-US/MtaEdt22.exe</FONT></A></P>
<P>然后，执行MtaEdt22.exe按向导提示完成MetaEdit安装。最后，在MetaEdit中设置客户端连接限制的参数。安装MetaEdit完 毕后，在开始菜单的程序组AdministrativeTools下点击MetaEdit2.2运行，出现窗口：在窗口的左边将树展开至LM\ W3SVC，直接在W3SVC文件夹上单击，选择右边列表中Name为MaxConnections的项，双击后，出现对话框：在最后Data的文本框中 默认的是10，这就是WindowsXP专业版IIS默认设置的最大客户端连接数了，现在你可以改变这个默认值了，我把它改为最大，注意：在 Win2000上的IIS客户端连接数最大为2000000000。<BR></P>]]></description>
</item><item>
<title><![CDATA[OWL Web本体语言 指南 继]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=35704</link>
<author>james008</author>
<pubDate>2008/5/22 14:31:12</pubDate>
<description><![CDATA[<P>7. 使用范例<BR>一旦有某个初始的领域本体可以利用，人们就能够使用这个本体开发大量的应用。在本节中，我们会描述使用在葡萄酒领域的一些例子。</P>
<P>7.1.葡萄酒门户网站<BR>现今有许多站点称自己是葡萄酒的门户网站。比如在Google上就可以找到152,000个与“wine portal”（葡萄酒门户网站）相匹配的结果。最匹配的是一个称为"Wine-Portal.com"的站点，该站点提供了问其他许多站点的途径。声称自己是葡萄酒门户网站的站点大多是信息式站点（informational sites）。例如，wine-portal.com中的第一个特色站点被称为“酒塞烹饪”（cork cuisine），这一站点就是提供关于葡萄酒和食物的搭配、关于以葡萄酒作为礼物等方面的信息的。</P>
<P>细读任何一个范围的主题，人们都会发现大量与该主题相关的内容，它们包含了与该主题相关的信息或者服务。像“附属品和礼物”（accessories and gifts）这个主题中就包含了关于购买特别的葡萄酒物品（wine item）时的注意事项的信息，同时也包含了众多的在线零售商的信息。另一个顶层的主题范围“购物”中包含了一个子范围“葡萄酒购买”（wine shopping），从这儿用户能够找到在线（或者“街道购物”（stree shopping））商店（按照国家分类）。这两个站点仅仅是现在许多例子中的两个，它们代表了这些门户网站的一般概念，也即葡萄酒门户为某个特定主题范围提供了大量的信息和服务。</P>
<P>即使在更细节的程度上考察这些站点，我们也无法得知现在它们在多大程度上依赖着本体。例如，我们从html的源代码中并无法找出它们使用本体的证据。然而，非常明显的，这些站点是有可能使用本体的并可以从中得到一些葡萄酒本体。</P>
<P>在门户网站中，本体的一个简单使用就是利用其进行组织和浏览。上面的类别列表就可能从葡萄酒的类别层次的最高几层生成。查询能够使用葡萄酒本体对与葡萄酒相关的信息进行检索。如果某人对本体中包含的术语进行搜索，查询就可能根据子类的信息进行扩展从而找到更多相关的答案。门户网站也可能使用（候选的）相关主题范围内的信息进行自我更新。使用强大的推理能力，它们甚至能够识别出可能的葡萄酒销售站点并通过协商将这些站点包含为门户网站的一部分。</P>
<P>7.2. 葡萄酒主体（agent）<BR>为了说明的目的，我们启动了一个葡萄酒主体（wine agent）项目。按照我们最初的设计，葡萄酒主体的目标是为饮宴上的菜推荐合适品种的葡萄酒。该应用使用的本体就是作为本指南基础的这一葡萄酒本体。这一葡萄酒本体可以在DAML本体库中得到，名为wines. </P>
<P>一个个性化的葡萄酒主体能为人们够提供大量的服务。</P>
<P>主体能够根据给定的许多约束条件（例如要提供的餐宴）推荐合适的葡萄酒，能够找到关于某种特定的葡萄酒或者某种特定的葡萄酒的类别的信息，它还能够为一种葡萄酒找出合适的附属品（例如为某个品种的葡萄酒找到合适的特定种类的杯子等）。</P>
<P>接下来，我们用一个简单的原型系统来描述一个例子，该系统是作为一个学生作业项目来完成的。</P>
<P>考虑下面的情景：</P>
<P>某人正在筹划一个晚宴，其中至少有一个客人对酒了解甚深。主人希望能够使用与菜单上的菜肴最合适的酒来招待客人。主人也希望自己能够对晚宴的用酒显得学识渊博。并且，主人决定在晚宴上使用一种用番茄做成的意大利面条酱和新鲜的意大利面条作为主菜来招待客人。</P>
<P>为了能够提供与餐宴合适的葡萄酒，主人需要葡萄酒酒和食物搭配方面的知识。为了显得对葡萄酒有相当的了解，主人需要获得关于宴会用酒的有关信息。为了配上合适的附属品，主人还需要有关在该情况下（以及在主人认可价格范围内）的附属品的信息。</P>
<P>通过一个相关背景的葡萄酒本体，根据对餐宴的一定的描述，葡萄酒主体能够给出适合该餐宴的酒的类型的建议。葡萄酒主体可能会建议使用馨芳葡萄酒（Zinfandel）作为这次宴会的用酒类型。除此之外，通过相关背景的本体，葡萄酒主体可以给出建议使用某种特定的馨芳葡萄酒，比如玛丽埃塔馨芳葡萄酒（Marietta Zinfandel)。如果给定了用酒是馨芳葡萄酒的话，葡萄酒主体可能会去某个地点进行搜寻，它可能得到的是一系列的馨芳葡萄酒，也可能得到某种特定的馨芳葡萄酒，例如玛丽埃塔馨芳葡萄酒。如果本体中包含了购买葡萄酒的合适地点的信息（可能根据主人所在地以及葡萄酒销售商所在地信息进行了过滤），葡萄酒主体就可能访问一个站点如wine.com，在站点内搜索‘馨芳葡萄酒’并返回那个站点所销售的馨芳葡萄酒的列表。葡萄酒主体也可能从酿酒厂或者其他零售商处尝试寻找玛丽埃塔馨芳葡萄酒。例如，它可能发现（通过在Google进行搜索或者在某些选定站点上进行结构化的查询）在winelibrary.com上有1999年制造的玛丽埃塔馨芳葡萄酒正以13.99美元的折扣价进行销售。葡萄酒主体就可能使用附加的过滤信息进行过滤，这些过滤信息可能是由消费者提供的价格范围或者是对于不同品种的建议等。</P>
<P>葡萄酒主体现在就可能尝试要提供关于馨芳葡萄酒的通用信息或者玛丽埃塔馨芳葡萄酒的特定信息。它可能使用一个具有葡萄酒站点背景的本体来寻找关于特定的葡萄酒的信息。例如，它可能用到酿酒厂对它们最新的馨芳葡萄酒的描述这样的其他相关信息源的额外的评论也可能被用上。如果在某个最受欢迎的站点上没有关于玛丽埃塔馨芳葡萄酒的相关评论，在相同的地方找一些关于馨芳葡萄酒的评论可能也是有用的，比如在这里就可以找一些关于加利福尼亚Sonoma郡的馨芳葡萄酒的评论。</P>
<P>通用的背景信息可能也会使用到。主人可能需要做一些相关的阅读，他也可能对普通酒或者是馨芳葡萄酒的书籍感兴趣。例如，主人可能对Amazon.com上销售的馨芳葡萄酒的书籍感兴趣。主人也可能对相同地区的葡萄酒相关的信息感兴趣，这里可能就是Sonoma郡的馨芳葡萄酒。葡萄酒主体一般仅能得到它的主要知识领域相关的背景信息。比如，这个葡萄酒主体是关于食物和酒的匹配方面的，所以它可能通过免费的或者付费购买的方式得到的这一主题的信息，例如像评酒者上的关于搭配食物和酒的文章。</P>
<P>宴会的主人可能还要购买一些对于宴会活动来说很重要的酒的附属品。酒是使用酒杯作为容器的，而不同品种的酒最好使用不同种类的酒杯来装。例如，如果主人选择了一道菜是适合用馨芳葡萄酒来配的，主人可能就需要知道Riedel是一个知名的酒器生产商。主人可能还希望能够链接到Wine Enthusiast（一个相当受敬重的葡萄酒商品供应商）并告诉他Wine Enthusiast有一种Riedel生产的馨芳葡萄酒酒杯正在以63.95美元的价格四个一组地进行销售（如果你买两组四个的杯子的话就可以得到59.95美元一组的折扣价）。主人可能还有兴趣了解在Amazon.com上通过49.99美元(and claims a list price of $65.00)就可以购买得到的Reidel生产的Sommelier 馨芳葡萄酒单把杯（Reidel's Sommelier Zinfandel single stem glass）。Amazon上面也有相同的6个一组的馨芳葡萄酒酒杯销售（而不像Wine Enthusiast上的4个一组），销售价是79.99美元（and claims a list price of $119.40)。葡萄酒主体能提供一个与餐宴搭配的（也即，与招待用的馨芳葡萄酒搭配的）酒器的列表给主人，然后进行价格的比较或者根据由本体中的一个属性列表中选出的其他标准来进行比较。</P>
<P>主人可能还要考虑其他的酒的附属品。从本体中我们可以了解到启瓶器是属于酒的附属品。背景本体可能已经对启瓶器的子类进行了编码或者这些信息可以通过相关的葡萄酒站点获得。Wine Enthusiast就有一系列它们推荐的（其中有关于启瓶器的类型和价格范围的描述）[1]。它们也根据启瓶器的不同类型（杠杆型、服务员型、固定型、旋转型、抽吸型）进行区分，而主人可能想要得到关于这些不同类型的启瓶器的信息。</P>
<P>根据不同领域的背景本体知识和不同的信息以及不同的服务站点，葡萄酒主体可能应用到不同复杂程度的情况中去。在本例中，我们仅仅考虑了关于酒、品种类型、食物和酒的组合、某些酒的附属品和它们相关属性的一些信息。当然，我们能够根据顾客要求将本例扩展以包含更多的信息和更多的约束。</P>
<P>葡萄酒主体的例子还在不断完善中，从这里我们可以得到它。</P>]]></description>
</item><item>
<title><![CDATA[OWL Web本体语言 指南]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=35703</link>
<author>james008</author>
<pubDate>2008/5/22 14:20:00</pubDate>
<description><![CDATA[
<P>&nbsp;OWL Web本体语言 指南<BR>W3C推荐标准 2004年02月10日<BR>摘要</P>
<P>目前这种结构的万维网，很像一本地图做得很差的地理书，我们对于Web中可以使用的文档和服务的了解，都是基于关键字搜索的， <BR>同时还需要灵活地使用文档的链接和使用模式。如果没有强有力的工具的支持，这么大规模的数据是很难管理的，为了能够给Web绘制出更为详实的地图，计算代理需要对于网络上可用资源的内容和能力做一个机器能够读得懂的描述。这些描述是人类能够读得懂的信息的扩展。<BR>OWL，这种本体描述语言，可以用来描述Web文档和应用中内在的类和关系。<BR>这篇文章解释了OWL语言的使用：<BR>&nbsp; 通过定义类以及类的属性来形式化某个领域； <BR>&nbsp; 定义个体并说明它们之间的属性； <BR>&nbsp; 在OWL语言的形式化语义允许的层次上，对类和个体进行推理。 <BR>本文的各章节间是按照类、属性、个体的集合的定义给出来的，从最简单的概念开始，逐渐过渡到更为复杂的概念。<BR>本文档的状态 <BR>本文档已被W3C成员及其他相关方面审阅，并已被W3C总监（W3C Director）批准为W3C推荐标准（W3C <BR>Recommendation）。W3C制定推荐标准的任务是使之受到关注，并促使其被广泛应用。这将增强Web的功能性与互操作性。 <BR>本文档是W3C关于Web本体语言OWL的推荐标准的六个部分之一。 它已经被Web 本体工作小组(小组章程) 作为W3C语义Web行动 (行动声明) <BR>的一部分于2004年2月10日发布。 <BR>本文档的早期版本中所描述的关于OWL的设计已被广泛评阅，并已满足工作小组的技术需求。工作小组充分考虑所有收到的意见，并做了必要的修改。本文档自从候选推荐标准版本以来的所有修改都在文后的变更日志中。<BR>欢迎通过<A href="mailto:public-webont-comments@w3.org">public-webont-comments@w3.org</A> (历史存档)提出您的意见，也可以通过<A href="mailto:www-rdf-logic@w3.org">www-rdf-logic@w3.org</A> <BR>(<A href="mailto:www-rdf-logic@w3.org">mailto:www-rdf-logic@w3.org</A>)(历史存档) 参与相关技术的讨论。<BR>可以访问到有关实现的一个列表。<BR>W3C维护着一个与这些工作相关的专利声明的目录。<BR>这节描述了本文档在发布时的状态。其他文档可能替代这文档。一份当前W3C的最新出版物的目录和这个技术报告的最新版本可以在 <BR>W3C技术报告索引<A href="http://www.w3.org/TR/">http://www.w3.org/TR/</A> 上找到。</P>
<P>目录<BR>1. 引言. 3<BR>1.1. OWL的种类. 4<BR>1.2. 本文档的结构. 5<BR>2. 本体的结构. 5<BR>2.1. 命名空间. 5<BR>2.2. 本体头部. 7<BR>2.3. 数据集成与隐私. 8<BR>3. 基本元素（Basic Elements）. 8<BR>3.1. 简单的类和个体. 8<BR>3.1.1. 简单的具名类. 9<BR>3.1.2. 个体. 11<BR>3.1.3. 使用方面的考虑. 11<BR>3.2. 简单属性. 12<BR>3.2.1. 定义属性（Defining Properties）. 13<BR>3.2.2. 属性和数据类型. 15<BR>3.2.3. 个体的属性. 16<BR>3.3. 属性特性. 16<BR>3.3.1. TransitiveProperty 17<BR>3.3.2. SymmetricProperty 17<BR>3.3.3. FunctionalProperty 17<BR>3.3.4. inverseOf 18<BR>3.3.5. InverseFunctionalProperty 18<BR>3.4. 属性限制. 19<BR>3.4.1. allValuesFrom, someValuesFrom 19<BR>3.4.2. 基数限制. 20<BR>3.4.3. hasValue [OWL DL] 20<BR>4. 本体映射. 21<BR>4.1. 类和属性之间的等价关系. 21<BR>4.2 个体间的同一性. 22<BR>4.3. 不同的个体. 23<BR>5. 复杂类 [OWL DL] 24<BR>5.1 集合运算符 intersectionOf,unionOf,complementOf 24<BR>5.1.1.交运算 [some uses of OWL DL] 24<BR>5.1.2. 并运算 [OWL DL] 25<BR>5.1.3. 补运算 [OWL DL] 26<BR>5.2. 枚举类 oneOf [OWL DL] 26<BR>5.3. 不相交类 disjointWith [OWL DL] 27<BR>6. 本体的版本控制. 28<BR>7. 使用范例. 29<BR>7.1.葡萄酒门户网站. 29<BR>7.2. 葡萄酒主体（agent）. 30<BR>致谢（略）. 32<BR>OWL词汇. 32<BR>术语索引及引用参照. 34<BR>术语索引. 34<BR>附录A：XML + RDF基础. 35<BR>附录B: 历史. 35<BR>附录C：2003年12月15日发布的提议推荐标准以来的修改日志. 36<BR>&nbsp;<BR>&nbsp;1. 引言<BR>“告诉我我应该买什么酒提供给下列菜单的每道菜，随便说一下，我不喜欢苏特恩白葡萄酒”。<BR>目前构造一个能够查找满足这个查询的酒的Web代理会是困难的。类似地，考虑派给软件代理一个做出合理的旅行安排的任务（更多的用例，参考OWL需求文档）。<BR>为了支持这种计算，不仅仅用关键词而是说明Web上描述的资源的含义是必要的。这个额外的解释层表述了数据的“语义”。<BR>Web本体语言OWL是一种定义和实例化“Web本体”的语言。“本体”这个术语来自于哲学，它是研究世界上的各种实体以及他们是怎么关联的科学。一个“Web本体”可能包含了类，属性和他们的实例的描述。给出这样的一个本体，OWL形式语义说明怎么获得它的逻辑结论，也就是说，不是逐字写在本体中的事实，而是语义蕴涵的事实。这些蕴涵可以是基于单个的文档也或利用OWL机制合并在一起的多个分布的文档。<BR>本文档是W3CWeb本体工作组（WebOnt）制定的Web本体语言的描述的一部分。 <BR>OWL综述([Overview)的文档指南部分描述了不同部分的文档以及他们怎样结合的。<BR>当描述另外一个XML/Web标准时，有一个问题会冒出来：这个标准给了我什么XML和XML Schema不能给的。这个问题有两个答案。<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本体和XML <BR>Schema的区别是它是一种知识表示，而不是一种消息格式。大多数来自工业界的Web标准包含了一个消息格式和协议规范的组合。这些式已经被给予一个操作语义，例如，"一旦收到订单（PurchaseOrder）的消息，从AccountFrom账号转移Amount数量的美元到AccountTo账号，并且发货(Product)"，但是这些规范并没有设计为支持此事务上下文之外的推理。例如，一般来说，没有机制让我们推出：因为这个产品的类型是夏敦埃酒（Chardonnay，一种无甜味白葡萄酒），它必定也是一种白色酒。<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWL本体的一个优点是会有能够对其做推理的工具。这些工具提供了不特定于某个主题领域的通用支持，而如果要构建一个能对一个特定的工业界标准XML <BR>Schema做推理的系统，它往往是特定于一个领域的。构建一个可靠的和有用的推理系统不是一项简单的工作。而创建一个本体则更为容易处理。我们的期望就是很多团体会着手本体创建。他们会得益于基于OWL语言的形式属性的第三方工具，这些工具提供了多种多样的能力，而这些能力是大部分组织难以复制的。<BR>&nbsp;<BR>1.1. OWL的种类<BR>OWL提供了三种表达能力递增的子语言，以分别用于特定的实现者和用户团体。<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWL Lite用于提供给那些只需要一个分类层次和简单约束的用户。例如，虽然OWL <BR>Lite支持支持基数限制，但只允许基数为0或1。提供支持OWL <BR>Lite的工具应该比支持表达能力更强的其他OWL语言更简单，并且从辞典（thesauri）和分类系统（taxonomy）转换到OWL Lite更为迅速。<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWL DL 支持那些需要最强表达能力的推理系统的用户，且这个推理系统能够保证计算的完全性（computational <BR>completeness，即所有的结论都能够保证被计算出来）和可判定性（decidability，即所有的计算都在有限的时间内完成）。它包括了OWL语言的所有成分，但有一定的限制，如类型的分离（一个类不能同时是一个个体或属性，一个属性不能同时是一个个体或类）。OWL <BR>DL 这么命名是因为它对应于[描述逻辑]，这是一个研究一阶逻辑的一个特定可判定片断的领域。OWL DL旨在支持已有的描述逻辑商业处理（business <BR>segment）和具有良好计算性质的推理系统。<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWL Full 支持那些需要尽管没有可计算性保证，但有最强的表达能力和完全自由的RDF语法的用户。例如，在OWL <BR>Full中，一个类可以被同时看为许多个体的一个集合以及本身作为一个个体。另外一个和OWL <BR>DL的重要区别是owl:DatatypeProperty（数据类型属性）能作为一个owl:InverseFunctionalProperty（逆函数型属性）。OWL <BR>full允许一个本体增加预定义的（RDF、OWL）词汇的含义。这样，不太可能有推理软件能支持对OWL FULL的所有成分的完全推理。 <BR>在表达能力和推理能力上，每个子语言都是前面的语言的扩展。这三种子语言之间有如下关系成立，但这些关系反过来并不成立。<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每个合法的OWL Lite本体都是一个合法的OWL DL本体；<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每个合法的OWL DL本体都是一个合法的OWL Full本体；<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每个有效的OWL Lite结论都是一个有效的OWL DL结论；<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每个有效的OWL DL结论都是一个有效的OWL Full结论。<BR>使用OWL的本体开发者要考虑哪种语言最符合他们的需求。选择OWL Lite还是OWL DL主要取决于用户在多大程度上需要OWL <BR>DL提供的表达能力更强的成分。OWL Lite的推理机会有良好的计算性质。而OWL <BR>DL的推理机处理的尽管是一个可判定的子语言，会有更高的最坏情况复杂度。选择OWL DL还是OWL <BR>Full主要取决于用户在多大程度上需要RDF的元模型机制（如定义关于类的类）；使用OWL Full相比于OWL <BR>DL，对推理的支持是更难预测的。关于此问题的更多信息参考OWL语义文档。<BR>用户在把RDF文档转换到OWL DL或OWL Lite文档时必须谨慎，以保证原来的RDF文档是否满足 OWL DL 或OWL <BR>Lite对RDF的一些附加的限制。这些限制在文档OWL参考的附录E中有详细的解释。<BR>当我们介绍只在 OWL DL或 OWL Full中允许的构词（construct）时，他们被标记为"[OWL DL]"。<BR>1.2. 本文档的结构<BR>为了在这个指南中提供一个一致的例子，我们创建了一个关于酒和食物的本体。它是一个OWL DL本体。我们有些讨论会集中于OWL <BR>Full的表达能力，因此会标注出来。这个酒和食物本体是对历史悠久的DAML本体库中的一个元素的重大修改而成的。它最初由McGuinness作为一个描述逻辑CLASSIC的例子开发的，后来扩充为一个描述逻辑教程和一个本体教程。<BR>在这个文档中，我们假设大部分读者熟悉XML，因此用RDF/XML语法表示例子([RDF], <BR>5)。标准的OWL交换语法是RDF/XML。注意OWL在设计时保持了与RDF和RDF Schema的最大兼容性。这些XML和RDF格式是OWL标准的一部分。<BR>本文档中引进的所有例子都是从本体wine.rdf和 food.rdf中摘取的，除了那些在右下角用 ?&nbsp; 标注的。<BR>2. 本体的结构<BR>OWL是语义网活动的一个组成部分。这项工作的目的是通过对增加关于那些描述或提供网络内容的资源的信息，从而使网络资源能够更容易地被那些自动进程访问。由于语义网络固有的分布性，OWL必须允许信息能够从分布的信息源收集起来。其中，允许本体间相互联系，包括明确导入其他本体的信息，能够部分实现这样的功能。<BR>另外，OWL提出了一个开放世界的假设。也就是说，对资源的描述并不局限于在一个简单的文件或范围内。类C1本来是由本体O1定义出来的，然而，它也可以是由其他的本体扩展出来的。对C1进行这样的假设的结果是单调的。新的信息不能否定之前的信息。新的信息可以是和旧的信息矛盾的，但是事实和推导只能被增加而不能被删减。<BR>当设计一个本体的时候，设计者必须考虑到这种矛盾的可能性。一种期望是，工具的支持将帮助侦测到这样的情况。<BR>为了能写出一个能被唯一翻译的而且能被软件（代理）使用的本体，我们要求OWL有一个语法和正规的语义。OWL是RDF的一个词汇扩充[RDF语义]。在OWL网络本体语言语义和简明语法中，有OWL的语义定义。<BR>2.1. 命名空间<BR>在我们使用一组术语之前，我们需要一个精确地指出哪些具体的词汇表将被用到。一个标准的本体开头部分里包括一组XML命名空间（namespace）声明（被包含在rdf:RDF标签里）。这些命名空间声明提供了一种无歧义地解释标识符的方式，并使得剩余的本体表示具有更强的可读性。一个典型的OWL本体以一个命名空间声明（namespace <BR>declaration）开始（就像下面的例子那样）。当然，被定义本体的URIs未必都是w3.org的。<BR>&nbsp;&lt;rdf:RDF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns&nbsp;&nbsp;&nbsp;&nbsp; ="<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine">http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine</A>#" <BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns:vin ="<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine">http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine</A>#"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; xml:base&nbsp; ="<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine">http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine</A>#"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns:food="<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food">http://www.w3.org/TR/2004/REC-owl-guide-20040210/food</A>#"&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns:owl ="<A href="http://www.w3.org/2002/07/owl">http://www.w3.org/2002/07/owl</A>#"<BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns:rdf ="<A href="http://www.w3.org/1999/02/22-rdf-syntax-ns">http://www.w3.org/1999/02/22-rdf-syntax-ns</A>#"<BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns:rdfs="<A href="http://www.w3.org/2000/01/rdf-schema">http://www.w3.org/2000/01/rdf-schema</A>#"<BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns:xsd ="<A href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</A>#"&gt; 前两个声明标识了与该本体相关的命名空间。第一个声明指定了缺省命名空间，即表明所有无前缀的限定名（qualified <BR>names）都出自当前本体。第二个声明为当前本体指定了前缀 vin:。第三个声明为当前文档（参见下文）指定了基准URI（base <BR>URI）。第四个声明指出食物（food）本体将用前缀food:来标识。<BR>第五个命名空间声明指出，在当前文档中，前缀为owl:的元素应被理解是对出自<A href="http://www.w3.org/2002/07/owl">http://www.w3.org/2002/07/owl</A>#中的事物的引用。这是引入OWL词汇表的惯例用法。<BR>OWL要依赖RDF、RDFS以及XML Schema数据类型中的构词（constructs）。在本文档中，rdf:前缀表明事物出自命名空间 <BR><A href="http://www.w3.org/1999/02/22-rdf-syntax-ns">http://www.w3.org/1999/02/22-rdf-syntax-ns</A>#。接下来的两个命名空间声明分别为RDF Schema和XML <BR>Schema数据类型指定前缀rdfs:和xsd:。<BR>为帮助书写冗长的URLs，在本体的定义之前，在文档类型声明（DOCTYPE）中提供一些实体定义（entity <BR>definitions）常常是很有用的。这些被命名空间声明定义的名称仅当作为XML标签的一部分时才具有意义。属性值（attribute <BR>values）是不具有命名空间的。但是在OWL里，我们经常要用属性值来引用本体标识符。我们可以写出它们的完整URI形式，比如“http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#merlot”。或者，利用实体定义来简略URI的书写，例如：<BR>&nbsp;&lt;!DOCTYPE rdf:RDF [<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;!ENTITY vin&nbsp; "<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine">http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine</A>#" &gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;!ENTITY food "<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food">http://www.w3.org/TR/2004/REC-owl-guide-20040210/food</A>#" &gt; ]&gt;在声明这些实体后，我们可以将“&amp;vin;merlot”作为“http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#merlot”的简写。<BR>更为重要的是，这样rdf:RDf命名空间声明可以被简化，并且只需对实体声明作修改即可在整个本体范围内应用URI的变化。<BR>&nbsp;&lt;rdf:RDF <BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns&nbsp;&nbsp;&nbsp;&nbsp; ="&amp;vin;" <BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns:vin ="&amp;vin;" <BR>&nbsp;&nbsp;&nbsp;&nbsp; xml:base&nbsp; ="&amp;vin;" <BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns:food="&amp;food;"<BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns:owl ="<A href="http://www.w3.org/2002/07/owl">http://www.w3.org/2002/07/owl</A>#"<BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns:rdf ="<A href="http://www.w3.org/1999/02/22-rdf-syntax-ns">http://www.w3.org/1999/02/22-rdf-syntax-ns</A>#"<BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns:rdfs="<A href="http://www.w3.org/2000/01/rdf-schema">http://www.w3.org/2000/01/rdf-schema</A>#"<BR>&nbsp;&nbsp;&nbsp;&nbsp; xmlns:xsd ="<A href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</A>#"&gt; 2.2. 本体头部<BR>建立了命名空间后，接下来我们通常要在owl:Ontology标签里给出一组关于本体的声明。这些标签支持一些重要的常务工作比如注释、版本控制以及其他本体的嵌入等。<BR>&nbsp;&lt;owl:Ontology rdf:about=""&gt; <BR>&nbsp;&nbsp; &lt;rdfs:comment&gt;An example OWL ontology&lt;/rdfs:comment&gt;<BR>&nbsp;&nbsp; &lt;owl:priorVersion rdf:resource="<A href="http://www.w3.org/TR/2003/PR-owl-guide-20031215/wine%22/">http://www.w3.org/TR/2003/PR-owl-guide-20031215/wine"/</A>&gt; <BR>&nbsp;&nbsp; &lt;owl:imports rdf:resource="<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food%22/">http://www.w3.org/TR/2004/REC-owl-guide-20040210/food"/</A>&gt; <BR>&nbsp;&nbsp; &lt;rdfs:label&gt;Wine Ontology&lt;/rdfs:label&gt; <BR>&nbsp;&nbsp; ...<BR>注意：我们使用“...”表明这里有一些文本被略去了。owl:Ontology元素是用来收集关于当前文档的OWL元数据的。它不确保文档描述一个传统意义的本体。在某些圈子里，本体不是关于个体的，而是仅仅关于某个领域的类和属性的。在使用OWL来描述一个实例数据集合时，owl:Ontology标签也许会被需要用来记录版本信息，和导入文档所依赖的一些定义。因此，在OWL里，本体一词被放宽了，已包含实例数据（如上文）。<BR>rdf:about属性为本体提供一个名称或引用。根据标准，当rdf:about属性的值为""时，本体的名称是owl:Ontology元素的基准URI。典型地，这是一个包含本体的文档的URI。在使用了xml:base的上下文中则是一个特殊情况，这时owl:Ontology元素的基准URI也许会被设为其他URI。<BR>rdfs:comment提供了显然必须的为本体添加注解的能力。<BR>owl:priorVersion是一个为用于本体的版本控制系统提供相关信息（hook）的标准标签。本体的版本控制将在后面作进一步讨论。<BR>owl:imports提供了一种嵌入机制。owl:imports接受一个用rdf:resource属性标识的参数。<BR>导入另一个本体将把那个本体中的全部声明引入到当前本体中。为了充分利用好这一机制，通常要与命名空间声明结合使用。请注意这两种机制的区别。命名空间声明提供的是一种方便对其他本体定义的名称进行引用的方法。概念上，owl:imports用于表明包含目标本体中的声明。在导入另一个本体02时，在02中导入的其他本体也将被导入。<BR>注意：owl:imports并不是总能成功的。正如你所料的，在涉及语义网时，对分布在Web上的资源的访问也许是不可及的。在这种情况下，工具的响应是与具体实现相关的。<BR>注意：不必为了使用OWL本体词汇，而导入owl.rdf本体。实际上，这样导入是不推荐的。<BR>一个理想的可被嵌入的标签集合是部分标准的Dublin Core元数据标签。该子集包含一些值为简单类型或字符串的标签。比如：Title, Creator, <BR>Description, Publisher和Date等（参见RDF声明）。<BR>被用作注解的属性（properties）应用owl:AnnotationProperty来声明。例如<BR>&nbsp;&lt;owl:AnnotationProperty rdf:about="&amp;dc;creator" /&gt;OWL提供了若干其他的机制来将当前本体与被导入本体相关联（参见本题映射部分）。 我们也可以用rdfs:label来对本体进行自然语言标注。<BR>本体头部定义在下列标签处结束：<BR>&nbsp;&lt;/owl:Ontology&gt;在这段开头之后跟随的是构成本体的实际定义，最终由 &lt;/rdf:RDF&gt;<BR>终止。2.3. 数据集成与隐私<BR>OWL在表达出现在多个文档中的实例信息的能力方面，支持连接来自异源的数据。下层语义为这些数据提供推理支持，这可以产生意外的结果。特别地，owl:sameAs的表达等价的能力，可被用来表达表面上不同的个体实际上是相同的。Owl:InverseFunctionalProperty也可被用来连接个体。例如，如果一个属性，比如“SocialSecurityNumber”，是一个owl:InverseFunctionalProperty，那么两个分开的个体如果具有相同的SocialSecurityNumber属性，则可被推理出是相同的个体。当个体被这样确定为相同时，来自异源的关于这些个体的信息可以被合并。这种聚合可被用来得出不可直接从单源获得的事实。<BR>语义网的连接来自多源的信息的能力是一个理想的、强大的特性，它可被用在许多应用中。但是合并来自多源数据的能力，加上OWL的推理能力，确实存在被误用的可能。OWL用户应对潜在的隐私问题予以警惕。具体的安全方案超出了工作组的工作范畴。一些组织正在用各种不同的安全和偏好方案来处理这些问题，比如SAML和P3P。<BR>3. 基本元素（Basic Elements）<BR>一个OWL本体中的大部分元素是与类（class）、属性（property）[译注//这里的property也可译作“特性”]、类的实例（instance）以及这些实例间的关系有关的。本节给出应用这些元素所必需的语言成分。<BR>3.1. 简单的类和个体<BR>许多情况下，使用本体是为了用它进行关于个体的推理。为了在一种有效的方式下做到这一点，我们需要一种机制来描述个体所属的类以及这些个体通过类成员关系而继承得到的属性。尽管我们总能为个体声明特定的属性，但是本体的大部分能力在于基于类的推理。<BR>有时，我们希望强调区分一个类是作为对象还是作为包含元素的集合。我们称由属于某个类的个体所构成的集合为该类的外延（extension）。<BR>3.1.1<BR>. <BR>简单的具名类<BR>Class, rdfs:subClassOf<BR>一个领域中的最基本概念应分别对应于各个分类层次树的根。OWL中的所有个体都是类owl:Thing的成员。因此，各个用户自定义的类都隐含地是owl:Thing的一个子类。要定义特定领域的根类，只需将它们声明为一个具名类（named <BR>class）即可。OWL也可以定义空类，owl:Nothing。<BR>在我们所举的葡萄酒领域的例子中，我们创建三个根类：Winery，Region和ConsumableThing。<BR>&nbsp;&lt;owl:Class rdf:ID="Winery"/&gt; <BR>&nbsp;&lt;owl:Class rdf:ID="Region"/&gt; <BR>&nbsp;&lt;owl:Class rdf:ID="ConsumableThing"/&gt; <BR>注意：我们只是说这里有三个具有指定名称（通过语法“rdf:ID=”）的类。形式上，即使我们使用了熟悉的英语单词作为标签,但我们除了知道这些类的存在以外，仍不了解任何其他关于它们的信息。而这些类尽管存在，但它们可能没有成员。就所有目前我们所知道的信息而言，将这些类分别命名为Thing1、Thing2和Thing3与命名为上述名称没有什么区别。记住这一点很重要，即定义可以是增量的和分布式的。特别地，我们将在后面对Winery作更多的讨论。<BR>语法 rdf:ID="Region" <BR>被用于引入一个名称（作为定义的一部分）。该rdf:ID属性（attribute）（[RDF]，7.2.22）类似于XML中的ID属性（attribute）。在这一文档中，我们现在可以用#Region来引用Region类，例如 <BR>rdf:resource="#Region"。而其他的本体可以通过"<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#Region">http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#Region</A>"这一完整形式来引用该名称。<BR>另一种引用类的形式是用语法 rdf:about="#Region" 来扩展对一个资源的定义。语法 rdf:about="&amp;ont;#x" <BR>的使用在分布式本体的创建中是一个关键要素。它允许导入x类的定义并对它进行扩展，而不需修改源定义文档，从而支持增量构建更大的本体。<BR>现在，我们可以在其他OWL的构建中通过这些类的标识符来引用这些类。比如对于第一个类，同样也在该文档内的话,我们就可以使用相对标识符#Winery。由于其他文档可能也需要引用这个类，因此最合理的方式是提供命名空间和实体定义，在其中包含着这个类的定义文档作为定义源：<BR>&nbsp;...<BR>&nbsp;&lt;!ENTITY vin&nbsp; "<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine">http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine</A>#" &gt;<BR>&nbsp;&lt;!ENTITY food "<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food">http://www.w3.org/TR/2004/REC-owl-guide-20040210/food</A>#" &gt; ... &lt;rdf:RDF xmlns:vin ="<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine">http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine</A>#"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:food="<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food">http://www.w3.org/TR/2004/REC-owl-guide-20040210/food</A>#" ... &gt;<BR>&nbsp;...给定上述定义后，我们便可以通过XML标签vin:Winery或属性（attribute）值&amp;vin;Winery来引用winery类。更确切地说，我们总可以使用资源的完整URL来引用它们，比如这里我们可以用<A href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#Winery">http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#Winery</A> <BR>来引用Winery类。<BR>rdfs:subClassOf是用于类的基本分类构造符。它将一个较具体的类与一个较一般的类关联。如果X是Y的一个子类（subclass），那么X的每个实例同时也都是Y的实例。rdfs:subClassOf关系是可传递的，即如果X是Y的一个子类，而Y又是Z的一个子类，那么X就是Z的一个子类。<BR>&nbsp;&lt;owl:Class rdf:ID="PotableLiquid"&gt; <BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="#ConsumableThing" /&gt;<BR>&nbsp;&nbsp; ...<BR>&nbsp;&lt;/owl:Class&gt;<BR>上面，我们把PotableLiquid（可饮用的液体）定义为ConsumableThing的子类。<BR>在基于Web的本体世界中，这两个类可定义在一个分散的本体中，而这个本体又可以作为各种不同的食物和饮料本体的基础。我们已在食物(food)本体中定义了各种不同的食物和饮料本体，并将该食物本体导入葡萄酒（wine）本体中。食物本体中包含了许多类，如Food、EdibleThing、MealCourse和Shellfish等不属于葡萄酒的事物，但是如果要做有用的推理，则必须将它们与葡萄酒本体中的词汇相关联。为了满足我们识别葡萄酒/食物对的需求，食物和葡萄酒本体是彼此独立的。<BR>一个类的定义由两部分组成：引入或引用一个名称，以及一个限制列表。被直接包含在类定义中的各个表达式进一步限制了该类的实例，该类的实例属于所有这些限制的交集。（这里描述的是成为某个类的必要条件，关于描述成为某个类的充分必要条件，请参见owl:equivalentClass部分。）到目前为止，我们所看到的例子均为只包含单个限制：强制被描述的新类为某个其它具名类（named <BR>class）的子类。<BR>至此，我们可以为Wine类创建一个简单的（和不完整的）定义。Wine是一个PortableLiquid。同时，我们将Pasta定义为一个EdibleThing。<BR>&nbsp;&lt;owl:Class rdf:ID="Wine"&gt; <BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="&amp;food;PotableLiquid"/&gt; <BR>&nbsp;&nbsp; &lt;rdfs:label xml:lang="en"&gt;wine&lt;/rdfs:label&gt; <BR>&nbsp;&nbsp; &lt;rdfs:label xml:lang="fr"&gt;vin&lt;/rdfs:label&gt; <BR>&nbsp;&nbsp; ...&nbsp; <BR>&nbsp;&lt;/owl:Class&gt; <BR>&nbsp;&lt;owl:Class rdf:ID="Pasta"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="#EdibleThing" /&gt;<BR>&nbsp;&nbsp; ...<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; rdfs:label是可选的，它为该类提供一个人类可读的名称。负责呈现的工具可以利用这个元素。“lang”属性为多语言提供了支持。一个label（标号）就像一个注释，不向本体的逻辑解释添加任何内容。葡萄酒的定义仍然是不完整的。我们除了知道葡萄酒是一种事物并且适于饮用以外，对它别无所知。但我们有足够的信息来创建个体和对个体进行推理。<BR>3.1.2<BR>. <BR>个体<BR>除了描述类，我们还希望能够描述类的成员。我们通常认为类的成员是我们所关心的范畴中的一个个体（而不是另一个类或属性）。要引入一个个体（individual），只需将它们声明为某个类的成员。<BR>&nbsp;&lt;Region rdf:ID="CentralCoastRegion" /&gt; <BR>注意：下面代码的含义与上面的例子相同。 &lt;owl:Thing rdf:ID="CentralCoastRegion" /&gt; <BR>&nbsp;&lt;owl:Thing rdf:about="#CentralCoastRegion"&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;rdf:type rdf:resource="#Region"/&gt; <BR>&nbsp;&lt;/owl:Thing&gt;<BR>&nbsp;&nbsp;&nbsp; rdf:type是一个RDF属性（RDF property），用于关联一个个体和它所属的类。这里有一些注意点。首先，我们已经决定CentralCoastRegion（一个特定的区域）是Region的成员。这里的Region类包含所有地理上的区域。其次，对于上述这一由两个元素构成的示例，并没有要求这两个陈述必须是相邻的、或必须位于同一文件中（尽管这些名字在这种情况下需要扩充一个URI）。Web本体被设计成为分布式的，我们可以通过导入和补充已有的本体来创建衍生的本体。<BR>为了得到更多的类用于将在下一节引入的属性，我们定义了一个Grape（葡萄）的层次分类以及一个代表Cabernet <BR>Sauvignon品种的葡萄的个体。Grapes在食物本体中是这样定义的：<BR>&nbsp;&lt;owl:Class rdf:ID="Grape"&gt;<BR>&nbsp;&nbsp; ...<BR>&nbsp;&lt;/owl:Class&gt;<BR>接着，我们在葡萄酒本体中有：<BR>&nbsp;&lt;owl:Class rdf:ID="WineGrape"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="&amp;food;Grape" /&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&lt;WineGrape rdf:ID="CabernetSauvignonGrape" /&gt;<BR>&nbsp;&nbsp;&nbsp; 正如下一节将要讨论的，CabernetSauvignonGrape是一个个体，因为它代表的是某个单个葡萄品种。3.1.3<BR>. <BR>使用方面的考虑<BR>关于OWL中类与个体的区别，有一些重要的问题。一个类仅是一个名称和一些描述某集合内个体的属性；而个体是该集合的成员。因此，类应自然地对应于与某论域中的事物的出现集合，而个体应对应于可被归入这些类的实际的实体。<BR>在构建本体时，这个区别常常变得模糊不清，主要有两种情况：<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示的层次： <BR>在某些上下文中，某些事物明显是一个类，但同时其本身又可被视为另一个事物的实例。例如：在葡萄酒本体中，我们有Grape的概念，它是代表所有葡萄品种的集合。CabernetSauvingonGrape是这个类中的一个实例，它代表Cabernet <BR>Sauvignon这一葡萄品种。但是，CabernetSauvignonGrape其自身也可被视为一个类，即代表所有实际的 Cabernet <BR>Sauvignon葡萄这一集合的类。<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 子类 vs. 实例： <BR>实例（instance-of）关系和子类（subclass）关系很容易被混淆。例如，也许看上去可以随意地将CabernetSauvignonGrape作为Grape的一个实例，而不是作为Grape的一个子类，但实际上这个决定并不是随意的。Grape类代表的是所有葡萄品种的集合，因此任何Grape的子类应代表这些品种的一个子集。因而，CabernetSauvignonGrape应被认为是Grape的一个实例，而不是一个子类。因为CabernetSauvignonGrape是一个葡萄品种，而不是一个葡萄品种的子类。<BR>注意：对于Wine类也同样有着上述问题。Wine类实际上代表的是所有葡萄酒种类的集合，而不是某人可以购买的瓶装葡萄酒的集合。设想在另一个本体中，各个Wine类的实例代表一个类，该类是某类葡萄酒的瓶装葡萄酒的集合。容易设想这样一个信息系统，例如一个葡萄酒商的库存系统，它需要处理各个瓶装葡萄酒。葡萄酒本体需要有把类作为实例处理的能力，以支持该解释。注意：OWL <BR>Full是允许这样表达的，这使得我们可以同时将一个葡萄酒品种的实例视为一个类，而该类的实例是瓶装葡萄酒。<BR>同样的，葡萄酒厂在特定年份所生产的葡萄酒将被视为佳酒。为了表达佳酒这一概念，我们必须考虑将它置于当前本体中的何处。如前所述，一个Wine类的实例代表的是某葡萄酒厂所生产的某个单个葡萄酒种类，比如FormanChardonnay。<BR>要表达“2000年生产的葡萄酒被视为佳酒”是有点复杂的，因为我们没有表达某种给定葡萄酒的个体的子集的能力。佳酒并不是一个新的葡萄酒种类，而是一个特殊的葡萄酒子集，即那些产于2000年的葡萄酒。一个方案是使用OWL <BR>Full，将Wine类的实例视为类，而后者的子类（子集）代表瓶装葡萄酒。另一个方案是使用变通手法，即将Vintage视为一个单独的类，Vintage的实例与代表它所属种类的Wine类相关联。例如，FormanChardonnay2000是一个Vintage类的个体，它通过vintageOf属性与Wine类的个体FormanChardonnay相关联。我们将在后面看到Vintage类的定义。<BR>这里需要注意的一点是，一个本体的开发应坚定地由它的预定用途所驱动。这些问题也存在于OWL Full和OWL DL之间的一个重要区别。OWL <BR>Full允许将类（class）用作实例（instance），而OWL DL不允许。由于葡萄酒本体被预定为使用OWL <BR>DL，因此不会将个体（例如FormanChardonnay等）同时作为类来看待。<BR>3.2. 简单属性 <BR>如果仅允许定义层次分类，那么这个类和个体的世界也许会变得颇为无趣。属性（propertyies）使得我们可以断言关于类成员的一般事实以及关于个体的具体事实。<BR>3.2.1<BR>. <BR>定义属性（<BR>Defining Properties<BR>）<BR>ObjectProperty, DatatypeProperty, rdfs:subPropertyOf, rdfs:domain, rdfs:range<BR>一个属性是一个二元关系。有两种类型的属性：<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据类型属性（datatype properties），类实例与RDF文字或XML Schema数据类型间的关系。<BR>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对象属性（object <BR>properties），两个类的实例间的关系。注意：对象属性这个名称并不是要反映与RDF（[RDF]，5.3.4）的联系。<BR>在我们定义一个属性的时候，有一些对该二元关系施加限定的方法。我们可以指定定义域（domain）和值域（range）。可以将一个属性定义为某个已有属性的特殊化（子属性）。要进行更详细的限定也是可能的，我们将在后面对此作出介绍。<BR>&nbsp;&lt;owl:ObjectProperty rdf:ID="madeFromGrape"&gt; <BR>&nbsp;&nbsp; &lt;rdfs:domain rdf:resource="#Wine"/&gt;<BR>&nbsp;&nbsp; &lt;rdfs:range rdf:resource="#WineGrape"/&gt; <BR>&nbsp;&lt;/owl:ObjectProperty&gt; <BR>&nbsp;&lt;owl:ObjectProperty rdf:ID="course"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:domain rdf:resource="#Meal" /&gt;<BR>&nbsp;&nbsp; &lt;rdfs:range rdf:resource="#MealCourse" /&gt;<BR>&nbsp;&lt;/owl:ObjectProperty&gt;<BR>&nbsp;&nbsp;&nbsp; <BR>在OWL中，不含显式操作符的元素序列代表一个隐式的合取（conjunction）。属性madeFromGrape的定义域（domain）为Wine，且值域（range）为WineGrape。也就是说，它把Wine类的实例关联到WineGrape类的实例。为同一属性声明多个定义域表明该属性的定义域是所有这些类的交集（多个值域声明也类似这样）。<BR>同样地，属性course将一个Meal与MealCourse相关联。<BR>注意：OWL中值域和定义域信息的使用与程序设计语言中的类型信息有所不同。在程序设计中，类型被用来检查程序设计语言的一致性。而在OWL中，一个值域可被用来推断一个类型。比如，根据下面这段代码：<BR>&nbsp;&lt;owl:Thing rdf:ID="LindemansBin65Chardonnay"&gt;<BR>&nbsp;&nbsp; &lt;madeFromGrape rdf:resource="#ChardonnayGrape" /&gt;<BR>&nbsp;&lt;/owl:Thing&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ┐ <BR>&nbsp;&nbsp;&nbsp; 我们可以推断出，LindemansBin65Chardonnay是一种葡萄酒，因为madeFromGrape的定义域为Wine。属性也可以像类一样按照层次结构来组织。<BR>&nbsp;&lt;owl:Class rdf:ID="WineDescriptor" /&gt;<BR>&nbsp;&lt;owl:Class rdf:ID="WineColor"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="#WineDescriptor" /&gt;<BR>&nbsp;&nbsp; ...<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&lt;owl:ObjectProperty rdf:ID="hasWineDescriptor"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:domain rdf:resource="#Wine" /&gt;<BR>&nbsp;&nbsp; &lt;rdfs:range&nbsp; rdf:resource="#WineDescriptor" /&gt;<BR>&nbsp;&lt;/owl:ObjectProperty&gt;<BR>&nbsp;&lt;owl:ObjectProperty rdf:ID="hasColor"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" /&gt;<BR>&nbsp;&nbsp; &lt;rdfs:range rdf:resource="#WineColor" /&gt;<BR>&nbsp;&nbsp; ...<BR>&nbsp;&lt;/owl:ObjectProperty&gt;<BR>&nbsp;&nbsp;&nbsp; WineDescriptor属性将葡萄酒（wine）与它们的颜色（color）和味觉成分（包括甜、浓、口味）相关联。hasColor是hasWineDescriptor的子属性，hasColor与hasWineDescriptor的不同在于它的值域被进一步限定为WineColor。rdfs:subPropertyOf关系表示：任何事物如果具有一个值为X的hasColor属性，那么它同时具有一个值为X的hasWineDescriptor属性。下面，我们介绍locatedIn属性，它将事物和事物所在的地区相关联。<BR>&lt;owl:ObjectProperty rdf:ID="locatedIn"&gt;<BR>&nbsp;&nbsp; ...<BR>&nbsp;&nbsp; &lt;rdfs:domain rdf:resource="<A href="http://www.w3.org/2002/07/owl#Thing">http://www.w3.org/2002/07/owl#Thing</A>" /&gt;<BR>&nbsp;&nbsp; &lt;rdfs:range rdf:resource="#Region" /&gt;<BR>&nbsp;&lt;/owl:ObjectProperty&gt;请注意是如何定义locateIn的定义域和值域的。该定义域定义允许任何事物被值域某个区域中，包括该区域自身。这一关系的传递的组合本质上构建了一个包含子区域和事物的地理网络。没有包含其他事物于其中的那些事物可以属于任意类,而包含其他事物或者区域的那些事物则必须是区域。<BR>现在可以扩展Wine的定义来表达“一个葡萄酒是由至少一种WineGrape制成的”了。和属性定义一样，类定义也由多个隐含相联的部分组成。<BR>&lt;owl:Class rdf:ID="Wine"&gt; <BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="&amp;food;PotableLiquid"/&gt; <BR>&nbsp;&nbsp; &lt;rdfs:subClassOf&gt;<BR>&nbsp;&nbsp; &lt;owl:Restriction&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:onProperty rdf:resource="#madeFromGrape"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:minCardinality&nbsp;&nbsp;&nbsp; <BR>rdf:datatype="&amp;xsd;nonNegativeInteger"&gt;1&lt;/owl:minCardinality&gt;<BR>&nbsp;&nbsp; &lt;/owl:Restriction&gt; <BR>&nbsp;&nbsp; &lt;/rdfs:subClassOf&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; ...&nbsp; <BR>&nbsp;&lt;/owl:Class&gt;<BR>上述被高亮的子类限定<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Restriction&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:onProperty rdf:resource="#madeFromGrape"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:minCardinality rdf:datatype="&amp;xsd;nonNegativeInteger"&gt;1&lt;/owl:minCardinality&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/owl:Restriction&gt; <BR>&nbsp;&nbsp;&nbsp; 定义了一个无名类（unnamed class），该无名类代表至少具有一个madeFromGrape属性的事物集合。我们称这些类为匿名类。在Wine类的定义中包含该限定表明属于Wine类的事物，也是该匿名类的成员。也就是说，任何葡萄酒都必须参与至少一个madeFromGrape关系。现在，我们可以描述前面所提到的Vintage类了。<BR>&lt;owl:Class rdf:ID="Vintage"&gt; <BR>&nbsp;&nbsp; &lt;rdfs:subClassOf&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Restriction&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:onProperty rdf:resource="#vintageOf"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:minCardinality <BR>rdf:datatype="&amp;xsd;nonNegativeInteger"&gt;1&lt;/owl:minCardinality&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/owl:Restriction&gt;<BR>&nbsp;&nbsp; &lt;/rdfs:subClassOf&gt;<BR>&nbsp;&lt;/owl:Class&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ┐ <BR>vintageOf属性将一个Vintage关联到Wine。<BR>&nbsp;&lt;owl:ObjectProperty rdf:ID="vintageOf"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:domain rdf:resource="#Vintage" /&gt;<BR>&nbsp;&nbsp; &lt;rdfs:range&nbsp; rdf:resource="#Wine" /&gt;<BR>&nbsp;&lt;/owl:ObjectProperty&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ┐ <BR>我们将在下一节把Vintages关联到它们的生产年份。3.2.2<BR>. <BR>属性和数据类型<BR>根据是将个体关联到个体、还是将个体关联到数据类型，我们可以区分两类属性：前者称为对象属性（object <BR>properties）；后者称为数据类型属性（datatype properties）。数据类型属性的值域范围是RDF文字或者是XML <BR>Schema数据类型中定义的那些简单类型（simple types）。<BR>OWL使用XML Schema内嵌数据类型中的大部分。对这些数据类型的引用是通过对<A href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</A> <BR>这个URI引用进行的。下列数据类型是推荐在OWL中使用的：<BR>&nbsp;xsd:string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xsd:normalizedString&nbsp;&nbsp;&nbsp; xsd:boolean<BR>&nbsp;xsd:decimal&nbsp;&nbsp;&nbsp; xsd:float&nbsp;&nbsp;&nbsp;&nbsp; xsd:double<BR>&nbsp;xsd:integer&nbsp;&nbsp;&nbsp; xsd:nonNegativeInteger&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xsd:positiveInteger<BR>&nbsp;xsd:nonPositiveInteger&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xsd:negativeInteger<BR>&nbsp;xsd:long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xsd:int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xsd:short&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xsd:byte<BR>&nbsp;xsd:unsignedLong xsd:unsignedInt xsd:unsignedShort xsd:unsignedByte<BR>&nbsp;xsd:hexBinary xsd:base64Binary<BR>&nbsp;xsd:dateTime xsd:time xsd:date xsd:gYearMonth<BR>&nbsp;xsd:gYear xsd:gMonthDay xsd:gDay xsd:gMonth<BR>&nbsp;xsd:anyURI xsd:token xsd:language<BR>&nbsp;xsd:NMTOKEN xsd:Name xsd:NCName上面的数据类型，连同rdfs:Literal构成了OWL的内嵌数据类型。所有的OWL推理机都应支持xsd:integer和xsd:string数据类型。<BR>其他XML Schema内嵌数据类型可被在OWL Full中，但在OWL Semantics and Abstract Syntax中给出了一些警告。<BR>&nbsp;&lt;owl:Class rdf:ID="VintageYear" /&gt;<BR>&nbsp;&lt;owl:DatatypeProperty rdf:ID="yearValue"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:domain rdf:resource="#VintageYear" /&gt;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp; &lt;rdfs:range&nbsp; rdf:resource="&amp;xsd;positiveInteger"/&gt;<BR>&nbsp;&lt;/owl:DatatypeProperty&gt; <BR>yearValue属性将VintageYears与一个整数值相关联。我们将引入hasVintageYear属性，它将一个Vintage关联到一个VintageYear（如下）。<BR>OWL <BR>Reference描述了owl:oneOf的使用、以及用rdf:List和rdf:rest来定义一个枚举数据类型，那里有个例子展示了如何构建一个值域为整数值列表{0, <BR>15, 30, 40}的数据类型属性tennisGameScore。 <BR>3.2.3<BR>. <BR>个体的属性<BR>首先，我们描述Region和Winery个体，然后我们定义第一个葡萄酒Cabernet Sauvignon。<BR>&nbsp;&lt;Region rdf:ID="SantaCruzMountainsRegion"&gt;<BR>&nbsp;&nbsp; &lt;locatedIn rdf:resource="#CaliforniaRegion" /&gt;<BR>&nbsp;&lt;/Region&gt;<BR>&nbsp;&lt;Winery rdf:ID="SantaCruzMountainVineyard" /&gt;<BR>&nbsp;&lt;CabernetSauvignon<BR>&nbsp;&nbsp; rdf:ID="SantaCruzMountainVineyardCabernetSauvignon" &gt;<BR>&nbsp;&nbsp; &lt;locatedIn&nbsp;&nbsp; rdf:resource="#SantaCruzMountainsRegion"/&gt;&nbsp; <BR>&nbsp;&nbsp; &lt;hasMaker&nbsp;&nbsp;&nbsp; rdf:resource="#SantaCruzMountainVineyard" /&gt;&nbsp;&nbsp; <BR>&nbsp;&lt;/CabernetSauvignon&gt;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 这仍然是不完整的。完整的本体中存在关于葡萄酒口味的其他方面的定义。但这些片断将会慢慢地揍齐为一个整体。我们不妨先开始推理葡萄酒将会与食物本体中的什么菜单项相伴。我们从上述定义得知，它将是Santa Cruz Mountain Vineyard。因为它是一种Cabernet Sauvignon（定义参见wine.rdf），我们知道它是一种干的（dry）、红色（red）葡萄酒（参见wine.rdf）。可以用同样的方式给个体增加数据类型属性。下面，我们描述一个VintageYear的实例，并将它关联到一个特定的&amp;xsd;positiveInteger类型的值。<BR>&nbsp;&lt;VintageYear rdf:ID="Year1998"&gt;<BR>&nbsp;&nbsp; &lt;yearValue rdf:datatype="&amp;xsd;positiveInteger"&gt;1998&lt;/yearValue&gt;<BR>&nbsp;&lt;/VintageYear&gt; </P>
<P>3.3. 属性特性<BR>接下来的几节描述了用以进一步说明属性的机制。我们可以对属性的特性进行详细的说明，这就提供了一种强有力的机制以增强对于一个属性的推理。 <BR>3.3.1<BR>. TransitiveProperty<BR>如果一个属性P被声明为传递属性，那么对于任意的x,y和z：<BR>P(x,y) 与 P(y,z) 蕴含 P(x,z)<BR>属性locatedIn是传递属性。<BR>&lt;owl:ObjectProperty rdf:ID="locatedIn"&gt;<BR>&nbsp; &lt;rdf:type rdf:resource="&amp;owl;TransitiveProperty" /&gt;<BR>&nbsp; &lt;rdfs:domain rdf:resource="&amp;owl;Thing" /&gt;<BR>&nbsp; &lt;rdfs:range rdf:resource="#Region" /&gt;<BR>&lt;/owl:ObjectProperty&gt;&lt;Region rdf:ID="SantaCruzMountainsRegion"&gt;<BR>&nbsp; &lt;locatedIn rdf:resource="#CaliforniaRegion" /&gt;<BR>&lt;/Region&gt;&lt;Region rdf:ID="CaliforniaRegion"&gt;<BR>&nbsp; &lt;locatedIn rdf:resource="#USRegion" /&gt;<BR>&lt;/Region&gt;因为圣克鲁斯山地区（SantaCruzMountainsRegion）位于（locatedIn）加利福尼亚地区（CaliforniaRegion），那么它也应该位于（locatedIn）美国地区（USRegion），因为属性locatedIn是传递属性。<BR>3.3.2<BR>. SymmetricProperty<BR>&nbsp;<BR>如果一个属性P被声明为对称属性，那么对于任意的x和y：<BR>P(x,y)当且仅当P(y,x)<BR>adjacentRegion属性是对称属性，而locatedIn属性则不是。更准确地说，locatedIn属性是没有被规定为对称属性。在当前的葡萄酒本体中没有任何限制，让它不能成为对称属性。<BR>&nbsp;&lt;owl:ObjectProperty rdf:ID="adjacentRegion"&gt;<BR>&nbsp;&nbsp; &lt;rdf:type rdf:resource="&amp;owl;SymmetricProperty" /&gt;<BR>&nbsp;&nbsp; &lt;rdfs:domain rdf:resource="#Region" /&gt;<BR>&nbsp;&nbsp; &lt;rdfs:range rdf:resource="#Region" /&gt;<BR>&nbsp;&lt;/owl:ObjectProperty&gt;<BR>&nbsp;&lt;Region rdf:ID="MendocinoRegion"&gt;<BR>&nbsp;&nbsp; &lt;locatedIn rdf:resource="#CaliforniaRegion" /&gt;<BR>&nbsp;&nbsp; &lt;adjacentRegion rdf:resource="#SonomaRegion" /&gt;<BR>&nbsp;&lt;/Region&gt;<BR>MendocinoRegion地区与SonomaRegion地区相邻，反过来也是这样。MendocinoRegion地区位于CaliforniaRegion地区，但是反过来并不成立。3.3.3<BR>. FunctionalProperty<BR>&nbsp;<BR>如果一个属性P被标记为函数型属性，那么对于所有的x, y, 和z: <BR>P(x,y) 与P(x,z) 蕴含 y = z<BR>在我们的葡萄酒本体中，hasVintageYear属性是函数型属性。一种葡萄酒有着一个特定的制造年份。也即，一个给定的Vintage个体只能使用hasVintageYear属性与单独一个年份相关联。owl:FunctionalProperty并不要求该属性的定义域的所有元素都有值。请参见关于Vintage的基数的讨论。<BR>&nbsp;&lt;owl:Class rdf:ID="VintageYear" /&gt;<BR>&nbsp;&lt;owl:ObjectProperty rdf:ID="hasVintageYear"&gt;<BR>&nbsp;&nbsp; &lt;rdf:type rdf:resource="&amp;owl;FunctionalProperty" /&gt;<BR>&nbsp;&nbsp; &lt;rdfs:domain rdf:resource="#Vintage" /&gt;<BR>&nbsp;&nbsp; &lt;rdfs:range&nbsp; rdf:resource="#VintageYear" /&gt;<BR>&nbsp;&lt;/owl:ObjectProperty&gt;3.3.4<BR>. inverseOf<BR>&nbsp;<BR>如果一个属性P1被标记为属性P2的逆（owl:inverseOf）, 那么对于所有的x 和 y: <BR>P1(x,y) 当且仅当P2(y,x)<BR>请注意owl:inverseOf的语法，它仅仅使用一个属性名作为参数。A 当且仅当B 意思是 (A 蕴含 B)并且(B蕴含A). <BR>&nbsp;&lt;owl:ObjectProperty rdf:ID="hasMaker"&gt;<BR>&nbsp;&nbsp; &lt;rdf:type rdf:resource="&amp;owl;FunctionalProperty" /&gt;<BR>&nbsp;&lt;/owl:ObjectProperty&gt; &lt;owl:ObjectProperty rdf:ID="producesWine"&gt;<BR>&nbsp;&nbsp; &lt;owl:inverseOf rdf:resource="#hasMaker" /&gt;<BR>&nbsp;&lt;/owl:ObjectProperty&gt;各种葡萄酒都有制造商，这些制造商在Wine类的定义中被限制为酿酒厂（Winery）。而每个酿酒厂生产的酒均以该酿酒厂为制造商。<BR>3.3.5<BR>. InverseFunctionalProperty<BR>&nbsp;<BR>如果一个属性P被标记为反函数型的（InverseFunctional），那么对于所有的x, y 和 z: <BR>P(y,x) 与 P(z,x) 蕴含 y = z<BR>我们可以注意到，在前面的章节中提到的producesWine属性是反函数型属性。因为一个函数型属性的逆必定是反函数型的。我们也能够如下定义hasMaker属性和 <BR>producesWine 属性以达到和前例中相同的效果。<BR>&nbsp;&lt;owl:ObjectProperty rdf:ID="hasMaker" /&gt; &lt;owl:ObjectProperty rdf:ID="producesWine"&gt;<BR>&nbsp;&nbsp; &lt;rdf:type rdf:resource="&amp;owl;InverseFunctionalProperty" /&gt;<BR>&nbsp;&nbsp; &lt;owl:inverseOf rdf:resource="#hasMaker" /&gt;<BR>&nbsp;&lt;/owl:ObjectProperty&gt;<BR>反函数型属性的值域中的元素可以看成是在数据库意义上定义一个唯一的键值。owl:InverseFunctional意味着属性的值域中的元素为定义域中的每个元素提供了一个唯一的标识。在OWL Full中，DatatypeProperty属性可以被声明为一个反函数型属性。这就使得我们能够使用一个字符串作为一个唯一的键值。在OWL <BR>DL中，文字（literal）与owl:Thing是不相交的，因此OWL <BR>DL不允许将InverseFunctional属性声明应用到DatatypeProperty属性。<BR>3.4. 属性限制<BR>除了能够指定属性特性，我们还能够使用多种方法进一步在一个明确的上下文中限制属性的值域。这是通过“属性限制”来完成的。下面描述的多种形式仅在owl:Restriction的上下文中才能使用。owl:onProperty元素指出了受限制的属性。<BR>3.4.1<BR>. allValuesFrom, someValuesFrom<BR>我们已经发现了一种限制组成属性的元素的类型的方法。到现在为止，我们所讲述的机制都是全局的（global），因为这些机制都会应用到属性的所有实例。而接下来要讲述的两个属性限制机制，allValuesFrom与 <BR>someValuesFrom，则是 局部的（local），它们仅仅在包含它们的类的定义中起作用。<BR>owl:allValuesFrom属性限制要求：对于每一个有指定属性实例的类实例，该属性的值必须是由owl:allValuesFrom从句指定的类的成员。<BR>&nbsp;&lt;owl:Class rdf:ID="Wine"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="&amp;food;PotableLiquid" /&gt;<BR>&nbsp;&nbsp; ...<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Restriction&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:onProperty rdf:resource="#hasMaker" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:allValuesFrom rdf:resource="#Winery" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/owl:Restriction&gt;<BR>&nbsp;&nbsp; &lt;/rdfs:subClassOf&gt;<BR>&nbsp;&nbsp; ...<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; Wine的制造商必须是Winery。allValuesFrom限制仅仅应用在Wine的hasMaker 属性上。Cheese的制造商并不受这一局部限制的约束。owl:someValuesFrom限制与之相似。在上个例子中，如果我们用owl:someValuesFrom替换owl:allValuesFrom，那就意味着至少有一个Wine类实例的hasMaker属性是指向一个Winery类的个体的。 &lt;owl:Class rdf:ID="Wine"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="&amp;food;PotableLiquid" /&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Restriction&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:onProperty rdf:resource="#hasMaker" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:someValuesFrom rdf:resource="#Winery" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/owl:Restriction&gt;<BR>&nbsp;&nbsp; &lt;/rdfs:subClassOf&gt;<BR>&nbsp;&nbsp; ...<BR>&nbsp;&lt;/owl:Class&gt; <BR>这两种限制形式间的不同就是全称量词与存在量词间的不同。 关系含意<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allValuesFrom对于所有的葡萄酒，如果它们有制造商，那么所有的制造商都是酿酒厂。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; someValuesFrom对于所有的葡萄酒，它们中至少有一个的制造商是酿酒厂。 </P>
<P>前者并不要求一种葡萄酒一定要有一个制造商。如果它确实有一个或多个制造商，那么这些制造商必须全部都是酿酒厂。后者要求至少有一个制造商是酿酒厂，但是可以存在不是酿酒厂的制造商。<BR>3.4.2<BR>. <BR>基数限制<BR>在前面我们已经看到过关于基数约束的例子了。到目前为止的例子中，这些约束都是关于最小基数的所作出的断言。更为直接的方法是使用owl:cardinality，这一约束允许对一个关系中的元素数目作出精确的限制。例如，我们可以将Vintage标识为恰好含有一个VintageYear的类。<BR>&nbsp;&lt;owl:Class rdf:ID="Vintage"&gt; <BR>&nbsp;&nbsp; &lt;rdfs:subClassOf&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Restriction&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:onProperty rdf:resource="#hasVintageYear"/&gt;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:cardinality rdf:datatype="&amp;xsd;nonNegativeInteger"&gt;1&lt;/owl:cardinality&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/owl:Restriction&gt;<BR>&nbsp;&nbsp; &lt;/rdfs:subClassOf&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; 我们标识hasVintageYear属性为一个函数型属性，也即意味着每个Vintage有至多一个VintageYear。而如果对Vintage类的hasVintageYear属性使用基数限制则是对其作出了更强的断言，它表明了每个Vintage有恰好一个VintageYear。值域限制在0和1的基数表达式(Cardinality expressions)是OWL <BR>Lite的一部分。这使得用户能够表示“至少一个”，“不超过一个”，和“恰好一个”这几种意思。OWL <BR>DL中还允许使用除0与1以外的正整数值。owl:maxCardinality能够用来指定一个上界。owl:minCardinality能够用来指定一个下界。使用二者的组合就能够将一个属性的基数限制为一个数值区间。<BR>3.4.3<BR>. hasValue [OWL DL]<BR>&nbsp;&nbsp;&nbsp; hasValue <BR>使得我们能够根据“特定的”属性值的存在来标识类。因此，一个个体只要至少有“一个”属性值等于hasValue的资源，这一个体就是该类的成员。<BR>&nbsp;&lt;owl:Class rdf:ID="Burgundy"&gt;<BR>&nbsp;&nbsp; ...<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Restriction&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:onProperty rdf:resource="#hasSugar" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:hasValue rdf:resource="#Dry" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/owl:Restriction&gt;<BR>&nbsp;&nbsp; &lt;/rdfs:subClassOf&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; 这里我们声明了所有的Burgundy酒都是干(dry)的酒。也即，它们的hasSugar属性必须至少有一个是值等于Dry（干的）。&nbsp;&nbsp;&nbsp; 与allValuesFrom 和someValuesFrom类似，这是一个局部的限制。它仅仅对Burgundy类的hasSugar属性作出限制。<BR>4. 本体映射<BR>为了让本体发挥最大的作用，就需要让本体得到充分的共享。为了使得在开发本体时尽可能的节省人力，就需要使得开发出的本体能够被重用。更理想的情况是他们能够被组合使用。例如，你可能同时使用来自某一来源的日期本体(date <BR>ontology)和来自另一来源的物理位置本体(physical location <BR>ontology),并将位置(location)的概念加以扩展以包括这个位置所处在的时间段。<BR>在开发一个本体的过程中，很多的精力都被投入到将类与属性联系起来以获取最大的意义的工作上去了,意识到这一点也是很重要的。我们希望对类成员作出的断言较为简单同时又要求有广泛的和有用的含意在里面。这也是在本体开发过程中最为困难的工作。如果你能够找到已经经过广泛使用和精炼的本体，那么采用它才有意义。<BR>多个本体的合并工作是非常具有挑战性的。为了维护其一致性,几乎必然需要工具的支持。<BR>4.1. 类和属性之间的等价关系<BR>equivalentClass, equivalentProperty<BR>当我们要把一些本体组合在一起作为另一个新的本体的一部分时，能说明在一个本体中的某个类或者属性与另一个本体中的某个类或者属性是等价的，这往往很有用。在实际应用中我们这样做的时候要千万小心。因为如果要组合的那些本体是互相矛盾的（所有A的都是B的 <BR>与 A的并不全是B的），那么在组合得到的结果中就不会有满足条件的扩展（没有满足条件的个体或关系）了。<BR>在食物本体中，我们现在想把在餐宴菜肴中对葡萄酒特点的描述与葡萄酒本体相联系起来。达到这一目的一种方法就是在食物本体中定义一个类(&amp;food;Wine)，然后在葡萄酒本体中将一个已有的类声明为与这个类是等价的。<BR>&nbsp; &lt;owl:Class rdf:ID="Wine"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;owl:equivalentClass rdf:resource="&amp;vin;Wine"/&gt;<BR>&nbsp; &lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; 属性owl:equivalentClass被用来表示两个类有着完全相同的实例。但我们要注意，在OWL DL中，类仅仅代表着个体的集合而不是个体本身。然而在OWL FULL中，我们能够使用owl:sameAs来表示两个类在各方面均完全一致。 当然了，上面我们举的例子多少有点刻意人为的意思，因为我们总是能在本来用＃Wine的地方使用&amp;vin;Wine以取得同样的效果而不需要重新定义类。一种更可能出现的情况是：我们依赖两个独立开发的本体，并注意到他们使用了O1:foo和O2:bar这两个URI引用相同的一个类。 <BR>这时我们就能够使用owl:equivalentClass将这两个类关联起来， 使得从这两个本体中继承的限制也得到合并。<BR>大家都知道，类名（类的表达式）既能用于&lt;rdfs:subClassOf <BR>&gt;设计中，又能用于&lt;owl:equivalentClass&gt;设计中。一个类名可多处使用，既省却了命名的麻烦，又给我们提供了基于属性要求的强大的定义能力。<BR>&nbsp;&lt;owl:Class rdf:ID="TexasThings"&gt; <BR>&nbsp;&nbsp; &lt;owl:equivalentClass&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Restriction&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:onProperty rdf:resource="#locatedIn" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:someValuesFrom rdf:resource="#TexasRegion" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/owl:Restriction&gt;<BR>&nbsp;&nbsp; &lt;/owl:equivalentClass&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; TexasThings指的是那些恰好位于Texas地区的事物。使用owl:equivalentClass 和使用rdfs:subClassOf 的不同就像必要条件和充要条件的不同一样。如果是使用subClassOf的话，位于Texas地区的事物不一定是TexasThings。但是，如果使用owl:equivalentClass，位于Texas地区的事物一定属于TexasThings类。 关系蕴涵<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; subClassOfTexasThings(x) implies?locatedIn(x,y) and TexasRegion(y) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; equivalentClassTexasThings(x) implies locatedIn(x,y) and TexasRegion(y) </P>
<P>&nbsp;&nbsp;&nbsp; 类似的，我们可以通过使用owl:equivalentProperty属性声明表达属性的等同。<BR>4.2 个体间的同一性<BR>sameAs<BR>描述个体之间相同的机制与描述类之间的相同的机制类似，仅仅只要将两个个体声明成一致的就可以了。<BR>例如这样一个例子：<BR>&nbsp;&lt;Wine rdf:ID="MikesFavoriteWine&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:sameAs rdf:resource="#StGenevieveTexasWhite" /&gt;<BR>&nbsp;&lt;/Wine&gt;<BR>&nbsp;&lt;Wine rdf:ID="MikesFavoriteWine"&gt; <BR>&nbsp;&nbsp; &lt;owl:sameAs rdf:resource="#StGenevieveTexasWhite" /&gt; <BR>&nbsp;&lt;/Wine&gt;<BR>&nbsp;&nbsp;&nbsp; 在这个例子并没有什么实际意义。所有我们从中能了解到的就是Mike喜欢一种便宜的本地酒。sameAs的一种更加典型的用法是将不同文档中定义的两个个体等同起来，作为统一两个本体的部分。但这样做带来了一个问题。OWL中并没有名称唯一这一假定。仅仅名称不同并不意味着这两个名称引用的是不同的个体。<BR>在上面的例子中，我们对两个截然不同的名称作出一致性断言。但是也只有在这种标示的情况下，才可能进行推理。请记住那些可能从函数型属性中得出的含意。假如hasMaker是一个函数型属性，那么下面的例子就不一定会产生冲突。<BR>&lt;owl:Thing rdf:about="#BancroftChardonnay"&gt;<BR>&nbsp; &lt;hasMaker rdf:resource="#Bancroft" /&gt;<BR>&nbsp; &lt;hasMaker rdf:resource="#Beringer" /&gt;<BR>&lt;/owl:Thing&gt;&nbsp;&nbsp;&nbsp; 除非和我们本体中的其他信息发生冲突，不然的话这样的描述是没有冲突的，他说明Bancroft和Beringer是相同的个体。<BR>要清楚，修饰（或引用）两个类用sameAs还是用equivalentClass效果是不同的。用sameAs的时候，把一个类解释为一个个体，就像在OWL <BR>Full中一样，这有利于对本体进行分类。在OWL <BR>Full中，sameAs可以用来引用两个东西，如一个类和一个个体、一个类和一个属性等等，无论什么情况，都将被解释为个体。<BR>4.3. 不同的个体<BR>differentFrom, AllDifferent<BR>这一机制提供了与sameAs相反的效果。<BR>&nbsp;&lt;WineSugar rdf:ID="Dry" /&gt;<BR>&nbsp;&lt;WineSugar rdf:ID="Sweet"&gt;&nbsp; <BR>&nbsp;&nbsp; &lt;owl:differentFrom rdf:resource="#Dry"/&gt;&nbsp; <BR>&nbsp;&lt;/WineSugar&gt; <BR>&nbsp;&lt;WineSugar rdf:ID="OffDry"&gt;<BR>&nbsp;&nbsp; &lt;owl:differentFrom rdf:resource="#Dry"/&gt; <BR>&nbsp;&nbsp; &lt;owl:differentFrom rdf:resource="#Sweet"/&gt; <BR>&nbsp;&lt;/WineSugar&gt;<BR>&nbsp;&nbsp;&nbsp; 这是一种声明这三个值相互不同的方法。但在有些时候，更重要的是利用这些定义元素能把这种不同区别开来。没有上述的定义元素，我们可能会定义一种既干又甜的葡萄酒，并且添加hasSugar属性使其取值小于等于某个值来限定该种葡萄酒的甜度。如果我们没有用 differentFrom元素来申明既干又甜的葡萄酒，这意味着“干葡萄酒”和“甜葡萄酒”是相同的。但是我们从上面申明的元素来推断，这又是矛盾的。还有一种更便利的定义相互不同个体的机制。如下面申明红葡萄酒、白葡萄酒和玫瑰葡萄酒的例子。<BR>&nbsp;&lt;owl:AllDifferent&gt;<BR>&nbsp;&nbsp; &lt;owl:distinctMembers rdf:parseType="Collection"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;vin:WineColor rdf:about="#Red" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;vin:WineColor rdf:about="#White" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;vin:WineColor rdf:about="#Rose" /&gt;<BR>&nbsp;&nbsp; &lt;/owl:distinctMembers&gt;<BR>&nbsp;&lt;/owl:AllDifferent&gt;<BR>要注意，owl:distinctMembers属性声明只能和owl:AllDifferent属性声明一起结合使用。&nbsp;&nbsp;&nbsp; <BR>在葡萄酒本体中，我们为所有的WineDescriptor提供了一个owl:AllDifferent声明。我们同时还声明了所有的Winery是不同的。这时，如果我们想要在其他的某个本体中添加一个新的酿酒厂，并表明它是与其他已定义的任何酿酒厂都是不同的，我们可能需要拷贝原来的owl:AllDifferent属性声明，然后将新的制造厂添加到列表中。在OWL <BR>DL中，没有更加简单的方法以扩展一个声明为owl:AllDifferent的集合。而在OWL <BR>Full中，通过使用RDF三元组和rdf:List构造，可以实现一些其他的方法来完成这一扩展。<BR>5. 复杂类 [OWL DL]<BR>OWL另外还提供了一些用于构建类的构造子。这些构造子被用于创建所谓的类表达式。OWL支持基本的集合操作，即并，交和补运算。它们分别被命名为owl:unionOf,owl:intersectionOf,和owl:complementOf.此外，类还可以是枚举的。类的外延可以使用oneOf构造子来显示的声明。同时，我们也可以声明类的外延必须是互不相交的。<BR>注意类表达式是可以嵌套的，它并不要求要为每一个中间类都提供一个名字。这样就允许我们通过使用集合操作来从匿名类或具有值约束的类来创建复合类。<BR>5.1 集合运算符 intersectionOf,unionOf,complementOf <BR>&nbsp;&nbsp;&nbsp; 记住:OWL类外延是由个体组成的集合，而这些个体都是类的成员。OWL使用基本的集合操作算子来处理类的外延。<BR>5.1.1<BR>.<BR>交运算 <BR>[some uses of OWL DL]<BR>下面的例子展示了intersectionOf构造子的使用<BR>&nbsp;&lt;owl:Class rdf:ID="WhiteWine"&gt;<BR>&nbsp;&nbsp; &lt;owl:intersectionOf rdf:parseType="Collection"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Class rdf:about="#Wine" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Restriction&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:onProperty rdf:resource="#hasColor" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:hasValue rdf:resource="#White" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/owl:Restriction&gt;<BR>&nbsp;&nbsp; &lt;/owl:intersectionOf&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; 使用集合操作构造的类与我们目前所看到的所有语法中的定义类似。类的成员完全是通过集合操作来说明的。上面的语句说明WhiteWine恰好是类Wine与所有颜色是白色的事物的集合的交集。这就意味着如果某一事物是白色的并且是葡萄酒，那么它就是WhiteWine的实例。如果没有这样的定义我们只能知道白葡萄酒是葡萄酒酒并且是白色的，但是反过来就不是这样了。这是对个体进行分类的强有力工具。(请注意：'rdf:parseType="Collection"'是必需的语法元素。) &lt;owl:Class rdf:about="#Burgundy"&gt;<BR>&nbsp;&nbsp; &lt;owl:intersectionOf rdf:parseType="Collection"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Class rdf:about="#Wine" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Restriction&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:onProperty rdf:resource="#locatedIn" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:hasValue rdf:resource="#BourgogneRegion" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/owl:Restriction&gt;<BR>&nbsp;&nbsp; &lt;/owl:intersectionOf&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; 在这里我们定义了Burgundy类。这个类恰好包含了那些至少有一个locatedIn关系，而同时这一关系又要联系到Bourgogne地区的葡萄酒。当然我们也可以声明一个新的类ThingsFromBourgogneRegion，并且将该类作为owl:intersectionOf结构中的类使用。但既然ThingsFromBourgogneRegion不再有其他用处，上面的声明就显得更加简短、清晰，并且这一声明不需要我们努力想一个新的名字出来。 &lt;owl:Class rdf:ID="WhiteBurgundy"&gt;<BR>&nbsp;&nbsp; &lt;owl:intersectionOf rdf:parseType="Collection"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Class rdf:about="#Burgundy" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Class rdf:about="#WhiteWine" /&gt;<BR>&nbsp;&nbsp; &lt;/owl:intersectionOf&gt; <BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; 最后，WhiteBurgundy类恰好是白葡萄酒和Burgundies的交集。依次，Burgundies生产在法国一个叫做Bourgogne的地方并且它是干葡萄酒（dry wine）。因此，所有满足这些标准的葡萄酒个体都是WhiteBurgundy类的外延的一部分。5.1.2<BR>. <BR>并运算 <BR>[OWL DL]<BR>&nbsp;&nbsp;&nbsp; 下面的例子展示了unionOf结构的使用。它的使用方法和intersectionOf极其类似:<BR>&nbsp;&lt;owl:Class rdf:ID="Fruit"&gt;<BR>&nbsp;&nbsp; &lt;owl:unionOf rdf:parseType="Collection"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Class rdf:about="#SweetFruit" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Class rdf:about="#NonSweetFruit" /&gt;<BR>&nbsp;&nbsp; &lt;/owl:unionOf&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; Fruit类既包含了SweetFruit类的外延也包含了NonSweetFruit的外延。请仔细观察这种并集类型的结构与下面的一个结构是多么的不同。<BR>&nbsp;&lt;owl:Class rdf:ID="Fruit"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="#SweetFruit" /&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="#NonSweetFruit" /&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; 上面的例子说明Fruit的实例是SweetFruit和NonSweetFruit的交集的子集,这里我们将预计得到一个空集。5.1.3<BR>. <BR>补运算 <BR>[OWL DL]<BR>&nbsp;&nbsp;&nbsp; complementOf结构从某个论域(domain of discourse)选出不属于某个类的所有个体。通常它将指向一个非常大的个体集合：<BR>&nbsp; &lt;owl:Class rdf:ID="ConsumableThing" /&gt;<BR>&nbsp; &lt;owl:Class rdf:ID="NonConsumableThing"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;owl:complementOf rdf:resource="#ConsumableThing" /&gt;<BR>&nbsp; &lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; 类NonConsumableThing包含了所有不属于ConsumableThing的外延的个体。NonConsumableThing集合包含了所有的Wines,Regions等。它实际上就是owl:Thing与ConsumableThing的这两个集合的集合差。因此，complementOf典型的用法是与其它集合运算符联合使用： &lt;owl:Class rdf:ID="NonFrenchWine"&gt;<BR>&nbsp;&nbsp; &lt;owl:intersectionOf rdf:parseType="Collection"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Class rdf:about="#Wine"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:complementOf&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Restriction&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:onProperty rdf:resource="#locatedIn" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:hasValue rdf:resource="#FrenchRegion" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/owl:Restriction&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/owl:complementOf&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/owl:Class&gt;<BR>&nbsp;&nbsp; &lt;/owl:intersectionOf&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; 上面的例子定义了一个NonFrenchWine类，它是Wine类与所有不位于法国的事物的集合的交集。5.2. 枚举类 oneOf [OWL DL]<BR>&nbsp;&nbsp;&nbsp; <BR>OWL提供了一种通过直接枚举类的成员的方法来描述类。这是通过使用oneOf结构来完成。特别地，这个定义完整地描述了类的外延，因此任何其他个体都不能被声明为属于这个类。<BR>下面的例子定义了WineColor类，它的成员是White,Rose和Red这三个个体.<BR>&nbsp;&lt;owl:Class rdf:ID="WineColor"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="#WineDescriptor"/&gt;<BR>&nbsp;&nbsp; &lt;owl:oneOf rdf:parseType="Collection"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Thing rdf:about="#White"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Thing rdf:about="#Rose"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Thing rdf:about="#Red"/&gt;<BR>&nbsp;&nbsp; &lt;/owl:oneOf&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; 看到上面的定义，第一件想到的事情就是由于这个类是通过枚举定义的，因此其他任何个体都不可能是一个有效的WineColor。oneOf结构的每一个元素都必须是一个有效声明的个体。一个个体必须属于某个类。在上面的例子中，每一个个体都是通过名字来引用的。我们使用owl:Thing简单地进行引用，尽管这有点多余（因为每个个体都属于owl:Thing）。另外，我们也可以根据具体类型WineColor来引用集合中的元素：<BR>&nbsp;&lt;owl:Class rdf:ID="WineColor"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="#WineDescriptor"/&gt;<BR>&nbsp;&nbsp; &lt;owl:oneOf rdf:parseType="Collection"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;WineColor rdf:about="#White" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;WineColor rdf:about="#Rose" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;WineColor rdf:about="#Red" /&gt;<BR>&nbsp;&nbsp; &lt;/owl:oneOf&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; 另外，较复杂的个体描述同样也可以是oneOf结构的有效元素，例如: &lt;WineColor rdf:about="#White"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:label&gt;White&lt;/rdfs:label&gt;<BR>&nbsp;&lt;/WineColor&gt;<BR>其它关于oneOf使用的例子，请参见 Reference. 5.3. 不相交类 disjointWith [OWL DL]<BR>使用owl:disjointWith构造子可以表达一组类是不相交的。它保证了属于某一个类的个体不能同时又是另一个指定类的实例。<BR>&nbsp;&lt;owl:Class rdf:ID="Pasta"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="#EdibleThing"/&gt;<BR>&nbsp;&nbsp; &lt;owl:disjointWith rdf:resource="#Meat"/&gt;<BR>&nbsp;&nbsp; &lt;owl:disjointWith rdf:resource="#Fowl"/&gt;<BR>&nbsp;&nbsp; &lt;owl:disjointWith rdf:resource="#Seafood"/&gt;<BR>&nbsp;&nbsp; &lt;owl:disjointWith rdf:resource="#Dessert"/&gt;<BR>&nbsp;&nbsp; &lt;owl:disjointWith rdf:resource="#Fruit"/&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; Pasta例子声明了多个不相交类。注意它只声明了Pasta与其它所有类是不相交的。例如，它并没有保证Meat和Fruit是不相交的。为了声明一组类是互不相交的，我们必须对每两个类都使用owl:disjointWith来声明。一个常见的需求是定义一个类为一组互不相交的子类的联合（union）。<BR>&nbsp;&lt;owl:Class rdf:ID="SweetFruit"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="#EdibleThing" /&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&lt;owl:Class rdf:ID="NonSweetFruit"&gt;<BR>&nbsp;&nbsp; &lt;rdfs:subClassOf rdf:resource="#EdibleThing" /&gt;<BR>&nbsp;&nbsp; &lt;owl:disjointWith rdf:resource="#SweetFruit" /&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&lt;owl:Class rdf:ID="Fruit"&gt;<BR>&nbsp;&nbsp; &lt;owl:unionOf rdf:parseType="Collection"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Class rdf:about="#SweetFruit" /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;owl:Class rdf:about="#NonSweetFruit" /&gt;<BR>&nbsp;&nbsp; &lt;/owl:unionOf&gt;<BR>&nbsp;&lt;/owl:Class&gt;<BR>&nbsp;&nbsp;&nbsp; 在上面个例子中，我们定义了Fruit是SweetFruit和NonSweetFruit的并集。而且我们知道这些子类恰好将Fruit划分成了连个截然不同的子类，因为它们是互不相交的。随着互不相交的类的增加，不相交的声明的数目也会相应的增加到n2.然而，在我们已知的用例中，n通常比较小。当n很大时，我们可以使用另一些方法以避免声明的数目按二次方增长。其中一个方法在OWL test suite 有详细说明。<BR>这一方法的工作原理如下。我们描述一个父类，它的元素有一个基数等于一的属性。接着，对于这个父类的每一个子类，我们都要求这个子类的实例的这一属性必须具有一个唯一的值。在这种情况下，各个不同子类就不可能有共同的成员了。<BR>6. 本体的版本控制<BR>&nbsp;&nbsp;&nbsp; <BR>本体和软件一样需要维护，因此它们将随着时间的推移而改变。在一个owl:Ontology元素（如上面讨论的）内，链接到一个以前定义的本体版本是可能的。属性owl:priorVersion被用来提供这种链接，并能用它跟踪一个本体的版本历史。<BR>&nbsp;&lt;owl:Ontology rdf:about=""&gt; <BR>&nbsp;&nbsp; ...<BR>&nbsp;&nbsp; &lt;owl:priorVersion rdf:resource="<A href="http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine%22/">http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine"/</A>&gt; <BR>&nbsp;&nbsp; ...<BR>&nbsp;&lt;/owl:Ontology&gt;<BR>在上面例子中被指出的那个本体是被定义本体的一个以前版本。本体版本可能彼此互不兼容，例如，一个本体以前的版本可能包含与现在版本中的陈述相矛盾的陈述。在一个owl:Ontology元素中，我们使用owl:backwardCompatibleWith和owl:incompatibleWith这些属性来指出本体版本是兼容还是不兼容以前的版本。如果没有进行owl:backwardCompatibleWith声明，那么我们假定就不存在兼容性。除了上面讲到的两个属性，还有一个属性owl:versionInfo适用与版本控制系统，它提供了一些相关信息（hook）。和前面三个属性相反的是，owl:versionInfo的客体是一个文字值（literal），这一属性除了可以用来注释本体之外还可以用来注释类和属性。<BR>在许多时候，仅仅在整个本体的粒度上提供版本跟踪是不够的。维护人员可能希望能够记录类、属性、个体的版本信息——即使这些信息可能还是是不够充分。在OWL中，类表示的渐增性本质意味着了一个本体可以为一个在另一个本体中定义的（具名）类添加约束，而这些额外的约束本身可能需要版本信息。<BR>OWL <BR>Full提供的表示能力能够对一个类进行任何类型的声明，也即可以声明一个类可以是另一个类的实例，或者一个类（不是它的实例）有一个属性和一个对应的属性值。这一框架就能被用来为版本跟踪信息建立一个由类和属性构成的本体。OWL的名称间中包括了两个预定义的类owl:DeprecatedClass和owl:DeprecatedProperty来完成这个目的。他们被用来指明某个类或属性在未来发布的版本中可能以一种不兼容的方式发生变化。<BR>&nbsp;...<BR>&nbsp;&nbsp; &lt;owl:DeprecatedClass rdf:ID="&amp;vin;JugWine" /&gt;<BR>&nbsp;&nbsp; &lt;owl:DeprecatedProperty rdf:ID="&amp;vin;hasSeeds" /&gt;<BR>&nbsp;...<BR>&nbsp;&nbsp;&nbsp; 我们要注意到owl:DeprecatedClass及owl:DeprecatedProperty并没有附加的语义，这很重要。它们应由工具开发者和OWL使用者来确保这些属性是按其本意使用的。</P>
<P>7. 使用范例<BR>一旦有某个初始的领域本体可以利用，人们就能够使用这个本体开发大量的应用。在本节中，我们会描述使用在葡萄酒领域的一些例子。<BR>7.1.葡萄酒门户网站<BR>现今有许多站点称自己是葡萄酒的门户网站。比如在Google上就可以找到152,000个与“wine <BR>portal”（葡萄酒门户网站）相匹配的结果。最匹配的是一个称为"Wine-Portal.com"的站点，该站点提供了问其他许多站点的途径。声称自己是葡萄酒门户网站的站点大多是信息式站点（informational <BR>sites）。例如，wine-portal.com中的第一个特色站点被称为“酒塞烹饪”（cork <BR>cuisine），这一站点就是提供关于葡萄酒和食物的搭配、关于以葡萄酒作为礼物等方面的信息的。<BR>细读任何一个范围的主题，人们都会发现大量与该主题相关的内容，它们包含了与该主题相关的信息或者服务。像“附属品和礼物”（accessories and <BR>gifts）这个主题中就包含了关于购买特别的葡萄酒物品（wine <BR>item）时的注意事项的信息，同时也包含了众多的在线零售商的信息。另一个顶层的主题范围“购物”中包含了一个子范围“葡萄酒购买”（wine <BR>shopping），从这儿用户能够找到在线（或者“街道购物”（stree <BR>shopping））商店（按照国家分类）。这两个站点仅仅是现在许多例子中的两个，它们代表了这些门户网站的一般概念，也即葡萄酒门户为某个特定主题范围提供了大量的信息和服务。<BR>即使在更细节的程度上考察这些站点，我们也无法得知现在它们在多大程度上依赖着本体。例如，我们从html的源代码中并无法找出它们使用本体的证据。然而，非常明显的，这些站点是有可能使用本体的并可以从中得到一些葡萄酒本体。<BR>在门户网站中，本体的一个简单使用就是利用其进行组织和浏览。上面的类别列表就可能从葡萄酒的类别层次的最高几层生成。查询能够使用葡萄酒本体对与葡萄酒相关的信息进行检索。如果某人对本体中包含的术语进行搜索，查询就可能根据子类的信息进行扩展从而找到更多相关的答案。门户网站也可能使用（候选的）相关主题范围内的信息进行自我更新。使用强大的推理能力，它们甚至能够识别出可能的葡萄酒销</P>]]></description>
</item><item>
<title><![CDATA[胆结石患者平时饮食应该注意]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=35702</link>
<author>james008</author>
<pubDate>2008/5/22 14:17:54</pubDate>
<description><![CDATA[<P>胆结石患者平时饮食应该注意以下几点：<BR>&nbsp;&nbsp;&nbsp; 1、禁酒及含酒精类饮料</P>
<P>　　2、饮食要规律、早餐要吃好</P>
<P>　　3、低胆固醇饮食。胆固醇摄入过多，可加重肝胆的代谢、清理负担，并引起多余的胆固醇在胆囊壁结晶、积聚和沉淀，从而形成结石，所以，应降低胆固醇摄入量，尤其是晚上，应避免进食高胆固醇类食品如：鸡蛋（尤其是蛋黄）、肥肉、海鲜、无鳞鱼类、动物内脏等食品。</P>
<P>其它饮食注意事项：</P>
<P>　　1、宜多食各种新鲜水果、蔬菜，进低脂肪、低胆固醇食品如：香菇、木耳、芹菜、豆芽、海带、藕、鱼肉、兔肉、鸡肉、鲜豆类等。</P>
<P>　　2、宜多食干豆类及其制品。</P>
<P>　　3、宜选用植物油，不用动物油。</P>
<P>　　4、少吃辣椒、生蒜等刺激性食物或辛辣食品</P>
<P>　　5、宜用煮、蒸、烩、炒、拌、氽、炖的烹调方法，不用油煎、炸、烤、熏的烹调方法。</P>
<P>　　6、山楂10克，杭菊花10克，决明子15克，煎汤代茶饮或饮用绿茶。</P>
<P>　　7、平时喝水时，捏少许山楂、沙棘、银杏、绞股蓝草放入水杯中当茶饮用</P>
<P>&nbsp;</P>
<P>胆结石的自我护理要点： </P>
<P>1．不吃或少吃高糖、高胆固醇、高脂肪饮食。多食富含高蛋白的食物、蔬菜及新鲜水果，妊娠期妇女应引起足够的重视。 </P>
<P>2．注意饮食卫生、防止肠道内进入寄生虫如蛔虫等. </P>
<P>3．多进行体育锻炼，尤其是进入40岁后的女性，在减少脂肪摄入的同时应促进脂肪的分解。 </P>
<P>4．有胆囊炎、糖尿病、肾炎、甲状腺功能低下的患者要积极治疗，防止诱发胆结石。 </P>
<P>5．按时进餐，避免胆汁在胆囊内潴留时间过长。 </P>
<P>6．每年定期体检，包括肝胆B超检查。 </P>
<P>7．病人康复期饮食要做到“五要”“五忌”： </P>
<P>五要： </P>
<P>1．讲究饮食卫生，防止细菌、虫卵从口入。 </P>
<P>2．多吃蔬菜与水果，如：菠菜、韭菜、芹菜、苹果、香蕉等。 </P>
<P>3．尽量用植物油烹调，忌用动物油，以蒸、烩为主，避免炸、煎。 </P>
<P>4．适量进食瘦肉、鱼、鸡以及豆类制品。 </P>
<P>5．多吃一些促进胆汁分泌和松弛胆道括约肌及利胆食物如山楂、乌梅、玉米须（泡水）。 </P>
<P>五忌：</P>
<P>1．忌吃高胆固醇食物如动物心、肝、脑、肠、蛋黄、松花蛋、鱼子、巧克力等。 </P>
<P>2．忌吃高脂肪食物如肥肉、油炸食品、蛋糕、点心、油条等。 </P>
<P>3．忌暴饮暴食。 </P>
<P>4．忌辛辣刺激调味品，如辣椒、花椒粉、咖哩粉等。 </P>
<P>5．忌烟、酒、咖啡，避免其刺激胆道括约肌，使胆道括约肌痉挛，从而胆汁排出困难。</P>
<P>&nbsp;</P>
<P>患了胆结石，除了药物治疗之外，在饮食方面也要科学地巧安排，应当做到“六要”和“五忌”。 </P>
<P>“六要”是：</P>
<P>一要注意饮食和饮水卫生，生吃瓜果要先洗干净，然后用开水或凉开水冲一冲，以防吃入蛔虫及残留农药。养成不喝生水喝开水的良好习惯。</P>
<P>二要多吃些含维生素的食物，如绿色蔬菜、胡萝卜、西红柿、菠菜、白菜等，平时应多吃些香蕉、苹果等水果。</P>
<P>三要用植物油炒菜，所吃的菜以炖、烩、蒸为主。</P>
<P>四要常吃些瘦肉、鸡、鱼、核桃、黑木耳、海带、紫菜等。</P>
<P>五要多吃些能促进胆分泌和松弛胆道括约肌、有汁胆作用的食物，如山查、乌梅、玉米须 （泡茶慢慢喝）。</P>
<P>六要吃旱餐，不可让空腹的时间太长。</P>
<P>此外还要注意两点：一是要经常运动，防止便秘，二是肥胖者要计划减肥，因为肥胖会促使胆固醇大量分泌，加重病情。</P>
<P>“五忌”包括：</P>
<P>一忌吃含胆固醇较高的的食物，如动物心、肝、脑、肠以及蛋黄、松花蛋鱼子及巧克力等。</P>
<P>二忌吃含高脂肪食物，如肥肉、猪油、油煎油炸食品。油多的糕点也不宜多吃，因为过多的脂会引起胆囊收缩，导致疼痛。</P>
<P>三忌借节日或亲友聚会时大吃大喝。因为暴饮暴食会促使胆汁大量分泌，而胆囊强烈的收缩又会引起胆囊发炎、局部绞痛等。</P>
<P>四忌食辛辣刺激的调味品，如辣椒、辣椒油、五香粉、胡椒面等。</P>
<P>五忌烟、酒、咖啡等，这些带有刺激性的食品能使胃酸过多，胆囊剧烈收缩而导致胆道口括约肌痉挛、胆汗排出困难而诱发胆绞痛。<BR></P>]]></description>
</item><item>
<title><![CDATA[男人起床后四个好习惯保健康]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=33081</link>
<author>james008</author>
<pubDate>2008/3/28 16:12:31</pubDate>
<description><![CDATA[<FONT size=4>一</FONT>日之计在于晨，身体的好坏与大家早晨起床后的日常习惯息息相关, 男人早起最应该做的以下几件事: 
<H4>1.早上洗澡是个好习惯</H4>
<P>早上洗澡一般来说不是中国人的习惯，但是早上洗澡确实有助于促使血液循环更加旺盛，并且清洁的感觉和浴液的芬芳本身就可以调整心情，使精神更加饱满。</P>
<H4>2.早上大便是个好习惯</H4>
<P>这个好习惯一经养成，你会终身受益。如果还没这个习惯也不要着急，要努力去培养，比如多吃高纤维食品，如白菜、白薯等粗粮，并且在早上起来后不管有没有都去下厕所，久而久之，习惯会成为自然的。</P>
<H4>3.早上慢慢起是个好习惯</H4>
<P>猛起都是迫不得已的，尽量不要猛起，这会使血往上冲，造成血压突然变动，引起头晕等症状。比较好的做法是，睁开眼睛后先不起身，躺在床上活动一下四肢和头部，5分钟后再起来。如果你有起不来的问题，可以闭着眼做一些伸拉四肢的动作，会非常有助于清醒。</P>
<P>比如：将左右膝盖分别曲起使劲倒向身体另一侧；用双手把一个膝盖抱在胸口维持10秒；仰面躺着，双手尽量向后伸直，以鼻吸气，以口呼气，身体维持5秒不动。</P>
<H4>4.醒后喝杯凉开水是个好习惯</H4>
<P>经过一夜的睡眠，没有一滴水的摄入，人很容易脱水，而一杯凉开水（不是冰水）则是有益的补充；这对于肠胃也起到了清理作用；还能帮助你从睡眠状态中清醒过来。可以在前一晚临睡前将一杯凉开水放在床头。</P>]]></description>
</item><item>
<title><![CDATA[71个做饭技巧大放送]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=33079</link>
<author>james008</author>
<pubDate>2008/3/28 16:00:10</pubDate>
<description><![CDATA[
<DIV class=t_msgfont id=message1961017><FONT size=3>1、羊肉去膻味：将萝卜块和羊肉一起下锅，半小时后取出萝卜块；放几块桔子皮更佳；每公斤羊肉放绿豆5克，煮沸10分钟后，将水和绿豆一起倒出；放半包山楂片；将带壳的核桃两三个洗净打孔放入；1公斤羊肉加咖喱粉10克；1公斤羊肉加剖开的甘蔗200克；1公斤水烧开，加羊肉1公斤、醋50克，煮沸后捞出，再重新加水加调料。 <BR>2、煮牛肉：为了使牛肉炖得快，炖得烂，加一小撮茶叶(约为泡一壶茶的量，用纱布包好)同煮，肉很快就烂且味道鲜美。 <BR>3、煮骨头汤时加一小匙醋，可使骨头中的磷、钙溶解于汤中，并可保存汤中的维生素。 <BR>4、煮牛肉和其他韧、硬肉类以及野味禽类时，加点醋可使其软化。 <BR>5、煮肉汤或排骨汤时，放入几块新鲜桔皮，不仅味道鲜美，还可减少油腻感。 <BR>6、煮咸肉：用十几个钻有许多小孔的核桃同煮，可消除臭味。 <BR>7、将绿豆在铁锅中炒10分钟再煮能很快煮烂，但注意不要炒焦。 <BR>8、煮蛋时水里加点醋可防蛋壳裂开，事先加点盐也可。 <BR>9、煮海带时加几滴醋易烂；放几棵波菜也行。 <BR>10、煮火腿之前，将火腿皮上涂些白糖，容易煮烂，味道更鲜美 <BR>11、煮水饺时，在水里放一颗大葱或在水开后加点盐，再放饺子，饺子味道鲜美不粘连；在和面时，每500克面粉加拌一个鸡蛋，饺子皮挺刮不粘连。 <BR>12、煮水饺时，在锅中加少许食盐，锅开时水也不外溢。 <BR>13、煮面条时加一小汤匙食油，面条不会沾连，并可防止面汤起泡沫、溢出锅外。 <BR>14、煮面条时，在锅中加少许食盐，煮出的面条不易烂糊。 <BR>15、熬粥或煮豆时不要放碱，否则会破坏米、豆中的营养物质。 <BR>16、用开水煮新笋容易熟，且松脆可口；要使笋煮后不缩小，可加几片薄荷叶或盐。 <BR>17、猪肚煮熟后，切成长块，放在碗内加一些鲜汤再蒸一会儿，猪肚便会加厚一倍。 <BR>18、煮猪肚时，千万不能先放盐，等煮熟后吃时再放盐，否则猪肚会缩得象牛筋一样硬。 <BR>19、炖肉时，在锅里加上几块桔皮，可除异味和油腻并增加汤的鲜味。 <BR>20、炖鸡：洗净切块，倒入热油锅内翻炒，待水分炒干时，倒入适量香醋，再迅速翻炒，至鸡块发出劈劈啪啪的爆响声时，立即加热水（没过鸡块），再用旺火烧十分钟，即可放入调料，移小火上再炖20分钟，淋上香油即可出锅；应在汤炖好后，温度降至80~90摄氏度时或食用前加盐。因为鸡肉中含水分较高，炖鸡先加盐，鸡肉在盐水中浸泡，组织细胞内水分向外渗透，蛋白质产生凝固作用，使鸡肉明显收缩变紧，影响营养向汤内溶解，且煮熟后的鸡肉趋向硬、老，口感粗糙。 <BR>21、炖老鸡：在锅内加二三十颗黄豆同炖，熟得快且味道鲜；或在杀老鸡之前，先灌给鸡一汤匙食醋，然后再杀，用文火煮炖，就会煮得烂熟；或放3~4枚山楂，鸡肉易烂。 <BR>22、老鸡鸭用猛火煮，肉硬不好吃；如果先用凉水和少许食醋泡上2小时，再用微火炖，肉就会变得香嫩可口。 <BR>23、煮老鸭：在锅里放几个田螺容易烂熟。 <BR>24、烧鸭子时，把鸭子尾端两侧的臊豆去掉，味道更美。 <BR>25、烧豆腐时，加少许豆腐乳或汁，味道芳香。 <BR>26、红烧牛肉时，加少许雪里红，肉味鲜美。 <BR>27、做红烧肉前，先用少许硼砂把肉腌一下，烧出来的肉肥而不腻，甘香可口。 <BR>28、油炸食物时，锅里放少许食盐，油不会外溅 <BR>29、在春卷的拌馅中适量加些面粉，能避免炸制过程中馅内菜汁流出糊锅底的现象。 <BR>30、炸土豆之前，先把切好的土豆片放在水里煮一会儿，使土豆皮的表面形成一层薄薄的胶质层，然后再用油炸。 <BR>31、炸猪排时，在有筋的地方割2~3个切口，炸出来的猪排就不会收缩。 <BR>32、将鸡肉先腌一会儿，封上护膜放入冰箱，待炸时再取出，炸出的鸡肉酥脆可口。 <BR>33、煎荷包蛋时，在蛋黄即将凝固之际浇一点冷开水，会使蛋又黄又嫩。 <BR>34、煎鸡蛋时，在平底锅放足油，油微热时蛋下锅，鸡蛋慢慢变熟，外观美，不粘锅。 <BR>35、煎鸡蛋时，在热油中撒点面粉，蛋会煎得黄亮好看，油也不易溅出锅外。 <BR>36、用羊油炒鸡蛋，味香无异味。 <BR>37、炒鸡蛋时加入少量的砂糖，会使蛋白质变性的凝固温度上升，从而延缓了加热时间，加上砂糖具有保水性，因而可使蛋制品变得膨松柔软。 <BR>38、炒鸡蛋时加入几滴醋，炒出的蛋松软味香。 <BR>39、炒茄子时，在锅里放点醋，炒出的茄子颜色不会变黑。 <BR>40、炒土豆时加醋，可避免烧焦，又可分解土豆中的毒素，并使色、味相宜。 <BR>41、炒豆芽时，先加点黄油，然后再放盐，能去掉豆腥味。 <BR>42、炒波菜时不宜加盖。 <BR>43、炒肉片：肉切成薄片加酱油、黄油、淀粉，打入一个鸡蛋，拌匀，炒散；等肉片变色后，再加佐料稍炒几下，肉片味美、鲜嫩。 <BR>44、炒牛肉丝：切好，用盐、糖、酒、生粉（或鸡蛋）拌一下，加上生油泡腌，30分钟后再炒，鲜嫩可口。 <BR>45、炒肉菜时放盐过早熟得慢，宜在将熟时加盐，在出锅前再加上几滴醋，鲜嫩可口。 <BR>46、肉丝切好后放在小苏打溶液里浸一下再炒，特别疏松可口。不论做什么糖醋菜肴，只要按2份糖1份醋的比例调配，便可做到甜酸适度。 <BR>47、炒糖醋鱼、糖醋菜帮等，应先放糖，后放盐，否则食盐的“脱水”作用会促进菜肴中蛋白质凝固而“吃”不进糖分，造成外甜里淡。 <BR>48、做肉饼和肉丸子时，一公斤肉馅放2小匙盐。 <BR>49、做丸子按50克肉10克淀粉的比例调制，成菜软嫩。 <BR>50、做滑炒肉片或辣子肉丁，按50克肉5克淀粉的比例上浆，成菜鲜嫩味美。 <BR>51、做馒头时，如果在发面里揉进一小块猪油，蒸出来的馒头不仅洁白、松软，而且味香。 <BR>52、蒸馒头时掺入少许桔皮丝，可使馒头增加清香。 <BR>53、蒸馒头碱放多了起黄，如在原蒸锅水里加醋2~3汤匙，再蒸10~15分钟可变白。 <BR>54、将少量明矾和食盐放入清水中，把切开的生红薯浸入十几分钟，洗净后蒸煮，可防止或减轻腹胀。 <BR>55、牛奶煮糊了，放点盐，冷却后味道更好。 <BR>56、放有辣椒的菜太辣时或炒辣椒时加点醋，辣味大减。 <BR>　 57、烹调时，放酱油若错倒了食醋，可撒放少许小苏打，醋味即可消除。 <BR>58、菜太酸，将一只松花蛋捣烂放入。 <BR>59、菜太辣，放一只鸡蛋同炒。 <BR>60、菜太辣，放些醋可减低辣味。 <BR>61、菜太苦，滴入少许白醋。 <BR>62、汤太咸又不宜兑水时，可放几块豆腐或土豆或几片蕃茄到汤中；也可将一把米或面粉用布包起来放入汤中。 <BR>63、汤太腻，将少量紫菜在火上烤一下，然后撒入汤中。 <BR>64、花生米用油炸熟，盛入盘中，趁热撒上少许白酒，稍凉后再撒上少许食盐，放置几天几夜都稣脆如初。 <BR>65、菜籽油有一股异味，可把油烧热后投入适量生姜、蒜、葱、丁香、陈皮同炸片刻，油即可变香。 <BR>66、用菜油炸一次花生米就没有怪味了，炒出的菜肴香味可口，并可做凉拌菜。 <BR>67、炸完食物后的油留下一些残渣并变得混浊，可将白萝卜切成厚圆片，用筷子把萝卜戳几个洞，放入剩油中炸，残渣会附着在萝卜片上，取出清除残渣，再反复放入锅中炸，混浊的油可变清澈。 <BR>68、炒菜时应先把锅烧热，再倒入食油，然后再放菜。 <BR>69、当锅内温度达到最高时加入料酒，易使酒蒸发而去除食物中的腥味。 <BR>70、熬猪油：在电饭褒内放一点水或植物油，然后放入猪板油或肥肉，接通电源后，能自动将油炼好，不溅油，不糊油渣，油质清纯。 <BR>71、泡菜坛中放十几粒花椒或少许麦芽糖，可防止产生白花</FONT></DIV><FONT color=#ffffff>自</FONT>]]></description>
</item><item>
<title><![CDATA[转一篇谈研发和技术积累的好文:20年工作经验谈——马宁伟[转帖]]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=32524</link>
<author>james008</author>
<pubDate>2008/3/17 14:19:32</pubDate>
<description><![CDATA[谈研发和技术积累的好文：20年工作经验 
<P></P>
<P>马宁伟<BR>我是一个有10年电子产品研发经验的工程师和10年IT知名公司研发中心管理经验的技术管理者。世上好的管理理念可能归纳起来就那么1~2百条，也都好理解，难的是怎么适当地运用在特定的环境中。下面的文章共18篇，是我20年工作中的片段，也是我在研发及管理中的实际体验和感悟。&nbsp;<BR>1.&nbsp;技术启蒙&nbsp;<BR>1977年的5月我进了宿迁无线电厂。今天已极少有人知道这家厂，&nbsp;但当时这家厂还是有些名气的，因为当时设计新产品技术队伍中有在文革中遭解散的南京无线电工业学校的校长，教导主任，系主任，各科教师。其中有中国的第一代电化学专家叶厚禺，第一代无人驾驶康拜因(拖拉机)的无线电控制设计者赵骥，第一代雷达设计师赵柏林，第一代无线电专家洪瑞楫，第一代飞机机械师龚维蒸，还有靠“自学成才”的60年代即是华电工程师的张世昌。这些人才，多是因政治运动，先被排挤到学校再被下放到宿迁。当时工厂设计的晶体管图示仪和集成电路测试仪以及微波测试仪器产品畅销全国。&nbsp;<BR>龚维蒸老师原为系主任，当时已有50岁，头发花白，是南工（现南京东南大学）双专业的50年毕业的本科生，也是中国第一本《无线电设备结构设计》教材的编写者。在工厂是结构设计室的主任，当时我们有6~7个高中毕业生跟他学模具设计和仪器结构设计。每天半天学习理论和做作业，半天工作。当时的工厂主产品&nbsp;JT－1、JT－3晶体管图示仪畅销，每台成本几千块，每台销售价7万5千块。市场竞争也不激烈。&nbsp;<BR>龚维蒸老师主要给我们上4种课，《机械制图》，《材料力学》，《冷冲模设计》《无线电设备结构设计》。他讲课深入浅出，循循善诱，结合实例，总是鼓励人，从不批评人，也从没看过他发过脾气，真正的敦厚长者。当时我们基础实在是太差，他讲完一点，总是会问：听懂了么？因为我的好问和勤奋，使我很快在几个人中脱颖而出。2年多的上课使我打下了良好的无线电设备结构设计理论基础，我当时还花半个月的工资买了铁摩辛柯的《材料力学》硬啃了很长时间，一直到读了大学才知道，龚老师的课选的是多么准确和有效，使我们一点弯路没走。我的一个大学老师跟我们说的是：学好《机械制图》，《材料力学》，给你半个工程师。对一个电子产品结构设计工程师来说，真是金玉良言。&nbsp;<BR>我的另一个师傅是张世昌，因为工厂要自制一套4开制版机（用来做PCB的胶片）我被抽调到这个产品设计小组跟他学做结构设计，实际上主要是制图，将他的设计思想，用图纸表达出来。第一天他先让我削只铅笔，结果是他不满意，他削了只让我看，用中华2H铅笔，笔芯削成20mm长的圆锥过渡，铅芯要露出5－&nbsp;6mm长，再用细沙纸磨成圆锥型，笔尖直径0.2mm。他用丁字尺划了一条直线，一边划，铅笔一边转，铅笔与图板倾斜成60度。他说，这样笔尖不会一下被磨秃。然后，他让我写0~9的阿拉伯数字。我写完后，他说，你数字写的不错，我推荐你去财务科，看我脸涨的通红，他说“8”字要这样写，我看着他用l了4&nbsp;笔，每笔4个半圆写成了标准的仿宋体“8”。就这样我跟着他一丝不苟的开始了制图工作。他教会我选择三视图的技巧，运用局部剖视图和重复剖面图的表达方法，特别是强调要精确，简洁，完整的表达零件，不能少表达一个要素，也不能多划一个视图。“让水平低的人也能看懂你的图，好的工程图纸就是一幅艺术划”这些设计理念，深深地影响了我。他极富创意，教会我巧用机械原理，实现制版机结构和传动的设计。一个个想法从图纸变为实体零件，也使我渐渐地喜欢上了这个工作。&nbsp;<BR>事实上，张世昌老师还是一个多才多艺的人，他做的古筝，被淮阴地区剧团长期使用。他甚至教我们自己制做小提琴，告诉我们要用什么木料和特别的剖料方式。这个问题在我后来带的多个研发团队中，作为有奖问答，几乎无人答出。他给我也是给那个小城留下最深的影响是，当时有一出大热的话剧叫《于无声处》各地都在排演。话剧两个多小时，要反映的情节是24小时。张世昌老师用一座钟改变传动比，加上硬纸板做成大钟面和表针，用缝纫机做车床加工精密零件。钟做成后，挂在舞台上，成功的反映了剧情时间的变化。&nbsp;<BR>张世昌老师家居图书馆，他太太是50年代的北大图书馆系毕业生。当时是县城图书馆馆员，星期天我去借书时，常看他一家都在图书馆院中读书，他看的杂志，书籍面非常广，比如象《化石》，《乐器制作》。我从小就养成了阅读的习惯，但限于文学类，进工厂后，因工作需要也常借技术书看。受他的影响，我开始读《地理知识》《航空知识》《科学画报》《化石》《考古》《摘译》等五花八门的杂志。&nbsp;<BR>1977－1978是我学习技术的最幸福时光。那样的学习工作条件，可能今天的研究生和一流企业也不能具备，工厂环境在当时也称得上是花园工厂，有良师，有一个好工作，有技术可学，衣食无忧，没有什么竞争，还有一个自己心仪的女孩是同事，刚刚从生活的阴影中走出来的我，真的好象是来到了理想中的乌托邦。&nbsp;<BR>我是1970年随父母从南京下放到宿迁的，1974年在宿迁中学高中毕业，1977年才进工厂，岁月蹉跎。一位与我有同样经历的小学同学对我说，人要有“一技之长”，才能在社会上立足。所以，从进工厂起，我就有了个理想，奋斗10年，成为工程师。&nbsp;</P>
<P>2.三年寒窗&nbsp;<BR>1978年我参加了高考，可惜没考上，主要原因是当时我的工作已不错了，没有全身心投入复习，现在看来是鼠目寸光。原本准备来年再考，可突然来了读大学的机会，那就是中央广播电视大学开办并冬季招生，1979年2月开学。开始并没打算读，可是读电大有一个好处是，可以带薪上学。就这样，通过简单考试，我开始了读电大。此时国家落实知识分子政策，原南无复校，老师们陆续回宁。工厂新产品设计需要人，所以读电大的3年我是一边读书，一边工作。&nbsp;<BR>大学的三个要素：名教授，图书馆，实验室。实际上电大仅具备了第一个。当时授课的大多是清华，北大老师。电大也成就一批名师，象教Basic语言的谭浩强，教英文的郑培蒂被媒体评为全国最多学生的老师，他们走到哪里，都被优先照顾，因为到处都有他们的学生。电大是全国统一教材，统一上课，通过电视同步传到各地。由于还没有线电视，用无线接收。电视差转台常出故障，刮风下雨，天线摇摆，转播效果更差，屏幕上往往是雪花飘飘。一节课耽误了，就无法弥补，全靠自学。电大采取的是宽进严出，考试是全国统一试卷，考试地点是相对集中。我们是在地区市的淮阴。完全没有普通大学老师学生面对面的种种便利。&nbsp;<BR>我们那个班开始有50多人，一学期下来就不见了一半，一年后还剩15人，到毕业，只有8个人。我因是一边读书，一边工作，每天只睡4~5个小时，整整3年几乎天天如此，。为什么有那么大的恒心？说起来，是因为工厂里自己心仪的女孩跟一个驻军的团政委儿子好上了，我觉得主要是自己的经济条件不够好，因此为了出人头地，发愤读书。实际上，现在想想不可思议，当时就没有跟人家表白过，也许追一下，就是另一种结果。3年下来，人瘦成97斤，而且以后10年如此。&nbsp;<BR>我的毕业设计是“RL－2微波漏能结构设计”那也是我们工厂实际研究设计的一个新产品。用来探测微波设备的微波泻漏能量。微波设备包括雷达，电视发射台等，超过30mw/cm3的微波对人体是有害的。在毕业设计答辩上，我从探测原理讲起，结合挂图介绍了主要器件传感器，又介绍了为将传感器上获得的讯号能在表头上显示出来，需放大电路和转换电路，这就是电路设计工程师的工作。另一方面，为了让电路板能放在合适的位置，也为了电路不受干扰，又为了传感器要有合适的形状便于手握，又因为是移动中使用的产品，特别要考虑防振设计，而这些就是电子产品的结构设计。我还重点介绍了产品中需要的一种材料：它即要能够被制成异型。又要能耐高温不变形，还要对微波无反射。为找到这种材料（氮化硼）所做的研究过程。我的报告受到了内行和外行的好评。&nbsp;<BR>我之所以要比较详细的说这件事，是象这样真正的原创性的研究和设计是非常锻炼人的，也非常有挑战性，在我后来的20年研发工作这样的项目不多。事实上在很多IT公司的研发部门也是如此，我见到的一家国内大公司的名校毕业生，津津有味的在做整机级测试，没人告诉他们，这不能算是研发。我的一个感觉是这些年来国内很多IT大公司研发做的越来越浅，远不如80~90年代的企业。所以，整体上我们工业技术可能与发达国家比现在离得更远。当然有些公司除外象华为，中兴等。&nbsp;<BR>3.十年磨一剑&nbsp;<BR>龚维蒸老师看我想真学技术，就对我说，要想学透一行，要花十年工夫。先用3年时间，将这一行需要的基础理论知识掌握；再用3年时间将这一行的书，文章全部找来读，了解这门技术的来龙去脉和当前的发展状况；再用3年时间选择其中薄弱分支进行研究，这样你就可以有所成就。&nbsp;<BR>1984年我回南京进了熊猫集团东方无线电厂，工厂主要产品是收录机和组合音响。我先是在工艺科结构室，主要的工作是：在设计阶段审查设计部门的结构设计图纸工艺性；在生产阶段承接设计部门的技术，写工艺流程卡（作业指导书）和处理生产线的技术问题。&nbsp;<BR>就现在看，后一个工作任务就是现在很多公司里工程部的职责。而前一个工作任务在大多数公司没有部门承担，这也是很多新产品样机做的可以，当批量生产时，问题就百出的原因之一。一个通则是，把技术问题解决在前端，将大大降低新产品失败的风险和成本，这是技术管理者要关注和研究的重要课题。&nbsp;<BR>半年后发生了两件对我有影响的事。第一件事是描图员忙不过来，我去客串帮忙，在描一张图时，顺便改掉了一个明显的设计表达错误。按理描图员是不应做任何改动的，所以这引起了那位设计师的不满，好在负责结构设计的副所长就在旁边，拿过去一看，说改得对，就这样了。并且问我，你怎么会知道要这样改？我说，我是做过结构设计的。第二件事是我审查一个新产品的一套结构设计图的工艺性，正巧就是这位副所长设计的。我找出来其中十几个制图和设计不当问题。我看完后，随口跟旁边的同事说了一下，谁知这信息迅速传到了他耳中，而且也不知怎么传的。据说他听后是暴跳如雷，说我的图纸还会问题，他一个小年青，搞的不得了。我的室主任说，这是个不能碰的人，因为又是交大毕业的，又是副所长，这个时候，我的倔强性格也出来了，说：白纸黑字在那呢，大家都可以看啊。结果却是，下午当面沟通时，他一一修正了问题。&nbsp;<BR>因为这两件事，由设计所长提出，将我调到了设计所。我回到了结构设计的本行，此时我实际上已有了6～7年的冷冲模和仪器结构设计经验。仪器主要用金属薄板做结构件；而音响的结构件主要是塑料件，塑料件的设计对我来说是个新课题，除此以外，结构设计的内容是相通的。我买了能够买到的所有塑料材料和零件设计的书。&nbsp;<BR>塑料因为可以设计成复杂零件，这特别考验一个人的三维空间想象能力。业界一直有两类设计师，一类是先设计个大概轮廓，再做一个手板，根据手板，再完善细节设计。另一类是完全想好细节，并用图纸完整表达，再去做手板，这种做法，改动会很小。但非常考验设计者的功力。我是一直坚持后者的做法。同理，做一个整机结构设计，首先要划装配图，没有精细的装配图就匆匆划零件图也注定会反复甚至翻船。&nbsp;<BR>我对设计的定义就是能够将设想和计算通过图纸将其表达出来，并可以成功的做成产品。对设计师来说，关键能力是还没有实物，但这物体已在脑中想象成形。而不是依葫芦划瓢。&nbsp;<BR>调来设计所后，也是新手但有相当才气的丁石藤和我分别独立担任电路和结构设计师，设计高性能的双卡收录机8400。这是个全新产品，全套结构设计图包括装配图，零部件图，我一人40天完成，&nbsp;开模后一次试模成功。电路也如期设计调试完成，整机试投产后也一次成功，没有发现大问题，故试产后一天都没停就又投入了6K的批量。做到这个状况，任何一个做过设计的人都知道这是很难达到的一个技术水准，同时这里面还有很多的协调工作，当然还有运气，比如模具厂，PCB厂没有出问题。因为成功的设计了这个产品，也因为领导和同事的认可，我被任命为结构设计室主任。这在那个论资排辈的年代和国企环境是很破格的事情。我所在的设计室基本上都是有十几年工作经验的设计师。而我的搭档也成了设计所长------丁石藤是我迄今为止见到的少数几个杰出人才之一，他最历害的就是思维清晰而简洁，一语中的，具备超常人的智商，面对技术问题他几乎不会出错。而我的不出错是靠我的勤奋和专心，我在做设计时经常半夜惊醒，发现一个计算错误。&nbsp;<BR>我这时才知道，龚，张两位老师教我的专业知识，技术和自己三年苦读加工作，使我已积累了相当的专业功力。连我自己也奇怪，我对塑料零件设计并不熟悉，但遇到问题我总能迅速找到解决方法，我没有什么问题需要问我的同事，相反我倒是经常帮他们的忙。&nbsp;<BR>后来我接触过很多的工程师，发现他们虽然在R&amp;D部门工作了1～2年，但并没有掌握他们那个专业的知识和技能，更糟糕的是他们不知道那个专业应该学些什么。一方面我为自己感到庆幸，一方面我也得出一个结论，刚刚工作的1～2年对新大学生太重要了，没有一个好的师傅指导，会走多少弯路，甚至于就此碌碌无为。&nbsp;<BR>我在结构设计室主任的位上一坐10年，虽然2年后我就就兼职副所长，八年后又做了所长。&nbsp;<BR>8400产品在生产车间量产时，在一张检验桌旁，检验科长问我，产品成功了，拿多少奖金就满意了，我说奖金不在乎，我希望能生产5万台，成为畅销产品。那是真话，那个年代的工程师，更看重的是名声。事实上由于是定位在高端的产品，销路并不好。所以厂里在分析了市场后，决定大幅度削减附加功能，仅保留主要功能，从结构上仅换面板，其余沿用原来的零部件。这大大快了设计进度。产品投产后命名为熊猫2200双卡收录机。就是这个产品上市后，因供不应求，包括熊猫集团本部的工厂一共4家厂生产，整整畅销3年，共产销120万台。为工厂创下巨额利润。也创下全国音响行业单机种销量的奇迹。&nbsp;<BR>总结起来这个产品市场成功要素一是价格低，二是品牌好，三是质量稳定；技术成功要素是通用化，标准化，操作简单，外观美观。&nbsp;<BR>在后面多年的产品设计中，几乎工厂所有的主要畅销产品都是我做的结构设计，或者是我带徒弟做的，实际上那时已有竞争，往往是几个设计小组同时做设计，然后由销售人员和厂长确定。产品的成功，也让我的技术日趋提高，也为我瀛得了很高的厂内外声誉，在我远没有被评为工程师的时候，从厂长开始就上上下下都叫我&nbsp;“马工”。&nbsp;<BR>那时候的厂长是一个比较通达的人，一般我们完成一个产品设计就会让我们休整一下。由于多发奖金还是一个困难的事，所以一般都会安排骨干到各地去做市场调研，调研也是真的包括与经销商沟通和自己站柜台做一天营业员。然后会游览一下当地风景。除此之外我自己会利用这段时间和下班时间研究一些技术。&nbsp;<BR>80年代家电产品大量的使用塑料零件，这就带来了材料选择，零件设计和零件连接的很多问题。我开始研究其中的塑料零件连接技术，国内出版物已远不能回答我思考的问题。从1985年开始，我开始读《Plastic&nbsp;Design&nbsp;Forum》，《Plastic&nbsp;Engineer》，《Toshiba&nbsp;Review&nbsp;》，&nbsp;IEEE的大分子化学卷(记得是第34卷)&nbsp;等杂志&nbsp;以及《Electronic&nbsp;Packaging&nbsp;Handbook》等年鉴类书。陆续跟踪和了解这些技术6～7年时间，仅其中的小小自攻螺钉连接技术就花了2年时间。&nbsp;<BR>当时自攻螺钉刚刚开始在国内用，我们的产品仅在一些不重要的连接采用自攻螺钉，原因是它容易滑牙。而打开**的产品已100%采用自攻螺钉。用自攻螺钉能大幅度降低装配成本，我觉得这就有研究价值。我跑了南京图书馆，江苏科技情报所，江苏电子科技情报所，南大图书馆，南京化工学院图书馆，上海图书馆，上海科技情报所，北京图书馆，电子部第四研究所，沈阳790厂（电子部紧固件研究所）我收集了所有的国内外的相关书籍，杂志，中日美英德ISO标准，约200&nbsp;万字。&nbsp;<BR>1885－1990年在读这些英文资料时，我陆续将其翻译发表在省和国家级技术刊物上计4万字以上。这给我带来了2个好处，一个是我成了中国电子学会的会员，一个是在90年我被评为工程师时免考英文。1992年，经过多年的翻译，研究和实际设计经验积累，我发表了自己10万字的论文集《塑料零件连接技术》（中国音响工业协会出版），这时我在金属零件，塑料零件的设计，连接技术，包括对这些材料的知识，以及冷冲压工艺，注塑工艺有了很多独到的经验，那时候我在工厂对技术问题已不敢随便说话，因为你一说，别人就会认为是对的，就会照着做。在行业已小有名气。&nbsp;<BR>写技术论文不仅使自己进一步理清思路，也深化对问题的理解，因为你写得时候才会发现，有些问题原来自己并不很清楚，给别人讲课也是如此。写和讲都是与己与人有益的事。我后来对工程师的要求都是要会做，会写和会讲。&nbsp;<BR>电子产品的结构设计，是一个比较容易上手的工作，有1～2年工作经验的大学生就能出图，但在选材，工艺性，易装拆性，可靠性，电磁兼容性方面的技术和经验真的需要多年积累。&nbsp;<BR>我后来Interview新员工时经常问什么是电子产品的设计？什么是结构？什么是结构设计？但得到的多是大学教材里的隔靴搔痒答案。我的体会是：“结构”对零件而言，就是形状和材料；更多的情况“结构”是对2个或以上有装配关系的零件而言，就是2个或以上的零件它们的结合处的配合形状；对整机“结构”&nbsp;而言就是指零部件的布局。因此结构设计就是用最简的形状，合适的材料，精巧的连接，合理的布局实现功和性能的要求。&nbsp;<BR>10年努力，我实现了做工程师的理想，1990年我拿到了省里发的工程师证书。在国企的日子，受到的教育使自己一直感到自己是工厂的主人，是为自己在奋斗。虽然那只是一个空头支票。</P>
<P>全文见---<A href="http://www.xml.org.cn/dispbbs.asp?BoardID=70&amp;id=44382&amp;replyID=82972&amp;star=1&amp;skin=0">http://www.xml.org.cn/dispbbs.asp?BoardID=70&amp;id=44382&amp;replyID=82972&amp;star=1&amp;skin=0</A></P>]]></description>
</item><item>
<title><![CDATA[谈谈IT人的发展(好文推荐)]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=32406</link>
<author>james008</author>
<pubDate>2008/3/13 9:32:04</pubDate>
<description><![CDATA[<STRONG>谈谈IT人的发展(好文推荐)<BR></STRONG>
<DIV width="100%">
<DIV style="FLOAT: right"><STRONG></STRONG></DIV>
<DIV><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个人如果能确定他喜欢的行业，他一生都会非常幸福。相反，则往往痛苦，也许竟然会因此成为一个哲学家也说不定。 
<P></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;中国的贫穷决定了我们当中的大多数人不能根据自己的爱好来选择职业，而只是因为生活所迫，或者世风所迫——当这个社会只崇尚有钱者有权者的时候，当周围的人不断地向我们灌输这种价值观的时候，我们除非是圣人，要不然都会为之所动的，这就是众所周知的三人成虎，或者鲁迅先生说的人言可畏。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;所以，中国IT行业的从业者当中，有很大一部分做着自己不喜欢的工作。做着不喜欢的工作，倘若这种工作在另外一个方面还有补偿，例如工资不错，或者地位很高。那么即使不喜欢也会变得喜欢的。但是，倘若这种工作不能出现这种补偿，则往往意味着一种巨大的失落感。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;所以，IT人抱怨，起得比鸡早，干活儿比驴累。世人也跟着起哄，把IT人和妓女相提并论。主要是说明两者都是吃青春饭。而现在当IT人的工资降下来之后，IT人似乎练妓女都不如了。这种情况下，IT人的失望痛苦可想而知。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;到底IT人应该怎么发展？</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;第一，&nbsp;做管理。这个似乎到处都在这么说。学而优则仕，这不只是中国人的习惯。这有合理性。原因很简单。因为，如果你是行业中的优秀者，那么，当年轻人走进这个行业的时候，你可以给于他很优秀的指点，可以很快让他们从你的终点前进，相当于用你的肩膀支撑起他们。而幸运的他们，就成了站在巨人肩膀上的牛顿——如果他们竟然很幸运的话。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;第二，&nbsp;继续做技术。一个人倘若真的喜欢技术，没有年龄限制。技术可以做到老。但是技术不是重复劳动，把技术理解成单纯的编码，把编码理解成单纯的体力劳动，都是错误的。我和一个日本老头共事过，他很喜欢技术，他当时已经是富翁，然而依旧在编程。用程序实现自己的思想，这是一项非常有乐趣的事情。另外，网易的主人丁磊也可以说明问题，他早已经身价多少万了，恐怕也很老了吧，但是他现在依旧在做技术。那些以为老了不能做技术的人，需要好好研究研究什么叫技术，什么叫管理，什么叫体力活儿。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;第三，&nbsp;成为业务专家。计算机只是一种工具。在更多时候，他是为各行各业服务。IT强大的生命力，也在于他能够为各行各业服务。例如，金融行业的程序，流通行业的程序。如果你涉足某一领域，例如金融，我建议你可以选择成为业务专家。即熟悉该行业的业务，精通该行业的业务。当你成功地实现这一点儿的时候，你的地位是非常牢固的。除非IT行业和金融行业都倒掉，要不然，你就不会被裁员。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;第四，&nbsp;开公司。IT行业是最容易建立自己的公司的行业。原因之一是因为该行业从业人员素质高。第二是该行业工资高，原始积累快。第三是该行业属于技术集中形。除非非常庞大的东西，大多数都能被一个人所独立掌握。这个人就等于一个公司。如果你对你所从事的行业有心得，有独特的高超的见解，你完全可以开一个公司实现你的想法。人生苦短，六十岁之前不要怕，六十岁之后不要悔。这点我想多说几句。其实每个人进入公司，都是一个学习的过程，学习该公司的运作，学习该公司的技术，学习该公司的市场，当你把这些都学到手之后，这个公司如果没有你的一半，你就应该自己成立个公司去分一半。社会是公平的，但是要求你自己去争取。如果你连争取你的权利的勇气都没有，你只能做奴隶。而中国现在还比较落后，大多数人的观念都没有脱离封建半封建的思想，他们在原始积累阶段，不可能象外企一样提供人性的考虑问题的方法。另外，要注意成为一个全面手，具备产品意识，市场意识。不仅要掌握软件，也要掌握硬件。中国的软件盗版严重，软硬结合是一条很好的路子。当你明白你做的软件是为人服务的时候，你的产品意识就建立起来了。当你千方百计要满足你的用户的需求的时候，你的市场意识也会应运而生。当这些意识都具备之后，你成立公司并且成功是早晚的事情。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;需要强调一点，无论你选择什么道路，独创都是必须的。你必须用自己的眼睛去发现，发现那些只有你才发现的东西。创造赚钱奇迹的孙正义曾经专门训练自己的创造性。大家也可以找些书看看，试着训练一下。任何问题都有很多角度，当你能够试着换一个角度来考虑问题，你就又多了一条命。不能把自己沉入没有思考的加班加班通宵通宵拼命拼命当中，那种没有思考的工作即使是脑力劳动，也是比较低级的IT蓝领工作，他剥夺了人作为万物之灵的灵性，而让他变成了机器。而实际上，这个人是用来造机器的。如果他能够制造造机器的机器——即自动编程序的程序——那就更牛了。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;再说一点，无论在什么行业，都要努力成为这个行业的专家，这个行业的尖子。例如，做芯片，要敢于挑战INTEL；做操作系统，要敢于挑战微软；做搜索，要敢于挑战Google。无论做什么，都要不断挑战自我。天行健，君子当自强不息。当你真的能够自强不息的时候，这个世界极其辉煌灿烂的一面就会呈现在你的面前。无限风光在险峰。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;夫天地者，万物之逆旅也﹔光阴者，百代之过客也。人生呢，只不过是过客的逆旅而已。人的一生只有一次，为了能在临死的时候说，我不后悔我的一生。那么，就让我们现在就开始，为了自己的梦想上路吧。人生最精彩的部分，就是那些拥有光辉的理想，并且为了理想而奋斗不息的人的足迹。</P></DIV></DIV>]]></description>
</item><item>
<title><![CDATA[如何选择电视卡与电视盒]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=32240</link>
<author>james008</author>
<pubDate>2008/3/7 15:26:58</pubDate>
<description><![CDATA[
<P class="g_w_100 g_t_wrap g_t_center g_t_bold g_t_24 g_c_pdin c07" id=blogtitle__fks_xZUY96-5Z12rL3LvO2o61_yRL7aG_-Dy>如何选择电视卡与电视盒</P>
<DIV class=g_blog_list>
<DIV class="g_t_center g_c_pdin g_p_center c07 content" id=blogtext__fks_xZUY96-5Z12rL3LvO2o61_yRL7aG_-Dy style="WIDTH: 760px">
<P><STRONG>一、分类</STRONG></P>
<P>　　电视卡是电脑用电视接收装置一种笼统的简称，它的工作原理是将传送来的模拟电视信号转为数字信号，然后由电脑进行识别和播放。</P>
<P>　　目前的电视卡\盒可分为四种：　1、PCI电视卡；&nbsp; 2、<FONT color=#000000>PCMCIA</FONT>电视卡； 3、VGA电视盒； 4、USB电视盒。</P>
<P>　　各种类型的电视卡和电视盒的特性对比如下：</P>
<P align=center>
<TABLE cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD vAlign=top width=141>
<P align=left>&nbsp;</P></TD>
<TD vAlign=top width=132>
<P align=left><STRONG><U>电视卡</U></STRONG></P></TD>
<TD vAlign=top width=108>
<P align=left><STRONG><U>USB电视盒\电视棒</U></STRONG></P></TD>
<TD vAlign=top width=166>
<P align=left><STRONG><U>VGA电视盒</U></STRONG></P></TD></TR>
<TR>
<TD vAlign=top width=141>
<P align=left><STRONG>连接方式</STRONG></P></TD>
<TD vAlign=top width=132>
<P align=left>PCI、PCMCIA</P></TD>
<TD vAlign=top width=108>
<P align=left>USB2.0</P></TD>
<TD vAlign=top width=166>
<P align=left>直接与显示器连接</P></TD></TR>
<TR>
<TD vAlign=top width=141>
<P align=left><STRONG>脱离主机工作</STRONG></P></TD>
<TD vAlign=top width=132>
<P align=left>不可</P></TD>
<TD vAlign=top width=108>
<P align=left>不可</P></TD>
<TD vAlign=top width=166>
<P align=left>可以</P></TD></TR>
<TR>
<TD vAlign=top width=141>
<P align=left><STRONG>支持液晶显示器</STRONG></P></TD>
<TD vAlign=top width=132>
<P align=left>支持（无论液晶/CRT）</P></TD>
<TD vAlign=top width=108>
<P align=left>支持（无论液晶/CRT）</P></TD>
<TD vAlign=top width=166>
<P align=left>区分液晶/CRT，支持液晶的还区分是否支持宽屏</P></TD></TR>
<TR>
<TD vAlign=top width=141>
<P align=left><STRONG>驱动和软件</STRONG></P></TD>
<TD vAlign=top width=132>
<P align=left>必需</P></TD>
<TD vAlign=top width=108>
<P align=left>必需</P></TD>
<TD vAlign=top width=166>
<P align=left>不需要</P></TD></TR>
<TR>
<TD vAlign=top width=141>
<P align=left><STRONG>外部电源</STRONG></P></TD>
<TD vAlign=top width=132>
<P align=left>不需要</P></TD>
<TD vAlign=top width=108>
<P align=left>部分产品需要</P></TD>
<TD vAlign=top width=166>
<P align=left>必需</P></TD></TR>
<TR>
<TD vAlign=top width=141>
<P align=left><STRONG>音视频采集/电视录像</STRONG></P></TD>
<TD vAlign=top width=132>
<P align=left>可以</P></TD>
<TD vAlign=top width=108>
<P align=left>可以</P></TD>
<TD vAlign=top width=166>
<P align=left>不可</P></TD></TR>
<TR>
<TD vAlign=top width=141>
<P align=left><STRONG>清晰度</STRONG></P></TD>
<TD vAlign=top width=132>
<P align=left>较好</P></TD>
<TD vAlign=top width=108>
<P align=left>较好</P></TD>
<TD vAlign=top width=166>
<P align=left>好</P></TD></TR>
<TR>
<TD vAlign=top width=141>
<P align=left><STRONG>输出延迟</STRONG></P></TD>
<TD vAlign=top width=132>
<P align=left>小</P></TD>
<TD vAlign=top width=108>
<P align=left>明显</P></TD>
<TD vAlign=top width=166>
<P align=left>极小</P></TD></TR>
<TR>
<TD vAlign=top width=141>
<P align=left><STRONG>兼容性</STRONG></P></TD>
<TD vAlign=top width=132>
<P align=left>好</P></TD>
<TD vAlign=top width=108>
<P align=left>好</P></TD>
<TD vAlign=top width=166>
<P align=left>很好</P></TD></TR>
<TR>
<TD vAlign=top width=141>
<P align=left><STRONG>遥控功能</STRONG></P></TD>
<TD vAlign=top width=132>
<P align=left>有</P></TD>
<TD vAlign=top width=108>
<P align=left>有</P></TD>
<TD vAlign=top width=166>
<P align=left>有</P></TD></TR>
<TR>
<TD vAlign=top width=141>
<P align=left><STRONG>安装难度</STRONG></P></TD>
<TD vAlign=top width=132>
<P align=left>复杂</P></TD>
<TD vAlign=top width=108>
<P align=left>简单</P></TD>
<TD vAlign=top width=166>
<P align=left>非常简单</P></TD></TR>
<TR>
<TD vAlign=top width=141>
<P align=left><STRONG>主机配置最低要求</STRONG></P></TD>
<TD vAlign=top width=132>
<P align=left>低<BR>台式机P3 800MHz<BR>笔记本P3 <FONT color=#1b83dc>500M</FONT>Hz</P></TD>
<TD vAlign=top width=108>
<P align=left>高<BR>P4 1.8GHz</P></TD>
<TD vAlign=top width=166>
<P align=left>无要求</P></TD></TR></TBODY></TABLE></P>
<P></P>
<P>　　外置的<FONT color=#1b83dc>电视接收盒</FONT>（VGA电视盒）外形如一个调制解调器大小，是一个相对<FONT color=#1b83dc>独立</FONT>的设备。大部分电视盒都可以独立于电脑主机工作，即无需打开电脑和软件就可以利用电视盒配合显示器收看电视节目，附加功能多为了提供AV端子／S端子输入、多功能遥控、多路视频切换等。外置电视盒安装和操作都比较简单，更像在使用一件家电，只需要打开电视盒的开关和显示器即可；而且外置电视盒一般都配有类似普通电视所用的遥控器，这可以大大地提高操作的方便性。</P>
<P>　　同级产品中外置产品的收视清晰度常常优于内置的产品，因受外界因素干扰的可能性较少，所以性能比起内置的视频接收卡来说会稳定一些。另外通过电视接收盒其面板上的各种指示灯还可以对其运行状态了如指掌，这可是内置式电视卡所无法比拟的。</P>
<P>　　而它的主要缺点就是价格会比同档的内置电视卡贵不少，且很多外置电视盒都不能进行窗口播放，因此不能在同一屏幕下进行多任务的操作；并且它还需要外接专门的电源。不过，现在越来越多的高档电视盒开始支持PIP（画中画）功能，可以在显示电脑桌面的同时，在桌面的右下角甚至任何位置重叠显示电视画面窗口，从而可以“边用电脑，边看电视”。</P>
<P>　　内置电视卡一般均为PCI接口（<FONT color=#1b83dc>笔记本电脑</FONT>为PCMCIA接口），需要安装在<FONT color=#1b83dc>主板</FONT>上，在操作系统上安装专用驱动和软件后才可以使用，因此安装过程比较复杂。电视卡的最大好处是能够录像，并且可以预设录制计划，还可以自动关闭电脑，而且一般价格较低。部分高档PCI电视卡还支持定时自动开机，配合预约节目录制功能，就可以让用户不必再担心因为外出或者工作休息时间不合适，而错过想要收看的电视节目了，非常实用。</P>
<P>　　在USB接口被广泛采用后，出现了USB电视盒，既具有VGA电视盒外置、安装简单和携带方便的特点，又和内置电视卡非常相似，需要在电脑操作系统上安装相应软件后才可以使用，也能够录像。</P>
<P>　　早期的个人计算机性能很低，即使播放VCD也需要<FONT color=#1b83dc>硬件</FONT>解压卡才能够流畅播放，而现在的个人计算机性能已经相当强大，即使实时压缩高分辨率的MPEG1/MPEG2/MPE<FONT color=#000000>G4</FONT>影像也绰绰有余。因此，现在用电视卡以及USB电视盒也能录制DVD画质的影片。这里我们指的是USB2.0接口的电视盒，过去的USB1.1电视盒受限于低速的接口难以录制高品质的影片。</P>
<P>　　对于笔记本电脑来说，由于显示屏和主机的特殊连接方式，无法外接视频输入信号，所以无法使用VGA电视盒，当然PCI电视卡也不能用，所以只能选择USB电视盒和PCMCIA电视卡。但是如上所述，目前的USB电视盒要求使用USB2.0接口，而且对<FONT color=#1b83dc>CPU</FONT>的要求也较高，一般要达到相当于P4 2.4GHz以上。如果笔记本电脑的CPU主频较低，或者不支持USB2.0，就无法使用USB电视盒。但是如果CPU达到PIII 500MHz以上，还可以考虑使用PCMCIA电视卡。</P>
<P>　　PCMCIA电视卡相比USB电视盒，体积更小，数据传输速率更高，对CPU要求更低，所以性能表现更出色，特别是录制节目的效果更好，缺点就是只能用于笔记本电脑，而且价格较高。</P>
<P>　　对于喜爱电视游戏机的玩家用户，电视卡/盒的输出延迟就成为一个很重要的衡量指标。当接入PS2/XBox等游戏机输入信号时，如果电视卡/盒的输出延迟比较大，那么玩动作类游戏就无异一场灾难：玩家还没有看到画面做出反应，己方人物就被消灭了！所以必须选择没有延迟或者延迟很小的型号。</P>
<P>　　USB电视盒因为接口传输环节比较多，速度有限制，所以输出延迟比较明显，即使很高档的电脑配置（比如P4 3.0GHz以上）也无法达到满意的效果。电视卡（包括PCI和PCMCIA接口）因为接口速度高，而且与系统总线直接连接，所以输出延迟很小，可以满足绝大多数动作类游戏的要求。VGA电视盒与电视机相同，几乎没有输出延迟，是游戏玩家理想的伙伴。</P>
<P>　　关于是否支持液晶显示器，电视卡和电视盒具有不同的原理和区分。对于PCI/PCMCIA电视卡和USB电视盒来说，由于是在电脑的Windows操作系统上运行电视播放软件来看电视，因此不存在支持不支持液晶显示器的问题，也不区分液晶显示器的尺寸和类型，只要Windows桌面能够正常显示，就可以看电视，所以任何类型的显示器都没有问题。而VGA电视盒则不同，由于是直接接在显示器上，所以VGA电视盒必须控制显示器的刷新频率和分辨率；而与CRT显示器最大的区别就是，液晶显示器的刷新频率（60/75Hz）和分辨率都是相对固定不变的，因此VGA电视盒就必须要区分是否支持液晶显示器，以及是否支持宽屏液晶。随着液晶显示器的日益普及，早期的单纯用于CRT显示器的VGA电视盒逐渐被淘汰，而随着宽屏液晶的出现，厂商也推出了与之对应的宽屏<FONT color=#1b83dc>液晶电视盒</FONT>，因此VGA电视盒就分为——只支持CRT（不支持液晶）的电视盒、支持普通液晶（也支持CRT）的电视盒、支持宽屏液晶（也支持普通液晶和CRT）的电视盒——以及按照不同的最高分辨率（大尺寸液晶）来区分的各种不同的型号。</P>
<P>　　简而述之，VGA电视盒由于外置于电脑主机，抗干扰能力较好，其体积和空间对设计更加有利，其画面普遍要好过电视卡，而且无需打开电脑主机就可以使用，非常方便，但是价格稍高，还要区分是否支持液晶和宽屏液晶；PCI电视卡的功能更齐全，比如预约录像、定时自动开机等，性价比最好，但是安装比较复杂；USB电视盒特性上和电视卡相似，可以看作是外置的电视卡，既可以用于笔记本电脑，也可以用于台式机，便于携带，价格适中；而PCMCIA电视卡相当于笔记本上的PCI电视卡，但是只能用于笔记本电脑，而且价格最高。对于电视游戏玩家来说，只有电视卡和VGA电视盒才能满足动作类游戏的响应速度要求。</P>
<P style="TEXT-INDENT: 2em">二、如何选购电视卡/盒</P>
<P style="TEXT-INDENT: 2em">　　我们应该怎样选购电视卡与电视盒呢？大家可以从以下几个方面来考虑：</P>
<P style="TEXT-INDENT: 2em">　　1) 价格。无论买什么东西，价格始终是消费者最重视的部分。</P>
<P style="TEXT-INDENT: 2em">　　2) 品牌。在任何领域都有若干个名牌存在，电视卡/电视盒也不例外，目前国内市场活跃着<A href="http://search1.taobao.com/browse/search_auction.htm?commend=all&amp;q=天敏&amp;from=forum7&amp;keywordbody=1"><FONT color=#d4d4d4>天敏</FONT></A>等多个品牌，这里我们要说的是要看具体型号、真实性能而不能只注意品牌，而对于不知名产品，也可以从共性上加以分析，斟酌采用（比如同样的芯片和类似的软件），挑选品牌则是要看这些品牌的电视卡/电视盒在产品信誉、品质、质保和售后服务上能否让你满意。</P>
<P style="TEXT-INDENT: 2em">　　3) 体积和外形。外置电视盒需要考虑到是否美观、是否有利于安装放置、是否便于携带。体积太大、外形太怪异都不太好。电视卡也要看是否能顺利安装在机箱中。</P>
<P style="TEXT-INDENT: 2em">　　4) 分辨率。我们这里主要指VGA电视盒。电视盒所能支持的分辨率决定了它与显示器是否匹配。CRT显示器可以在任何支持的分辨率下都获得较好的显示效果。液晶显示器则由于像素是固定的，只能在最佳分辨率下得到较好的画面。所以，原来许多电视盒640X480@50Hz的输出能力是不敷使用的，一般的液晶电视盒均可支持1024x768的画面输出，在主流的15寸液晶显示器上，刚好可以获得比较好的画面，但对于分辨率达到1280x1024的17寸或19寸液晶显示器，需要具有同样分辨率的电视盒才能获得较好的画面。</P>
<P style="TEXT-INDENT: 2em">　　5) 刷新率。这里主要指VGA电视盒。一款好的电视盒应该可以支持多种不同的刷新率以对应不同的显示器，刷新率至少应达到75Hz才对得起自己的眼睛。除了信号问题和干扰之外，画面的闪烁和抖动常常也可能是不适宜的分辨率和刷新率造成的。</P>
<P style="TEXT-INDENT: 2em">　　6) 是否有一个性能较好的高频头。高频头充当接收和调谐电视信号的作用，和电视画面效果有着直接的关系。多数电视盒/电视卡使用飞利浦、LG、TN、TCL的高频头，而廉价的杂牌高频头往往无法取得较好的效果。绝大部分电视盒/电视卡都使用模拟高频头，现在也有些电视卡使用数字高频头（硅调谐器），其特征是没有那个看似金属盒子的模拟高频头，直接由芯片或很小的金属盒代替。使用数字高频头的电视卡一般价格较高，不过其性能却不见得优于使用模拟高频头的电视卡，因为一块差劲的电视卡就算装上纯金的高频头也还是那么差。我们要看电视卡的具体表现。</P>
<P style="TEXT-INDENT: 2em">　　7) 视频芯片。对于一些常用的视频芯片，如Philips的SAA713X系列、SAA711X系列、Conexant的2388X系列等，我们通过了解其性能就可以对电视卡/电视盒的性能有一定认识。比如SAA7130芯片对电视音频不作处理，只提供了一个到声卡的音频通道，表现为只有普通调频（Mono FM）电视伴音；SAA7133芯片在SAA7130基础上增加了对N制电视音频丽音信号的解码处理，支持N制丽音，SAA7134芯片支持PAL制丽音，而SAA7135芯片实现了全制式视频音频解码，支持任何制式的丽音，等等。这些有所了解即可。</P>
<P style="TEXT-INDENT: 2em">　　8)做工用料。好的电视卡电视盒一般用4层PCB板，布线工整抗干扰性能好，接口处采用较多的元件滤除杂讯，PCB上小型贴片元件如用于滤波、耦合的高精度容阻多而整齐，低档电视卡则是2层PCB板，整个PCB板上光秃秃的。第一眼看过后，再细看一下，是否采用了较好品质的分压器和稳压器以及电容，不同单元的晶振是否分立，元器件分布是否有规律，等等。</P>
<P style="TEXT-INDENT: 2em">　　9) 接口。电视卡/电视盒是否有齐全的接口来连接自己的各种设备，除了VGA输入输出（VGA电视盒）和USB接口（USB电视盒）之外，根据电视卡/电视盒的功能还可能有有线电视的RF接口、红外遥控接口、FM天线接口、音频输入输出接口、单独的耳机接口等，有的电视盒还具有视频输出功能，这些都可以从接口上判断出来。要采集视频就必须要有相应的接口来接受不同的视频信号，最常见的是复合视频信号(CVBS)接口，也就是通常所说的RCA接口或者复合AV接口，一般复合AV线的输出或输入都采用与音响相同的梅花形RCA端子，用红色和白色分别表示左右声道，视频信号用黄色端子。复合信号传输方便、设备结构简单、成本低，所以用得最多，不过复合视频信号是将亮度信号和色度信号采用频谱间置方法复合在一起的，所以亮色串扰、清晰度低的问题是没法解决的，一般来说只适合用在低清晰度视频信号上，比如352x288分辨率的VCD机、游戏机如PS/SS/N64等。使用S-Video（S端子）输入会获得比较好的画面，S-Video是一种亮色分离的信号，有效消除了复合视频信号中信号叠加产生的问题，一般来说用来如果设备和线材素质不差，清晰的表现VGA分辨率或者480i/480p的画面是完全没有问题的。还有的电视盒上有分量信号也就是色差接口，其效果比S-Video还要好一些，在视频应用中可以说是比较高档的选择了。</P>
<P style="TEXT-INDENT: 2em">　　10) 驱动和软件。驱动和软件是否好用，是否有兼容性问题，大部分功能也体现在软件中。特别是播放软件的功能是否强大，界面是否方便易用，是决定您每天使用电视功能是否舒适的最重要因素。</P>
<P style="TEXT-INDENT: 2em">　　11) 辅助功能。除了各种必要的功能，还有一些辅助功能我们可能会用得到：画中画、接游戏机、直接刻录等。</P></DIV></DIV>]]></description>
</item><item>
<title><![CDATA[股指期货交易中的几个重要名词,如买开仓,卖开仓等!]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=32072</link>
<author>james008</author>
<pubDate>2008/2/29 10:22:59</pubDate>
<description><![CDATA[买开仓：是指下单时买入多单，也就是对指数看多、看涨。 <BR>卖开仓：是指下单时买入空单，也就是对指数看空、看跌。 <BR>买平仓：是指下单时把买入的多单卖出。 <BR>卖平仓：是指下单时把买入的空单卖出。 <BR>买平今：是专指下单时把当天买入的多单卖出。 <BR>卖平今：是专指下单时把当天买入的空单卖出<BR><BR>商品合约：是由期货交易所统一制定的、规定在将来某一特定的时间和低点交割一定数量和质量商品的标准化合约。 <BR><BR>期货交易： 是指在期货交易所内集中买卖某种期货合约的交易活动。 <BR><BR>保证金： 是指期货交易者按照规定标准交纳的资金，用于结算和保证履约。 <BR>结算： 是指根据期货交易所公布的结算价格对交易双方的交易盈亏状况进行的资金清算。 <BR><BR>交割： 是指期货合约到期时，根据期货交易所的规则和程序，交易双方通过该期货合约所载商品所有权的转移，了结到期未平仓合约的过程。 <BR><BR>开仓： 开始买入或卖出期货合约的交易行为称为 ” 开仓 ” 或 ” 建立交易部位 ” 。 <BR><BR>平仓： 是指期货交易者买入或者卖出与其所持期货合约的品种、数量及交割月份相同但交易方向相反的期货合约，了结期货交易的行为。 <BR><BR>持仓量： 是指期货交易者所持有的未平仓合约的数量。 <BR><BR>持仓限额： 是指期货交易所对期货交易者的持仓规定的最高数额。 <BR><BR>仓单： 是指交割仓库开出并经期货交易所认定的标准化提货凭证。 <BR><BR>撮合成交： 是指期货交易所的计算机交易系统对交易双方的交易指令进行配对的过。 <BR><BR>涨跌停板： 是指期货合约在一个交易日中的交易价格不得高于或者低于规定的涨跌幅度，超出该涨跌幅度的报价将被视为无效，不能成交。 <BR><BR>强行平仓制度： 是指当客户的交易保证金不足并未在规定时间内补足，客户持仓超出规定的持仓限额，因客户违规受到处罚的，根据交易所的紧急措施应予强行平仓的，其他应予强行平仓的情况发生时，期货经纪公司为了防止风险进一步扩大，实行强行平仓的制度。 <BR><BR>头寸： 一种市场约定。期货合约买方处于多头（买空）部位，期货合约卖方处于空头（卖空）部位。 <BR><BR>基差： 同一商品当时现货市场价格与期货市场价格间的差异，如不另行指出，一般是用近期期货合约月份来计算基差。 <BR><BR>质押： 指会员提出申请并经交易所批准，将持有的权利凭证移交交易所占有，作为其履行交易保证金债务的担保行为。权利凭证质押仅限于交易保证金，但亏损、费用、税金等款项均须以货币资金结清。 <BR><BR>逼仓： 期货交易所会员或客户利用资金优势，通过控制期货交易头寸或垄断可供交割的现货商品，故意抬高或压低期货市场价格，超量持仓、交割，迫使对方违约或以不利的价格平仓以牟取暴利的行为。根据操作手法不同，又可分为 “ 多逼空 “ 和 “ 空逼多 ” 两种方式。 <BR><BR>升水： 1 ）交易所条例所允许的，对高于期货合约交割标准的商品所支付的额外费用。 2) 指某一商品不同交割月份间的价格关系。当某月价格高于另一月份价格时，我们称较高价格月份对较低价格月份升水。 3 ）当某一证券交易价格高于该证券面值时，亦称为升水或溢价。 <BR><BR>套利： 投机者或对冲者都可以使用的一种交易技术，即在某市场买进现货或期货商，同时在另一个市场卖出相同或类似的商品，并希望两个交易会产生价差而获利。 <BR><BR>期权： 又称选择权，期权交易实际上是一种权利的买卖。这种权利是指投资者可以在一定时期内的任何时候，以事先确定好的价格（称协定价格），向期权的卖方买入或卖出一定数量的某种 “ 商品 ” ，不论在此期间该 “ 商品 ” 的价格如何变化。期权合约对期限、协定价格、交易数量、种类等作出约定。在有效期内，买主可以自由选择行使转卖权利；如认为不利，则可以放弃这一权利；超过规定期限，合同则失效，买主的期权也自动失效。期权有看涨期权和看跌期权之分。 <BR><BR>空逼多： 操纵市场者利用资金或实物优势，在期货市场上大量卖出某种期货合约，使其拥有的空头持仓大大超过多方能够承接实物的能力。从而使期货市场的价格急剧下跌，迫使投机多头以低价位卖出持有的合约认赔出局，或出于资金实力接货而受到违约罚款，从而牟取暴利。 <BR><BR>多逼空： 在一些小品种的期货交易中，当操纵市场者预期可供交割的现货商品不足时，即凭借资金优势在期货市场建立足够的多头持仓以拉高期货价格，同时大量收购和囤积可用于交割的实物，于是现货市场的价格同时升高。这样当合约临近交割时，追使空头会员和客户要么以高价买回期货合约认赔平仓出局；要么以高价买入现货进行实物交割，甚至因无法交出实物而受到违约罚款，这样多头头寸持有者即可从中牟取暴利。 <BR><BR>交易量： 在某一时间内买进或卖出的商品期货合约数量。交易量通常指每一交易日成交的合约数量。 <BR><BR>空盘量： 尚未经相反的期货或期权合约相对冲，也未进行实货交割或履行期权合约的某种商品期货或期权合约总数量。 <BR><BR>结算价： 经加权后的成交价。 <BR><BR>市价指令： 交易指令形式之一。即按照市场当时的最好价格立即（尽快）买（卖）某一特定交割月份期货合约的指令。 <BR><BR>限价指令： 由客户确定价格限制或履约时间的指令。 <BR><BR>停止指令： 一种当市场价格达到某一特定水平时方可买进或卖出的指令。当商品或证券交易价格达到或高于停止价时，买进停止指令即变为市价指令，当交易价格降至或低于停止价时，卖出指令即变为市价指令。 <BR><BR>近期月份： 离交割期最近的期货合约月份，亦称现货月份。 <BR><BR>远期月份： 交割期限较长的合约月份，相对于近期（交割）月份。 <BR><BR>套期图利： 同时买进和卖出两种相关商品，并希望在日后对冲交易部位时有所获利。例如，买进和卖出同一商品、但不同交割月份的期货合约；买进和卖出相同交割月份，相同商品、但不同交易所的期货合约；买进和卖出相同交割月份，但不同商品的期货合约（但二商品间有相互关联的关系）。 <BR><BR>现金交割： 是指到期末平仓期货合约进行交割时，用结算价格来计算未平仓合约的盈亏，以现金支付的方式最终了结期货合约的交割方式。 <BR><BR>实物交割： 是指期货合约的买卖双方于合约到期时，根据交易所制订的规则和程序，通过期货合约标的物的所有权转移，将到期未平仓合约进行了结的行为。商品期货交易一般采用实物交割的方式。 <BR><BR>基本分析： 运用供应和需求信息予测未来市场价格变化的分析方法。 <BR><BR>技术分析： 利用历史价格、交易量、空盘量和其他交易数据预测未来价格趋势的价格分析方法。 <BR><BR>空头套期保值： 卖出期货合约，以防止将来卖出现货商品时因价格下跌而导致的损失。当卖出现货商品时，将先以前卖出的期货合约通过买进另一数量、类别和交割月份相等的期货合约相对冲，以结束保值。亦称卖期保值。 <BR><BR>多头套期保值： 多头套期保值是指交易者先在期货市场买进期货，以便在将来现货市场买进时不致于因价格上涨而给自己造成经济损失的一种期货交易方式。 <BR><BR>股指期货： 是一种以股票价格指数作为标的物的金融期货合约。 <BR><BR>维持保证金： 客户必须保持其保证金帐户内的最低保证金金额。 <BR><BR>履约保证金： 为确保履行合约而由期货合约买卖双方或期权卖方存放于交易帐户内的押金。商品期货保证金不是一种股票的支付，也不是为交易该商品而预付的定金，而是一种良好信誉押金。 <BR><BR>结算保证金： 确保结算会员（通常为公司或企业）将其顾客的期货和期权合约空盘履约的金融保证。结算保证金有别于客户履约保证金。客户履约保证金存放于经纪人处，而结算保证金则存放于票据交换所。<BR>]]></description>
</item><item>
<title><![CDATA[SCI、EI、ISTP]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=31937</link>
<author>james008</author>
<pubDate>2008/2/22 10:39:15</pubDate>
<description><![CDATA[
<DIV class=box2><SPAN class=Tit>SCI</SPAN></DIV>
<TABLE class="htb wr" cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD>
<DIV class="box2 p14">SCI(科学引文索引 )、EI(工程索引 )、ISTP(科技会议录索引 ) 是世界著名的三大科技文献检索系统，是国际公认的进行科学统计与科学评价的主要检索工具,其中以SCI最为重要。 <BR><BR>《科学引文索引》(Science Citation Index, SCI)是由美国科学信息研究所(ISI)1961年创办出版的引文数据库，其覆盖生命科学、临床医学、物理化学、农业、生物、兽医学、工程技术等方面的综合性检索刊物，尤其能反映自然科学研究的学术水平，是目前国际上三大检索系统中最著名的一种，其中以生命科学及医学、化学、物理所占比例最大,收录范围是当年国际上的重要期刊,尤其是它的引文索引表现出独特的科学参考价值，在学术界占有重要地位。许多国家和地区均以被SCI收录及引证的论文情况来作为评价学术水平的一个重要指标。从SCI的严格的选刊原则及严格的专家评审制度来看，它具有一定的客观性，较真实地反映了论文的水平和质量。根据SCI收录及被引证情况，可以从一个侧面反映学术水平的发展情况。特别是每年一次的SCI论文排名成了判断一个学校科研水平的一个十分重要的标准。 SCI以《期刊目次》(Current Content)作为数据源，目前自然科学数据库有五千多种期刊，其中生命科学辑收录1350种；工程与计算机技术辑收录 1030种；临床医学辑收990种；农业、生物环境科学辑收录950种；物理、化学和地球科学辑收录900种期刊。各种版本收录范围不尽相同：<BR><BR>印刷版(SCI) 双月刊 3,500种<BR>联机版(SciSearch) 周更新 5,600种<BR>光盘版(带文摘)(SCICDE) 月更新 3,500种(同印刷版)<BR>网络版(SCIExpanded) 周更新 5,600种(同联机版)&nbsp;&nbsp;<BR><BR>部分科研工作者将SCI戏称为STUPID CHINESE IDEA。<BR><BR>上世纪80年代末由南京大学最先将SCI引入科研评价体系。主要基于两个原因，一是当时处于转型期，国内学术界存在各种不正之风，缺少一个客观的评价标准；二是某些专业国内专家很少，国际上通行的同行评议不现实。<BR>“SCI目前已成为衡量国内大学、科研机构和科学工作者学术水平的最重要的甚至是惟一尺度”。<BR>然而SCI原本只是一种强大的文献检索工具。它不同于按主题或分类途径检索文献的常规做法，而是设置了独特的“引文索引”，即将一篇文献作为检索词，通过收录其所引用的参考文献和跟踪其发表后被引用的情况来掌握该研究课题的来龙去脉，从而迅速发现与其相关的研究文献。“越查越旧，越查越新，越查越深”这是科学引文索引建立的宗旨。SCI是一个客观的评价工具，但它只能作为评价工作中的一个角度，不能代表被评价对象的全部。<BR></DIV></TD></TR></TBODY></TABLE>]]></description>
</item><item>
<title><![CDATA[本体实例：]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=31883</link>
<author>james008</author>
<pubDate>2008/2/19 21:26:05</pubDate>
<description><![CDATA[<A>　本体实例：</A>
<DIV><BR><A class=contentlink href="http://protege.stanford.edu/plugins/owl/owl-library/" target=_blank><FONT color=#000050>http://protege.stanford.edu/plugins/owl/owl-library/</FONT></A>(&nbsp;by&nbsp;chencc403&nbsp;)<BR><A class=contentlink href="http://www.schemaweb.info/" target=_blank><FONT color=#000050>http://www.schemaweb.info/</FONT></A>(&nbsp;&nbsp;by&nbsp;orangebench&nbsp;)<BR><A class=contentlink href="http://www.daml.org/ontologies/" target=_blank><FONT color=#000050>http://www.daml.org/ontologies/</FONT></A>(&nbsp;by&nbsp;orangebench&nbsp;)</DIV>]]></description>
</item><item>
<title><![CDATA[xml初步]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=10868</link>
<author>james008</author>
<pubDate>2005/12/28 17:03:50</pubDate>
<description><![CDATA[<A href="http://blogger.org.cn/blog/blog.asp?name=xiaoqiao_xml">http://blogger.org.cn/blog/blog.asp?name=xiaoqiao_xml</A>]]></description>
</item><item>
<title><![CDATA[如何给开发人员讲语义web]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=9419</link>
<author>james008</author>
<pubDate>2005/10/27 10:03:07</pubDate>
<description><![CDATA[
<P>今天碰到一个朋友，是软件开发人员，向他介绍语义Web，怎样才能让他听懂呢？</P>
<P>1）元数据角度:<BR>软件开发人员一般都熟悉MIS, 所以可以考虑用MIS系统的例子图书管理系统做比较，从元数据的角度出发。</P>
<P>图书管理系统可以按作者，书名，出版社查询，是因为有元数据，即在数据库中，每个数据都有所属的字段名和表名。而Web上只能按关键词查询，是因为网页上的内容没有元数据，例如，网页上一个数字“15”，程序没法知道这个数字是年龄呢，还是个数呢，等等，当然人能够根据上下文判断出来。</P>
<P>语义Web的基本思想就是让网页上的数据都有元数据描述它，说明它的含义，这样计算机程序能够理解网页上的数据，也能更好地为大家服务。如提供类似MIS的那种查询界面，而不是关键词查询。</P>
<P>语义Web提供了一种统一的元数据描述语言，和其所用的词汇定义语言。</P>
<P>2)数据交换角度：</P>
<P>如果不同的图书管理系统要实现互操作，如馆际互借，由于不同系统的数据格式都是私有的，很难实现数据交换和共享。先讨论不同时期的数据交换方式：</P>
<P>a)Pre-Web: 在Web出现以前，要从一台机器访问另一台机器的数据，恐怕只有用软盘了。<BR>b)Web-HTML：Web出现以后，信息可以HTML格式发布在Web上，地球上的其他人都可以分享你的信息。但程序无法理解其中的内容，而且躺在数据库中的数据也无法共享，虽然别人可以用Web界面通过程序对数据库进行查询，但查询的结果还是一个网页。<BR>c)Web-XML: XML出现以后，可以消除不同数据之间的内部格式差异，可以让不同机器的程序之间交换数据（如，Web服务）。但是对N个应用程序，其数据格式虽然都是XML，但可能遵循N种DTD（XML Schema），他们之间的数据交换是N* exp(2)个映射。当然理想的方式大家都遵循一个XML Schema，但这是不现实的。<BR>d)Semantic Web-RDF: RDF的引入屏蔽了格式问题：多个不同格式的XML文档可能表示同一个意思，但可以用同一个RDF文件描述。RDF是一个元数据语言标准，用于表示数据的语义。类似的是：关系数据库系统可以互操作是因为他们基于共同的关系模型，RDF就是Web化的关系数据语言，使得Web上的数据都遵循一个数据模型！</P>
<P>上述的N个应用交换数据问题可以这样解决：每个应用把他的数据导出为RDF数据，需要数据输入的应用则只要写一个RDF数据抽取程序，这个程序对任意输入的RDF文件，在其中查询其需要的数据。当然，一个前提是基于同一个词汇表，如大家都用“Student”这个词表示学生，这个词汇表就是RDF Schema。它和XML Schema的区别在它不是约束XML数据的格式，而是描述RDF数据中词汇的含义。这样，就屏蔽了同一含义不同XML语法的问题。也就是说，RDF Schema比XML Schema更容易为大家达成一致，因为它只关心领域的概念模型，而不关心这个概念模型用XML表示出来的格式（XML Schema可以看成是概念模型的XML表示方式）。</P>
<P>3）Web搜索角度：<BR>目前的网页是让人看的，如查找信息，（如查找人口超过1000万的城市），网上购物，语义Web上的网页是让计算机看的，但并不是通过NLP技术，而是制定一个Web上数据表示语言的规范，用以描述Web内容，且让计算机能够理解。语义Web怎么实现这个查询呢？类似MIS系统的界面。</P>
<P>4）科幻小说角度：<BR>毛向辉 对Tim发表在科学美国人杂志上的Semantic Web 的翻译。</P>
<P>http://www.isaacmao.com/works/essays/archives/SementicWeb/sementic_web.htm<BR>—共产主义宣言 中文版</P>
<P>或英文版： http://www.scientificamerican.com/print_version.cfm?articleID=00048144-10D2-1C70-84A9809EC588EF21</P>
<P>参考：<BR>[1]Business Model for the Semantic Web，http://www.w3.org/DesignIssues/Business<BR>[2]XML+RDF——实现Web数据基于语义的描述 http://www-900.ibm.com/developerWorks/cn/xml/x-xmlrdf/index.shtml</P>]]></description>
</item><item>
<title><![CDATA[语义web的研究方向]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=9418</link>
<author>james008</author>
<pubDate>2005/10/27 9:31:58</pubDate>
<description><![CDATA[<DIV class=meta>语义Web在RDF和OWL正式成为标准以后，已经进入phase II的阶段，这时新成立了两个work group，分别是RDF数据访问和语义Web最佳实践和发布。从这点可以看出，RDF数据的查询和存储，语义Web的一些设计模式，以及应用经验，是下一步的研究重点。</DIV>
<DIV class=storycontent>
<P>第二，语义Web体系结构在OWL上层还是logic, proof,trust, 因此，OWL怎么和上层的结合也是热点之一，OWL Rule Language（ORL）就是典型的工作。还是就是语义Web上的信任机制。ISWC2004对Rule，trust有专门的workshop。</P>
<P>第三：RDF和OWL称为标准，并不等于其问题已经完全解决。RDF方面,怎么表达context，provenance是热点，如Named graph是代表工作。他们都是对RDF做一些语法和语义的扩展。OWL方面，对数据类型推理的更多支持，OWL DL推理的实现都还是Open problem。</P>
<P>第四：不同领域的应用：如Semantic Web Service， Agent on Semantic Web，Semantic Blogging, Semantic EMail, Semantic Portal, 基于SW技术的Knowledgement management, EBusiness，Information integration, egovenment 等等。</P>
<P>这方面的进展当然要关注两个大会：ISWC和WWW，以及相关的Workshop，如SWDB。另外，参考XML.com上的一篇文章：<A href="http://www.xml.com/pub/a/2004/05/26/www2004.html">WWW2004 Semantic Web Roundup</A>。</P>
<P>总之，语义Web还是个新兴领域，理论和应用都还有很多问题可以做。</P></DIV>]]></description>
</item><item>
<title><![CDATA[知识，本体的概念]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=9417</link>
<author>james008</author>
<pubDate>2005/10/27 9:30:12</pubDate>
<description><![CDATA[
<DIV class=meta>1) 数据, 知识 , 知识库<BR>http://computing-dictionary.thefreedictionary.com/KnowLedge</DIV>
<DIV class=storycontent>
<P>knowledge - The objects, concepts and relationships that are assumed to exist in some area of interest. A collection of knowledge, represented using some knowledge representation language is known as a knowledge base and a program for extending and/or querying a knowledge base is a knowledge-based system.</P>
<P>Knowledge differs from data or information in that new knowledge may be created from existing knowledge using logical inference. If information is data plus meaning then knowledge is information plus processing.</P>
<P>A common form of knowledge, e.g. in a Prolog program, is a collection of facts and rules about some subject.</P>
<P>For example, a knowledge base about a family might contain the facts that John is David’s son and Tom is John’s son and the rule that the son of someone’s son is their grandson. From this knowledge it could infer the new fact that Tom is David’s grandson. </P>
<P>知识是可以推理的数据,也就是说有形式化的语义的数据. 知识库就是用知识表示语言表示的一个知识的集合。</P>
<P>2）本体，本体库，领域本体<BR>本体：共享概念模型的明确的形式化规范说明<BR>领域本体：特定领域的本体，区别与通用(即领域无关的)本体，如CYC, WordNet<BR>本体库： 一个本体集合？</P>
<P>所以，知识是可以用本体表示，但并不是所有知识都适合用本体表示，如不共享的知识，即Context, 或者“我的小秘密“， 不是表达概念模型的知识，如领域的具体应用相关的知识，即一些facts。</P>
<P>但是在OWL中，本体和知识库这两个概念的区别很模糊。因为OWL本体可以包含一些facts的声明，因为一个OWL本体实际对应于一个描述逻辑的知识库。但通常来说，应用相关的facts不包含在本体中的。</P></DIV>]]></description>
</item><item>
<title><![CDATA[Semantic web 的意义何在？]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=9416</link>
<author>james008</author>
<pubDate>2005/10/27 9:22:54</pubDate>
<description><![CDATA[
<DIV class=meta>Semantic Web可以分两层理解：<BR>1）RDF是统一的元数据语言，在图书馆能用作者名，书名查询，而在Web上只能用关键词查询，原因在于Web上的数据没有元数据。 即使RDF没有推理能力，这种统一的元数据语言也非常有用。<BR>2）RDF表示的Web上的元数据还可以推理，可以发掘隐含的知识，聚集分散的知识，这就是本体的作用，因为本体提供了领域的概念模型，背景知识等等；</DIV>
<DIV class=storycontent>
<P>Semantic Web不会很快就能实现，但我一直觉得Semantic Web技术可以很快应用于实际的信息系统。</P>
<P>一些后继的想法：</P>
<P>第一层对应的实际就是RDF/RDF Schema,着重的是元数据格式； 第二层对应的就是OWL本体了，因为着重在强大的推理能力。</P>
<P>从目前来看，第一层RDF（S） 较容易被人接收，因为RDF Schema一般都比较简单，而这种统一的元数据格式又非常有用。目前较为成功的SW项目基本都在这一层面上，如FOAF，RSS 1.0(Atom)，Dublin Core。他们的一个共同特点就是简单，容易被人接受。</P>
<P>而OWL层呢，首先建个本体很麻烦，其次推理时间复杂度太高，我感觉会很难真正在Web上得到广泛应用，它的应用场景可能在一些基于SW技术的信息系统中，如企业Portal，企业的知识管理，等。</P>
<P>结果是：在Semantic Web上RDF层可能会跳过OWL层，直接和上面的层次打交道，如rule，proof, trust。</P></DIV>]]></description>
</item><item>
<title><![CDATA[语义web 的爬虫：Crawling the Semantic Web]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=9415</link>
<author>james008</author>
<pubDate>2005/10/27 9:21:10</pubDate>
<description><![CDATA[<P>语义Web上的爬虫和目前Web的爬虫有什么区别呢？<BR>1）RDF世界的链接方式是rdfs:seeAlso,和它的子属性，如rdfs:isDefinedBy<BR>2) RDF 可能嵌在HTML中，或者XML中，而这都没有标准，因此RDF数据的获取较为困难。<BR>3) RDF数据具有语义，RDF数据的聚集需要RDF Schema信息。<BR>如：IFP；owl:sameAs; 函数型属性（客体相同）<BR>4）provenance信息，不协调信息的处理<BR>5）需要利用RDF服务器 Joseki</P>]]></description>
</item><item>
<title><![CDATA[数据演化史和语义web 的应用]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=james008&amp;id=9414</link>
<author>james008</author>
<pubDate>2005/10/27 9:17:58</pubDate>
<description><![CDATA[
<DIV class=storycontent>
<P>语义Web的基本技术是：统一的元数据语言（RDF），数据具有语义，数据是Web化的，这种数据可以称为“Smart data”。</P>
<P>从数据的演化史看，早期的数据依附于程序（过程性编程），后来数据的封装，不再依附于程序，但是封闭在应用中的（OO编程），现在的开放数据（XML，可以在应用中间交换，语法互操作性），下一步就是智能数据（RDF＋ontology，开放性，语义互操作性）。 所以，语义Web技术不是一种很表面化的应用技术，而是对整个软件发展有革命性的意义。它会从根本上改变程序的设计和编写模式。正如OO对过程式编程一样。</P>
<P>因为RDF是在数据模型这一层，对传统的关系数据模型，和半结构数据模型（XML）作了重大改进，有人称为“Smart data”，即智能数据。</P>
<P>我的观点是 只要有数据（文档）处理的地方，就有RDF的用武之地。所以，大部分的软件都可以利用RDF技术。</P>
<P>这些是我的“狂言”，希望它们是对的。</P></DIV>]]></description>
</item>
</channel>
</rss>