6.3 命題論理と論理式を用いた検索

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

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

命題論理の基礎

 命題論理の「命題」とは,簡単に言えば記述文のことです.ここでいう記述文とは,その真偽が問題となりうるような文のことで,命 令文や疑問文は含まれません.例えば,次のような文が命題です.

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

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

      私は独身である

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

ronri1

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

            マッピーは部屋にいる,かつ,ターキーも部屋にいる

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

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

ronri2

 「マッピーは部屋にいる,かつ,ターキーも部屋にいる」という命題が真であるのは,「マッピーは部屋にいる」「ターキーは部屋 にいる」という2つの単純命題が共に真である場合に限られます.マッピーとターキーのどちらか一方でも部屋にいない場合,複合命題 は偽ということになります.これも当たり前で,ターキーが部屋にいないのに,「マッピーは部屋にいる,かつ,ターキーも部屋にいる 」などという世界が成立することは不可能です.ここでも,「かつ」という接続詞を含んだ複合命題は,単純命題の関数となっているこ とがわかります.分かりやすく,「マッピーは部屋にいる」をP,「ターキーは部屋にいる」をQとし,真偽をそれぞれ1と0で表すこ とにします.そうすると,上の表は次のように表すことができます.

ronri3

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

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

ronri4

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

ronri5

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

ronri6

論理式を用いた検索

 全文検索式の検索サービスでは,論理式を用いたより効率のよい検索を行うことができます.複数のキーワードに対して,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が含まれるページを取り除いたページを見つけ出します.

ronri6
AND検索,OR検索,NOT検索

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

● 練習問題

論理式を用いて,イチゴケーキのレシピを載せたページを検索してみましょう.他にも様々な検索を行ってみましょう.