3.5.1 布尔逻辑:AND,OR和NOT
在计算机检索和网上检索中,通常用到3个布尔逻辑作高级检索,但有时也出现在一般检索中,它们是AND,OR和NOT。AND是逻辑“与”,它常用“∗”作为代替符号,但在有些大型搜索引擎上还可用“&”符号代表。事实上与数学中的“乘号”非常相像,我们知道在数学中,乘号一般是用“×”,但也常常不写,如A×B=AB,在结果上是相同的。
(1)逻辑AND
在网上检索时,这个AND的代替符因每个网站而略有差异。与OR和NOT不同,OR的算符绝对是“+”,而NOT的运算符一般是“-”,但AND的运算符就五花八门了,如可用空格、逗号、&、∗,或直接用“AND”。
事实上对于人类来说,AND应当是最“亲切”的、用得最多的。例如,人类的产生和发展就是一系列重大自然历史条件“AND”的结果。微软公司的成长壮大也是一系列“AND”造就的,如果该公司成长过程中哪一个对手没有犯一些致命的错误的话,那比尔·盖茨就不会这么幸运了。
逻辑“与”或“AND”把两个关键词联系到一起,表示被检索的文献必须同时含有这两个词。使用“与”运算可以缩小检索范围,提高检索的查准率。例如,我们打算查找在锅炉的计算机控制中使用专家系统的情况,就应当输入:专家系统AND锅炉。其逻辑图如图3.5所示左边图。
图3.5 计算机检索中使用的布尔逻辑
图3.5中:
A=“专家系统”命中的文献数
B=“锅炉”命中的文献数
A AND B的逻辑式表示命中文献是A和B的交集(即图3.5左图中的阴影部分)。
可用这个“专家系统AND锅炉”来测试一下文献数据库。例如,当查CNKI或维普中文全文数据库时,得到的结果是:如果单用一个词,“专家系统”有4 000多篇,“锅炉”有1万多篇,“专家系统AND锅炉”就只有80多篇了。这里的3个数据每年都会增加,但相应的比例变化不大。
当查找美国的工程索引(工程信息村)这类的英文数据库,也可用它来试一下。单独查“expert systems”和“boilers”,再用“expert systems AND boilers”查找,结果差不多也只有100多篇。
又如,查找“用胰岛素治疗糖尿病”的文章,可使用检索式:insulin(胰岛素)AND diabetes(糖尿病)。
(2)逻辑OR
逻辑“或”用“OR”或“+”表示。两个检索词用OR相连,表示被检中的文献含有二词之一或同时含有二者,用于检索具有并列关系的组配。使用“或”运算可以扩大检索范围,提高文献的查全率。例如,要查计算机或机器人方面的文献,就输入:
computer OR robot或“计算机+机器人”
用逻辑图(或文氏图)表示为
A=computer命中的文献篇数
B=robot命中的文献篇数
A+B则为二者的“并集”(见图3.5中间图)。
OR能提高查全率,如某用户想查找研究杜甫的文献,检索途径选择题名后,输入“杜甫”,命中540篇。但考虑到研究杜甫的文献题名中未必都出现“杜甫”两字,也可能会出现“杜诗”“李杜”,于是改用“杜甫+杜诗+李杜”表达式,结果命中608篇。
(3)逻辑NOT
逻辑“非”就是NOT,检索词A、B若用NOT相连,则表示被检文献在含有检索词A而不含B时才被检中。用于从某一检索范围中排除不需要的概念。使用“非”检索指令与“与”运算有同样可以减少输出结果的功能,当然,在缩小检索范围的程度方面,自然也会有一些差异。使用“非”逻辑检索的例子如查找汽车方面的文献,但不能找出含有拖拉机的文献,于是就用:car NOT tractor。
用文氏图表示A的集合中排除了含有B的部分,就是最后的结果:A-B(见图3.5右边图)。
在AND,OR,NOT众多的“快捷”算符中,建议使用空格、+、-这几个最简单的符号,它们是大多数搜索引擎都认可的。
(4)用括号改变逻辑运算的顺序
当在检索式中不用任何括号时,AND,OR和NOT的运算优先级别从高到低为:NOT, AND,OR,如果需要改变运算顺序,则用括号来“无条件”地改变它们的顺序。例如,检索式: (A OR B)AND C,表示先执行“A OR B”的检索,再将“A OR B”的结果与C进行“与”。
例如,欲检索重庆大学在2011—2012年之间关于遥感遥测技术在航空航天中的运用的有关文章,检索式可书写为:重庆大学AND(遥感OR遥测)AND(航空OR航天)AND (2 011 OR 2 012)。
3.5.2 AND和OR是逻辑对的证明
AND,OR和NOT是最基础的几种逻辑。其中AND和OR是典型的逻辑对。所谓逻辑对是如果改变逻辑的性质的话,则它们会向自己的对方转化。例如,我们只要变更一下正负逻辑,AND就能变为OR,OR就能变为AND。其证明非常简单,如图3.6所示。
图3.6 改换正负逻辑后,AND变为OR
这也是为什么半导体工业和计算机制造业常常用与非门代替或门制作逻辑电路的原因(与非门的制作工艺最简单)。
NOT逻辑最简单,它没有自己的逻辑对(或互补逻辑),或者说,它的逻辑对就是自己本身。这几种逻辑中,最简单的是NOT逻辑,它是计算机进行运算的基础(0或1);最“宽松”的逻辑是OR,它的4种可能的结果中有3个是真;最“严格”的逻辑是AND,它只有一个真的可能。在信息检索和数据库中,大量使用的是AND和OR。例如,查找一篇文献的出处,其实质就是一连串的AND的逻辑组合,只要你稍稍勤快一点,记下了这短短的一条信息,就可以毫不费力地在一个庞大的期刊库大厅中迅速找到你所需要的文章。这个例子说明:
AND具有“聚焦”的作用,可使我们在信息检索中迅速定位。AND能提高准确度和查准率。OR与它相反,具有“散焦”的作用,但也有扩大视角、开阔视野的优点,扩大检索面、提高查全率。一连串的AND或OR,会更迅速地增强它本身的功能,而AND和OR的各种组合,则能适应千变万化的需要和用途。
3.5.3 数据库操作命令中隐含的AND关系
在常见的数据库管理系统中同样广泛使用AND和OR。例如,下例是FoxPro人事数据库中的一条命令:
LIST ALL职工姓名,工资FOR职称=“工程师”
此例将列出数据库中全部工程师的名单及他们的工资。FoxPro命令一般由命令本身、范围、字段名表和条件项4个部分构成。其一般格式为
命令动词 [记录范围] [字段名表] [for/while条件]
初看起来,后3个可选项之间似乎彼此并无多大关系,实际上它们却是AND关系。例如,如果不要记录范围的约束(即为缺省的“ALL”),则将显示全部记录;如果没有字段名表,则将输出全部字段;如果没有条件选项,则将无条件输出全部记录。这也正是只键入LIST后立即回车,什么条件也没有时的输出结果(立即输出数据库全部记录)。可见范围、字段名表、条件选项彼此之间,全都隐含着“与”的关系。LIST输出全部记录,所加的限制越多,则输出的记录将越少甚至为0。
当输出结果多于几十上百篇,我们会感到难以一一阅读,这时应在检索策略上多加一些AND的成分;当输出结果太少或为0,就应增加OR的检索分量;从而使无论什么检索题目,都输出几条到十几条或几十条的检索结果。这正是检索的目标和技能所在。在这里,你仍然看到了人机工程学的影子,它似乎是无所不在的!
但无论何时当检索结果为0时,注意千万不要轻易相信这个结果,尤其是驾驭着搜索引擎在无边无际的互联网的数字海洋中漫游时。因为这多半是自己的检索式有问题,而互联网则几乎是无所不包的,我们所能想象出来的所有东西,互联网上都有,甚至我们想象不出的东西,互联网上也有。
3.5.4 AND逻辑和IP地址的子网掩码
AND逻辑在IP地址的子网掩码的计算中大派用场。
32位的IP地址由网络地址和主机地址两部分组成。例如,一个C类地址,主机地址长8位,支持28-2=254台主机(减2是由于全0代表本机,全1为广播地址,必须去除)。但如果给有着50台机器的局域网一个C类地址,就太浪费了(有204个IP地址空置),这时就把主机地址的8位,分出头2位来作子网地址,支持01,10两个子网(00,11不用,理由同前),每个子网就能支持64-2=62台机器。但此时,又用什么办法告诉互联网上所有计算机和网络,本机IP地址的网络地址长度改变了?这时子网掩码(Subnet Mask)就起作用了。
子网掩码只是一种标识方法,长度同IP地址一样,只不过分为两段:前半段全是1,后半段全是0。当一个IP地址被它的子网掩码相“与”后,子网掩码的全0部分就使IP地址的主机部分“消失”,留下的就是IP地址的网络地址部分。子网掩码就像一只“手电筒”,电门一按,就“照亮”了IP地址中真正的网络地址。如果将来自不同地方的两个IP地址分别与它们各自的子网掩码相与,剩下的部分如果相同,则表明它们来自同一个网络或同一个子网。
例如,一台机器的IP地址为:192.168.0.1(这个地址实际上是常见家用路由器所占用的IP地址,不过,并不妨碍此处举例),子网掩码为:255.255.255.0,将这个IP地址和它的子网掩码用二进制展开并相“与”,得到这台机器的网络地址。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。