<?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>彼岸&#183;花</title>
<link>http://blogger.org.cn/blog/blog.asp?name=babyblue</link>
<description>子轩的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[asp.net资源列表]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=24629</link>
<author>babyblue</author>
<pubDate>2007/5/11 15:56:25</pubDate>
<description><![CDATA[
<TABLE cellSpacing=0 cellPadding=0 width="98%" border=0>
<TBODY>
<TR>
<TD class=Content vAlign=top>
<P>名称：快速入门<BR>地址：<A href="http://chs.gotdotnet.com/quickstart/" target=_blank><FONT color=#0000ff>http://chs.gotdotnet.com/quickstart/</FONT></A><BR>描述：本站点是微软.NET技术的快速入门网站，我们不必再安装.NET Framework中的快速入门示例程序，直接在网上查看此示例即看。<BR></P>
<P>名称：微软官方.NET指导站点<BR>地址：<A href="http://www.gotdotnet.com/" target=_blank><FONT color=#0000ff>http://www.gotdotnet.com/</FONT></A><BR>描述：上面的站点是本站的一个子站点，本站点提供微软.NET官方信息，并且有大量的用户源代码、控件下载，微软.NET开发组的人员也经常在此站点发表一些指导性文章。<BR></P>
<P>名称：SourceForge<BR>地址：<A href="http://www.sourceforge.net/" target=_blank><FONT color=#0000ff>http://www.sourceforge.net</FONT></A><BR>描述：世界上最大的Open Source项目在线网站，上面已经有.NET的各种大型Open Source项目上千件，包括SharpDevelop、NDoc、Mono等都是在此站点发布最新源代码信息。<BR></P>
<P>名称：CodeProject<BR>地址：<A href="http://www.codeproject.com/" target=_blank><FONT color=#0000ff>http://www.codeproject.com</FONT></A><BR>描述：很多非官方的中小型示例源代及文章，相当全面，基本上我们想要的各种方面的资料都可以在此处查找。<BR></P>
<P>名称：Fabrice's weblog <BR>地址：<A href="http://dotnetweblogs.com/FMARGUERIE/Story/4139.aspx" target=_blank><FONT color=#0000ff>http://dotnetweblogs.com/FMARGUERIE/Story/4139.aspx</FONT></A><BR>描述：这是一个WebLog形式的在线日志网站，定期更新，包括.NET相关的工具、混淆器、反编译器等各种信息，十分值得收藏。<BR></P>
<P>名称：<BR>地址：<A href="http://www.aspalliance.com/aldotnet/examples/translate.aspx" target=_blank><FONT color=#0000ff>http://www.aspalliance.com/aldotnet/examples/translate.aspx</FONT></A> <BR>描述：c#翻译为vb.net，提供一个文本框，将你的C#源代码贴进去，就可以帮你翻译成VB.NET语法。<BR></P>
<P>名称：CSharpHelp<BR>地址：<A href="http://www.csharphelp.com/" target=_blank><FONT color=#0000ff>http://www.csharphelp.com</FONT></A><BR>描述： 专业的C#语言在线帮助网站，主要提供C#语言方面的技术文章。专业性很强。</P>
<P>名称：博客园<BR>地址：<A href="http://www.cnblogs.com/" target=_blank><FONT color=#0000ff>http://www.cnblogs.com</FONT></A><BR>描述：</P>
<P>名称：DotNet247<BR>地址：<A href="http://www.dotnet247.com/" target=_blank><FONT color=#0000ff>http://www.dotnet247.com</FONT></A><BR>描述：最好的索引网站，分别按照门类及命名空间的索引，也提供了Microsoft KB知识库。 <BR></P>
<P>名称：ASP.NET<BR>地址：<A href="http://www.asp.net/" target=_blank><FONT color=#0000ff>http://www.asp.net</FONT></A><BR>描述：微软.NET webform的老巢，资料和实例代码都非常难得。<BR></P>
<P>名称：微软.NET Winform<BR>地址：<A href="http://www.windowsforms.net/" target=_blank><FONT color=#0000ff>http://www.windowsforms.net/</FONT></A><BR>描述：微软.NET Winform的老巢。<BR></P>
<P>名称：微软 KnowledgeBase <BR>地址：<A href="http://support.microsoft.com/" target=_blank><FONT color=#0000ff>http://support.microsoft.com/</FONT></A><BR>描述：微软知识库，开发的时候遇到的怪问题，可能会在这里找到答案。<BR></P>
<P>名称：MSDN <BR>地址：<A href="http://msdn.microsoft.com/" target=_blank><FONT color=#0000ff>http://msdn.microsoft.com/</FONT></A><BR>描述：这个就不用多说了吧，虽然出了中文MSDN，但是资料还是不够全，英文的就什么都有了。<BR></P>
<P>名称：HotScripts <BR>地址：<A href="http://www.hotscripts.com/" target=_blank><FONT color=#0000ff>http://www.hotscripts.com/</FONT></A><BR>描述：Welcome to HotScripts.com, the net’s largest PHP, CGI, Perl, javascript and ASP script collection and resource web portal. We currently have 24,004 scripts across 11 different programming languages and 1,240 categories, as well as links to books, articles, as well as programming tips and tutorials. <BR></P>
<P>名称：ASPAlliance <BR>地址：<A href="http://www.aspalliance.com/" target=_blank><FONT color=#0000ff>http://www.aspalliance.com/</FONT></A><BR>描述：提供相当丰富的文章和示例代码，思路匮乏的时候可以找找思路<BR></P>
<P>名称：CSDN文档中心 <BR>地址：<A href="http://dev.csdn.net/" target=_blank><FONT color=#0000ff>http://dev.csdn.net/</FONT></A><BR>描述：中文的，资料还算丰富，可以作为国内首选。<BR></P>
<P>名称：DOTNET中华网 <BR>地址：<A href="http://www.aspxcn.com/" target=_blank><FONT color=#0000ff>http://www.aspxcn.com/</FONT></A><BR>描述：2002-2003年的时候这个站点很不错的，不过现在好像管理不得力，有点疲软，资料更新也不过及时，论坛里人也不够热心了，因为希望它好起来，所以列出来。资料都比较老，不过有些D版的东西还可以。提供很多学习代码。<BR></P>
<P>名称：中国DotNet俱乐部 <BR>地址：<A href="http://www.chinaspx.com/" target=_blank><FONT color=#0000ff>http://www.chinaspx.com/</FONT></A><BR>描述：有点公司背景的网站，很健壮，资料更新及时，比较丰富。论坛解答也不错。<BR></P>
<P>名称：【孟宪会之精彩世界】 <BR>地址：<A href="http://dotnet.aspx.cc/" target=_blank><FONT color=#0000ff>http://dotnet.aspx.cc/</FONT></A><BR>描述：MS-MVP的个人站点，包括了他所有的经验文章，还是很值得一看的。<BR></P>
<P>名称：dotNET Tools.org <BR>地址：<A href="http://www.dotnettools.org/" target=_blank><FONT color=#0000ff>http://www.dotnettools.org</FONT></A><BR>描述：ccboy，也就是CSDN的小气的神的站点，里面有很多关于.NET等的好东东。<BR></P>
<P>名称：博客堂 <BR>地址：<A href="http://blog.joycode.com/" target=_blank><FONT color=#0000ff>http://blog.joycode.com/</FONT></A><BR>描述：半官方性质的MS-MVP汇集blog，大家可以在这里接触到最新的技术，了解发展趋势，对技术的探索等等，优秀的文章。<BR></P>
<P>名称：DotNetBips.com - Applying .NET <BR>地址：<A href="http://www.dotnetbips.com/" target=_blank><FONT color=#0000ff>http://www.dotnetbips.com/</FONT></A><BR>描述：该站点的文章，涉及到了整个.NET，从底层的IL到语言到架构，文章很多，质量还不错。<BR></P>
<P>名称：C# Frequently Asked Questions<BR>地址：<A href="http://blogs.msdn.com/csharpfaq/" target=_blank><FONT color=#0000ff>http://blogs.msdn.com/csharpfaq/</FONT></A><BR>描述：The C# team posts answers to common questions<BR></P>
<P>名称：正则表达式<BR>地址：<A href="http://www.regexplib.com/" target=_blank><FONT color=#0000ff>http://www.regexplib.com/</FONT></A><BR>描述:&nbsp; 正则表达式学习站点 <BR></P>
<P>名称：WINDOW formS FAQ <BR>地址：<A href="http://www.syncfusion.com/FAQ/Winforms/" target=_blank><FONT color=#0000ff>http://www.syncfusion.com/FAQ/Winforms/</FONT></A><BR>描述：常见的forms faq问题，很多问题都可以在这里找到答案。 <BR></P>
<P>名称：ASP.NET 常用类库说明<BR>地址：<A href="http://www.123aspx.com/rotor/default.aspx" target=_blank><FONT color=#0000ff>http://www.123aspx.com/rotor/default.aspx</FONT></A><BR>描述：不用多说，看标题就知道是关于asp.net的名称空间的<BR></P>
<P>名称：ASP.NET System.Web.Mail <BR>地址：<A href="http://www.systemwebmail.com/faq/3.8.aspx" target=_blank><FONT color=#0000ff>http://www.systemwebmail.com/faq/3.8.aspx</FONT></A><BR>描述：邮件发送常见问题解决方法<BR></P>
<P>名称：VB.NET &amp; C# 比较<BR>地址：<A href="http://www.harding.edu/USER/fmccown/WWW/vbnet_csharp_comparison.html" target=_blank><FONT color=#0000ff>http://www.harding.edu/USER/fmccown/WWW/vbnet_csharp_comparison.html</FONT></A><BR>描述：VB.NET跟C#语法区别<BR></P>
<P>名称：VB.NET架构师　BLOG<BR>地址：<A href="http://panopticoncentral.net/" target=_blank><FONT color=#0000ff>http://panopticoncentral.net/</FONT></A><BR>描述：不用多说，想了解VB.NET的朋友不可不去的站点(PS，不知道我有没有记错是不是这个地址）<BR></P>
<P>名称：索克论坛<BR>地址：<A href="http://www.sorke.com/bbs/Boards.asp" target=_blank><FONT color=#0000ff>http://www.sorke.com/bbs/Boards.asp</FONT></A><BR>描述：我想应该是国内最好的第三方.NET控件的下载基地</P></TD></TR>
<TR>
<TD height=5>&nbsp;&nbsp;</TD></TR></TBODY></TABLE>]]></description>
</item><item>
<title><![CDATA[vb.net与时间设定有关的资料]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=24628</link>
<author>babyblue</author>
<pubDate>2007/5/11 15:44:59</pubDate>
<description><![CDATA[
<TABLE cellSpacing=0 cellPadding=0 width=558 bgColor=#eff0e0 border=0>
<TBODY>
<TR>
<TD width=10><IMG height=1 src="http://www.builder.com.cn/images/margin.gif" width=10></TD>
<TD vAlign=top>
<TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#f4f4f4 border=0>
<TBODY>
<TR>
<TD vAlign=top><SPAN class=mdeck>
<HR>
<B>VB.NET</B></SPAN></TD></TR>
<TR>
<TD colSpan=2 height=10></TD></TR></TBODY></TABLE><A class=textblack href="http://www.builder.com.cn/2007/0410/386080.shtml" target=_blank><B>如何建立一个VB.NET日期/时间值</B></A><BR><SPAN class=text1>当你需要从一组特定的部分组合一个完整的日期/时间值时，你可以加载Date对象的结构器，并给它分配必要的日期/时间部分。本文说明如何执行这一功能。</SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2007/0405/385187.shtml" target=_blank><B>在VB.NET中利用Split和Replace函数计算</B></A><BR><SPAN class=text1>当你需要确定一个长字符串中的字数时，你可以使用VB.NET中的一个简单函数来获得所需要的结果。</SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2007/0327/383536.shtml" target=_blank><B>在VB.NET中如何确定两个日期之间的天数</B></A><BR><SPAN class=text1>如果你需要一种简单的方法来计算出给定两个日期间的天数，不妨考虑使用VB.NET中的TimeSpan对象。</SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2007/0326/383232.shtml" target=_blank><B>利用VB.NET Stopwatch对象记录时间</B></A><BR><SPAN class=text1>在本例中我创建了变量stpWatchInfo用作一个Stopwatch对象。然后我利用该对象的Start方法启动该对象来跟踪记录经过的时间。</SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2007/0124/364945.shtml" target=_blank><B>如何利用VB.Net生成动态“关于”对话框</B></A><BR><SPAN class=text1>无论你在什么时侯需要做一个 VB.NET程序的 “关于”来显示你的程序版本信息，你也许会想到利用System.Reflection类来得到这些动态信息，但实际上要实现这个功能你并不需要编辑复杂的代码。</SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2007/0123/364918.shtml" target=_blank><B>如何用VB.NET Timer控件按设定的间隔完</B></A><BR><SPAN class=text1>开发者经常需要定期或在一个设定的时间间隔后完成某个特殊的动作。在这篇教程中，我将向你说明如何在应用程序中应用Timer控件。</SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2007/0123/364885.shtml" target=_blank><B>建立一个用户无法移动的VB.NET表</B></A><BR><SPAN class=text1>在VB.NET中，有两个简单的方法可以确保表无法移动。在本文中，我将介绍这两个方法。一种是建立一个无边框表，一种是建立一个有边框表。</SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2007/0108/351392.shtml" target=_blank><B>.NET</B></A><BR><SPAN class=text1></SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2006/1221/346827.shtml" target=_blank><B>VB.NET结构化异常处理基础</B></A><BR><SPAN class=text1>VB语言的最显著变化之一就是在VB.NET中引入了结构化异常处理功能。虽然最新版的VB语言依然支持错误处理的On Error Goto类，但它已非首选，相反，你应该使用结构化错误处理。</SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2006/1123/336906.shtml" target=_blank><B>使用vb.net代码实现图像水印技术</B></A><BR><SPAN class=text1>本文提供一个水印的vb.net应用程序及其完整的源代码和类文件，您可通过运行该程序更为清楚地认识图像水印技术。</SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2006/1110/332862.shtml" target=_blank><B>用VB.NET实现一次运行一个应用程序实例</B></A><BR><SPAN class=text1>为了确定某个VB.NET程序是否有其他实例在运行，您需要获得一个正在运行的所有进程的列表，看看这个应用程序是否只有一个实例在运行。</SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2006/1024/327065.shtml" target=_blank><B>用VB.NET设定当前工作路径</B></A><BR><SPAN class=text1>如果一名开发者希望在代码中使用相对路径而非绝对路径，那么设定当前工作路径的能力迟早会派上用场。在本教程中，我说明如何用VB.NET设定当前工作路径。</SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2006/0929/319578.shtml" target=_blank><B>如何在VB.NET中实现和利用SortedLists</B></A><BR><SPAN class=text1>程序开发员在向分类的对象集中添加或删除条目时，可以使用SortedLists。在本文，我将阐述在VB.NET中如何实现和利用SortedLists。</SPAN><BR><BR><A class=textblack href="http://www.builder.com.cn/2003/1126/102198.shtml" target=_blank><B>简单调整VB.NET中的控件</B></A><BR><SPAN class=text1>您也许会苦恼调整vb6控件大小和位置。这回Visual Basic .NET为我们带来了便捷的方法。</SPAN><BR></TD></TR></TBODY></TABLE>]]></description>
</item><item>
<title><![CDATA[Oracle 数据库导入导出和windows环境下的oracle服务]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=24452</link>
<author>babyblue</author>
<pubDate>2007/4/30 11:00:12</pubDate>
<description><![CDATA[执行环境：可以在SQLPLUS.EXE或者DOS（命令行）中执行，<BR>&nbsp;DOS中可以执行时由于 在oracle 8i 中&nbsp; 安装目录\ora81\BIN被设置为全局路径，<BR>&nbsp;该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。<BR>&nbsp;oracle用java编写，我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。<BR>&nbsp;SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类，完成导入导出功能。<BR>&nbsp;<BR>下面介绍的是导入导出的实例，向导入导出看实例基本上就可以完成，因为导入导出很简单。<BR>数据导出：<BR>exp <A href="mailto:qhmis/qhmis@qhmis">qhmis/qhmis@qhmis</A>&nbsp; file='d:\backup\qhmis\qhmis20060526.dmp'&nbsp; grants=y&nbsp; full=n<BR>&nbsp;1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中<BR>&nbsp;&nbsp; exp <A href="mailto:system/manager@TEST">system/manager@TEST</A> file=d:\daochu.dmp full=y<BR>&nbsp;2 将数据库中system用户与sys用户的表导出<BR>&nbsp;&nbsp; exp <A href="mailto:system/manager@TEST">system/manager@TEST</A> file=d:\daochu.dmp owner=(system,sys)<BR>&nbsp;3 将数据库中的表table1 、table2导出<BR>&nbsp;&nbsp; exp <A href="mailto:system/manager@TEST">system/manager@TEST</A> file=d:\daochu.dmp tables=(table1,table2)&nbsp;<BR>&nbsp;4 将数据库中的表table1中的字段filed1以"00"打头的数据导出<BR>&nbsp;&nbsp; exp <A href="mailto:system/manager@TEST">system/manager@TEST</A> file=d:\daochu.dmp tables=(table1)&nbsp;query=\" where filed1 like '00%'\"<BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; 上面是常用的导出，对于压缩我不太在意，用winzip把dmp文件可以很好的压缩。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不过在上面命令后面 加上 compress=y&nbsp; 就可以了 
<P>数据的导入<BR>&nbsp;1 将D:\daochu.dmp 中的数据导入 TEST数据库中。<BR>&nbsp;&nbsp; imp <A href="mailto:system/manager@TEST">system/manager@TEST</A>&nbsp; file=d:\daochu.dmp<BR>&nbsp;&nbsp; 上面可能有点问题，因为有的表已经存在，然后它就报错，对该表就不进行导入。<BR>&nbsp;&nbsp; 在后面加上 ignore=y 就可以了。<BR>&nbsp;2 将d:\daochu.dmp中的表table1 导入<BR>&nbsp;imp <A href="mailto:system/manager@TEST">system/manager@TEST</A>&nbsp; file=d:\daochu.dmp&nbsp; tables=(table1)&nbsp;<BR>下面这句是执行将c盘的oracle的备份的用户qhmis导入到用户qhmis的数据库<BR>imp <A href="mailto:qhmis/qhmis@qhmis">qhmis/qhmis@qhmis</A>&nbsp; file='c:qhmis20060224.dmp'&nbsp; ignore=n&nbsp; grants=y&nbsp; full=y</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">将一个数据库的某用户的所有表导到另外数据库的一个用户下面的例子　　&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">exp</SPAN><SPAN style="COLOR: #000000">&nbsp;userid</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">system</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">manager&nbsp;owner</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">username1&nbsp;</SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">expfile.dmp&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>imp&nbsp;userid</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">system</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">manager&nbsp;fromuser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">username1&nbsp;touser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">username2&nbsp;ignore</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;</SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">expfile.dmp&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>ORACLE数据库有两类备份方法。第一类为物理备份，该方法实现数据库的完整恢复，但数据库必须运行在归挡模式下（业务数据库在非归挡模式下运行），且需要极大的外部存储设备，例如磁带库；第二类备份方式为逻辑备份，业务数据库采用此种方式，此方法不需要数据库运行在归挡模式下，不但备份简单，而且可以不需要外部存储设备。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>数据库逻辑备份方法&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>ORACLE数据库的逻辑备份分为三种模式：表备份、用户备份和完全备份。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>表模式&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>备份某个用户模式下指定的对象（表）。业务数据库通常采用这种备份方式。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若备份到本地文件，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">exp</SPAN><SPAN style="COLOR: #000000">&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;compress</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_icdmain_csd_yyyymmdd.dmp&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_icdmain_csd_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tables</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若直接备份到磁带设备，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">exp</SPAN><SPAN style="COLOR: #000000">&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;compress</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_icdmain_csd_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tables</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>注：在磁盘空间允许的情况下，应先备份到本地服务器，然后再拷贝到磁带。出于速度方面的考虑，尽量不要直接备份到磁带设备。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>用户模式&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若备份到本地文件，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">exp</SPAN><SPAN style="COLOR: #000000">&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;owner</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;compress</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_icdmain_yyyymmdd.dmp&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_icdmain_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若直接备份到磁带设备，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">exp</SPAN><SPAN style="COLOR: #000000">&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;owner</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;compress</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_icdmain_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>注：如果磁盘有空间，建议备份到磁盘，然后再拷贝到磁带。如果数据库数据量较小，可采用这种办法备份。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>完全模式&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>备份完整的数据库。业务数据库不采用这种备份方式。备份命令为：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">exp</SPAN><SPAN style="COLOR: #000000">&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;compress</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">full</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_fulldb_yyyymmdd.dmp(磁带设备则为</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0)&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_fulldb_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>对于数据库备份，建议采用增量备份，即只备份上一次备份以来更改的数据。增量备份&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">exp</SPAN><SPAN style="COLOR: #000000">&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;compress</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">full</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;inctype</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">incremental&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_fulldb_yyyymmdd.dmp(磁带设备则为</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0)&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_fulldb_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>注：关于增量备份必须满足下列条件：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">1</SPAN><SPAN style="COLOR: #000000">.&nbsp;只对完整数据库备份有效，且第一次需要full</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y参数，以后需要inctype</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">incremental参数。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">2</SPAN><SPAN style="COLOR: #000000">.&nbsp;用户必须有EXP_FULL_DATABASE的系统角色。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">3</SPAN><SPAN style="COLOR: #000000">.&nbsp;话务量较小时方可采用数据库备份。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">4</SPAN><SPAN style="COLOR: #000000">.&nbsp;如果磁盘有空间，建议备份到磁盘，然后再备份到磁带。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>业务数据库备份方法及周期&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>用EXP进行备份前，先在SYS用户下运行CATEXP.SQL文件（如果以前已运行该文件，则不要执行这个脚本）。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>没有特殊说明，不允许在客户端执行备份命令。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>备份命令参照表模式下的备份命令。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>从磁盘文件备份到磁带&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>如果首先备份到本地磁盘文件，则需要转储到磁带设备上。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">1</SPAN><SPAN style="COLOR: #000000">.&nbsp;若需查看主机上配置的磁带设备，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>lsdev&nbsp;</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="COLOR: #000000">Cc&nbsp;</SPAN><SPAN style="COLOR: #0000ff">tape</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>显示的结果如下例所示：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>rmt0&nbsp;Available&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">30</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">58</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">00</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">2</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;SCSI&nbsp;4mm&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Tape</SPAN><SPAN style="COLOR: #000000">&nbsp;Drive&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>rmt1&nbsp;Defined　&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">30</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">58</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">00</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;SCSI&nbsp;4mm&nbsp;</SPAN><SPAN style="COLOR: #0000ff">Tape</SPAN><SPAN style="COLOR: #000000">&nbsp;Drive&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>标明Available的设备是可用的磁带设备。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">2</SPAN><SPAN style="COLOR: #000000">.&nbsp;若需查看磁带存储的内容，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tar&nbsp;</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="COLOR: #000000">tvf&nbsp;</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>显示的结果如下例所示：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="COLOR: #000000">rw</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="COLOR: #000000">r</SPAN><SPAN style="COLOR: #008080">--</SPAN><SPAN style="COLOR: #008080">r--&nbsp;300&nbsp;400&nbsp;8089600&nbsp;Jan&nbsp;11&nbsp;14:33:57&nbsp;2001&nbsp;exp_icdmain_20010111.dmp&nbsp;</SPAN><SPAN style="COLOR: #008080"><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">如果显示类似如下内容，则表示该磁带存储的备份数据是从数据库直接备份到磁带上，而非从本地磁盘转储到磁带的备份文件，因此操作系统无法识别。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tar:&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0511</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">193</SPAN><SPAN style="COLOR: #000000">&nbsp;An&nbsp;error&nbsp;occurred&nbsp;</SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000">&nbsp;reading&nbsp;</SPAN><SPAN style="COLOR: #0000ff">from</SPAN><SPAN style="COLOR: #000000">&nbsp;the&nbsp;media.&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>There&nbsp;</SPAN><SPAN style="COLOR: #0000ff">is</SPAN><SPAN style="COLOR: #000000">&nbsp;an&nbsp;input&nbsp;</SPAN><SPAN style="COLOR: #808080">or</SPAN><SPAN style="COLOR: #000000">&nbsp;output&nbsp;error.&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>或&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tar:&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0511</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">169</SPAN><SPAN style="COLOR: #000000">&nbsp;A&nbsp;directory&nbsp;checksum&nbsp;error&nbsp;</SPAN><SPAN style="COLOR: #0000ff">on</SPAN><SPAN style="COLOR: #000000">&nbsp;media;&nbsp;</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">267331077</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #808080">not</SPAN><SPAN style="COLOR: #000000">&nbsp;equal&nbsp;</SPAN><SPAN style="COLOR: #0000ff">to</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">25626</SPAN><SPAN style="COLOR: #000000">.&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">3</SPAN><SPAN style="COLOR: #000000">.&nbsp;对于新磁带或无需保留现存数据的磁带，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tar&nbsp;</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="COLOR: #000000">cvf&nbsp;</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0&nbsp;exp_icdmain_yyyymmdd.dmp&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>注：A.&nbsp;该命令将无条件覆盖磁带上的现存数据。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>　&nbsp;B.&nbsp;文件名不允许包含路径信息，如：</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #0000ff">backup</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">exp_icdmain_yyyymmdd.dmp。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">4</SPAN><SPAN style="COLOR: #000000">.&nbsp;对于需要保留现存数据的磁带，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tar&nbsp;</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="COLOR: #000000">rvf&nbsp;</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0&nbsp;exp_icdmain_yyyymmdd.dmp&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>注：该命令将文件exp_icdmain_yyyymmdd.dmp追加到磁带的末端，不会覆盖现存的数据。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>特别强调：如果备份时是从数据库直接备份到磁带上，则不可再向该磁带上追加复制任何其他文件，否则该备份数据失效。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">5</SPAN><SPAN style="COLOR: #000000">.&nbsp;若需将转储到磁带上的备份文件复制到本地硬盘，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>A.&nbsp;将磁带上的全部文件复制到本地硬盘的当前目录&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tar&nbsp;</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="COLOR: #000000">xvf&nbsp;</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>B.&nbsp;将磁带上的指定文件复制到本地硬盘的当前目录&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tar&nbsp;</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="COLOR: #000000">xvf&nbsp;</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0&nbsp;exp_icdmain_yyyymmdd.dmp&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>备份时间安排&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>由于备份时对系统I</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">O有较大影响，所以，建议在晚上11点以后进行备份工作。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>业务数据库Oracle版本的恢复，恢复方案需根据备份方案确定。由于业务数据库采用表备份和用户备份相结合的方案，所以业务数据库的恢复需根据实际情况采用表恢复和用户恢复相结合的方案。<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>恢复方案&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>数据库的逻辑恢复分为表恢复、用户恢复、完全恢复三种模式。<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>表模式&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>此方式将根据按照表模式备份的数据进行恢复。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>A.&nbsp;恢复备份数据的全部内容&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若从本地文件恢复，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>imp&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;fromuser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;touser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">commit</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;ignore</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_icdmain_cs&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>d_yyyymmdd.dmp&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">imp_icdmain_csd_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若从磁带设备恢复，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>imp&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;fromuser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;touser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">commit</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;ignore</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">imp_icdmain_csd_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>B.&nbsp;恢复备份数据中的指定表&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若从本地文件恢复，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>imp&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;fromuser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;touser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">commit</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;ignore</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_icdmain_cs&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>d_yyyymmdd.dmp&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">imp_icdmain_csd_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tables</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">commoninformation,serviceinfo&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若从磁带设备恢复，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>imp&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;fromuser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;touser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">commit</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;ignore</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">imp_icdmain_csd_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tables</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">commoninformation,serviceinfo&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>用户模式&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>此方式将根据按照用户模式备份的数据进行恢复。&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>A.&nbsp;恢复备份数据的全部内容&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若从本地文件恢复，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>imp&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;fromuser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;touser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">commit</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;ignore</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_icdmain_yy&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>yymmdd.dmp&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">imp_icdmain_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若从磁带设备恢复，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>imp&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;fromuser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;touser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">commit</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;ignore</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">imp_icdmain_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>B.&nbsp;恢复备份数据中的指定表&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若从本地文件恢复，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>imp&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;fromuser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;touser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">commit</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;ignore</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_icdmain_yy&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>yymmdd.dmp&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">imp_icdmain_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tables</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">commoninformation,serviceinfo&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若从磁带设备恢复，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>imp&nbsp;icdmain</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">icd&nbsp;fromuser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;touser</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">icdmain&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">commit</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;ignore</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">imp_icdmain_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tables</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">commoninformation,serviceinfo&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>完全模式&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>如果备份方式为完全模式，采用下列恢复方法：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若从本地文件恢复，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>imp&nbsp;system</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">manager&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;</SPAN><SPAN style="COLOR: #0000ff">commit</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;ignore</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">full</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">exp_icdmain_yyyymmdd.dmp&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">imp_icdmain_yyyymmdd.</SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>若从磁带设备恢复，使用如下命令：&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>imp&nbsp;system</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">manager&nbsp;rows</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;indexes</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">n&nbsp;</SPAN><SPAN style="COLOR: #0000ff">commit</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;buffer</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">65536</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>feedback</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">100000</SPAN><SPAN style="COLOR: #000000">&nbsp;ignore</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;volsize</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">full</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">y&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">file</SPAN><SPAN style="COLOR: #808080">=/</SPAN><SPAN style="COLOR: #000000">dev</SPAN><SPAN style="COLOR: #808080">/</SPAN><SPAN style="COLOR: #000000">rmt0&nbsp;<BR><IMG alt="" src="http://ghd258.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">log</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #000000">imp_icdmain_yyyymmdd.</SPAN><SPAN styl]]></description>
</item><item>
<title><![CDATA[OWL相关概念——XML、RDF、OWL的关系]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=21546</link>
<author>babyblue</author>
<pubDate>2007/1/8 9:52:32</pubDate>
<description><![CDATA[
<P>&nbsp;&nbsp;&nbsp; Ontology来源于哲学词汇：存在论（也有翻译成本体论）。RDF是一种不错的本体描述方式，我们可以定义根据对现实世界的理解针对某个领域定义词汇来描述这个领域的知识。但RDF与RDF不能定义同义词、反义词以及描述词与词间的关系（类与类之间的关系），比如说等价性、互补排斥性、限制个数、属性的对称性等。OWL弥补了RDF的不足，运用AI中的逻辑论（逻辑论中，把人们的思维用式子来表述，并且证明这些式子的正确性）来赋予网给以语义，形成SW。在SW的定义中，吸收了很多知识的优点，如OO，逻辑论、树结构等。<BR>
<P>从HTML到XML</P>
<P>&nbsp;&nbsp;&nbsp; HTML是我们最常用的文档标记语言，并且已广泛应用于WEB上。HTML可用来描述资源，但其的特点限制了其生成的文档只有人可以看得懂。HTML有两大不足限制其发展：一是其结构不明显，很难被应用程序解析；二是描述的局限性，如无法描述某些科学符号。<BR>&nbsp;&nbsp;&nbsp; 为了让应用程序能够理解文档，就需要良好的结构，于是最简单但功能强大的树状结构就被采用了。用树状结构来描述数据就生成了XML。XML为在各种应用程序间以及meta数据的交换提供了一致的体系和解析器。但XML本身没有进行任何语义的定义（或说弱语义定义），即其描述的数据的语义机器无法理解。<BR>&nbsp;&nbsp;&nbsp; 理解数据的首要条件是更准备地记录数据结构与类型。预定义的最基本的数据类型不能很好地满足大多数现实生活中数据要求。我们需要更清楚地描述数据类型，即更给出数据更严格的限制。XML Schema提供了在预定义的类型上自定义数据类型，而且这种数据类型可以被解析器解析。</P>
<P>XML Schema</P>
<P>&nbsp;&nbsp;&nbsp; XML Schema（XML的定义机制）提供了在XML中可以利用的基本的数据类型（如date,string等，DTD中只提供了string），通过对已有的类型进行扩张或者进行制约，从而定义新的类型。和DTD文档类型不同，XML Schema不需要另外的解析器和编辑器。<BR>&nbsp;&nbsp;&nbsp; 但XML Schema只是对文档的结构进行了定义，仍然不能让应用程序理解数据的语义。为了实现让应用程序理解数据，就出现了RDF。</P>
<P>
<P>从XML到RDF</P>
<P>&nbsp;&nbsp;&nbsp; RDF(Resource Description Framework)并不是一种语言，只是一种书写规范。RDF的基本构造为陈述(或声明，Statement)，表述了一个（资源，资源所具有的属性，属性值）（即主体—属性—客体）的三元组。RDF表现的是一个数据模型，简言之就是一个陈述就是一个什么事物（资源），这个事物具有什么属性，这些属性应该有什么样的属性值。XML用来做为描述这种抽象的数据模型的具体书写方式（不用XML，也可以用其他的构成来表现RDF）。同样因为现实世界的超级复杂性，预定义的词汇根本不够用，我们就使用RDF Schema来自定义词汇。<BR>&nbsp;&nbsp;&nbsp; RDF描述资源的特性是：以属性为中心的思考方法。不是重在定义属性的值，而是通过定义拥有这个属性的主体（资源）的范围（定义域），以及这个属性的取值范围（值域）。这样我们就可以比较精确地定义词汇，不是精确是因为我们不可能也没必要精确定义词汇，我们更关心的是词汇者的相互关系，即我们不能想让机器理解某个词汇，还是要让其理解词汇之间的相互关系，从而能为我们提供智能的服务。</P>
<P>RDF Schema</P>
<P>&nbsp;&nbsp;&nbsp; RDFS翻译为资源描述框架的定义机制。其与RDF的关系不同于XML与XMLS间的关系。XMLS是用来对XML的结构（构造）进行定义，而RDFS是用来对RDF数据模型用到的词汇进行定义。</P>
<P>&nbsp;&nbsp;&nbsp; RDF+RDFS不能为我们提供描述词汇间的关系，导致OWL的出现。</P>
<P>
<P>OWL</P>
<P>&nbsp;&nbsp;&nbsp; 是由DAML(DARPA Agent Markup Language)+OIL(Ontology Inference Layer)演变而来。<BR>&nbsp;&nbsp;&nbsp; OWL是RDF的扩张，为我们提供了更广泛的定义RDFS词汇的功能，更广泛意指可以定义词汇之间的关系，类与类间的关系，属性与属性之间的关系等。</P><BR>]]></description>
</item><item>
<title><![CDATA[HOW TO：使用 C# .NET 对 XML 文档应用 XSL 转换]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=21518</link>
<author>babyblue</author>
<pubDate>2007/1/7 10:19:44</pubDate>
<description><![CDATA[转载自: <A href="http://support.microsoft.com/kb/307322/zh-cn" target=_blank>http://support.microsoft.com/kb/307322/zh-cn</A><BR>
<H2 class=subTitle id=tocHeadRef>概要</H2>
<SCRIPT type=text/javascript>loadTOCNode(1, 'summary');</SCRIPT>

<DIV class=sbody>本文描述如何使用<B> XslTransform </B>类将可扩展样式表语言 (XSL) 转换 (XSLT) 应用于可扩展标记语言 (XML) 文档，以创建一个新的 XML 文档。 XSL 是一种基于 XML 的语言，用于将一个 XML 文档转换为另一个 XML 文档，或者将一个 XML 文档转换为任何其他结构的文档。 <BR><BR>
<DIV class=topOfPage>&nbsp;</DIV>
<H3 id=tocHeadRef><SPAN><A id=2></A></SPAN>要求 </H3>
<SCRIPT type=text/javascript>loadTOCNode(2, 'summary');</SCRIPT>
下表概括了推荐使用的硬件、软件、网络架构以及所需的 Service Pack： 
<TABLE class="list ul">
<TBODY>
<TR>
<TD class=bullet><FONT size=2>&#8226;</FONT></TD>
<TD class=text><FONT size=1>Microsoft Visual Studio .NET </FONT></TD></TR>
<TR>
<TD class=bullet><FONT size=1>&#8226;</FONT></TD>
<TD class=text><FONT size=1>Microsoft .NET SDK 快速入门 </FONT></TD></TR></TBODY></TABLE><FONT size=1>本文假定您熟悉下列主题： <BR><BR></FONT>
<TABLE class="list ul">
<TBODY>
<TR>
<TD class=bullet><FONT size=1>&#8226;</FONT></TD>
<TD class=text><FONT size=1>XML 术语 </FONT></TD></TR>
<TR>
<TD class=bullet><FONT size=1>&#8226;</FONT></TD>
<TD class=text><FONT size=1>创建和读取 XML 文件 </FONT></TD></TR>
<TR>
<TD class=bullet><FONT size=1>&#8226;</FONT></TD>
<TD class=text><FONT size=1>XML 路径语言 (XPath) 语法 </FONT></TD></TR>
<TR>
<TD class=bullet><FONT size=1>&#8226;</FONT></TD>
<TD class=text><FONT size=1>XSL </FONT></TD></TR></TBODY></TABLE>
<DIV class=topOfPage><FONT size=1></FONT>&nbsp;</DIV>
<H3 id=tocHeadRef><SPAN><A id=3></A></SPAN><FONT size=1>生成示例的步骤 </FONT></H3>
<SCRIPT type=text/javascript>loadTOCNode(2, 'summary');</SCRIPT>
<FONT size=1>本例使用两个名为 Books.xml 和 Books.xsl 的文件。您可以创建自己的 Books.xml 和 Books.xsl 文件，或者使用 .NET 软件开发工具包 (SDK) 快速入门中包含的示例文件。 必须将 Books.xml 和 Books.xsl 文件复制到 \Bin\Debug 文件夹中，该文件夹位于创建此项目所在文件夹的下面。 可以在以下文件夹中找到这些文件： </FONT>
<DIV class=indent><FONT size=1>..\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs </FONT></DIV>
<TABLE class="list ol">
<TBODY>
<TR>
<TD class=number><FONT size=1>1.</FONT></TD>
<TD class=text><FONT size=1>在 Visual Studio .NET 中新建一个 C# 控制台应用程序。 </FONT></TD></TR>
<TR>
<TD class=number><FONT size=1>2.</FONT></TD>
<TD class=text><FONT size=1>确保项目包含对<B> System.Xml </B>名称空间的引用，如果不存在，则添加该引用。 </FONT></TD></TR>
<TR>
<TD class=number><FONT size=1>3.</FONT></TD>
<TD class=text><FONT size=1>对<B> Xml </B>和<B> Xsl </B>名称空间使用<B> using </B>语句，这样，在后面的代码中就不需要限定这些名称空间中的声明了。<B>using </B>语句必须位于所有其他声明之前。 </FONT><CODE><PRE class=code><FONT size=1>using System.Xml;
using System.Xml.Xsl;</FONT></PRE></CODE></TD></TR>
<TR>
<TD class=number><FONT size=1>4.</FONT></TD>
<TD class=text><FONT size=1>声明相应的变量和一个<B> XslTransform </B>对象以转换 XML 文档。 </FONT><CODE><PRE class=code><FONT size=1>XslTransform myXslTransform;</FONT></PRE></CODE></TD></TR>
<TR>
<TD class=number><FONT size=1>5.</FONT></TD>
<TD class=text><FONT size=1>构造一个新的<B> XslTransform </B>对象。 <B>XslTransform </B>类是一个 XSLT 处理器，它实施了 XSLT 1.0 版本建议。 </FONT><CODE><PRE class=code><FONT size=1>myXslTransform = new XslTransform();</FONT></PRE></CODE></TD></TR>
<TR>
<TD class=number><FONT size=1>6.</FONT></TD>
<TD class=text><FONT size=1>使用<B> Load </B>方法加载带有此样式表的<B> XslTransform </B>对象。 此样式表将 Books.xsl 文件中的具体内容转换为一个简单的 ISBN 图书列表。 </FONT><CODE><PRE class=code><FONT size=1>myXslTransform.Load("books.xsl")</FONT></PRE></CODE></TD></TR>
<TR>
<TD class=number><FONT size=1>7.</FONT></TD>
<TD class=text><FONT size=1>调用<B> Transform </B>方法以启动转换过程，并将 XML 源文档和转换后的 XML 文档名传递给该方法。 </FONT><CODE><PRE class=code><FONT size=1>myXslTransform.Transform("books.xml", "ISBNBookList.xml");</FONT></PRE></CODE></TD></TR>
<TR>
<TD class=number><FONT size=1>8.</FONT></TD>
<TD class=text><FONT size=1>生成并运行您的项目。 可以在项目文件所在文件夹下的 \Bin\Debug 文件夹中找到生成的 ISBNBookList.xml 文件。 </FONT></TD></TR></TBODY></TABLE>
<DIV class=topOfPage><FONT size=1></FONT>&nbsp;</DIV>
<H3 id=tocHeadRef><SPAN><A id=4></A></SPAN><FONT size=1>完整代码示例 </FONT></H3>
<SCRIPT type=text/javascript>loadTOCNode(2, 'summary');</SCRIPT>
<CODE><PRE class=code><FONT size=1>using System;
using System.Xml;
using System.Xml.Xsl; 
namespace XSLTransformation
{
/// &lt;summary&gt;
    /// Summary description for Class1.
/// &lt;/summary&gt;
    class Class1
    {
        static void Main(string[] args)
        {
            XslTransform myXslTransform; 
            myXslTransform = new XslTransform();
            myXslTransform.Load("books.xsl"); 
            myXslTransform.Transform("books.xml", "ISBNBookList.xml"); 

        }
    }
}</FONT></PRE></CODE>
<DIV class=topOfPage><FONT size=1></FONT>&nbsp;</DIV>
<DIV class=topOfPage><BR></DIV></DIV>]]></description>
</item><item>
<title><![CDATA[在Eclipse中安装Jess（Install Jess in eclipse）]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=21316</link>
<author>babyblue</author>
<pubDate>2007/1/3 21:42:08</pubDate>
<description><![CDATA[<P>&nbsp;Jess是一个专家系统外壳工具，可以从<A href="https://herzberg.ca.sandia.gov/jess/download.shtml">https://herzberg.ca.sandia.gov/jess/download.shtml</A>上下载你所需要的版本；将所下载的Jess压缩包解压后，通过运行bin目录下的Jess.bat可以启动Jess；可以通过batch命令运行实例来测试安装是否成功：</P>
<P>&nbsp;&nbsp; <FONT size=1>jess&gt; </FONT><SPAN lang=EN-US style="FONT-SIZE: 24pt; FONT-FAMILY: Tahoma; text-shadow: auto; mso-ascii-font-family: Tahoma; mso-fareast-font-family: 宋体; mso-hansi-font-family: Tahoma; mso-fareast-language: ZH-CN"><FONT face=宋体 size=1>(batch ../examples/jess/hello.clp)</FONT></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 24pt; FONT-FAMILY: Tahoma; text-shadow: auto; mso-ascii-font-family: Tahoma; mso-fareast-font-family: 宋体; mso-hansi-font-family: Tahoma; mso-fareast-language: ZH-CN"><FONT face=宋体><FONT size=1>&nbsp;&nbsp; eclipse可以从网站 </FONT><SPAN lang=EN-US style="FONT-SIZE: 28pt; FONT-FAMILY: Tahoma; text-shadow: auto; mso-ascii-font-family: Tahoma; mso-fareast-font-family: 宋体; mso-hansi-font-family: Tahoma; mso-fareast-language: ZH-CN"><A onclick=window.event.cancelBubble=true; href="www.eclipse.com" target=_parent><FONT color=#a3c145 size=1>www.eclipse.com</FONT></A></SPAN><FONT size=1>上下载，要安装jess开发环境，需要：</FONT></FONT></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 24pt; FONT-FAMILY: Tahoma; text-shadow: auto; mso-ascii-font-family: Tahoma; mso-fareast-font-family: 宋体; mso-hansi-font-family: Tahoma; mso-fareast-language: ZH-CN"><FONT face=宋体 size=1>&nbsp;&nbsp;&nbsp;&nbsp; 1、退出eclipse;</FONT></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 24pt; FONT-FAMILY: Tahoma; text-shadow: auto; mso-ascii-font-family: Tahoma; mso-fareast-font-family: 宋体; mso-hansi-font-family: Tahoma; mso-fareast-language: ZH-CN"><FONT face=宋体 size=1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、将 <SPAN lang=EN-US style="FONT-SIZE: 28pt; FONT-FAMILY: Tahoma; text-shadow: auto; mso-ascii-font-family: Tahoma; mso-fareast-font-family: 宋体; mso-hansi-font-family: Tahoma; mso-fareast-language: ZH-CN"><FONT face=Arial size=1>(JESS_HOME)/eclipse</FONT></SPAN>下的的所有文件解压到eclipse的顶层目录下，然后重启eclipse；</FONT></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 24pt; FONT-FAMILY: Tahoma; text-shadow: auto; mso-ascii-font-family: Tahoma; mso-fareast-font-family: 宋体; mso-hansi-font-family: Tahoma; mso-fareast-language: ZH-CN"><FONT size=1><FONT face=宋体>&nbsp;&nbsp;&nbsp;</FONT><FONT face=楷体_GB2312>&nbsp;<STRONG> 关于Jess的环境变量的设置在其他日志中有提，不再赘述。</STRONG></FONT></FONT></SPAN></P>]]></description>
</item><item>
<title><![CDATA[新年祝福]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=21274</link>
<author>babyblue</author>
<pubDate>2007/1/1 10:18:14</pubDate>
<description><![CDATA[&nbsp; 新的一年正式到来了，祝我所有的亲朋好友，新的一年里，吉祥如意，平安幸福，有一个棒棒的身体！<BR>&nbsp;&nbsp;&nbsp; 有家的，家庭幸福；单身的，找到自己的另一半！工作的，工作顺利，薪水涨；上学的，学业有成，步步高！小朋友们快乐成长，长辈们健康长寿！]]></description>
</item><item>
<title><![CDATA[“臭猴子来了”－求助]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=21196</link>
<author>babyblue</author>
<pubDate>2007/1/1 9:59:24</pubDate>
<description><![CDATA[
<P>&nbsp;我的电脑不知道怎么回事，在没有播放任何音频或视频文件的情况下，会突然冒出奇怪的声音。前一段时间是周杰伦的歌声，现在则是一句对白，先是一个人惊慌的说“主人，哎，主人啊，臭猴子来了”，接着是一个年纪比较大的妇人的声音“臭猴子！”，虽然不是什么恐怖的声音，但是突然冒出来，还是会有些小怕，而且也不知道是怎么回事。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 请了解的人给支个招吧，谢谢！</P>]]></description>
</item><item>
<title><![CDATA[用X-Space搭建超级博客门户]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=21154</link>
<author>babyblue</author>
<pubDate>2006/12/27 22:18:52</pubDate>
<description><![CDATA[转载自: <A href="http://homepage.yesky.com/475/2473475.shtml" target=_blank>http://homepage.yesky.com/475/2473475.shtml</A><BR><BR>]]></description>
</item><item>
<title><![CDATA[寄人篱下]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=21130</link>
<author>babyblue</author>
<pubDate>2006/12/27 14:37:16</pubDate>
<description><![CDATA[
<P>&nbsp;&nbsp;一直以来，我们老师的几个学生，都是和另一个老师的学生呆在一个实验室里，而这个实验室是属于另一位老师的，本来我们也可以有自己的实验室，但是老师考虑到大家做的课题方向相近，在一块可以相互学习、讨论，就让我们和他们在一起。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 刚开始的时候，某位同学对我们的言谈举止，总是给人不舒服的感觉，仿佛她是这里的主人，对我们颐指气使，当时我们总有寄人篱下的感觉，我常想，这是她导师的实验室，又不是她的，老师都没有说什么，她能怎样，范不着和她生气。</P>
<P>&nbsp;&nbsp;&nbsp; 后来大家渐渐熟悉起来了，我们也渐渐忘记了自己是呆在别人的屋檐底下，我们导师对我们实验室的人，都是一视同仁，以致于我们以为某老师对我们也是一样的，我们也是他的学生。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 直到今天，才知道，在某老师的眼里，我们一直是“寄人篱下”的，感觉真的好伤心，也很气愤，但是我不能告诉我的师弟师妹们，更不能告诉我的老师。</P>
<P>&nbsp;&nbsp;&nbsp; 我只能在这里发泄一下，好让自己的心情稍微好点。</P>]]></description>
</item><item>
<title><![CDATA[改变]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=20804</link>
<author>babyblue</author>
<pubDate>2006/12/15 10:48:05</pubDate>
<description><![CDATA[
<P>&nbsp;曾经很喜欢绚丽的色彩，也喜欢把博客装扮的花枝招展的。现在渐渐地趋向与简约，简单的色调，简约的布局，让人看了清晰自然，平淡中蕴涵着一种只可意会的美，这种感觉真的很好。</P>
<P>&nbsp;&nbsp;&nbsp; 我的MSN的风格简化了，博客网上的还是那样，只是因为我不太中意它的窄屏显示，很想放弃它，但是看到自己苦心经营的成果，却又舍不得，就继续留着吧，相信有一天会有所改变的。</P>
<P>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[Java规则引擎与其API应用详解]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=20713</link>
<author>babyblue</author>
<pubDate>2006/12/12 19:43:12</pubDate>
<description><![CDATA[转载自: <A href="http://www.javajia.com/modules.php?op=modload&amp;name=News&amp;file=article&amp;sid=1545&amp;mode=thread&amp;order=0&amp;thold=0" target=_blank>http://www.javajia.com/modules.php?op=modload&amp;name=News&amp;file=article&amp;sid=1545&amp;mode=thread&amp;order=0&amp;thold=0</A><BR><BR>]]></description>
</item><item>
<title><![CDATA[OWL2JESS]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=20702</link>
<author>babyblue</author>
<pubDate>2006/12/12 14:29:47</pubDate>
<description><![CDATA[
<P>Protege OWL has a OWL/SWRL-to-Jess bridge.<BR><A href="http://protege.cim3.net/cgi-bin/wiki.pl?SWRLTab" rel=nofollow>http://protege.cim3.net/cgi-bin/wiki.pl?SWRLTab</A><BR><BR><FONT face=新宋体>OWL2JESS ( </FONT><A href="http://www.ag-nbi.de/research/owltrans/" rel=nofollow><FONT face=新宋体>http://www.ag-nbi.de/research/owltrans/</FONT></A><FONT face=新宋体> )</FONT></P>]]></description>
</item><item>
<title><![CDATA[OWL inference engine using XSLT and JESS]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=20683</link>
<author>babyblue</author>
<pubDate>2006/12/11 17:00:23</pubDate>
<description><![CDATA[
<P>OWL inference engine using XSLT and JESS</P>
<P>转载自: <A href="http://www.cs.cmu.edu/~sadeh/MyCampusMirror/OWLEngine.html" target=_blank>http://www.cs.cmu.edu/~sadeh/MyCampusMirror/OWLEngine.html</A><BR><BR></P>]]></description>
</item><item>
<title><![CDATA[专家系统JESS实例教程]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=20512</link>
<author>babyblue</author>
<pubDate>2006/12/5 9:55:25</pubDate>
<description><![CDATA[
<P></P>
<P>我们假设有一个交易系统，客户提出要买的东西，卖家提供要买的东西，如果有符合的，就成交。这是一个很简单的系统，用一般程序语言也可以实现，但是我们看看专家系统开发更简单的方法。</P>
<P>1第一条规则</P>
<P>如果来了新的客户，取得这个客户所有需要的商品，并产生新的事实。</P>
<P>(defrule query-buyer<BR>&nbsp;&nbsp;?fact &lt;- (new-buyer ?buyer)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; if there is a new a buyer...<BR>=&gt;<BR>&nbsp;&nbsp;(retract ?fact)<BR>&nbsp;&nbsp;(foreach ?i (nth$ 2 (send ?buyer "GetProducts"))<BR>&nbsp;&nbsp;&nbsp;&nbsp;(assert (requires ?buyer ?i))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; get the products the buyer requires<BR>&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; ; and for each one create a fact<BR>&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; ; associating the buyer and the product<BR>&nbsp;&nbsp; )<BR>)</P>
<P>例如，来了一个客户Danny，我们先assert(new-buyer danny) ,jess发现了这条事实后，触发query-buyer这个规则，注意所有的规则之间没有顺序性。query-buyer这条规则先撤销刚才的事实，避免死循环，然后调用一个函数取得用户所有需要的商品Send ?buyer "GetProducts".例如得到的结果是(Computer Keyboard Mouse)，然后规则遍历这个结果集，每一个商品都产生一个新的事实，例如assert requires Danny Computer等等。</P>
<P>2 第二个规则，出现一个新卖家，原理和刚才一样</P>
<P>(defrule query-seller<BR>&nbsp;&nbsp;?fact &lt;- (new-seller ?seller)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; if there is a new seller...<BR>=&gt;<BR>&nbsp;&nbsp;(retract ?fact)<BR>&nbsp;&nbsp;(foreach ?i (nth$ 2 (send ?seller "GetProducts"))<BR>&nbsp;&nbsp;&nbsp;&nbsp;(assert (provides ?seller ?i))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; get the products the seller provides<BR>&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; ; and for each one create a fact<BR>&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; ; associating the seller and the product<BR>&nbsp;&nbsp; )<BR>)</P>
<P>3 最后一个是交易的规则</P>
<P>当有买家购买一个商品，卖家卖一个商品，并且两者相同的事实时候，告诉卖家有人要买该物品，同时也告诉买家有卖家投递该物品</P>
<P>(defrule match-buyer-and-seller<BR>&nbsp;&nbsp;(requires ?buyer ?product1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; the buyer requires product1<BR>&nbsp;&nbsp;(provides ?seller ?product2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; the seller provides product2<BR>&nbsp;&nbsp;(test (eq ?product1 ?product2))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; product1 and product2 are the same<BR>=&gt;<BR>&nbsp;&nbsp;(send ?seller "Order" ?product2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; order from the seller<BR>&nbsp;&nbsp;(send ?buyer "Delivery" ?product1)&nbsp;&nbsp;&nbsp;&nbsp; ; deliver to the buyer<BR>)<BR></P>
<P>从这个规则中，我们看到，实现这样一个交易市场的系统，没有任何遍历所有买家和卖家进行比较的操作。这些匹配是JESS自动模式匹配完成的，大大简化了开发。</P>
<P>使用专家系统，我们可以通过定义规则的方式来积累经验，而不是通过If else这样的代码来积累经验。</P>
<P>转载自: <A href="http://blog.csdn.net/danny_xcz/archive/2005/11/17/531463.aspx" target=_blank>http://blog.csdn.net/danny_xcz/archive/2005/11/17/531463.aspx</A><BR><BR></P>]]></description>
</item><item>
<title><![CDATA[Windows下JAVA环境变量的设置祥解]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=20503</link>
<author>babyblue</author>
<pubDate>2006/12/4 18:08:50</pubDate>
<description><![CDATA[<SPAN id=ArticleContent1_ArticleContent1_lblContent>Windows下JAVA环境变量的设置祥解 
<P>Windows下JAVA用到的环境变量主要有3个，JAVA_HOME、CLASSPATH、PATH。下面逐个分析。</P>
<P>JAVA_HOME指向的是JDK的安装路径，如x:\JDK_1.4.2，在这路径下你应该能够找到bin、lib等目录。值得一提的是，JDK的安装路径可以选择任意磁盘目录，不过建议你放的目录层次浅一点，如果你放的目录很深，比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx……<BR>那么，下面的步骤和以后的应用你都要受累了，呵呵。设置方法：<BR><FONT color=#0000ff><STRONG>JAVA_HOME=x:\JDK_1.4.2</STRONG></FONT></P>
<P>PATH环境变量原来Windows里面就有，你只需修改一下，使他指向JDK的bin目录，这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了。设置方法是保留原来的PATH的内容，并在其中加上%JAVA_HOME%\bin (注，如果你对DOS批处理不了解，你可能不明白%%引起来的内容是什么意思；其实这里是引用上一步设定好的环境变量JAVA_HOME，你写成x:\JDK_1.4.2也是可以的；你可以打开一个控制台窗口，输入echo %JAVA_HOME%来看一下你的设置结果) ：<BR><FONT color=#0000ff><STRONG>PATH=%JAVA_HOME%\bin;%PATH%</STRONG><BR></FONT>同样，%PATH%是引用以前你设置的PATH环境变量，你照抄以前的值就行了。</P>
<P>CLASSPATH环境变量我放在最后面，是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的，所以要加倍小心才行。<BR><STRONG><FONT color=#0000ff>CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar<BR></FONT></STRONG>首先要注意的是最前面的".\;"，如果你看不清，我给你念念——句点反斜杠分号。这个是告诉JDK，搜索CLASS时先查找当前目录的CLASS文件——为什么这样搞，这是由于LINUX的安全机制引起的，LINUX用户很明白，WINDOWS用户就很难理解(因为WINDOWS默认的搜索顺序是先搜索当前目录的，再搜索系统目录的，再搜索PATH环境变量设定的) ，所以如果喜欢盘根究底的朋友不妨研究一下LINUX。<BR>为什么CLASSPATH后面指定了tools.jar这个具体文件？不指定行不行？显然不行，行的话我还能这么罗索嘛！:) 这个是由java语言的import机制和jar机制决定的，你可以查资料解决。</P>
<P><BR>呵呵，具体的设定方法: win2k\xp用户右键点击我的电脑-&gt;属性-&gt;高级-&gt;环境变量，修改下面系统变量那个框里的值就行了。<BR>win9x用户修改autoexec.bat文件，在其末尾加入: <BR><FONT color=#0000ff><STRONG>set JAVA_HOME=x:\JDK_1.4.2<BR>set PATH=%JAVA_HOME%\bin;%PATH%<BR>set CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar</STRONG></FONT><BR>就可以了。</P></SPAN><BR><BR>]]></description>
</item><item>
<title><![CDATA[A discussion about Jess and Racer]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=20493</link>
<author>babyblue</author>
<pubDate>2006/12/4 8:37:41</pubDate>
<description><![CDATA[<DIV class=msgHead>
<P><FONT color=#d52b6f><SPAN class=sender>Gerhard Austaller</SPAN><BR><SPAN class=date>Fri, 27 Oct 2006 14:39:25 -0700</SPAN></FONT></P></DIV><!--X-Subject-Header-End--><!--X-Head-of-Message--><!--X-Head-of-Message-End--><!--X-Head-Body-Sep-Begin-->
<DIV class=msgBody><!--X-Head-Body-Sep-End--><!--X-Body-of-Message--><PRE style="MARGIN: 0em">Hi

I somehow completely lose overview on "semantic" technologies...

Does anybody know or is willing to explain where the
difference/overlap... between "expert systems" like JESS/CLIPS and
ontologies (with reasoners) is. Because of the rules it appears that
expert systems are more powerful  but maybe there is something I can
express with ontologies that I can not within expert systems.

Another question is about RACER PRO. The query language NRQL looks like
a rule language in JESS. Is it RACER PRO's NRQL as powerful as the rules
in JESS? Maybe anybody knows both systems and could give a hint or a
link.

And last, does anybody know a way to import a OWL ontology into JESS.
Most solutions I know lose almost all restrictions. Is this an
implementation issue or is it because JESS (experts system in general)
are not to be used with "ontologies".

Thank you very much!
Gerhard
<P><FONT color=#d52b6f><SPAN class=sender>Martijn Tromm</SPAN><BR><SPAN class=date>Fri, 27 Oct 2006 16:17:47 -0700</SPAN></FONT></P><!--X-Subject-Header-End--><!--X-Head-of-Message--><!--X-Head-of-Message-End--><!--X-Head-Body-Sep-Begin--><DIV class=msgBody><!--X-Head-Body-Sep-End--><!--X-Body-of-Message--><PRE><FONT color=#d52b6f>Hi Gerhard,</FONT>

I'm not very experienced with the technical of side of this, but I know 
something about rules and ontologies. Rules can only work on some datamodel. An 
ontology is nothing more than a formalized conceptualisation, so a extended 
datamodel. Extended with what? Wel with, constraints, typing, hierarchies, and 
rules. Expert systems can be seen as one of more possible implementations of 
logic within applications. And when that logic is highly irregular and prone to 
change than it is a good choice. OWL is one of more possible notations of 
ontologies. w3c is busy with standards for OWL rules (very similar to RuleML I 
believe). So rules and ontologies are a perfect couple. Expert systems shells 
are terrific middle ware for dealing with the rules that will be formulated 
upon ontologies. One of the big issues in this discussion is whether Owl 
applications should be Closed World applications. (OWL is not closed by 
default, but one can state a lot more rules under the CWA)

<FONT color=#d52b91>cheers,
Martijn
</FONT><P><FONT color=#d52b91><SPAN class=sender>Samson Tu</SPAN><BR><SPAN class=date>Mon, 30 Oct 2006 14:49:41 -0800</SPAN></FONT></P><!--X-Subject-Header-End--><!--X-Head-of-Message--><!--X-Head-of-Message-End--><!--X-Head-Body-Sep-Begin--><DIV class=msgBody><!--X-Head-Body-Sep-End--><!--X-Body-of-Message--><PRE style="MARGIN: 0em"></PRE><TT>The contrast is between description-logic (DL) reasoning (of which OWL </TT><TT>is a variety) versus rule-based reasoning. Description-logic reasoning </TT><TT>gives you runtime class-subsumption checking and classification of </TT><TT>individuals based on necessary and sufficient definitions of classes. </TT><TT>Rule-based reasoning is not designed to do these tasks. On the other </TT><TT>hand, DL reasoning can't handle rules like (Father ?x ?y)(Brother ?x ?z) </TT><TT>=&gt; (Uncle ?z ?y). </TT><PRE style="MARGIN: 0em">OWL has been augmented with a rule-language called SWRL.

</PRE><TT>DL reasoning typically makes open-world assumption. Jess uses </TT><TT>closed-world assumption. </TT><PRE style="MARGIN: 0em"></PRE><TT>Making sense of DL restrictions (e.g., class expressions) typically </TT><TT>requires the use of DL reasoner, which is difficult to simulate using </TT><TT>something like Jess. </TT><PRE style="MARGIN: 0em"></PRE><TT>Ontologies can be defined using DL language like OWL or frame-based </TT><TT>language (e.g., Protege frame). Protege frame also makes closed-world </TT><TT>assumption. Thus, JessTab works well integrating frame-based Protege </TT><TT>ontologies with Jess. </TT><PRE style="MARGIN: 0em">Samson
<P><FONT color=#d52b91><SPAN class=sender>Gerhard Austaller</SPAN><BR><SPAN class=date>Tue, 31 Oct 2006 04:26:17 -0800</SPAN></FONT></P><!--X-Subject-Header-End--><!--X-Head-of-Message--><!--X-Head-of-Message-End--><!--X-Head-Body-Sep-Begin--><DIV class=msgBody><!--X-Head-Body-Sep-End--><!--X-Body-of-Message--><PRE>Hi

&gt; -----Original Message-----
&gt; From: [EMAIL PROTECTED] [<A href="mailto:[EMAIL" rel=nofollow>mailto:[EMAIL</A> PROTECTED]
On
&gt; Behalf Of Samson Tu
&gt; Sent: Monday, October 30, 2006 11:20 PM
&gt; To: jess-users@sandia.gov
&gt; Subject: Re: JESS: JESS vs RACER
&gt; 
&gt; 
&gt; The contrast is between description-logic (DL) reasoning (of which OWL
&gt; is a variety) versus rule-based reasoning. Description-logic reasoning
&gt; gives you runtime class-subsumption checking and classification of
&gt; individuals based on necessary and sufficient definitions of classes.
&gt; Rule-based reasoning  is not designed to do these tasks. On the other
&gt; hand, DL reasoning can't handle rules like (Father ?x ?y)(Brother ?x
?z)
&gt; =&gt; (Uncle ?z ?y).
&gt; 
&gt; OWL has been augmented with a rule-language called SWRL.
&gt; 
&gt; DL reasoning typically makes open-world assumption. Jess uses
&gt; closed-world assumption.

Thx for answer. OK. Now we are getting to the point. What I really want
to understand is where the difference is between rule "extensions" to
ontologies and rules from expert systems. What I'd like to is create new
individuals ("add a fact") in my ontology by using a rule language (like
SWRL). Of course this new individual my trigger other rules and so on
until a stable state. I'd like to program declarative as I am used to
with e.g. JESS.


&gt; Making sense of DL restrictions (e.g., class expressions) typically
&gt; requires  the use of DL reasoner, which is difficult to simulate using
&gt; something like Jess.

But in principle there is no obstacle to merge the power of ontologies
(based on DL) and expert systems? 


&gt; Ontologies can be defined using DL language like OWL or frame-based
&gt; language (e.g., Protege frame). Protege frame also makes closed-world
&gt; assumption. Thus, JessTab works well integrating frame-based Protege
&gt; ontologies with Jess.

But the documentation of JessTab says that one OWL constraints and
expressions are not supported. So restrictions are not lost? 

Gerhard
<P><FONT color=#bb44a3><SPAN class=sender>Samson Tu</SPAN><BR><SPAN class=date>Tue, 31 Oct 2006 10:07:28 -0800</SPAN></FONT></P><!--X-Subject-Header-End--><!--X-Head-of-Message--><!--X-Head-of-Message-End--><!--X-Head-Body-Sep-Begin--><DIV class=msgBody><!--X-Head-Body-Sep-End--><!--X-Body-of-Message--><PRE style="MARGIN: 0em">
Gerhard Austaller wrote:
..
</PRE><BLOCKQUOTE style="PADDING-LEFT: 0.85em; MARGIN: 0em; BORDER-LEFT: #5555ee 0.2em solid"><PRE style="MARGIN: 0em">Thx for answer. OK. Now we are getting to the point. What I really want
to understand is where the difference is between rule "extensions" to
ontologies and rules from expert systems. What I'd like to is create new
individuals ("add a fact") in my ontology by using a rule language (like
SWRL). Of course this new individual my trigger other rules and so on
until a stable state. I'd like to program declarative as I am used to
with e.g. JESS.
</PRE></BLOCKQUOTE><PRE style="MARGIN: 0em"></PRE><TT>I am not sure I can add more than what I said already. With rule </TT><TT>extensions to DL languages, the rule system has to take into account the </TT><TT>semantics of DL descriptions. To create new instances in SWRL, I think </TT><TT>you need to have a "built-in" that does it. Creating new instances is </TT><TT>not part of the language. </TT><PRE style="MARGIN: 0em">
</PRE><BLOCKQUOTE style="PADDING-LEFT: 0.85em; MARGIN: 0em; BORDER-LEFT: #5555ee 0.2em solid"><BLOCKQUOTE style="PADDING-LEFT: 0.85em; MARGIN: 0em; BORDER-LEFT: #5555ee 0.2em solid"><PRE style="MARGIN: 0em">Making sense of DL restrictions (e.g., class expressions) typically
requires  the use of DL reasoner, which is difficult to simulate using
something like Jess.
</PRE></BLOCKQUOTE><PRE style="MARGIN: 0em">But in principle there is no obstacle to merge the power of ontologies
</PRE><TT>(based on DL) and expert systems? </TT></BLOCKQUOTE><PRE style="MARGIN: 0em">No, that's what SWRL and other semantic web rule languages are about.

</PRE><BLOCKQUOTE style="PADDING-LEFT: 0.85em; MARGIN: 0em; BORDER-LEFT: #5555ee 0.2em solid"><BLOCKQUOTE style="PADDING-LEFT: 0.85em; MARGIN: 0em; BORDER-LEFT: #5555ee 0.2em solid"><PRE style="MARGIN: 0em">Ontologies can be defined using DL language like OWL or frame-based
language (e.g., Protege frame). Protege frame also makes closed-world
assumption. Thus, JessTab works well integrating frame-based Protege
ontologies with Jess.
</PRE></BLOCKQUOTE><PRE style="MARGIN: 0em">But the documentation of JessTab says that one OWL constraints and
</PRE><TT>expressions are not supported. So restrictions are not lost? </TT></BLOCKQUOTE><PRE style="MARGIN: 0em"></PRE><TT>Not sure what you mean. With OWL, JessTab doesn't <P><SPAN class=sender>Samson Tu</SPAN><BR><SPAN class=date>Tue, 31 Oct 2006 10:07:28 -0800</SPAN></P><!--X-Subject-Header-End--><!--X-Head-of-Message--><!--X-Head-of-Message-End--><!--X-Head-Body-Sep-Begin--><!--X-Head-Body-Sep-End--><!--X-Body-of-Message--><DIV class=msgBody><PRE style="MARGIN: 0em">
Gerhard Austaller wrote:
..
</PRE></DIV><BLOCKQUOTE class=msgBody style="PADDING-LEFT: 0.85em; MARGIN: 0em; BORDER-LEFT: #5555ee 0.2em solid"><PRE style="MARGIN: 0em">Thx for answer. OK. Now we are getting to the point. What I really want
to understand is where the difference is between rule "extensions" to
ontologies and rules from expert systems. What I'd like to is create new
individuals ("add a fact") in my ontology by using a rule language (like
SWRL). Of course this new individual my trigger other rules and so on
until a stable state. I'd like to program declarative as I am used to
with e.g. JESS.
</PRE></BLOCKQUOTE><DIV class=msgBody><PRE style="MARGIN: 0em"></PRE></DIV><DIV class=msgBody><TT>I am not sure I can add more than what I said already. With rule </TT><TT>extensions to DL languages, the rule system has to take into account the </TT><TT>semantics of DL descriptions. To create new instances in SWRL, I think </TT><TT>you need to have a "built-in" that does it. Creating new instances is </TT><TT>not part of the language. </TT></DIV><DIV class=msgBody><PRE style="MARGIN: 0em">
</PRE></DIV><BLOCKQUOTE class=msgBody style="PADDING-LEFT: 0.85em; MARGIN: 0em; BORDER-LEFT: #5555ee 0.2em solid"><BLOCKQUOTE style="PADDING-LEFT: 0.85em; MARGIN: 0em; BORDER-LEFT: #5555ee 0.2em solid"><PRE style="MARGIN: 0em">Making sense of DL restrictions (e.g., class expressions) typically
requires  the use of DL reasoner, which is difficult to simulate using
something like Jess.
</PRE></BLOCKQUOTE><PRE style="MARGIN: 0em">But in principle there is no obstacle to merge the power of ontologies
</PRE><TT>(based on DL) and expert systems? </TT></BLOCKQUOTE><DIV class=msgBody><PRE style="MARGIN: 0em">No, that's what SWRL and other semantic web rule languages are about.

</PRE></DIV><BLOCKQUOTE class=msgBody style="PADDING-LEFT: 0.85em; MARGIN: 0em; BORDER-LEFT: #5555ee 0.2em solid"><BLOCKQUOTE style="PADDING-LEFT: 0.85em; MARGIN: 0em; BORDER-LEFT: #5555ee 0.2em solid"><PRE style="MARGIN: 0em">Ontologies can be defined using DL language like OWL or frame-based
language (e.g., Protege frame). Protege frame also makes closed-world
assumption. Thus, JessTab works well integrating frame-based Protege
ontologies with Jess.
</PRE></BLOCKQUOTE><PRE style="MARGIN: 0em">But the documentation of JessTab says that one OWL constraints and
</PRE><TT>expressions are not supported. So restrictions are not lost? </TT></BLOCKQUOTE><DIV class=msgBody><PRE style="MARGIN: 0em"></PRE></DIV><DIV class=msgBody><TT>Not sure what you mean. With OWL, JessTab doesn't take into account OWL </TT><TT>constrains and expressions, but nothing is "lost</TT>take into account OWL </TT><TT>constrains and expressions, but nothing is "lost</TT></DIV><DIV class=msgBody><TT>……</TT></DIV><DIV class=msgBody><TT>见<A href="http://www.mail-archive.com/jess-users@sandia.gov/msg08868.html">http://www.mail-archive.com/jess-users@sandia.gov/msg08868.html</A></TT></DIV></DIV></PRE></DIV></PRE></DIV></PRE></DIV></PRE></DIV>]]></description>
</item><item>
<title><![CDATA[Ilog、Drools、Jess规则引擎的Rule Language 对比]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=20492</link>
<author>babyblue</author>
<pubDate>2006/12/4 8:24:35</pubDate>
<description><![CDATA[<P>转载自: <A href="http://www.blogjava.net/calvin/archive/2005/10/04/14789.html" target=_blank>http://www.blogjava.net/calvin/archive/2005/10/04/14789.html</A></P><A href="http://www.ilog.com/products/jrules/">
<P>Ilog JRules</A>&nbsp;是最有名的商用BRMS，刚拿了JOLT；<BR><A href="http://www.drools.org/">Drools</A>&nbsp;是最活跃的开源规则引擎，一路高歌猛进；<BR><A href="http://publishblog.blogdriver.com:85/control/blog/herzberg.ca.sandia.gov/jess/">Jess</A>&nbsp;是Clips的java实现，就如JRuby之于Ruby，是AI系的代表。</P>
<P>今天对比了一下这三个颇有代表性的规则引擎的规则语言。其中Ilog是商业产品，没有机会实战。<BR></P>
<P><FONT size=2><FONT size=3>作者：</FONT><A href="http://calvin.blogjava.net/"><FONT size=3>江南白衣</FONT></A><FONT size=3>&nbsp;<BR></FONT><BR><STRONG>1.一样的If--Then 句式与Rete引擎</STRONG></FONT></P>
<P><STRONG>&nbsp;&nbsp;&nbsp;</STRONG> 三者都会把原来混乱不堪的if---else---elseif----else谜团，<BR>&nbsp;&nbsp;&nbsp; 拆成N条带优先级的"If&nbsp; 条件语句&nbsp; then&nbsp; 执行语句" 的句式。<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 三者都主要使用foreward-chaining的Rete引擎，按优先级匹配条件语句，执行规则语句。<BR>&nbsp;&nbsp;&nbsp; 规则执行后会引发事实的变化，引擎又会重新进行条件匹配，直到不能再匹配为止，Rete的算法保证了效率的最高。</P>
<P><STRONG><FONT size=2>2.开发人员使用的规则语言</FONT></STRONG></P>
<P><STRONG>2.1 Drools的XML框架+Java/Groovy/Python嵌入语言</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Drools的用XML的&lt;Conditons&gt;、&lt;Consequence&gt;<CONDITON></CONDITON>&nbsp;<CONSEQUENCE></CONSEQUENCE>节点表达If--Then句式，而里面可以嵌入上述语言的代码作为判断语句和执行语句。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其中Java代码会使用Antlr进行解释，而Groovy和Python本身就是脚本语言，可以直接调用。<BR>&nbsp;&nbsp;&nbsp;&nbsp; Drools的聪明之处在于，用XML节点来规范If--Then句式和事实的定义，使引擎干起活来很舒服。<BR>&nbsp;&nbsp;&nbsp;&nbsp; 而使用Java,Groovy等原生语言来做判断和执行语句，让程序员很容易过渡、移植，学习曲线很低。</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">java:condition</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hello.equals("Hello")<BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">java:condition</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">java:consequence</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;helloWorld(&nbsp;hello&nbsp;);<BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">java:consequence</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV>
<P><BR>&nbsp;</P>
<P>&nbsp; <STRONG>2.2 ILog的IRL(ILog Rule Language)</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IRL用When{}Then{}表达 If--Then句式</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">?</SPAN><SPAN style="COLOR: #000000">customer:&nbsp;Customer(totalTime&nbsp;</SPAN><SPAN style="COLOR: #000000">&gt;=</SPAN><SPAN style="COLOR: #000000">1000</SPAN><SPAN style="COLOR: #000000">);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execute&nbsp;{</SPAN><SPAN style="COLOR: #000000">?</SPAN><SPAN style="COLOR: #000000">customer.setAmount(getAmount()</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">20.00</SPAN><SPAN style="COLOR: #000000">);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</SPAN></DIV>
<P>&nbsp;&nbsp;&nbsp; 文档称IRL的语法是Java Syntax-like的，但我怎么也看不出两者是相同的。不过他因为是商业产品，有很强大的编辑器和管理工具，编写规则的速度应该不坏。</P>
<P>&nbsp;&nbsp;<STRONG>2.3 Jess的CLIPS<BR></STRONG>&nbsp;&nbsp; jess用&nbsp; =&gt;&nbsp; 表达 If-Then句式。 这CLIPS是真正的程序员专用语言，而且还要是很专业的程序员才习惯的东西。但这种本来就是用来做专家系统的AI语言，对规则的表达能力也应该是最强的。<BR>&nbsp;&nbsp; 讲解一下下面这段代码，airplane有一个属性--name，有两个子类--喷气式和螺旋桨飞机，其中螺旋桨飞机可以使用任意跑道，而喷气式飞机不能使用Grass跑道。</P>
<P>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">;&nbsp;Fact&nbsp;templates<BR>&nbsp;&nbsp; &nbsp;(deftemplate&nbsp;airplane&nbsp;(slot&nbsp;name))&nbsp;<BR>&nbsp;&nbsp;&nbsp; (deftemplate&nbsp;jet&nbsp;</SPAN><SPAN style="COLOR: #0000ff">extends</SPAN><SPAN style="COLOR: #000000">&nbsp;airplane)&nbsp;<BR>&nbsp;&nbsp;&nbsp; (deftemplate&nbsp;prop&nbsp;</SPAN><SPAN style="COLOR: #0000ff">extends</SPAN><SPAN style="COLOR: #000000">&nbsp;airplane)&nbsp;;&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; Rules&nbsp;<BR>&nbsp;&nbsp;&nbsp; (defrule&nbsp;can</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">use</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">grass</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">runway<BR>&nbsp;&nbsp; &nbsp; (prop&nbsp;(name&nbsp;</SPAN><SPAN style="COLOR: #000000">?</SPAN><SPAN style="COLOR: #000000">n))<BR>&nbsp;&nbsp;&nbsp; &nbsp; </SPAN><SPAN style="COLOR: #000000">=&gt;<BR></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp; (printout&nbsp;t&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Aircraft&nbsp;can&nbsp;use&nbsp;grass&nbsp;-&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">?</SPAN><SPAN style="COLOR: #000000">n&nbsp;crlf))&nbsp;<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; (defrule&nbsp;can</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">use</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">asphalt</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">runway&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; (airplane&nbsp;(name&nbsp;</SPAN><SPAN style="COLOR: #000000">?</SPAN><SPAN style="COLOR: #000000">n))&nbsp;<BR></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp; =&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; (printout&nbsp;t&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Aircraft&nbsp;can&nbsp;use&nbsp;asphalt&nbsp;-&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">?</SPAN><SPAN style="COLOR: #000000">n&nbsp;crlf))</SPAN></DIV></TD></TR></TBODY></TABLE></P>
<P><STRONG><FONT size=2>3.客户使用的规则语言</FONT></STRONG></P>
<P>&nbsp;&nbsp; 如果客户可以自己任意编写规则，无疑是产品一个很大的卖点。大部分客户都会喜欢这样一个玩具。而且也只有把规则编写交给客户，才能达到规则引擎的全部意义。</P>
<P><STRONG>3.1 Drools的 DSL <BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Drools的最新版Drools2.0Rc2里，House和Conways game of Live两个例子有DSL的版本<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对比一下Java版本，效果如下：</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">house:condition</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">house:room&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="calvin"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">house:</SPAN><SPAN style="COLOR: #ff0000">温度</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">house:greater-than&nbsp;</SPAN><SPAN style="COLOR: #ff0000">scale</SPAN><SPAN style="COLOR: #0000ff">="摄氏"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">20</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">house:greater-than</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">house:温度</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">house:room</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">house:condition</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN></DIV>
<P><SPAN class=code-tag>vs</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">java:condition</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;&nbsp;&nbsp;room.getName(&nbsp;).equals(&nbsp;"calvin"&nbsp;)<BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">java:condition</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">java:condition</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;&nbsp;convertToCelsius(&nbsp;room.getTemperature()&nbsp;)&nbsp;&gt;&nbsp;20<BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">java:condition</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN></DIV>
<P></SPAN>&nbsp;&nbsp;&nbsp;&nbsp; 但这种XML Base的DSL语法其实好不了多少，而且实现的代价一点不少，要自己实现Conditons和Consequence Factory类，自行解释那段XML，基本上没有什么便利的底层支持。<BR>&nbsp;&nbsp;&nbsp; 其实，一不做二不休，干脆用Antlr来定义真正的DSL，同样是实现Conditons和Consequence Factory类可能更好。只不过解释XML人人都会，Antlr就比较少人用而已。</P>
<P><STRONG>3.2 ILog的BAL(Business Action Language)--最完美的王者？</STRONG><BR>&nbsp;&nbsp;&nbsp;没有实际用过，只能看文档过过瘾。从文档来看，配合Ilog的编辑器，的确就是很完美的规则语言了。</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">If<BR>&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;call&nbsp;destination&nbsp;number&nbsp;is&nbsp;the&nbsp;preferred&nbsp;number<BR>Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;apply&nbsp;the&nbsp;preferred&nbsp;number&nbsp;rate</SPAN></DIV>
<P><BR><BR>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[JESS介绍]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=20489</link>
<author>babyblue</author>
<pubDate>2006/12/3 21:40:19</pubDate>
<description><![CDATA[<A><FONT face=楷体_GB2312 size=1>　</FONT></A><FONT face=楷体_GB2312 size=1> </FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US style="COLOR: black">Jess</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">是由</SPAN><SPAN lang=EN-US style="COLOR: black"><A href="http://www.sandia.gov/"><FONT color=#ff0000>Sandia National Laboratories</FONT></A> </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">（</SPAN><SPAN lang=EN-US style="COLOR: black">as part of an internal research project</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">）的一位专家写成。</SPAN><SPAN lang=EN-US style="COLOR: black">Jess</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">全名为</SPAN><SPAN lang=EN-US style="COLOR: black">java expert system shell,</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">是基于</SPAN><SPAN lang=EN-US style="COLOR: black">CLIPS</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">规则扩展的一个系统工具，由</SPAN><SPAN lang=EN-US style="COLOR: black">java</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">语言完成。通过应用事实规则几何可以退出新的事实。支持多对对的匹配。顺便提下产生式系统</SPAN><SPAN lang=EN-US style="COLOR: black">cLIPS</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">。</SPAN><SPAN lang=EN-US style="COLOR: black">cLIPS</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">的基本组成与知识表示包括</SPAN><SPAN lang=EN-US style="COLOR: black"><?XML:NAMESPACE PREFIX = O /><O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><FONT size=1><FONT face=楷体_GB2312><SPAN style="COLOR: black; FONT-FAMILY: 宋体">１、事实：用来表示已知的数据或信息。事实是一个</SPAN><SPAN lang=EN-US style="COLOR: black">N</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">元式，由一对圆括号括住的一个或</SPAN><SPAN lang=EN-US style="COLOR: black">N</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">个域组成，这些域的数据可以是三种不同的类型，即：字</SPAN><SPAN lang=EN-US style="COLOR: black">(</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">以字母打头的字符串</SPAN><SPAN lang=EN-US style="COLOR: black">)</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">、符号串</SPAN><SPAN lang=EN-US style="COLOR: black">(</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">括在一对双引号内的一个或多个字符串</SPAN><SPAN lang=EN-US style="COLOR: black">)</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">、数值</SPAN><SPAN lang=EN-US style="COLOR: black">(</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">整形数或实型数</SPAN><SPAN lang=EN-US style="COLOR: black">)</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">，域之间用空格分开。所有事实都保存在在工作存储器中，所以称事实为工作存储器元素</SPAN><SPAN lang=EN-US style="COLOR: black">(VME)</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">。</SPAN><SPAN lang=EN-US style="COLOR: black"><O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US style="COLOR: black">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">事实举例：</SPAN><SPAN lang=EN-US style="COLOR: black">(hihg <?XML:NAMESPACE PREFIX = ST1 /><ST1:CHMETCNV w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="100" unitname="m">100m</ST1:CHMETCNV>)&nbsp; </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">表示</SPAN><SPAN lang=EN-US style="COLOR: black">“</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">高度</SPAN><ST1:CHMETCNV w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="200" unitname="米"><SPAN lang=EN-US style="COLOR: black">200</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">米</SPAN></ST1:CHMETCNV><SPAN lang=EN-US style="COLOR: black">”<O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (price is 200 yuan)&nbsp; </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">表示价格为</SPAN><SPAN lang=EN-US style="COLOR: black">200</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">元！</SPAN><SPAN lang=EN-US style="COLOR: black"><O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><FONT size=1><FONT face=楷体_GB2312>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (name "Newell")<O:P></O:P></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US style="COLOR: black">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">可用命令</SPAN><SPAN lang=EN-US style="COLOR: black">&nbsp;&nbsp;&nbsp;<O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (asset</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">事实名</SPAN><SPAN lang=EN-US style="COLOR: black">)<O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">２、规则：用来表示系统推理的有关知识。</SPAN><SPAN lang=EN-US style="COLOR: black">cLISP</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">中的规则是变形的产生式规则，可用</SPAN><SPAN lang=EN-US style="COLOR: black">defrule</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">命令来定义，其格为如下：</SPAN><SPAN lang=EN-US style="COLOR: black"><O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp; (defrule </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">规则名</SPAN><SPAN lang=EN-US style="COLOR: black">[</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">注释</SPAN><SPAN lang=EN-US style="COLOR: black">]<O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">模式</SPAN><SPAN lang=EN-US style="COLOR: black"><O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">＝＞</SPAN><SPAN lang=EN-US style="COLOR: black"><O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">动作</SPAN><SPAN lang=EN-US style="COLOR: black">)<O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体">３、待处理事件表：用于存储匹配成功的规则集合，它相当于一般产生式系统中的冲突集。</SPAN><SPAN lang=EN-US style="COLOR: black"><O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><O:P><FONT face=楷体_GB2312 size=1>&nbsp;</FONT></O:P></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US>1</SPAN><SPAN style="FONT-FAMILY: 宋体">．下载及配置，首先必须要正确安装和配置</SPAN><SPAN lang=EN-US>JDK</SPAN><SPAN style="FONT-FAMILY: 宋体">。</SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US>JESS</SPAN><SPAN style="FONT-FAMILY: 宋体">下载网址：</SPAN><SPAN lang=EN-US><A href="http://www.jessrules.com/jess/index.shtml"><FONT color=#800080>http://www.jessrules.com/jess/index.shtml</FONT></A> </SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">下载解压后，我下载的是</SPAN><SPAN lang=EN-US>61P8</SPAN><SPAN style="FONT-FAMILY: 宋体">稳定版本。解压到比如</SPAN><SPAN lang=EN-US>jess6</SPAN><SPAN style="FONT-FAMILY: 宋体">文件夹中，其下面的目录结构为</SPAN></FONT></FONT></P>
<TABLE class=MsoNormalTable cellPadding=0 border=0>
<TBODY>
<TR>
<TD style="BORDER-RIGHT: rgb(244,244,244); PADDING-RIGHT: 0.75pt; BORDER-TOP: rgb(244,244,244); PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: rgb(244,244,244); PADDING-TOP: 0.75pt; BORDER-BOTTOM: rgb(244,244,244); BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体"><FONT size=1><FONT face=楷体_GB2312>docs/<O:P></O:P></FONT></FONT></SPAN></P></TD>
<TD style="BORDER-RIGHT: rgb(244,244,244); PADDING-RIGHT: 0.75pt; BORDER-TOP: rgb(244,244,244); PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: rgb(244,244,244); PADDING-TOP: 0.75pt; BORDER-BOTTOM: rgb(244,244,244); BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体"><FONT size=1><FONT face=楷体_GB2312>This documentation<O:P></O:P></FONT></FONT></SPAN></P></TD></TR>
<TR>
<TD style="BORDER-RIGHT: rgb(244,244,244); PADDING-RIGHT: 0.75pt; BORDER-TOP: rgb(244,244,244); PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: rgb(244,244,244); PADDING-TOP: 0.75pt; BORDER-BOTTOM: rgb(244,244,244); BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体"><FONT size=1><FONT face=楷体_GB2312>jess/<O:P></O:P></FONT></FONT></SPAN></P></TD>
<TD style="BORDER-RIGHT: rgb(244,244,244); PADDING-RIGHT: 0.75pt; BORDER-TOP: rgb(244,244,244); PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: rgb(244,244,244); PADDING-TOP: 0.75pt; BORDER-BOTTOM: rgb(244,244,244); BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体"><FONT size=1><FONT face=楷体_GB2312>A directory containing the jess package. There are many source files in here that implement Jess's inference engine. Others implement a number of Jess GUIs and command-line interfaces. Main.java implements the Jess command-line interface. Console.java is a very simple GUI console for Jess; ConsoleApplet.java is an applet version of the same. If you have a binary-only distribution of Jess, this directory will contain only the examples subdirectory. <O:P></O:P></FONT></FONT></SPAN></P></TD></TR>
<TR>
<TD style="BORDER-RIGHT: rgb(244,244,244); PADDING-RIGHT: 0.75pt; BORDER-TOP: rgb(244,244,244); PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: rgb(244,244,244); PADDING-TOP: 0.75pt; BORDER-BOTTOM: rgb(244,244,244); BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体"><FONT size=1><FONT face=楷体_GB2312>examples/<O:P></O:P></FONT></FONT></SPAN></P></TD>
<TD style="BORDER-RIGHT: rgb(244,244,244); PADDING-RIGHT: 0.75pt; BORDER-TOP: rgb(244,244,244); PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: rgb(244,244,244); PADDING-TOP: 0.75pt; BORDER-BOTTOM: rgb(244,244,244); BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体"><FONT size=1><FONT face=楷体_GB2312>A directory of tiny example Jess files.<O:P></O:P></FONT></FONT></SPAN></P></TD></TR>
<TR>
<TD style="BORDER-RIGHT: rgb(244,244,244); PADDING-RIGHT: 0.75pt; BORDER-TOP: rgb(244,244,244); PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: rgb(244,244,244); PADDING-TOP: 0.75pt; BORDER-BOTTOM: rgb(244,244,244); BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体"><FONT size=1><FONT face=楷体_GB2312>jess/examples<O:P></O:P></FONT></FONT></SPAN></P></TD>
<TD style="BORDER-RIGHT: rgb(244,244,244); PADDING-RIGHT: 0.75pt; BORDER-TOP: rgb(244,244,244); PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: rgb(244,244,244); PADDING-TOP: 0.75pt; BORDER-BOTTOM: rgb(244,244,244); BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体"><FONT size=1><FONT face=楷体_GB2312>A directory of more complicated examples, containing example Java source files. <O:P></O:P></FONT></FONT></SPAN></P></TD></TR>
<TR>
<TD style="BORDER-RIGHT: rgb(244,244,244); PADDING-RIGHT: 0.75pt; BORDER-TOP: rgb(244,244,244); PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: rgb(244,244,244); PADDING-TOP: 0.75pt; BORDER-BOTTOM: rgb(244,244,244); BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体"><FONT size=1><FONT face=楷体_GB2312>jess.jar (optional)<O:P></O:P></FONT></FONT></SPAN></P></TD>
<TD style="BORDER-RIGHT: rgb(244,244,244); PADDING-RIGHT: 0.75pt; BORDER-TOP: rgb(244,244,244); PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: rgb(244,244,244); PADDING-TOP: 0.75pt; BORDER-BOTTOM: rgb(244,244,244); BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体"><FONT size=1><FONT face=楷体_GB2312>A Java archive file containing the Jess classes themselves. Binary distribution only.<O:P></O:P></FONT></FONT></SPAN></P></TD></TR>
<TR>
<TD style="BORDER-RIGHT: rgb(244,244,244); PADDING-RIGHT: 0.75pt; BORDER-TOP: rgb(244,244,244); PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: rgb(244,244,244); PADDING-TOP: 0.75pt; BORDER-BOTTOM: rgb(244,244,244); BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体"><FONT size=1><FONT face=楷体_GB2312>Makefile (optional)<O:P></O:P></FONT></FONT></SPAN></P></TD>
<TD style="BORDER-RIGHT: rgb(244,244,244); PADDING-RIGHT: 0.75pt; BORDER-TOP: rgb(244,244,244); PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: rgb(244,244,244); PADDING-TOP: 0.75pt; BORDER-BOTTOM: rgb(244,244,244); BACKGROUND-COLOR: transparent">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 宋体"><FONT size=1><FONT face=楷体_GB2312>A simple makefile for Jess. Source distribution only.<O:P></O:P></FONT></FONT></SPAN></P></TD></TR></TBODY></TABLE>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN></SPAN></SPAN><FONT face=楷体_GB2312 size=1>&nbsp;</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN style="FONT-FAMILY: 宋体">然后再</SPAN><SPAN lang=EN-US>ClASSPATH</SPAN><SPAN style="FONT-FAMILY: 宋体">中加入环境变量</SPAN><SPAN lang=EN-US>D:\Jess6\jess.jar (jess</SPAN><SPAN style="FONT-FAMILY: 宋体">的解压路径</SPAN><SPAN lang=EN-US>)</SPAN><SPAN style="FONT-FAMILY: 宋体">。</SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=1><FONT face=楷体_GB2312><SPAN lang=EN-US>2</SPAN><SPAN style="FONT-FAMILY: 宋体">．测试：在控制台界面下输入命令</SPAN><SPAN lang=EN-US style="COLOR: black">java jess.Main examples/fullmab.clp<O:P></O:P></SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="COLOR: black; FONT-FAMILY: 宋体"><FONT face=楷体_GB2312 size=1>将会得到一个经典的猴子摘香蕉的问题的解。</FONT></SPAN></P>]]></description>
</item><item>
<title><![CDATA[用Protege打开OWL文件]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=babyblue&amp;id=20485</link>
<author>babyblue</author>
<pubDate>2006/12/3 15:40:49</pubDate>
<description><![CDATA[<P>在用protege打开OWL文件时，常常会出现错误，我们可以采用如下方法打开：</P>
<P>1、启动protege，选择“create new project……”；</P>
<P>2、在弹出的窗口中选中上面的复选框，并在列表中选择工程类型，这里选择“OWL files”，进入下一步；</P>
<P>3、给出要打开的OWL文件的路径，结束或者根据自己的需要，进行进一步的限制。</P>
<P>4、完成。</P>
<P>&nbsp;</P>]]></description>
</item>
</channel>
</rss>