==============================================================================
                GDA-LES :           
              Copyright (C) 1999  (̳ƻ ˡ)
                            ǽ 1999.1.31
==============================================================================


ܼ

  0. Ϥ
  1. ե졼
    1.1 䡢ݲǰ
    1.2 OSL
    1.3 GDA
    1.4 ˡŪ
  2. μɽ


0. Ϥ

ܥƥϡŪʥե졼ȤơGDAʥ˰¸ݲ
ݡˤ[Okubo94]ˤѤˡΧŪ˰¸ˡŪ¸
ƥǤ롣ܻǤϡΥƥ뤿ˡޤݲ˴
ȡγǰˡΧΰȤδطβԤˤ
ơŪʥե졼γפǤȻפɮԤޤǻߤº
ͽμΤʤؤ䤳ʬʳΰ̤ؤηиܻ
ޤȤƤߤ

ȾǤϡºݤ˥ƥѤ뤿ˡμˡˤĤƲ⤹롣
ŪˤϥȤΤѤ롣ºݤˤPrologμҸ
֥ȻظޥҤ碌褦ʸѤƤ롣
鿴Ը˻ߤ롣


1. ե졼

1.1 䡢ݲǰ

ܸˤơȤϤɤΤ褦ʤΤȹͤƤΤ
δطˤĤƴñ롣

ȤС롼Ȥơ

     A ʤ B

ͤȤǤϡޤAǤΤ롼ŬѤơB
롣AʤBפABɽȤȡABΩĤȤAǤʤ
СΩʤСˡBȤ̣ǡ

    A
    AB
   ------
    B

Τ褦˽񤯤Ȥ⤢롣Ϥ뻰ˡǤ롣------夬Ǥ
ꡢɽҲ̾Ρ֥ȡפ˻ص |-ʼºݤˤϽȲ
ĤƤˤȤäơ
   A, AB |- B Τ褦˽񤯤Ȥ⤢롣ФAȤϰۤʤ뤬ƤA'
ΤΩȤˤ⡢Υ롼ŬѤBդȸ
ʤ

    A'
    AB
   ------
    B

ΤȤAA'δ֤פȸֻƤפȤȤ
롣ʤAA'ⲿξ˶̤פȤ򼨤ơ
ǹͤ٤ȤϡΥ롼ŬѤ뺬­뤫Ȥ
ȤǤ롣Υ롼뤬ޤޡܤƤ붦򺬵Ȥƺ줿
ʤ꤬ʤǤʤʤиƤ㤤ԤȤˤʤäƤ
ǡŬڤʡʸƤ㤤Ǥʤ褦ʡԤˤϡŬڤ
ɬפ롣ȤС֤󤴤ʤŴʬפȤ롼뤬ä
褦⤷󤴤ݤ顢åܡȤܤƤޤä
硢֥åܡŴʬפ䤵Ƥޤ줬Ƥ㤤ʤΤ
餫󤴤֤ܤơƤΡȤС
ˤ󤸤ФƤΥ롼ŬѤС֤ˤ󤸤ŴʬפȤʤꡢ
ŬڤǤ뤳Ȥʬ롣ɡŬڤ˹ԤˤϡܤƤ붦
Υ롼ŬΤǤ뤫ɤݥȤȤʤäƤ뤳
ʬǤ

  [Ρ]
  ʤΤ褦ŬѤ븵Ȥʤ롼֥롼פ뤤
  𤬤ʤñˡ֥פȸƤ̤֡ˡϡʲΤΤ褦ʿ޼
  ɽ롣

      <¦>     :            󤴤Ŵʬ
                                             
      <å¦> :      ˤ󤸤     ˤ󤸤Ŵʬ

  ޼ȸƤ֡οޤǤϡåȤ˸Τ򥽡Ƥ
  ơʤ󤴤ˤˤ󤸤ƤϤˡơη̤򸵤Υå
  ᤹ʤ󤴤ˤ󤸤᤹ˤäԤäƤ롣

򡢵ȤäƾƤߤ褦Ap1,p2,p3Σ
ǤäȤ褦ˡϼ¤p1p2ΩľꤷB
ΤǤä롣ΤȤA'p3,p4ǤäȤȡΤp3Ȥ
ǤϻƤ뤬ϥκ򤿤ˤʤäƤʤΤǡϸƤ
Ǥ롣⤷p1,p2,p4ȤCäȤСCˤΥ
롼ŬѤ뤳ȤŬڤǤʤʤ顢Cp1,p2AƱ
ʶͭˤǤ롣

ˡݲȤδطˤĤƴñ˲⤹롣ݲȤϣİʾ
λʪ䳵ǰޤȤưȤȹͤ롣뤤ϡեƤƤ
Τߤ˹ʤäƻʪ䳵ǰ򰷤ȤˤݲȤȤФѤ롣
ϡݲפȤդΤξǤȸ롣㤨С֤
ݤפȡ֥ܡ뤬ݤפȤޤȤƵҤ뤳ȤͤƤߤ褦
󤴤ȥܡޤȤ᤿ǰŬ˦Ȥɽ碌С֦ݤ׵Ҥ
뤳ȤǤޤȤƵҤ뤳ȤǤ롣ޡľŪˡ֤ޤȤפȽҤ٤Τϡ
ΤˤϤ󤴤ȥܡγǰɽ½Ǥ롢Ǥ롣
äơΦȤϡ٤ƤΤ󤴤νȤ٤ƤΥܡν碌
½դ줿Ūʳǰ̾ȹͤƤ褤ǡ󤴤ȥܡޤ
뤳ȤǽäΤϡޤǤ⡢ξγǰ̤ΡִݤפȤ
äƤǤ롣󤴤֤ʤΤảĤ󤴤Ͻ
ƹͤƤˤȤϸƤ⡢ܡɬ֤Ȥϸʤäơ֦
֤פȤޤȤʤɡޤȤưݤˡեƤ
̤˸¤ʤˤϤʤʤǽ뤳Ȥʬ롣⤽
⡢İʾΤΤޤȤưˤϡζ̤򤷤ʤꤷʤ
ФʤʤʤƱʪȤưꤹ뤳Ȥˤʤ롣ȡƱ
ʪȤưȤǤʤʬ졢ƱΤȤư
ĤޤꡢͭΤߤ˥եƤƤʤФʤʤޤդˤ
˹ʤ뤳Ȥǡǰ̤뤿ᡢ̤ˤϡ깭ǰʻʪ
ޤȤƼ갷롣ξ硢ιʤ줿ͭǤ롣
Ĥ٤ƤγǰޤȤƤ뤳Ȥˤʤ롣äơݲ֤ޤȤ
ƤĤȡפȤƤֶͭפ˥եƤ뤳Ȥˤʤ뤷դǤ
ʤơͭȤϤʤ餫Ǥ뤳ȤפС֤
ȤƤĤȡפϤ˥եƤ뤳ȤǤꡢ
եƤʤС֤ޤȤƤĤäơפ褤ǡΡ
ȡֶͭפȡ֤ޤȤᤢפȡݲפȤߤʤ롣

Ǹ˳ǰؤδطˤĤƲ⤹롣ǰؤȤϡդΥ饹
Τ褦ʬ೬ؤǤꡢǰδްաݡޡ˴طĥ꡼¤Τ褦˳
ȤɽΤǤ롣㤨Сͤưʪβ̳ǰǤꡢǭưʪβ̳
ǰǤ롣  <ưʪǭ<ưʪ Ȥ줾ɽȤˤ롣Τˤϡ
ֿ<ưʪפξ硢ƤοͤǤΤưʪǤפȤȤ̣롣
ơɽѤơˡ<ʪҤޤ<ʪưʪ<ʪʪ<ʪ
ȤäƤߤ褦ΤȤ餹٤ƤδطϰʲΥĥ꡼¤ɽ
ǽǤ

  ʪ ---+--- ưʪ ---+--- 
          |            |
          |            +--- ǭ
          |
          +--- ʪ ---+--- 
                       |
                       +--- Ҥޤ

Τ褦ʹ¤ϳǰؤȸƤФ롣ΤˤϡͤƤ복ǰνΤ
٤Ƥ"<"ط򽸤᤿Ρ뤤ϡ"<"ط줿복ǰνǤ롣
Τ褦ʳǰؤϡ͡ʳǰʬह뤿Ѥ졢äǤ꤬ʤΤ
СɸŪʳǰɽդλѤФƤʬबʤƤ롣ɡ
դ̤ˡɸŪˡˤɤΤΤɤΤΤȤȤ
ɽƤ롣ϡƱ˰żŪ˳ǰɸŪ˴Ťʬȸ뤳Ȥ
Ǥ롣ʤʤ顢դ̡ɸŪˤ˻ѤȤɤΤ褦ʸ̮ˤ
ΩĸդݴطɽƤΤǤ뤫顢ʬ൬ܼŪ
ʤʤǰˤ˴ŤƤȰŤ˲Ǥ롣ʤ
ɸŪʾ̤ǤΤߡȤ˺ƤϤʤ˰ʸ塢Ф餯ɸŪ
ʸաʳǰˤѤݡȤ֤

ơܼŪʡŪפȸƤܼ֡Ūϡ°Ūפȸ
Ф뤳Ȥ⤢롣ˤϡγǰ°ƤΩǤ롣
ʢ ܼŪʤСɬ׽ʬפǤʤФʤ
     ǤϡγǰǤ뤿ˡֽʬʡΰ̣ܼȸäƤ롣
ơ̳ǰ°Τɬβ̳ǰ°Τǡ̳ǰ
ŪϤ٤Ʋ̳ǰǤΩġޤ̤˲̳ǰܼۤŪ
롣㤨СʪΡ֤Ĥ̡פȤܼŪưʪ俢ʪǤΩ
󡢤˲̳ǰο͡ǭꡢӡҤޤǤΩġƿ
ʪΡָפȤϡʪˤȤäƤܼŪǤäƤ⡢ʪˤ
äƤϤ٤ƤΩǤϤʤưʪǤΩʤ
ҤޤʤΩġΤ褦˾̳ǰ̳ǰΩ
̳ǰ򲼰̳ǰַѾפȤ

ǡѾȤϡ¤Ͼ̳ǰȲ̳ǰͭƤ
ȸ뤳ȤǤȸʤС̳ǰȲ̳ǰϷѾƤ
ŪˤơƤȹͤ뤳ȤǤ롣ˡƱξ̳
ǰĲ̳ǰƱΤϡƱ򤤤ĤѾƤΤ餫Ǥꡢ
϶̳̾ǰŪǤ롣äơϤβ̳ǰƱΤǶͭ
Ƥ뤿ᡢ˴Ťβ̳ǰƱΤƤȤߤ뤳
Ǥ롣㤨СŪֿʪפΩĤΤǡ֥
Ҥޤ򤹤פΩġäơʪŪϷѾȤ
˾̳ǰȲ̳ǰǶͭƤꡢΰ̣ǿʪȥ꤬Ƥȸ
뤷ʪȤҤޤƤȸ롣ˡϥȤҤޤǤ
ͭƤ뤳Ȥ餫ʤΤǡ⤽ŪָפȤ
ˤơƤ롣ĤޤꡢȤҤޤζ̤ξ̳ǰֿʪפ
ŪˤơȤҤޤƤȸΤǤ롣
ǰؤ򵭽ҤȤϡŪŪղõҤȤϸ¤ʤ
ष⤷ŪʤСɬ̳ǰΩĤ褦˳ؤ򵭽Ҥ
Ƥȸ٤ǤΤᳵǰؤϰ̤ˤϡʤ٤ɸŪʲ
ŤȤȤƵҼԤͿƤͽۤǤ롣ʾεꡢä
ʤͿ줿ǰؤʤСγǰؤϡɸŪŪ˴Ť
ɽȸ뤳ȤǤ롣

ޤǤεϡΰ̣Ū˰ʲΤ褦ͿƤСǤ롣

  ǰϤγǰΤνȲ᤹롣
  ǰݴطб뽸޴طȲ᤹롣
  νDǰSؿIȤäɽȡ

    s1,s2SΤȤ
      I(s1)D
      I(s1<s2) = I(s1)I(s2)

  Ǥ롣I(s1)=AI(s2)=BȤȡs2ŪpƤBǤ
  ΩĤΤǡxB p(x) Ω롣ABꡢxA p(x) 
  Ω롣äơs1pѾ롣⤷s3<s2ʤСƱͤs3p
  Ѿ졢s1,s2,s3pȤŪͭȤƸߤƤ
  Ȥʬ롣
  դˡ복ǰs3,s4ζ̤ξ̳ǰs6ǤäȤs6Ūq
  嵭Ʊͤs3,s4˷Ѿ뤿ᡢϤꡢqˤäƸߤ
  ƤȤߤʤȤǤ롣

ơ˱٤褦ʡݲμ갷ϡǰؤФ
ϤɤΤ褦ʼ갷ԤȤˤʤΤǤˤĤƽҤ٤롣ܸ
ǤϡݲΥեȤʤ붦ͭȤߤʤץץ
Ƥ롣äơǰؤˤŪηѾ˴Ťͭ
ꡢ줬եȤʤݲȤϡζͭĤΤޤȤ夲
ʳ礷˳ǰ뤳ȤǤ롣⤷복ǰsŪp
β̳ǰʳäƤʤ褦¾ŪǤСƤβ̳ǰ
ηϤsγȤʤΤǡޤˡ鲼̳ǰݲ줿Τs
ΤΤǤ롣ºݤˤϤ礦ɤ褤̳ǰʤ⤢֤
̾ۤȤɤξ硢Τ褦ʤԤäݲ줿ǰƤ뤳
Ϥʤ복ǰs1,s2ͭpäƤȤ2Ĥγ
ǰγ(줾°ν)½ˤǰŪ
С϶̤ξ̳ǰǤꡢpȤƻäƤΤǡ
ǰؤˤݴطŪȤ߹ळȤǤ롣ΤȤϡʤȤp
ŪǤꡢs1s2ѾƤ褦ɽ롣㤨С
ȤҤޤֲ꤬֤ͭ餯פĤȤ֥ϲ֤餯פȡ֤Ҥޤ
ϲ֤餯פȤҤֲ֤餯פȤȤҤޤޤ
᤿Ȥ۾̳ǰѤơ֦ϲ֤餯פȵҤ뤳ȤǤ롣
ݲǤäơǰؤȤɽˤݲȤϡͭ
ѾȤ벾Ūʾ̳ǰб롣

ޤǤε⡢Ū˰ʲΤ褦ͿƤСǤ롣

  xI(s1) p(x)  xI(s2) p(x) ΤȤs1s2ޤȤ᤿ΰ̣
  I()=I(s1)I(s2)ȡxI() p(x)Ǥ롣
  ޤI(s1)I()I(s2)I()ꡢs1<s2<Ωġ
  äơϲŪʳǰؤȹͤ뤳ȤǤ롣餫pϷѾ
  Ǥ롣

ܾޤȤȡǰ֤ζͭȤߤʤ˴ؤƤϤ
γǰ礷Ʋ۳ǰꡢ֤ɽƤȤʤ롣
β۳ǰϳǰؤȤƤϸγǰβŪʾ̳ǰǤ롣β۳ǰ
ˤ֤ݲǤ롣ΤȤݲΥեϤζͭ
ƤƤ롣˴ؤΩ̿ʤСˤäơ
ԤäƤʷ롣


1.2 OSL

ܥƥǺѤƤμɽϽ(Order-Sorted Logicʸ OSL
ά)˴ŤƤ롣ǤϡOSLܥƥѤOSLμ¸ˤ
ƼܾǤϡٽҸPrologμȤ뤬ľŪ
⿴Ƥߤ롣ˤμΤɼԤΤ˴ñPrologҸ
Ȥ롣˴ñPrologεҤޤ᤿ߤ롣

OSL̿򵭽ҤΤ㤨аʲΤ褦ʷɽ롣

    movable(X:human):-live(X).

ϡ뤬̾ΰ쳬ҸǤϡ

    X (movable(X)  live(X)  human(X) )

ɽ⡢

   Xʹ֤ǤꡢġXƤʤСXư

Ȥ̣Ǥ롣

    Τˤϡ֤٤ƤXˤĤơפȤ󤬹ˤ뤬դտ
    ϡXͤȤɤXǤäƤ嵭Сη
    Ƴ롢ȤȤΤ˵Ҥ뤿Ǥ롣ܲǤϤΥ
    ͤʤΤǰʸά

ʤ̾νҸǤϳǰҸȤɽ뤬OSLǤϤѶŪ
ʬƵҤΤǤ롣⤷ɼԤProlog¸ΤʤСOSLȤΥ
׳ѿΥProlog˲äΤȹͤĺ
褤

ޤΥˤĤƲ⤹롣ʤʹߤǤϥפΤȤ򥽡Ȥ
Ƥ֡ȤľŪʰ̣εо줷ֳǰפƱǤ롣
ȤϸΤμ̾ΤȤǤ롣̾PrologȥΤȤȻפäƤƤ褤
ŪˤϲΰDǤ˼뵭Ǥ롣ϡ

      taro @ human.

Τ褦˵Ҥ롣tarohuman°ΤǤ롢ʤtaroΥ
פhumanǤ뤳ȤƤ롣Ūˤΰ̣ϡI(taro)I(human) 
롣ޤݴطϡ

     human =< animal.

Τ褦˵Ҥ롣<طƱ̣Ǥ롣äơŪˤ
I(human=<animal)=I(human)I(animal)Ǥ롣ʤhuman, animal, taro
PrologȥƱ󥿥åǤΤǡȥȤȤϡ桼Ƕ
ѤʤФʤʤ⤷taro@taro ȵҤƤ⡢taroȥȤ
taroϥ桼ǤǶ̤Ѥɬפ롣Ҹ̾ƱPrologȥ
ѤƱͤǤ롣

ѿΥˤĤƽҤ٤롣ƬѤOSLOSLۡȸ
֡ˡ

    movable(X:human):-live(X).

ˤơѿXhumanդƤ롣Τ褦ˤѿǺǽ˸
줿Ȥˡ":"դơȵ򤵤˵Ҥ뤳ȤǤXФ륽
Ϳ뤳ȤǤ롣ȤСa@plantΤȤlive(a)ΩäƤ⡢a
humanǤʤΤǡȤϤʤϥ˥ե˥
ȴ֤ΥץåԤäƥѥСϥ˥ե
褦ˤʤäƤ롣Ūˤϡ

   X (movable(X)  live(X)  Xhuman )

ȤҤǤ롣ʤ뤤ϢXhuman (movable(X)  live(X))Ȥ
ľŪˤϡliveǤhumanʤФhumanmovableǤפȤ̣
롣

PrologȤϰʾǤ롣Prolog˴ؤ¿ǤƤꡢϢ
Υۡڡ⥤󥿡ͥåȾ˸Ƥ㤨СProlog
Υۡڡ http://www.ap.kagu.sut.ac.jp/PAJ/index.html 󥯤é
ΤǤ򻲹ͤˤ줿ʤܥƥǤϴؿǧƤʤ
ԤΤPrologñ˲⤷ƤȡηǧƤΤΤϡ
ۡȸƤФΤΤߤǤ롣ϡ

       .
        :- .
        :- , ..., .

Τ줫η򤷤ΤǤ롣":""-"δ֤˥ڡϤäƤϤʤʤ
":-"""Ʊִްաפ̣롣αΩĤʤк
ǤȤ̣Ǥ롣Ȥϡ

       Ҹ̾()
       Ҹ̾(, ..., )

Τ줫η򤷤ΤǤ롣Ҹ̾"("δ֤˥ڡϤäƤϤʤʤ
Ҹ̾Ȥ䥽ȤƱ褦˱ѾʸǻϤޤϢ³ʸ뤤Ͽ
ɽ롣PrologȥȸƤ֡Ҹ̾ϰ̣Ūˤ̾Ǥ
롣ȤСtaroؤι⤤ͤǤȤtallȤҸɽС
tall(taro)Ƚ񤯤ȤǤ롣ʬˤϡμΤϢѥ᡼
ꤵ롣äˤ֤˸ΩƤƽҸɽ礬ˤ˵뤬
ΤȤϡνҸϤ뤤ĤоݤδطɽƤꡢоݤ
ΤȤ¤٤롣ȤϡܥƥǤϡ

       
       ѿ
       ѿ:

Τ줫Ǥ롣䥽ȤPrologȥɽ롣ѿϱʸ
ϤޤϢ³ʸ뤤Ͽɽ롣ξ⡢³θ
հʳξ˶ԤƤ⹽ʤ¾Ҹ̾Ⱥ̤δ֤Ϣ
³Ȥ⤢롣ޤθ䱦̤θ":-"θ˶
Ƹ䤹ΤŪǤ롣

Τ褦«βʲΤ褦OSLγۡǤ롣

      red(X:apple).
      mortal(X:creature):-live(X).
      mother(X:human,Y:woman):-parent(X,Y).
      friend(X:human,Y:human):-friend(X,Z:human),friend(Z,Y).

ľŪʰ̣ϡˡ֤󤴤֤סƤʪϻ̱̿ˤס
ֿʹ֤νοƤƤǤסͧãͧãͧãפǤ롣Ūˤϡ
ˡ

    Xapple red(X)
    Xcreature (mortal(X)  live(X))
    Xhuman,Ywoman (mother(X:human,Y:woman)parent(X,Y))
    Xhuman,Yhuman,Zhuman (friend(X,Y)friend(X,Z)friend(Z,Y))

Ǥ롣

ˡ쳬ҸӤǾҲ𤷤OSLǤⶦ̤εҤΰ̣ŪƳ
Ƥߤ褦ޤоݤȤʤǾν֤ϸҼǵҤ롣
㤨Сr֤(redȽ񤯤Ȥ)ǤС

   red(r)

ȵҤ롣̤γredʬϽҸȸƤФ롣ƤŪʤ󤴤
Ƥ̾rȸƤФ롣̤ϼŪʤɡνҸѤ
ɬפʾ󤬵Ҥ롣⤬ξ̾оݤμ줬롣
ɡҼȤϡ֡ǤפȤʸɽƤ뤳Ȥˤʤ롣İʾ
طȤƤξ֤ɽȤɬפʾ˥","ǶڤäƵҤ롣
ȤС֥ϥҥƤǤפȤʸϡ

   father(tarou,hiroshi)

Τ褦˵ҤǤ롣Τ褦ʸҼγ˵ҤΤϰȸƤФ졢
ΤΤ12... Τ褦˸ƤФ롣ϡ֤Ҥפ
ȯ롣ҸѤ桼᤿顢ΰΰ̣嵭ξ硢1
ơ2˻ҶȤϥ桼ǰӤƤʤФ
ʣʴط䳵ǰ¸߼Τ򵭽Ҥ뤳Ȥ⤢롣԰a1Ȥ
a2pǰۤʤȤ

   difference(a1,a2,p)

Τ褦˵Ҥ뤳ȤǤ롣ˡ㤽ΤΡpǤϤʤˤ d
ȤǰŪΤȤɽȤ

   difference(d,a1,a2,p)

Τ褦ɽƤ⹽ʤâطּΤɽȤϹⳬ
ɽȸäơ桼ǵդƤʤȡտޤƤʤʸݤ
ɽƤޤȤˤʤ꤫ͤʤդɬפ롣

ˡʣʴط򤤤ĤθҼϢʰ̣Ūˤϡ֤ġפǷΡ
ȤƵҲǽǤ롣μ١˥롼ξȤƵҤȤϤθ
Ҽ򥳥ޤǷӡեȤȤƽ񤯤ȤϡñƤθҼ̤ˤ٤
񤤤ƤФȤС910ھŹȻľδ֤ˤѥp
c¸ߤȤ줬¤ǤСʲγñʥ롼Ǥʤñȸ
ҼΥۡ򤳤Ƥ֡ˤȤƵҤ롣

   exist(c).
   agent(c,suzuki_store).
   opposing(c,yamada_trading_company).
   object(c,p).

ɤ߲ʤС

   Ǥc¸ߤ롣
   cưΤsuzuki_storeǤ롣
   cϡyamada_trading_companyǤ롣
   cоݤϤѥpǤ롣

Τ褦ˤʤ롣OSLξϤɤγǰʥȸƤ֡ˤ°뤫򤢤餫
Ƥɬפ롣ȤС

   c @ contract_of_sale.
   suzuki_store @ store.
   yamada_trading_company @ company.
   p @ personal_computer.

Τ褦ʵҤˤʤ쳬ҸǤϡΤ褦ν°طä˵
Ҥʤ桼ʬʬΰ̣ݤɬפ롣OSL
ѤƵôϷڸ󡢹ߤǤϤ롣
Τ褦ʸҤƤСƥ¦͡ʥå
®ΩƤ뤳ȤǤ롣桼ΤͤΩĤΤǤϤʤ


ˡ롼εҤˤĤƽҤ٤롣롼Ūʴްա֤ʤСפˤäƷ
줿ҼǤ롣ʤФܥƥPrologϥƥˤǤ":-"Ȥäɽ
롣ؤεҤǤ""Ǥ롣ˤʣθҼϢ񤤤ƹ
ʤ㤨С֥å褯ơ䤵Ͻ˹פȤ롼(?)
äȤȡ

   like(X:female_human,Y:male_human) :- looking_good(Y), kind(Y).

Τ褦˵ҤǤ롣XY":"դ줿б륽Ȥ°ʤ餫θΤ
ͤȤ٤ǤȤղäƤ롣⤷μ١ˡ

   looking_good(taro).
   kind(taro).

   taro @ male_human.
   hanako @ female_human.

ҤƤȤȡ

   like(hanako,taro)

롣ܥƥѤǤɼԤϡμ١˾嵭μȾ嵭롼
򵭽ҤƤ

   like(hanako,Y)

Τ褦ˡGOALפȤϤenterץܥ򲡤Ƥߤȡˡ
like(hanako,taro)Answer˽Ϥ뤳ȤǧǤ롣

ʤܥƥϿȤˡȤƽ񤫤Ƥ뤳ȤȥȤ
ʳˤ϶Ūʲ֤ȤϤʤĤޤꡢ

  like(X,Y)

䤤碌Ƥ

  like(X:female_human,tarou)

ȤƽϤ롣Ĥޤ공ǰν°طξϥץåˤΤѤ
졢ѶŪ˲ˤϻȤʤޤǤȤƽ񤤤ƤΤ뤤
Ϥ줿ΤߤѤ롣


1.3 GDA

ܾǤϡ˰¸ݲGoal-Dependnet AbstractionʸGDAά
ˤĤƲ⤹롣1.1Ǽ褦˲桹ݲ϶ͭ˥եƤ
Ȥˤäơǰ礹Ǥäݲ򤢤ʸ̮˰¸ͭ
˥եƤƹԤȤͤ롣ʸ̮ȤϤޤʸդʤΤǤ
Ҽ硢ξѤ뤹٤Ƥ˥եƤ
ݲͤ뤳Ȥˤ롣ݲGDAǤ롣ΤȤ븶Ҽ
ȸƤ֡Υξ˰¸ƥեѲ
桹ݲ(GDA)̤⤽˰¸Ѳ롣椨֥˰¸
ݲפȸƤ֡

ȤСμȤưʲͿƤȤ롣

    red(X:apple).
    globular(X:apple).
    red(X:carrot).
    globular(X:ball).

桹ݲϡܤǰηΤȤǤ뤫顢ȤСʲ
Τ褦ʷŪˤϹͤ롣

   apple,carrot,ball 礷 1 Ȥ
   apple,carrot 礷 2 Ȥ
   apple,ball 礷 3 Ȥ
   ball,carot 礷 4 Ȥ

ºܤƤϰʲΤ褦˹ͤ롣

  1ǤϡɤⶦͭƤʤ
  2ǤϡredΤߤͭƤ롣
  3ǤϡglobularΤߤͭƤ롣
  4ǤϡɤⶦͭƤʤ

⤷㤨о嵭μ١Фred(X:apple)ΩĤ䤤碌򤷤
롣ξ硢red(X:apple)Ǥꡢ̤ȤơΩ뤳ȤΤ餵
롣ºݤˤϡƥब red(X:apple). ȤѤǽǤ뤳
ȤΤ᤿̤Ǥ롣ޤred(X:carrot)礻Ʊͤ˹Ԥ롣μ
١Ǥ餫ˤ飲ĤΤߤredΩ뤳ȤΤǤ르Ǥ롣
ǡξˤredΤߤѤƤ뤳Ȥܤμ١apple
carrot2֤ƤƤ⡢ξԤ롣פȤϡ
ֲνϤ˲­ʤפȤȤǤ롣ʤ

    red(X:2).
    globular(X:2).
    globular(X:ball).

Ƚ񤭴뤳ȤǽǤꡢΤȤǰؤȤơ2ΰ̣Ū˽
äơapple=<2, carrot=<2ͿƤȡƥϡ
red(X:apple).  red(X:carrot). ΤߤredΥΩȤƱ롣
󡢥桼2ȤƥबŬ̾ŤŪʳǰ̾ΤäƤ
Сred(X:2)ǽʲˤʤ뤬ϰ̣ŪˤϤʤ̷⤹ΤǤϤʤ
2ȤapplecarrotޤȤ᤿Ǥ롣ʤΤȤϤޤǤ
redξ˴ؤѴƤ뤳Ȥդ٤Ǥ롣globular
Ԥʤ

Τ褦ʦ2ؤ֤ϡѤ줿˥եƤȹ
줿硢ޤƤݲƤǤ뤳Ȥʬ롣
ΥեƤȤơ־Ѥ줿˸¤פȤ
ƳΤǤ롣ƥξ˰¸ƥեѤꡢ
ξ˴ؤƲ­ʤݲε˾Ȥ餷Ŭڤݲ
ȤФ롣ǤredܡȤС2ѴޤȤ夲
ˤŬڤǤäglobular򥴡ȤС3ѴޤȤ夲
ݲˤŬڤȤʤ롣Ԥξ硢

    red(X:3).
    globular(X:3).
    red(X:carrot).

˽񤭴롣ΤȤǰؤˤapple=<3,ball=<3ä롣

Τˤϡ⤽ݲ˴ؤĤơ񤭴¾
ϴѤ뤳Ȥμ١ݲ롣㤨С嵭redξ
˴ؤݲԤ硢globularεҤϼΤƵʼξݡˡ

   red(X:2).

Ĥ褦ν񤭴ὸץߥ󥰤ѸˡǤϡ
פȸƤФˤݲȹͤ롣globular򥴡ȤȤϡred
ξݤ

   globular(X:3).

ĤΤ褦ὸ(TȤ)Ф򥽡ݲȸƤӡη
ὸ򵭹ѤɽȡSortAbs_(T)ȵҤ롣Φդ
ϥȤν񤭴ˡμ̾Ǥ롣ȤС嵭Ǥϡ

   apple,carrot,ball 礷 1 Ȥ  ==> ν񤭴1Ȥ롣
   apple,carrot 礷 2 Ȥ       ==> ν񤭴2Ȥ롣
   apple,ball 礷 3 Ȥ         ==> ν񤭴3Ȥ롣
   ball,carot 礷 4 Ȥ         ==> ν񤭴4Ȥ롣

Τ褦˽񤭴ˡ̾Ĥ̾դʬդ롣㤨С

   SortAbs_2({"red(X:apple).",
                "globular(X:apple).",
                "red(X:carrot).",
                "globular(X:ball)."}) =
               {"red(X:2)"}.

Ǥ롣Τϥޥ˥奢κǸ꼰ʬ򻲹ͤΤȡܥƥ
Ϥ르ξͿȤξѤ줿Φդ˴Ť񤭴
̤٤SortAbs_դν˴ޤޤƤˡΦդȤ񤭴Ŭڤ
롢Ȥ꼰Ƥ롣ñ˸Сξ˻Ȥ줿
­ʤޤȤ夲硢ΤޤȤ夲ŬڤǤȤǤޤȤ
Τå뤳Ȥ桹GDA˴ŤХƥǼ¸
롣ɡ͡ʤޤȤ夲Τʦ14ʤɡˤŬڤǤСΤޤ
夲Ƿ礵복ǰƱΤ϶ͭ桹ѸˡǤϡ
Ƥ롢ȤߤʤȤǤΤǡФȤߤͿƤ뤳Ȥ
ʤΤǤ롣


1.4 ˡŪ

ξǤϡܥƥबꤷƤˡŪ䤬ɤΤ褦ʤΤǤ뤫ˤĤ
Ʋ⤹롣

ˡŪϤФСˡŪˡפȸƤФ롢ŵŪؤˤ뻰ˡ
η路ѤƲ⤵롣ϡˡΧξʸ

    C ʤ X

ȤͿȤ¤CȤƤʤСˡΧ
̤ȤXȯ롢ȹͤΤȤǤ롣ǡCʬˡΧ׷ס
XʬˡΧ̡פȸƤ֡㤨С

    ͤ򻦤 ʤ ෺˽褹

ȤʸСֿͤ򻦤פȤʬˡΧ׷Ǥꡢֻ෺˽褹פ
ʬˡΧ̤Ǥ롣Ƥ⤷¤Ȥƿͤ򻦤Ȥˡǧ
ʤС෺˽褹Ȥ̤ºݤ뤳Ȥˤʤ롣ˡŪˡȤϡ
βȤߤˤʤ館ΤǤ롣

ºݤˤˡΧʸ׷ΰ̣γ丽¤νβԤʤ
Сλˡϵǽʤդΰ̣γ丽λݤβϡ
ǤꡢŪ˹ԤȤϤ󡢿ͤǰŪ˽뤳Ȥ
Ǥϡ٤ν׷˸դȤΥ󥯤Ԥϡ
ĤǤƤΤȲꤷ褦ʤ

    ư֤ϸäƤϤʤ

ȤʸäȤư֤ȤϡѼ֤ǤȥåǤ⳺복ǰǤ
뤳Ȥ򤢤餫ͿƤΤǤ롣ϡǰɸŪʲǤС
饹ʤǰؤμͿƤФͿ
Ƥ⤤ܥƥȤͤ䤹褦˳ǰؤͿ
ƤȤ롣㤨С桹μɽǤϡ

   prohibit(E:entering):-execute(E),subject(E,X:car),place(E,Y:park).

   private_car=<car.
   trcuk=<car.

Τ褦ɽ졢ΣĤݴطǰؤɽƤ롣ޤǤ
顢ƤмѼ֤ȥåˤĤƤΥ롼Ѥ׷郎·
ػߤƳ뤳ȤʬǤơ桼ɬפ˱ʬä
ݴط򵭽ҤƤС٤ȤǤǤ
Τ褦ɸŪμФˡΧŪʲ᤬ǽʤ櫓ǤϤʤФ
ɸŪʲˡΧǤϹԤƤ롣Τ褦ʲŪŪʲ
ȸƤֶʽ⤢ˤȸƤФƤꡢˡؤˤƤϡʲΤ褦ʼ
ब¸ߤȸƤ롣

  ĥ
  ̾
  ȿв
  

¾ˤפʤɤ뤬⤤ά롣ޤñ
ȡ嵭Τ褦ʥ롼ξ硢ּư֡פȤդʪ̤˳
ĥƲԤȥХإꥳץŬѤ硢ֳĥפȸƤ
롣μ֤̤ǡѼ֤Τߤ˾᤹硢դ˸Сȥå
äƤΤΤΤϵ褦ʲԤ硢̾ȸƤФ롣
񤤤ƤΡʤݤΡˤΤߤ̩ˤǤʤΤȶ
ȥХإꥳץξȿвפȸƤ֡ϡ
ץߥ󥰤ѸǸаΡִפԤȤб롣ʤ
ĥ᤬񤤤ƤʤΤǤˤäƤŬѤƤ褤ȤȤ
ƤǤΤФȿвϡ񤤤ƤʤΤܤȤȤ
ȤƤβˡǤ롣ϥ롼Υפ˰¸롣⤷롼
׷郎㼨ǤФΥ롼ɬ׾򵭽ҤΤʤΤǡ¾βǽ⼨
Ƥ뤳Ȥˤʤꡢĥ˽Ҥ٤;Ϥ¸ߤ뤳Ȥˤʤ롣
롼׷郎ǤСˤ٤ƤβǽҤƤꡢ
ƤϤޤʤΤꤵ졢ȿФ˲᤹ȤΤǤ롣Ǹˡ
פǤ뤬ϡ롼Ūͤȡ㤨С˼ư֤
ȴǤ뤫顢ƱʤΡ㤨СϤ緿ιܥåȤϿ
ʤʤΤǡ䤷ŬѤ褦ȤǤ롣

ΤΤƤߤ롣ޤ롼׷郎ɤΤ褦ʥפǤ뤫
Ȥ˰¸Ƽꤦ᤬㤦ȤҤ٤Ƥ׷ʬɬ׾
ɬ׽ʬΤǤ뤫ˤäơѤʬǤ롣

׷ʬǤȤϡ롼ݤŬʳǰʤ硢礭
ʰ̣ιġʳ礭˳ǰѤƤǤ롣ϡ
ݤŬѻˤɬפ˱ϰϤʤɬפΤǡ̾᤬ɬפȤʤ롣
С٤ĻפɽΤñˡĻפȤǰѤСڥ󥮥
褦٤ʤĻޤޤƤޤΤ褦ʤȤΰ̣٤פ
Ż뤷ƥ롼äƤΤʤС̾ᤷơΡĻפϡ
֥ڥ󥮥󎣤ΤǤ롣

׷ɬ׾ǤȤȤϡ롼ݤŬʳǰʤ
硢ʰ̣ιġʳξ˳ǰѤƤǤ롣
ξ硢Ŭѻ˿ΰտޤ˾Ȥ餷ơγǰΰ̣礷Ƥɬפ롣
줬Ǥ롣ɸŪʳǰؤ˽äơ礷Ƥʾ
ŪǰѤˤˤϡȤʤ뤬ɸŪʬȤϰۤʤ
򸫽Фợ礹뤳Ȥ⤢롣줬Ǥ롣ȤС롼
ΡĻפΰ̣ưʪפտޤƤΤǤСޤ
ƹͤĻȤƥ롼ŬѤ礬롣줬Ǥ롣
ưʪװ̤˳ᤷƤ⡢ޤ뤳ȤǤ뤬ΰտޤ
礭ʤꤹΤǡ̾Ϻ¤α᤿ĥԤ롼ΰտޤ
ˡֶ֤ΡפǤСǰؾϤʤΥ줿Ȥ˰֤
ԵפŬѤ뤳Ȥ⤢ξ硢Ȥʤ롣󡢤
ֶ֤Ρ׼ΤǰȤƤ餫ƤСԤ
ԵŬѤ뤳ȤǽǤ롣äơ䤫礫ȤȤꤷ
복ǰؤηˤ¸롣βտޤƤΤꡢʳǰ
׷郎Ƥ硢ʤɬ׾ξǤ뤳ȤѤϤʤ
ϡ㼨Υ롼ȹͤ롣ʤǰؤζᤤΤΤߤ
礹롢ȤͤˡΧȤ⤤褦ξϳ
κϤۤȤɤʤȹͤ롣ȳκˤĤ
ϸ˺Ƥӵ롣

ˡɬ׽ʬ׷ǥ롼뤬񤫤ƤͤƤߤ롣ϡտޤ
ǰγ䤬롼ɽ줿ǰγȰפǤ롣ξϡ
Ƥ복ǰƤϤޤʤΤˤΥ롼뤬ŬѤ뤳ȤϤʤɬ׽
ʬʾȤϡʤ󷿤Υ롼ξǤ롣ξ硢ƤϤޤΤ
᤹̾뤳ȤʤΤޤŬѤƤϤޤʤΤˤϳ
ϹԤ鷺ľŬѤǤʤȽǤ롣ʤȿвǤ롣

ơʬϡޤǤŪʤΤǤꡢºݤˤϡ

  A)䤬ˤʤ餫޴طˤʤäƤʤ
  B)ͤβꤹ복ǰؤ˰¸

ͤ졢ŪˤϤǤ

B)ξˤϡʹ֤θѤˤۣʬܼŪ¸ߤ뤿ᡢʤȤ
Ԥʤǲˡ˰ƤʤСԤؤΰ¸
ªȤߤ󼨤뤳ȤǡŪϲǽǤGDA˴Ť桹Υ
ǤϤϴŪǤ롣

A)ξϡȤСɸŪǰؤ˽äȽ̾Ȥͤǳ
Ƥ¤ꡢܼŪۣʬʳˤפʰ̲äü첽Ԥ
ǽ롣ʤŬѤƤϤʤޤꡢŬѤʤФ
ʤΤ줿ꤹ롣A)ǤϤ餬ߤˤƤ
롣ľŪ˽Ҥ٤СϡΰߤˤäƥСꤷ
ĺΰֽФѤäʬ򥫥СߤǤϤޤ¿̵̤ʤΤ
Ǥޤ֤ؤʬ꾮ߤǤϤޤ¿ɬפ
ʬڤȤƤޤǡ羮αߤȤ߹碌Ƥʤ٤¤ˤ
ΰ򥫥С뤳Ȥͤ롣ʤС­Ϻ¤ޤ뤷
ʤʤɸŪաˤɽƤ롣GDA˴ŤץϡΤ褦
¸γǰǤʤ٤¤˥롼ΰտޤ׷ɽ뤳ȤǤ롣Τ
տޤǰ򸫤Ĥ뤿ˡտޤμ⡢٤
ʤμѤΤǤ롣ϡˡΧؤˤ෿ƱΥץ
Ǥ롣桹ΥץϤŪŪª뤿δäͿ
ȹͤ뤳ȤǤ롣

Ǹˡ桹β뤿ԤäƤ롼׷ˤ
복ǰcˤ㤫Ф줿ǰc'ݤƤȤˤΥ롼ŬѤ
롣ϡ줾γI(c),I(c')ɽȤȡI(c')I(c)Ǥ롣
ȤϤγǰɽƤ뤹٤ƤθΤνǤ롣ʤΤ褦ʴؿI
ؿȸƤ֡c'ʤɹͤ뤳ȤʤeeI(c)ǤС
ˤΥ롼ŬѤ롣ȤβȰ㤦տޤǥ롼Ǻ
Ƥ硢㤦Ȥ櫓ǤʤʬŪ˲­Τ복ǰ
ƥ롼뤬Ƥ⤢롣ΤȤϡˤ볰κ꤬Ԥ
롣ʤ̾βIǤʤŪg˱Igͤ­Ĵ
롣㤨Сư֤ǤСإꥳץ

  I(إꥳץ)I(ư)

ȤϤʤʤΤǡŬѤǤʤI(إꥳץ)I(ʪ) I(ư)
I(ʪ)顢롼Ρּư֡פ־ʪפ֤ƤСʤ
ᤷƤСإꥳץʤȤˤʤ롣򤿤ȤС
  ּư֤뤳Ȥʻ֤򾷤ΤǤפȤ롼
ŪǤä硢ŪgɽȤȡΤ褦ػߤоݤ
μư֤γͤΤǤϤʤIg(ư)=I(ʪ)ȤŬڤǤ
ȤɽǤ롣I(ʪ)ȤΤǤϡ̾βǤϾ
ʪȤʤΡȤȤɽǤ볰ˤϸ³롣̾βǤ
ʤʤͽϡפʪβ̳ǰȤƥ饹񤯤ȤϾʤǤ
־ݡפǤФʤǤ롣ޤդˡֻؼ֡פΤ褦ʤΤ־ʪ
˴ޤޤƤޤʴФ餹礤ƤޤIgͤ
ˡ⤦٤Ρּư֡פɽػߤθȤʤ
ƤƤ복ǰ򽸤Ƥ롢Ȥˡͤ롣줬桹Υ
ץǤ롣ΤȤθͭƤȤΩƤС
ޤǤʬ褦ˡ򸫤Ĥ롢뤤ݲԤȤܥ
濴Ǥ롣ɡ϶ƤʤСǤ롣
ŪŪǤꡢñ˳ǰؤζᤵĥȤϰۤʤ롣
ˡǰؾᤤطΤΤ¿ͭΤǡŪ˾嵭
Τ褦ʸͭΨ⤤Ȥʤ븶餫ˤ
ƤΤǤСζͭ˴ؤƤϡǽ餫ΨΤפǤ
ɲ桹ΥץǺѤƤ롢ŪŪǤϡ⤷
ֿͤ礭ư뤳Ȥˤäơ©͡˴Фפ
ͿפȤǤȹͤʤСΡ礭סư
ҤƤǤϡס־ݡס֥إꥳץס緿Х
ϾʤȤ⤳Υ롼Ρּư֡פʬŬѲǽǤμ١
Ǥ¤ꤳζͭĳǰ򸫤ĤƤơμư֤βƤ
Ȥ桹ΥƥưδܤǤ롣ξǤС

  Ig(ư)=I()I()I(إꥳץ)I(緿Х)I(ư)

Ȥʤ¾ˤ⸶ǰμ١˵ҤƤ
Ф礵롣ơֻؼ֡פΤ褦ʤΤӽȤߤˤ
äƤ뤳ȤǤ󡢸εҤޤޤŤΤǡ
顼Ȥ䥹ȥܡɡž֡ΥȥХʤɤɤ갷
꤬Ĥ뤬ϲˡǤϤʤʬϤλ
롣̾ˡΧǤбμǤ롣⤬ä
ꤷƤСȤС嵭ξʤСֿͤˤ֤ĤȲ򤹤ǽ
ܼǤפȤ褦ʡι⤤ʬϤ򤷤ƤС饹
Ȥ伫ž֤ʤɡ褯󤷤ƤʤСϵǤ
ǤʤС뤤ϤǤʤȽǤΨ⤤ΤǤСػߤ
ˤƤ⡢ʤȤϤˡΧ롼ŪȤ븶
ʤ˰¸ƲԤȤ꼰Ƥ롣ƤС
Ҥμ˱ƤǤŪ˲­ΤʤȤǤΤ
롣

ܥƥϤ褦ʲˡ˴Ťƥ롼˸줿ǰ깭
ǰ֤ƿԤˡŪˡΤȤǽҤ٤޼ƤϤȡ

          C->X

Ȥ롼

          C'

Ȥ㤬äȤСCC'礷ĵAǥ롼֤
ơ

         A->X

ȤI(C')I(A')Ǥ뤳Ȥ顢Υ롼C'ŬѤơXƳΤ
롣Ǽȡ

      ּư֤ϸäƤϤʤʤ

ΤȤIg(ư)Ѥ

       Ig(ư)
           =I()I()I(إꥳץ)I(緿Х)I(ư)
           =I()

ȤȡȤϾ嵭ǼŪʳǰǤꡢŪ˳ǰؤ

        =< .
        =< .
       إꥳץ =< .
       緿Х =< .
       ư =< .

Τ褦ɲä롼μư֤ʬ

      ֦ϸäƤϤʤʤ

֤롣ξ֤ǡ̾λˡߤСñ˼ư֤Ǥʤ
ݤ복ǰϤ٤ƤβŪ롼ξŬ礷äƤϤ
ȤƳ롣ʤΤ褦ʲŪ롼ѴƲפȸƤ֡
γǰ̲礷Ƥ뤫Ǥ롣ɡΤ褦Ʋ̾α
ŪȤ߹碌¸Ƥ롣ϲȤơŪŪ
ѤƤΤǤ롣ƲȱȤ߹碌䤬¸Ǥ뤳ȤƤ
ؽŪʸ[Haraguchi95]Ǥ롣ǤˤˡŪ˴
ΤѤƤ롣


2. μɽ

OSLǽҤ٤μҤܥƥϤμ١εˡδܤ
롣ºݤˡΧμ򵭽ҤȤˤϵҤ𤹤뤳ȤΤǡ
ܥƥǤOSLĥʵƳƤ롣

ǰȤϳǰؤΥդǤʤǰ֤Υ󥯤Υͥåȥΰ
ǧ뤳ȤФФ롣ؤˤʸˡι¤䡢͹ǽ
νƤƤ̣ͥåȥե졼൭Ҥʤɤ˳롣
̣ͥåȥե졼൭ҤʤɤΥץǧβʳؤν껺Ǥꡢ
ݤ˲桹μΤ˼ǤȹͤƤ褤Ǥˡ
եȥؤǤ⥪֥ȻظȤѥबڤƤ뤬
Ǥ⳵ǰءʥ饹ءˤȳǰ濴°ҡʥåȵҡˤϼפ
ΰĤǤ롣μɽǤ⤳Τ褦ʵդ꼰
Ƥ롣ͭ̾ʤΤǤF-LogicȤμɽ롣Τ褦ʥ֥
Ȼظ뤤ϰ̣ͥåȥե졼μɽܥƥǤ
ѤƤ롣ǰؤˤĤƤOSLѤǼƳƤ뤿ᡢǤ
ǰ֤Υ󥯹¤ΥͥåȥɽˤĤƽҤ٤롣

ͥåȥɽȤơ1.2OSLѤˤĤƹͤ롣
ϡ

   exist(c).
   agent(c,suzuki_store).
   opposing(c,yamada_trading_company).
   object(c,p).

ȤΤǤäϡ㤨Сդɽȡ

   exist-> [ c ]
            |
            |  agent
            +--------> [suzuki_sotre]
            |
            |  opposing
            +------------> [yamada_trading_company]
            |
            | object
            +---------> [p]

Τ褦ʥդɽǽǤΤȤ[]ǰϤޤ줿ʬդ
ʥΡɡˤȸƤФ롣Ƴդϥ󥯤ȸƤ֡ΡɤˤϸΤ
ꡢ󥯤ˤϣҸ2طȸƤФˤ̾դ롣Τ褦˽
Ǥ⡢濴ȤʤΡʤǤcˤ°복ǰȤƤνҸ
򤽤󥯤˳ƤƤ뤿ᡢνҸϥȸƤФ롣Ǥϡ
agentopposingobjectǤ롣Фexist̾νҸǤ롣Τ褦
ղ濴ȤʤcΤɽǤ롣ΥΡɤȥ󥯤ΤĤʤ
ΤΥơȤȤƤߤȳǰι¤ʬ䤹ɽǤ롣Ĥޤꡢ
줾θΤ°Ƥ복ǰ˰̲Ƥι¤ľƤߤȡ㤨С

   exist-> [ X:contract_of_sale ]
            |
            |  agent
            +--------> [ Y:person ]
            |
            |  opposing
            +------------> [ Z:person ]
            |
            | object
            +---------> [ W:object ]

Τ褦˵ҲǽǤ롣contract_of_saleȤǰι¤ɽƤ롣
⤷θΡʥͤȸƤ֡ˤˤΥͤդ줿ǰ
°ȤǤΤʤСξ硢contract_of_saleγǰ¤
Ƥ뤳Ȥˤʤ롣Τ褦Ȥ򤽤濴Ȥʤ복ǰΥե졼ȸƤ֡
ϥ졼ʥ롦ǡ١ˤ쥳ɤΥե߷פбƤ
롣쥳ɤγƹܡʥեɤȤˤˤɤ褦ʥפΥǡ뤫
餫ƤˤäơƥͤΥå両ι®
νԤȤǽȤʤ롣ΰ桼ˤȤäƤϡɽ䥫ɷ
ǡǤ뤿ᡢľŪʬ䤹֥ȻظǤϡ
եɡʤΤȤ򥹥åȤȸƤ֡ͤ򥹥åȤȸƤ֡
Ϥꥪ֥Ȥݡåͤ°륯饹ʥסˤ
Ȥ̾׵ᤵƤ롣

桹⳵ǰ¤ΤΤ褦μ١˵Ҥ뤳ȤǤ롣嵭ξ
ʤС

   agent:contract_of_sale->person.
   opposing:contract_of_sale->person.
   object:contract_of_sale->object.

Τ褦˵ҤƤФˡΤ褦ʳǰ濴ι¤Ҥºݤ
ȿǤƤꡢ䤹Ҥ뤳ȤǤ롣㤨СˡΧŪʸ̩Ϸ礯
ñΤᡢ嵭contract_of_sale¸ߤʤͭvalidˤǤȤ
롼ͤ褦OSLΤߤǵҤȡ

   valid(X:contract_of_sale):-
     exist(X), agent(X,Y:person), opposing(X,Z:person), object(X,W:objcet).

Ȥʤ롣嵭դΤ褦ˡ

   valid(X:contract_of_sale(
               agent->Y:person,
               opposing->Z:person,
               object->W:objcet) ):-
                                    exist(X).

ȵҤƤܥƥǤϼդƤ롣εҤ˱äɽˡ򼨤ȡ

       Ҹ(,...):-
                  Ҹ(,...).

ǤꡢܤOSLƱǤ롣ʤʲηǤ⹽ʤ

       Ҹ(,...).



       Ҹ(,...):-
                  Ҹ(,...),...,Ҹ(,...).

ۤʤϡ˸ѿΥȤ濴ǰǤä硢̾θ˳
̤դơ

  ѿ:̾(ɽ,....)

ηǤγǰΥ˵Ҥ뤳ȤǤ롣ɽ

  Ҹ̾->ѿ:̾

Τ褦˵Ҥ롣Υ̾ΤȤˤˡ¤򿼤ơ

  Ҹ̾->ѿ:̾(ɽ,....)

Τ褦˵ҤǤ롣ϤǤɬפ˱ƿҤƹʤ㤨С
ȤǰΥդʲǤä硢

    [X:]
      |
      |  
      +----------> [Y:]
      |              |    
      |              +----------> [P:]
      |              |
      |              |    
      |              +----------> [M:]
      |  
      +---------> [D:]
      |
      |  
      +---------> [P:]


ϡYʤͤȤǰι¤򤵤˴ޤͥåȥ¤ˤʤä
롣桹ɽǵҤȡ

     X:dog(
           master->Y:human(
                           address->P:place,
                           father-> M:male_human),
           father->D:dog,
           address->P)

Τ褦˿³¤⵭ҤǤ롣դοޤȤۤȤɤƱǵҤǤ뤳
ȤʬǤʤΤ褦ʹ¤򵭽ҤǡθνȤȻ
νȤƱǤ硢ƱѿʤǤPˤѤƵҤǤ롣ƱǤ
ƱѿΣܤνиʹߤϥȰʹߤεҤά

ƳƤ⡢ƥ褦Ʊ̣γ
OSLۡѴƼ갷ᡢΰ̣ȤƱưƱݾ
롣ñ˸䤹ѴǤ롣Τ褦ʤȤꤢ
䤹褦ѴƤεˡϥޥҤȸƤФ롣ܥƥOSL
ξ˥֥ȻظΥޥ碌μɽ󶡤Ƥ롣


3. ʸ

Haraguchi, M. (1995) "A Reasoning System for Legal Analogy", Machine
Intelligence, Vol.14.

Kakuta, T., Haraguchi, M. and Okubo, Y. (1996) "Legal Reasoning by Structural
Analogy Based on Goal-Dependent Abstraction", Legal Knowledge Based Systems
(Proceedings of JURIX'96 ), 111--121.

Kakuta, T., Haraguchi, M. and Okubo, Y. (1997) "A goal-dependent abstraction
for legal reasoning by analogy", Journal of Artificial Intelligence and Law 5:
97--118, Kluwer Academic Publishers.

Kakuta, T. and Haraguchi, M. (1998) "An Actual Application of an Analogical
Legal Reasoning System Dependent on Legal Purposes", Legal Knowledge Based
Systems (Proceedings of JURIX'98), 31--44.

Nebel, B. (1990) Reasoning and Revision in Hybrid Representation Systems,
Springer LNAI 422.

Okubo, Y. and Haraguchi, M. (1994) "Construction of Predicate Mappings for
Goal-Dependent Abstraction", Algorithmic Learning Theory '94, 516--531,
Springer LNAI 872.

Plaisted, D.A. (1981) "Theorem Proving with Abstraction", Artificial
Intelligence, vol.16: 47--108.

Tenenberg, J.D. (1989) "Abstracting First-Order Theories", Change of
Representation and Inductive Bias, 67--71, Kluwer Academic Publishers

Yoshino, H., Haraguchi, M., Sakurai, S. and Kagayama, S. (1993) "Towards a
Legal Analogical Reasoning System", Proc. 4th ICAIL,  110--116.

==============================================================================
                                                  (̳ƻ ˡ)
                                              E-mail:kaku@juris.hokudai.ac.jp
                                           Copyright (C) 1999 Tokuaysu KAKUTA
