äž»ãªã¿ã¹ã¯ã«ã€ããŠç°¡åã«èª¬æããŸã
ããã¯ããã¡ã€ã³ã¢ãã«ã®èšè¿°ãšæäœã®äž¡æ¹ã«äŸ¿å©ãªããã°ã©ãã³ã°èšèªãäœæããããšã§æ§æãããŠããŸããã¢ãã«ã®èª¬æãã§ããã ãèªç¶ã«ã人éãç解ã§ããããã«ãããœãããŠã§ã¢ã®ä»æ§ã«è¿ã¥ããããšããããåæã«ãããã¯æ¬æ Œçãªããã°ã©ãã³ã°èšèªã®ã³ãŒãã®äžéšã§ãªããã°ãªããŸããããã®ãããã¢ãã«ã¯ãªã³ãããžãŒã®åœ¢åŒãæã¡ãå ·äœçãªäºå®ãæœè±¡çãªæŠå¿µãããã³ãããã®éã®é¢ä¿ã§æ§æãããŸããäºå®ã¯ãäž»é¡åéã®çŽæ¥çãªç¥èãããã³ãããã®éã®æŠå¿µãšè«ççé¢ä¿ãã€ãŸããã®æ§é ã説æããŸãã
ã¢ããªã³ã°ããŒã«ã«å ããŠãèšèªã«ã¯ãã¢ãã«ã®åæããŒã¿ã®æºåãèŠçŽ ã®åçãªäœæãã¯ãšãªã®çµæã®åŠçãã¢ã«ãŽãªãºã 圢åŒã§ã®èšè¿°ã«äŸ¿å©ãªã¢ãã«èŠçŽ ã®äœæã®ããã®ããŒã«ãå¿ èŠã«ãªããŸããããã¯ãã¹ãŠãèšç®ã®ã·ãŒã±ã³ã¹ãæ瀺çã«èšè¿°ããããšã«ãã£ãŠè¡ãã®ãã¯ããã«äŸ¿å©ã§ããããšãã°ãOOPãŸãã¯æ©èœçã¢ãããŒãã䜿çšããŸãã
ãããŠãã¡ãããèšèªã®äž¡æ¹ã®éšåãå¯æ¥ã«çžäºäœçšããäºãã«è£å®ãåãå¿ èŠããããŸãããããã1ã€ã®ã¢ããªã±ãŒã·ã§ã³ã«ç°¡åã«çµã¿åãããŠãæã䟿å©ãªããŒã«ã§åã¿ã€ãã®åé¡ã解決ã§ããããã«ããŸãã
ãªããã®ãããªèšèªãäœæããã®ãããªããã€ããªããèšèªãäœæããã®ãããããŠãããã©ãã§åœ¹ç«ã€ã®ããšãã質åãã話ãå§ããŸãã次ã®èšäºã§ã¯ã宣èšçãªã¹ã¿ã€ã«ãšå¿ é ãŸãã¯æ©èœçãªã¹ã¿ã€ã«ãçµã¿åãããããšãã§ãããã¯ãããžãŒãšãã¬ãŒã ã¯ãŒã¯ã®æŠèŠãç°¡åã«èª¬æããäºå®ã§ããããã«ããªã³ãããžãŒã説æããããã®èšèªã確èªããæ°ãããã€ããªããèšèªã®èŠä»¶ãšåºæ¬ååãçå®ãããŸã第äžã«ããã®å®£èšã³ã³ããŒãã³ããäœæããããšãå¯èœã«ãªããŸããæåŸã«ããã®åºæ¬çãªæŠå¿µãšèŠçŽ ã«ã€ããŠèª¬æããŸãããã®åŸã宣èšçãã©ãã€ã ãšå¿ é ãã©ãã€ã ãäžç·ã«äœ¿çšãããšãã«ã©ã®ãããªåé¡ãçºçããã©ã®ããã«è§£æ±ºã§ããããæ€èšããŸãããŸããæšè«ã¢ã«ãŽãªãºã ãªã©ãèšèªå®è£ ã®ããã€ãã®åé¡ã«ã€ããŠãåæããŸããæåŸã«ããã®ã¢ããªã±ãŒã·ã§ã³ã®äŸã®1ã€ãèŠãŠã¿ãŸãããã
é©åãªããã°ã©ãã³ã°èšèªã¹ã¿ã€ã«ãéžæããããšã¯ãã³ãŒãå質ã«ãšã£ãŠéèŠãªæ¡ä»¶ã§ãã
ç§ãã¡ã®å€ãã¯ãä»ã®äººã ã«ãã£ãŠäœæãããè€éãªãããžã§ã¯ãã®ãµããŒãã«å¯ŸåŠããªããã°ãªããŸããã§ãããããŒã ã«ãããžã§ã¯ãã³ãŒãã«ç²Ÿéãããããã©ã®ããã«æ©èœãããã説æã§ãã人ãããŠãããã¥ã¡ã³ãããããã³ãŒããã¯ãªãŒã³ã§ç解ããããå Žåã¯è¯ãããšã§ãããããå®éã«ã¯ãããã¯å¥ã®æ¹æ³ã§çºçããããšããããããŸããã³ãŒãã®äœæè ã¯ããã®ãããžã§ã¯ãã«å°éãããã£ãšåã«çµäºããããããã¥ã¡ã³ãããŸã£ãããªãããéåžžã«æççã§å€ããå¿ èŠãªã³ã³ããŒãã³ããããžãã¹ã¢ããªã¹ãããŸãã¯ãããžã§ã¯ãã®ããžãã¹ããžãã¯ã«ã€ããŠã§ãã -ãããŒãžã£ãŒã¯äžè¬çãªèšèã§ããèšããŸããããã®å Žåãã³ãŒãã®ã¯ãªãŒã³ããšãããããããéèŠã§ãã
ã³ãŒãã®å質ã«ã¯å€ãã®åŽé¢ããããŸãããã®ãã¡ã®1ã€ã¯ãããã°ã©ãã³ã°èšèªã®æ£ããéžæã§ããããã¯ã解決ãããåé¡ã«å¯Ÿå¿ããå¿ èŠããããŸããéçºè ãèªåã®ã¢ã€ãã¢ãã³ãŒãã«ç°¡åãã€èªç¶ã«å®è£ ã§ããã»ã©ãåé¡ãããæ©ã解決ã§ãããã¹ãæžããããšãã§ããŸããçŸåšãããªãå€ãã®ããã°ã©ãã³ã°ãã©ãã€ã ããéžæã§ããããããã«ç¬èªã®ã¢ããªã±ãŒã·ã§ã³é åããããŸããããšãã°ãæ©èœããã°ã©ãã³ã°ã¯ãããŒã¿ã«å¯ŸããŠæäœãå®è¡ããé¢æ°ãæ§é åãçµåãããã³åå©çšããããã®æè»æ§ãé«ããããèšç®ã«éç¹ã眮ããã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããŸãããªããžã§ã¯ãæåããã°ã©ãã³ã°ã«ãã»ã«åãç¶æ¿ãå€æ æ§ãéããŠãããŒã¿ãšé¢æ°ããã®æ§é ã®äœæãç°¡çŽ åããŸãã OOPã¯ãããŒã¿æåã®ã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããŸããããžãã¯ããã°ã©ãã³ã°ã¯ãããªãŒãã°ã©ããªã©ã®è€éã§ååž°çã«å®çŸ©ãããããŒã¿ã¿ã€ããåŠçããå¿ èŠãããã«ãŒã«ããŒã¹ã®åé¡ã«äŸ¿å©ã§ãããçµã¿åããã®åé¡ã解決ããã®ã«é©ããŠããŸãããŸãããªã¢ã¯ãã£ããªã€ãã³ãé§ååã®ãã«ããšãŒãžã§ã³ãããã°ã©ãã³ã°ã«ãã¹ã³ãŒãããããŸãã
ææ°ã®æ±çšããã°ã©ãã³ã°èšèªã¯ãè€æ°ã®ãã©ãã€ã ããµããŒãã§ããŸããæ©èœãã©ãã€ã ãšOOPãã©ãã€ã ã®çµã¿åããã¯é·ãéäž»æµã§ããã
ãã€ããªããæ©èœè«çããã°ã©ãã³ã°ã«ãé·ãæŽå²ããããŸãããããã¯åŠè¡çãè¶ ããããšã¯ãããŸããã§ãããè«ççããã³å¿ é ã®OOPããã°ã©ãã³ã°ã®çµã¿åããã«ã¯ãã»ãšãã©æ³šæãæãããŠããŸããïŒãããã«ã€ããŠã¯ã次ã®åºçç©ã®1ã€ã§è©³ãã説æããäºå®ã§ãïŒãç§ã®æèŠã§ã¯ãè«ççãªã¢ãããŒãã¯ãOOPã®åŸæ¥ã®åéã§ããäŒæ¥æ å ±ã·ã¹ãã ã®ãµãŒããŒã¢ããªã±ãŒã·ã§ã³ã§éåžžã«åœ¹ç«ã€å¯èœæ§ããããŸããå°ãéãè§åºŠããèŠãå¿ èŠããããŸãã
宣èšçãªããã°ã©ãã³ã°ã¹ã¿ã€ã«ãéå°è©äŸ¡ãããŠããçç±
ç§ã¯èªåã®èŠè§£ãå®èšŒããããšæããŸãã
ãããè¡ãã«ã¯ããœãããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ãäœã§ããããæ€èšããŸãããã®äž»ãªã³ã³ããŒãã³ãã¯æ¬¡ã®ãšããã§ããã¯ã©ã€ã¢ã³ãéšåïŒãã¹ã¯ããããã¢ãã€ã«ãWebã¢ããªã±ãŒã·ã§ã³ïŒããµãŒããŒåŽïŒåå¥ã®ãµãŒãã¹ããã€ã¯ããµãŒãã¹ããŸãã¯ã¢ããªã·ãã¯ã¢ããªã±ãŒã·ã§ã³ã®ã»ããïŒãããŒã¿ç®¡çã·ã¹ãã ïŒãªã¬ãŒã·ã§ãã«ãããã¥ã¡ã³ãæåããªããžã§ã¯ãæåãã°ã©ãããŒã¿ããŒã¹ããã£ãã·ã³ã°ãµãŒãã¹ãæ€çŽ¢ã€ã³ããã¯ã¹ïŒããœãããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ã¯ã人ã ãã§ãªããŠãŒã¶ãŒãšå¯Ÿè©±ããå¿ èŠããããŸãã APIãä»ããŠæ å ±ãæäŸããå€éšãµãŒãã¹ãšã®çµ±åã¯äžè¬çãªã¿ã¹ã¯ã§ãããŸããããŒã¿ãœãŒã¹ã«ã¯ããªãŒãã£ãªããã³ãããªããã¥ã¡ã³ããèªç¶èšèªã®ããã¹ããWebããŒãžã®ã³ã³ãã³ããã€ãã³ããã°ãå»çããŒã¿ãã»ã³ãµãŒã®èªã¿åãå€ãªã©ããããŸãã
äžæ¹ã§ã¯ããµãŒããŒã¢ããªã±ãŒã·ã§ã³ã¯1ã€ä»¥äžã®ããŒã¿ããŒã¹ã«ããŒã¿ãæ ŒçŽããŸããäžæ¹ãAPIãšã³ããã€ã³ãããã®èŠæ±ã«å¿çããçä¿¡ã¡ãã»ãŒãžãåŠçããã€ãã³ãã«å¿çããŸããã¡ãã»ãŒãžãšã¯ãšãªã®æ§é ã¯ãããŒã¿ããŒã¹ã«ä¿åãããŠããæ§é ãšã»ãšãã©äžèŽããŸãããå ¥å/åºåããŒã¿åœ¢åŒã¯ãå€éšã§äœ¿çšããããã«èšèšãããŠããããã®æ å ±ã®å©çšè åãã«æé©åãããŠãããã¢ããªã±ãŒã·ã§ã³ã®è€éããé ããŠããŸããä¿åãããããŒã¿åœ¢åŒã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ã¢ãã«ãªã©ã®ã¹ãã¬ãŒãžã·ã¹ãã çšã«æé©åãããŠããŸãããããã£ãŠãã¢ããªã±ãŒã·ã§ã³ã®å ¥å/åºåãããŒã¿ã¹ãã¬ãŒãžã·ã¹ãã ãšçµã¿åãããããšãã§ããæŠå¿µã®äžéå±€ãå¿ èŠã§ããéåžžããã®ããã«ãŠã§ã¢ã¬ã€ã€ãŒã¯ããžãã¹ããžãã¯ã¬ã€ã€ãŒãšåŒã°ãããã¡ã€ã³ãªããžã§ã¯ãã®åäœã«é¢ããã«ãŒã«ãšååãå®è£ ããŸãã
ããŒã¿ããŒã¹ã³ã³ãã³ããã¢ããªã±ãŒã·ã§ã³ãªããžã§ã¯ãã«ãªã³ã¯ããäœæ¥ãç°¡åã§ã¯ãããŸãããã¹ãã¬ãŒãžå ã®ããŒãã«ã®æ§é ãã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®æŠå¿µã®æ§é ã«å¯Ÿå¿ããŠããå Žåã¯ãORMãã¯ãããžã䜿çšã§ããŸãããã ãããã©ã€ããªããŒããã³CRUDæäœã«ããã¬ã³ãŒããžã®ã¢ã¯ã»ã¹ãããè€éãªã±ãŒã¹ã§ã¯ãããŒã¿ããŒã¹ãæäœããããã®ããžãã¯ã®åå¥ã®ã¬ã€ã€ãŒãå²ãåœãŠãå¿ èŠããããŸããéåžžãããŒã¿ããŒã¹ã¹ããŒãã¯å¯èœãªéãäžè¬çã§ãããããããŸããŸãªãµãŒãã¹ã§äœ¿çšã§ããŸããããããããã®ããŒã¿ã¹ããŒããç¬èªã®ãªããžã§ã¯ãã¢ãã«ã«ãããããŸããã¢ããªã±ãŒã·ã§ã³ã1ã€ã®ããŒã¿ã¹ãã¢ã§ã¯ãªããä»ã®ãµãŒãã¹ã®APIãä»ããŠãµãŒãããŒãã£ã®ãœãŒã¹ããããŒã¿ãããŒããããããŸããŸãªã¿ã€ãã®è€æ°ã®ããŒã¿ã¹ãã¢ã§åäœããå Žåãã¢ããªã±ãŒã·ã§ã³ã®æ§é ã¯ããã«æ··ä¹±ããŸãããã®å Žåãçµ±åãã¡ã€ã³ã¢ãã«ãäœæããããŸããŸãªãœãŒã¹ããã®ããŒã¿ãããã«ãããããå¿ èŠããããŸãã
å Žåã«ãã£ãŠã¯ããã¡ã€ã³ã¢ãã«ã¯è€éãªãã«ãã¬ãã«æ§é ãæã€ããšãã§ããŸããããšãã°ãåæã¬ããŒããç·šéãããšãã«ãä»ã®ææšã«åºã¥ããŠããã€ãã®ææšãäœæã§ããŸããããã¯ã3çªç®ã®ææšãªã©ãäœæããããã®ãœãŒã¹ã«ãªããŸãããŸããå ¥åããŒã¿ã¯åæ§é åããã圢åŒã«ããããšãã§ããŸãããã®ããŒã¿ã«ã¯ãããšãã°ãªã¬ãŒã·ã§ãã«ããŒã¿ã¢ãã«ã®ãããªå³å¯ãªã¹ããŒãã¯ãããŸããããæçšãªæ å ±ãæœåºã§ããããã«ããäœããã®ããŒã¯ã¢ãããå«ãŸããŠããŸãããã®ãããªããŒã¿ã®äŸãšããŠã¯ãã»ãã³ãã£ãã¯WebãªãœãŒã¹ãWebããŒãžã®è§£æçµæãããã¥ã¡ã³ããã€ãã³ããã°ãã»ã³ãµãŒã®èªã¿åããããã¹ãããããªãç»åãªã©ã®éæ§é åããŒã¿ã®ååŠççµæãªã©ããããŸãããããã®ãœãŒã¹ã®ããŒã¿ã¹ããŒãã¯ãã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã§ã®ã¿æ§ç¯ãããŸããã³ãŒãããããŸãããœãŒã¹ããŒã¿ãããžãã¹ããžãã¯ãªããžã§ã¯ãã«å€æããŸãã
ãã®ãããã¢ããªã±ãŒã·ã§ã³ã«ã¯ãã¢ã«ãŽãªãºã ãšèšç®ã ãã§ãªãããã¡ã€ã³ã¢ãã«ã®æ§é ã«é¢ãã倧éã®æ å ±ïŒæŠå¿µã®æ§é ããããã®é¢ä¿ãéå±€ãä»ã®æŠå¿µã«åºã¥ããŠããã€ãã®æŠå¿µãæ§ç¯ããããã®èŠåãã¢ããªã±ãŒã·ã§ã³ã®ç°ãªãã¬ã€ã€ãŒéã§æŠå¿µãå€æããããã®èŠåãªã©ïŒãå«ãŸããŸããããã¥ã¡ã³ãããããžã§ã¯ããäœæãããšãã¯ããã®æ å ±ã宣èšçã«èšè¿°ããŸã-æ§é ãå³ãã¹ããŒãã¡ã³ããå®çŸ©ãã«ãŒã«ãèªç¶ãªèšèªã§ã®èšè¿°ã®åœ¢åŒã§ããã®ããã«èãããšäŸ¿å©ã§ããæ®å¿µãªããããããã®èª¬æãã³ãŒãã§åãèªç¶ãªæ¹æ³ã§è¡šçŸã§ãããšã¯éããŸããã
å°ããªäŸãèããŠãããŸããŸãªããã°ã©ãã³ã°ãã©ãã€ã ã䜿çšããŠãã®å®è£ ãã©ã®ããã«èŠããããæšæž¬ããŠã¿ãŸããã
2ã€ã®CSVãã¡ã€ã«ããããšããŸããããæåã®ãã¡ã€ã«ïŒ
æåã®åã«ã¯ã¯ã©ã€ã¢ã³ãIDãå«ãŸããŠããŸãã
2çªç®ã«ã¯æ¥ä»ãå«ãŸããŠããŸãã
3çªç®ã®-è«æ±é¡ã
4çªç®ã®-æ¯æãé¡ã
2çªç®ã®ãã¡ã€ã«ïŒ
æåã®åã«ã¯ã¯ã©ã€ã¢ã³ãIDãæ ŒçŽãããŸãã
2çªç®ã«-ååã
3çªç®ã¯ã¡ãŒã«ã¢ãã¬ã¹ã§ãã
ããã€ãã®å®çŸ©ã玹ä»ããŸããã
ãè«æ±æžã«ã¯ãã¯ã©ã€ã¢ã³ãã®IDãæ¥ä»ãè«æ±é¡ãæ¯æãé¡ãããã³ãã¡ã€ã«1
ã®1è¡ã®ã»ã«ããã®è² åµãå«ãŸããŸããè² åµé¡ã¯ãè«æ±é¡ãšæ¯æãé¡ã®å·®ã§ãã
顧客ã¯ããã¡ã€ã«2ã®1è¡ã®ã»ã«ã«ãã顧客IDãååãããã³é»åã¡ãŒã«ã¢ãã¬ã¹ã䜿çšããŠèšè¿°ãããŸãã
æªæãã®è«æ±æžã¯ãæ£ã®åµåè«æ±æžã§ãã
ã¢ã«ãŠã³ãã¯ã顧客IDå€ã«ãã£ãŠé¡§å®¢ã«ãªã³ã¯ãããŸãã
åµåè ãšã¯ãæªæãã®è«æ±æžãå°ãªããšã1ã€ããããã®æ¥ä»ãçŸåšã®æ¥ä»ãã1ãæå€ã顧客ã®ããšã§ãã
æªæã®ããäžå±¥è¡è ãšã¯ã3ã€ä»¥äžã®æªæãã®è«æ±æžãæã£ãŠãã顧客ã§ãã
ããã«ããããã®å®çŸ©ã䜿çšããŠããã¹ãŠã®åµåè ã«ãªãã€ã³ããŒãéä¿¡ãããæ°žç¶çãªäžå±¥è¡è ã«é¢ããããŒã¿ãã³ã¬ã¯ã¿ãŒã«éä¿¡ãããåµåé¡ã®ããã«ãã£ãèšç®ãããããŸããŸãªã¬ããŒããç·šéãããªã©ã®ããžãã¯ãå®è£ ã§ããŸããæ©èœããã°ã©ãã³ã°
èšèªãã®ãããªããžãã¹ããžãã¯ã¯ãå€æã®ããã®äžé£ã®ããŒã¿æ§é ãšé¢æ°ã䜿çšããŠå®è£ ãããŸããããã«ãããŒã¿æ§é ã¯åºæ¬çã«æ©èœããåé¢ãããŠããŸãããã®çµæãã¢ãã«ãç¹ã«ãšã³ãã£ãã£éã®é¢ä¿ãªã©ã®ã³ã³ããŒãã³ãã¯ãäžé£ã®é¢æ°å ã«é ãããããã°ã©ã ã³ãŒãã«å¡ãä»ããããŸããããã«ãããã¢ãã«ã®å®£èšçãªèšè¿°ãšãã®ãœãããŠã§ã¢å®è£ ã®éã«å€§ããªã®ã£ãããçãããã®ç解ãè€éã«ãªããŸããç¹ã«ã¢ãã«ã®ããªã¥ãŒã ã倧ããå Žåããªããžã§ã¯ãæåã®
ããã°ã©ã ã®æ§é åã¹ã¿ã€ã«ã¯ãã®åé¡ã軜æžããã®ã«åœ¹ç«ã¡ãŸããåãã¡ã€ã³ãšã³ãã£ãã£ã¯ãããŒã¿ãã£ãŒã«ãããšã³ãã£ãã£ã®å±æ§ã«å¯Ÿå¿ãããªããžã§ã¯ãã«ãã£ãŠè¡šãããŸãããŸãããšã³ãã£ãã£éã®é¢ä¿ã¯ããªããžã§ã¯ãéã®é¢ä¿ã®åœ¢åŒã§å®è£ ãããŸããäžéšã¯OOPã®ååïŒç¶æ¿ãããŒã¿æœè±¡åãå€æ æ§ïŒã«åºã¥ããŠãããäžéšã¯èšèšãã¿ãŒã³ã䜿çšããŠããŸãããã ããã»ãšãã©ã®å Žåãé¢ä¿ã¯ãªããžã§ã¯ãã¡ãœããã§ãšã³ã³ãŒãããŠå®è£ ããå¿ èŠããããŸãããŸãããšã³ãã£ãã£ãè¡šãã¯ã©ã¹ãäœæããããšã«å ããŠãããããé åºä»ããããã®ããŒã¿æ§é ããããã®æ§é ãåãããããã®æ å ±ãæ€çŽ¢ããããã®ã¢ã«ãŽãªãºã ãå¿ èŠã«ãªããŸãã
åµåè ã®äŸã§ã¯ããã¢ã«ãŠã³ãããšãã¯ã©ã€ã¢ã³ããã®æŠå¿µã®æ§é ã説æããã¯ã©ã¹ã説æã§ããŸãããã ãããªããžã§ã¯ããäœæããã¢ã«ãŠã³ããªããžã§ã¯ããšé¡§å®¢ãªããžã§ã¯ããçžäºã«ãªã³ã¯ããããžãã¯ã¯ãå€ãã®å Žåããã¡ã¯ããªã¯ã©ã¹ãŸãã¯ã¡ãœããã§åå¥ã«å®è£ ãããŸããåµåè ãšæªæãã®è«æ±æžã®æŠå¿µã«ã€ããŠã¯ãåå¥ã®ã¯ã©ã¹ã¯ãŸã£ããå¿ èŠãããŸããããããã®ãªããžã§ã¯ãã¯ãå¿ èŠãªå Žæã§ã¯ã©ã€ã¢ã³ããšè«æ±æžããã£ã«ã¿ãªã³ã°ããããšã«ãã£ãŠååŸã§ããŸãããã®çµæãã¢ãã«ã®æŠå¿µã®äžéšã¯ããªããžã§ã¯ãã¬ãã«ã§æ瀺çã«ãäžéšã¯æé»çã«ã¯ã©ã¹ãšããŠå®è£ ãããŸããæŠå¿µéã®é¢ä¿ã®ããã€ãã¯ã察å¿ããã¯ã©ã¹ã®ã¡ãœããã«ãããããã€ãã¯å¥åã®ãã®ã§ããã¢ãã«ã®å®è£ ã¯ãã¯ã©ã¹ãã¡ãœããå šäœã«ãŸã¿ããã¹ãã¬ãŒãžãæ€çŽ¢ãåŠçããã©ãŒãããå€æã®è£å©ããžãã¯ãšæ··åãããŸããã³ãŒãå ã§ãã®ã¢ãã«ãèŠã€ããŠç解ããã«ã¯ãããçšåºŠã®åªåãå¿ èŠã§ãã
説æã«æãè¿ãã®ã¯ãç¥èè¡šçŸèšèªã§ã®æŠå¿µã¢ãã«ã®å®è£ ã§ãããã®ãããªèšèªã®äŸã¯ãPrologãDatalogãOWLãFloraãªã©ã§ããç§ã¯ãããã®èšèªã«ã€ããŠ3çªç®ã®åºçç©ã§è©±ãäºå®ã§ãããããã¯ãäžæ¬¡ããžãã¯ãŸãã¯ãã®ãã©ã°ã¡ã³ããããšãã°èšè¿°ããžãã¯ã«åºã¥ããŠããŸãããããã®èšèªã§ã¯ã宣èšåœ¢åŒã§åé¡ã®è§£æ±ºçã®ä»æ§ãæå®ããã¢ãã«åããããªããžã§ã¯ããŸãã¯çŸè±¡ã®æ§é ãšæåŸ ãããçµæãèšè¿°ããããšãã§ããŸãããŸããçµã¿èŸŒã¿ã®æ€çŽ¢ãšã³ãžã³ã¯ãæå®ãããæ¡ä»¶ãæºãããœãªã¥ãŒã·ã§ã³ãèªåçã«èŠã€ããŸãããã®ãããªèšèªã§ã®ãã¡ã€ã³ã¢ãã«ã®å®è£ ã¯ãéåžžã«ç°¡æœã§ç解ãããããèªç¶ãªèšèªã§ã®èª¬æã«è¿ããã®ã«ãªããŸãã
ããšãã°ãPrologã§ã®åµåè ã«é¢ããåé¡ã®å®è£ ã¯ãäŸã®å®çŸ©ã«éåžžã«è¿ããªããŸãããããè¡ãã«ã¯ãããŒãã«ã»ã«ããã¡ã¯ããšããŠè¡šãå¿ èŠããããäŸã®å®çŸ©ãã«ãŒã«ãšããŠæ瀺ããå¿ èŠããããŸããã¢ã«ãŠã³ããšé¡§å®¢ãæ¯èŒããã«ã¯ãã«ãŒã«ã§ãããã®éã®é¢ä¿ãæå®ããã ãã§ååã§ããããããã®ç¹å®ã®å€ãèªåçã«è¡šç€ºãããŸãã
ãŸããããŒãã«ã®å 容ã次ã®åœ¢åŒã§ãã¡ã¯ãã宣èšããŸãïŒããŒãã«IDãè¡ãåãå€ïŒ
cell(âTable1â,1,1,âJohnâ).
次ã«ãååã«ååãä»ããŸãã
clientId(Row, Value) :- cell(âTable1â, Row, 1, Value).
次ã«ããã¹ãŠã®åã1ã€ã®æŠå¿µã«çµã¿åãããããšãã§ããŸãã
bill(Row, ClientId, Date, AmountToPay, AmountPaid) :- clientId(Row, ClientId), date(Row, Date), amountToPay(Row, AmountToPay), amountPaid(Row, AmountPaid).
unpaidBill(Row, ClientId, Date, AmountToPay, AmountPaid) :- bill(Row, ClientId, Date, AmountToPay, AmountPaid), AmountToPay > AmountPaid.
debtor(ClientId, Name, Email) :- client(ClientId, Name, Email), unpaidBill(_, ClientId, _, _, _).
çã
ã¢ãã«ãæäœãããšããã¡ãã»ãŒãžã®éä¿¡ãä»ã®ãµãŒãã¹ãžã®ããŒã¿ã®è»¢éãè€éãªã¢ã«ãŽãªãºã èšç®ã®ããžãã¯ãå®è£ ãããšãã«ãåé¡ãçºçããŸããPrologã®åŒ±ç¹ã¯ãäžé£ã®ã¢ã¯ã·ã§ã³ã®èª¬æã§ãããããã®å®£èšçãªå®è£ ã¯ãåçŽãªå Žåã§ããéåžžã«äžèªç¶ã«èŠããå¯èœæ§ããããå€å€§ãªåŽåãšã¹ãã«ãå¿ èŠãšããŸããããã«ãPrologã®æ§æã¯ãªããžã§ã¯ãæåã¢ãã«ã«ããŸãè¿ããªããå€æ°ã®å±æ§ãæã€è€éãªè€åæŠå¿µã®èª¬æãç解ããã®ã¯éåžžã«å°é£ã§ãã
äž»æµã®æ©èœçãŸãã¯ãªããžã§ã¯ãæåã®éçºèšèªãããã¡ã€ã³ã¢ãã«ã®å®£èšçãªæ§è³ªãšã©ã®ããã«èª¿åãããã®ã§ããããã
æãããç¥ãããŠããã¢ãããŒãã¯ããªããžã§ã¯ãæåã®èšèšïŒãã¡ã€ã³é§ååèšèšïŒã§ãããã®æ¹æ³ã«ãããè€éãªãã¡ã€ã³ã¢ãã«ã®äœæãšå®è£ ã容æã«ãªããŸããããã¯ããã¹ãŠã®ã¢ãã«ã®æŠå¿µãããžãã¹ããžãã¯ã¬ã€ã€ãŒã§æ瀺çã«ã³ãŒãã§è¡šçŸãããããšã瀺ããŠããŸããã¢ãã«ã®æŠå¿µãšãããå®è£ ããããã°ã©ã ã®èŠçŽ ã¯ãå¯èœãªéãäºãã«è¿ããããã°ã©ããŒãšäž»é¡ã®å°é家ã®äž¡æ¹ãç解ã§ããåäžã®èšèªã«å¯Ÿå¿ããŠããå¿ èŠããããŸãã
åµåè ãå«ãäŸã®ãªãããã¡ã€ã³ã¢ãã«ã«ã¯ããæªæãã®è«æ±æžããšãåµåè ãã®æŠå¿µã®ã¯ã©ã¹ãã¢ã«ãŠã³ããšé¡§å®¢ã®æŠå¿µãçµã¿åãããããã®éçŽã¯ã©ã¹ããªããžã§ã¯ããäœæããããã®å·¥å Žãè¿œå ã§å«ãŸããŸãããã®ãããªã¢ãã«ã®å®è£ ãšãµããŒãã«ã¯æéãããããã³ãŒãã¯ç ©éã§ãã以åã¯1è¡ã§å®è¡ã§ãããã®ããè±å¯ãªã¢ãã«ã§è€æ°ã®ã¯ã©ã¹ãå¿ èŠãšããŸãããã®çµæãå®éã«ã¯ããã®ã¢ãããŒãã¯ã倧èŠæš¡ãªããŒã ãè€éãªã¹ã±ãŒã«ã¢ãã«ã§äœæ¥ããŠããå Žåã«ã®ã¿æå³ããããŸãã
å Žåã«ãã£ãŠã¯ã解決çã¯ãåºæ¬çãªæ©èœãŸãã¯ãªããžã§ã¯ãæåã®ããã°ã©ãã³ã°èšèªãšå€éšã®ç¥èè¡šçŸã·ã¹ãã ã®çµã¿åããã§ããå¯èœæ§ããããŸãã..ããã¡ã€ã³ã¢ãã«ã¯ãPrologãOWLãªã©ã®å€éšãã¬ããžããŒã¹ã«è»¢éã§ãããã¡ã€ã³ã¢ãã«ãžã®ã¯ãšãªã®çµæã¯ã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã§åŠçãããŸãããããããã®ã¢ãããŒãã¯ãœãªã¥ãŒã·ã§ã³ãè€éã«ããåããšã³ãã£ãã£ãäž¡æ¹ã®èšèªã§å®è£ ããå¿ èŠãããããããã®éã®çžäºäœçšã¯APIãä»ããŠèšå®ããå¿ èŠããããç¥èè¡šçŸã·ã¹ãã ãªã©ã«ãã£ãŠè¿œå ã§ãµããŒããããå¿ èŠããããŸãããããã£ãŠãã¢ãã«ã倧ããè€éã§ãããè«ççãªæšè«ãå¿ èŠãªå Žåã«ã®ã¿æ£åœåãããŸããã»ãšãã©ã®ã¿ã¹ã¯ã§ã¯ãããã¯ããéãã§ããããã«ããã®ã¢ãã«ã¯åžžã«ã¢ããªã±ãŒã·ã§ã³ããç°¡åã«åãé¢ãããšã¯éããŸããã
ãã¬ããžããŒã¹ãšOOPã¢ããªã±ãŒã·ã§ã³ãçµã¿åãããããã®ãã1ã€ã®ãªãã·ã§ã³ã¯ããªã³ãããžãŒæåã®ããã°ã©ãã³ã°ã§ãã..ããã®ã¢ãããŒãã¯ããªã³ãããžãŒèšè¿°ããŒã«ãšãªããžã§ã¯ãããã°ã©ãã³ã°ã¢ãã«ã®é¡äŒŒæ§ã«åºã¥ããŠããŸããããšãã°OWLèšèªã§èšè¿°ãããã¯ã©ã¹ããšã³ãã£ãã£ãããã³ãªã³ãããžãŒå±æ§ã¯ãã¯ã©ã¹ããªããžã§ã¯ããããã³ãªããžã§ã¯ãã¢ãã«ã®ãããã®ãã£ãŒã«ãã«èªåçã«ãããã³ã°ã§ããŸãããããŠãçµæã®ã¯ã©ã¹ãã¢ããªã±ãŒã·ã§ã³ã®ä»ã®ã¯ã©ã¹ãšäžç·ã«äœ¿çšã§ããŸããæ®å¿µãªããããã®ã¢ã€ãã¢ã®åºæ¬çãªå®è£ ã¯ç¯å²ãããªãå¶éãããŸãããªã³ãããžãŒèšèªã¯éåžžã«è¡šçŸåãããããã¹ãŠã®ãªã³ãããžãŒã³ã³ããŒãã³ããç°¡åãã€èªç¶ãªæ¹æ³ã§OOPã¯ã©ã¹ã«å€æã§ããããã§ã¯ãããŸããããŸããæ¬æ Œçãªæšè«ãå®è£ ããã«ã¯ãã¯ã©ã¹ãšãªããžã§ã¯ãã®ã»ãããäœæããã ãã§ã¯äžååã§ãã圌ã¯ããªã³ãããžãŒã®èŠçŽ ã«é¢ããæ å ±ããããšãã°ã¡ã¿ã¯ã©ã¹ã®åœ¢åŒãªã©ãæ瀺çãªåœ¢åŒã§å¿ èŠãšããŠããŸãããã®ã¢ãããŒãã«ã€ããŠã¯ã次ã®ããããã®åºçç©ã§è©³ãã説æããäºå®ã§ãã
ã¢ãã«é§ååéçºã® ãããªãœãããŠã§ã¢éçºãžã®æ¥µç«¯ãªã¢ãããŒãããããŸããããã«ãããšãéçºã®äž»ãªã¿ã¹ã¯ã¯ãã¡ã€ã³ã¢ãã«ã®äœæã§ãããããããããã°ã©ã ã³ãŒããèªåçã«çæãããŸãããããå®éã«ã¯ããã®ãããªæ ¹æ¬çãªè§£æ±ºçã¯ãç¹ã«ããã°ã©ã ã®ããã©ãŒãã³ã¹ã«é¢ããŠãå¿ ãããååã«æè»ã§ãããšã¯éããŸããããã®ãããªã¢ãã«ã®äœæè ã¯ãããã°ã©ããŒãšããžãã¹ã¢ããªã¹ãã®äž¡æ¹ã®åœ¹å²ãçµã¿åãããå¿ èŠããããŸãããããã£ãŠããã®ã¢ãããŒãã§ã¯ãæ±çšããã°ã©ãã³ã°èšèªã§ã¢ãã«ãå®è£ ããããã®åŸæ¥ã®ã¢ãããŒããæ··éãããããšã¯ã§ããŸããã§ããã
ãããã®ã¢ãããŒãã¯ãã¹ãŠããªãé¢åã§ãããéåžžã«è€éãªã¢ãã«ã«ã¯æå³ããããå€ãã®å Žåããããã®äœ¿çšã®ããžãã¯ãšã¯å¥ã«èª¬æãããŸãããã軜ããããå¿«é©ã§èªç¶ãªãã®ã欲ããã§ãããã®ããã1ã€ã®èšèªã®å©ããåããŠã宣èšåœ¢åŒã®ã¢ãã«ãšãã®äœ¿çšã®ããã®ã¢ã«ãŽãªãºã ã®äž¡æ¹ãèšè¿°ããããšãå¯èœã§ããããã®ããããªããžã§ã¯ãæåãŸãã¯æ©èœãã©ãã€ã ïŒèšç®ã³ã³ããŒãã³ããšåŒã³ãŸãããïŒãšå®£èšãã©ãã€ã ïŒã¢ããªã³ã°ã³ã³ããŒãã³ããšåŒã³ãŸãããïŒãåäžã®ãã€ããªããããã°ã©ãã³ã°èšèªå ã§çµã¿åãããæ¹æ³ãèããŸãããäžèŠããããã®ãã©ãã€ã ã¯äºãã«å察ã«èŠããŸãããè©ŠããŠã¿ãæ¹ãèå³æ·±ãã§ãã
ãããã£ãŠãç®æšã¯ãåæ§é åããã³æçåãããããŒã¿ã«åºã¥ãæŠå¿µã¢ããªã³ã°ã«äŸ¿å©ãªèšèªãäœæããããšã§ããã¢ãã«ã®åœ¢åŒã¯ãªã³ãããžãŒã«è¿ãããã¡ã€ã³ã®ãšã³ãã£ãã£ãšãããã®éã®é¢ä¿ã®èª¬æã§æ§æãããŠããå¿ èŠããããŸããèšèªã®äž¡æ¹ã®ã³ã³ããŒãã³ãã¯ãã»ãã³ãã£ãã¯ã¬ãã«ãå«ããç·å¯ã«çµ±åããå¿ èŠããããŸãã
ãªã³ãããžãŒã®èŠçŽ ã¯ã第1ã¬ãã«ã®èšèªã®ãšã³ãã£ãã£ã§ããå¿ èŠããããŸããåŒæ°ãšããŠé¢æ°ã«æž¡ããããå€æ°ã«å²ãåœãŠããããããšãã§ããŸããã¢ãã«-ãªã³ãããžãŒã¯ããã°ã©ã ã®äž»èŠãªèŠçŽ ã®1ã€ã«ãªããããããã°ã©ãã³ã°ãžã®ãã®ã¢ãããŒãã¯ãªã³ãããžãŒæåãšåŒã¶ããšãã§ããŸããã¢ãã«ã®èª¬æãšãã®äœ¿çšã®ããã®ã¢ã«ãŽãªãºã ãçµã¿åããããšãããã°ã©ã ã³ãŒãã人éã«ãšã£ãŠããç解ããããèªç¶ã«ãªãããã¡ã€ã³ã®æŠå¿µã¢ãã«ã«è¿ã¥ãããœãããŠã§ã¢ã®éçºãšä¿å®ãç°¡çŽ åãããŸãã
åããŠã§ååã§ãã次ã®æçš¿ã§ã¯ãå¿ é ã¹ã¿ã€ã«ãšå®£èšã¹ã¿ã€ã«ãçµã¿åãããããã€ãã®ææ°ãã¯ãããžãŒïŒPL / SQLãMicrosoft LINQãGraphQLïŒã«ã€ããŠèª¬æããããšæããŸããHabréã«é¢ãããã¹ãŠã®åºçç©ã®ãªãªãŒã¹ãåŸ ã¡ãããªã人ã®ããã«ããªã³ã¯ã§å©çšå¯èœãªè±èªã®ç§åŠçãªã¹ã¿ã€ã«ã®å šæããããŸãïŒ
åæ§é åããŒã¿åŠçã®ããã®ãã€ããªãããªã³ãããžãŒæåããã°ã©ãã³ã°ã