6.3 論理式を用いた検索条件の記述

検索サービスを利用することによって,インターネット上の様々な情報を見つけ出すことができます.しかし,検索のやり方によっては何万件もの検索結果が返されてしまうこともあります.この中から自分の目的のページを探し出すのは大変ですね.ここでは,全文検索型の検索サービスをより効果的に利用するための一つの方法として,論理式を用いた検索について説明します.その準備として,はじめに論理学の基礎である命題論理についてごく簡単に説明します.

情報処理,及び皆さんが来学期以降履修することになるプログラミング科目の目的の1つは,コンピュータを用いた問題解決能力の育成です.コンピュータを用いた問題解決能力を身につけるために,コンピュータに自分のさせたいことを,コンピュータが理解できる形で厳密に記述する作業を行っていきます(主に,プログラミング科目で行います).ここで「厳密に」というのは,「論理的に」という意味です.論理学の基礎について学ぶことは,コンピュータを用いた問題解決能力を身につける上での基礎体力となりますので,しっかり学習しましょう.

なお,論理学の参考書として,「記号論理学」(清水義夫著,東京大学出版会,1999)を挙げておきます.より深く勉強したい方は参考にして下さい.

命題論理の基礎

命題論理とは,否定詞及び接続詞を扱う論理学であると言えます.命題論理の命題とは,簡単に言えば記述文のことです.ここでいう記述文とは,その真偽(論理学では真理値とも言います)が問題となりうるような文のことで,命令文や疑問文は含まれません.例えば,次のような文が命題です.

犬は四つ足である,昨日学校は休講だった,鯨は哺乳類である,などなど

さて,次のような命題を考えてみます.

      私は独身である

この命題を否定すると,「私は独身ではない」となります.「私は独身である」という命題と,その否定である「私は独身ではない」という命題の間には,どのような真偽関係が成立しているのでしょうか.ここで,次のような表を作ってみます.

私は独身である 私は独身ではない

ここで「ではない」という否定詞を含んだ「私は独身ではない」という命題は,「私は独身である」という命題の関数となっていることに注目して下さい.次に,以下の命題を考えてみます.

            太郎は部屋にいる,かつ,次郎も部屋にいる

(上の例やこの例のように,接続詞や否定詞を含む命題を複合命題と呼びます.また,「太郎は部屋にいる」などのように接続詞や否定詞を含まない肯定形の命題を単純命題と呼びます)

上の命題は,「太郎は部屋にいる」,「次郎は部屋にいる」という2つの単純命題を「かつ」という接続詞によって結合した複合命題です.ここで,同じように2つの単純命題とそれらを接続詞によって結合した複合命題との間の真偽関係について表を作って考えてみましょう.

太郎は部屋にいる 次郎は部屋にいる 太郎は部屋にいる、かつ、次郎も部屋にいる

「太郎は部屋にいる,かつ,次郎も部屋にいる」という命題が真であるのは,「太郎は部屋にいる」「次郎は部屋にいる」という2つの単純命題が共に真である場合に限られます.太郎と次郎のどちらか一方でも部屋にいない場合,複合命題は偽ということになります.これも当前で,次郎が部屋にいないのに,「太郎は部屋にいる,かつ,次郎も部屋にいる」などという命題が真となることはありえません.ここでも,「かつ」という接続詞を含んだ複合命題は,単純命題の関数となっていることがわかります.抽象化して,「太郎は部屋にいる」をP,「次郎は部屋にいる」をQとし,真偽をそれぞれ1と0で表すことにします.そうすると,上の表は次のように表すことができます.

PQPかつQ
111
100
010
000

これは,複合命題の真偽はそれを構成する単純命題の真偽に応じて一通りに決まっていることをより直截的に表しています.すなわち,複合命題の真偽は単純命題の真偽の関数になっているということに他なりません.そこで,このような真偽(真理値)間の関数を真理関数と呼び,それを表すこのような表を真理値表と呼びます.ここでは,命題論理において基本とされる真理関数をその真理値表とともに3つ紹介します.

(1)否定(NOT):¬P
Pではないという否定を表す.

P¬P
10
01

(2)論理積(AND):P∧Q
PかつQという論理積(連言)を表す.

PQP∧Q
111
100
010
000

(3)論理和(OR):P∨Q
PまたはQという論理和(選言)を表す.ただし,これは両立的選言と呼ばれ,P,Qともに真の場合でも,P∨Qは真となるので注意.

PQP∨Q
111
101
011
000

論理式を用いた検索

全文検索式の検索サービスでは,論理式を用いたより効率のよい検索を行うことができます.複数のキーワードに対して,AND検索,OR検索,NOT検索を行うことによって,効果的な検索を行うことができます.

・AND検索

AND検索は,keyword1 AND keyword2のように入力し,2つのキーワードがともに含まれるページを見つけます.検索結果を絞り込むことができます.

・OR検索

OR検索は,keyword1 OR keyword2のように入力し,2つのキーワードのうちどちらかが含まれるページを見つけます.OR検索は,例えば1つのものに2つ以上の名前があり,その両方を網羅した検索を行いたい場合に使います.湘南藤沢キャンパス OR SFCと入力すれば,湘南藤沢キャンパスという呼称が使われているページも,SFCという略称が使われているページも検索することができます.

・NOT検索

NOT検索は,keyword1 NOT keyword2のように入力します.正式には,keyword1 AND NOT keyword2と書きますが,通常ANDは省略されます.この検索式では,keyword1を含むページの中から,keyword2が含まれるページを取り除いたページを見つけ出します.

論理式を用いた検索
AND検索,OR検索,NOT検索

さらに,ここで説明した検索式の応用として,括弧を用いてより複雑な式を作ることもできます.例えば,(ワイン OR ぶどう酒) AND レストランなどと指定することができます.また,記号の記述の仕方が利用するページによって多少異なるので注意が必要です.

● 練習問題

論理式を用いて,イチゴケーキのレシピを載せたページを検索してみましょう.その際,できるだけ検索結果件数を絞り込めるよう論理式を工夫してみましょう.