Share to: share facebook share twitter share wa share telegram print page

Prolog

Prolog
编程范型逻辑式
設計者Alain Colmerauer英语Alain Colmerauer罗伯特·科瓦尔斯基
发行时间1972年
文件扩展名.pl, .pro, .P
主要實作產品
B-Prolog英语B-Prolog, Ciao语言英语Ciao (programming language), ECLiPSe英语ECLiPSe, GNU Prolog英语GNU Prolog, Poplog英语Poplog Prolog, P#, Quintus Prolog, SICStus英语SICStus, Strawberry英语Strawberry Prolog, SWI-Prolog英语SWI-Prolog, Tau Prolog, tuProlog英语tuProlog, WIN-PROLOG英语Logic Programming Associates, XSB英语XSB, YAP英语YAP (Prolog)
衍生副語言
ISO Prolog, Edinburgh Prolog
啟發語言
PLANNER英语PLANNER
影響語言
CHR英语Constraint Handling RulesClojureDatalogErlangKL0英语KL0KL1英语KL1MercuryOzStrand英语Strand (programming language)Visual PrologXSB英语XSB

PrologProgramming in Logic的缩写)是一种逻辑编程语言。它建立在逻辑学的理论基础之上, 最初被运用于自然语言等研究领域。现在它已广泛的应用在人工智能的研究中,它可以用来建造专家系统自然语言理解、智能知识库等。[1][2][3][4][5]

历史

Prolog语言的理论基础建立于爱丁堡大学罗伯特·科瓦尔斯基霍恩子句(Horn Clause)的程序性解释,最早由艾克斯-马赛大学的Alain Colmerauer与Phillipe Roussel等人于60年代末研究开发。1972年被公认为是Prolog语言正式诞生的年份,自1972年以后,分支出多种Prolog的方言。最主要的两种方言为爱丁堡艾克斯-马赛。最早的Prolog解释器由Roussel建造,而第一个Prolog编译器则是David Warren编写的。

Prolog一直在北美和欧洲被广泛使用。日本政府曾经为了建造智能计算机而用Prolog来开发ICOT第五代计算机系统。在早期的机器智能研究领域,Prolog曾经是主要的开发工具。

80年代Borland开发的Turbo Prolog,进一步普及了Prolog的使用。1995年确定了ISO Prolog标准。

特點

有別於一般的函数式语言,prolog的程式是基於謂詞邏輯的理論。最基本的寫法是定义物件與物件之間的關係,之後可以用詢問目標的方式來查詢各種物件之間的關係。系統會自動進行匹配及回溯,找出所詢問的答案。

Prolog代码中以大写字母开头的元素是变量字符串、数字或以小写字母开头的元素是常量。下划线(_)被称为匿名变量。

语法示例

事实语句,例如:

human(kate).
human(bill).
likes(kate,bill).

表示kate和bill是人(human),kate喜欢bill。

规则语句,例如:

friend(X,Y):-likes(X,Y),likes(Y,X).

表示对于两个对象XY,如果X喜欢Y,且Y喜欢X,那么他们是朋友。

Prolog範例

範例如下:

Quicksort

快速排序範例(對list作排序):

/* quicksort2.pl    原始來源:http://en.wikipedia.org/wiki/Prolog   */
/* quicksort()中的第二個引數帶有排序好的結果 */
/* 僅為示範,若為gprolog使用者則用內建sort等較佳 */
/* 在gprolog下之編譯例:gplc --min-size quicksort2.pl */
/*   執行 quicksort2 後會出現排序結果 [2,9,18,18,25,33,66,77] */

q:- L=[33,18,2,77,66,18,9,25], last(P,_), (quicksort(L,P,_), write(P), nl).    /* 加入last/2會在印P時沒複合項 */

partition([], _, [], []).			/* 此行表空集亦視為分割(分割成空集與空集)*/
partition([X|Xs], Pivot, Smalls, Bigs) :-	/* 原list分成Smalls與Bigs; 此规则保證Smalls集<Pivot且Bigs集>=Pivot */
    (   X @< Pivot ->
        Smalls = [X|Rest],
        partition(Xs, Pivot, Rest, Bigs)
    ;   Bigs = [X|Rest],
        partition(Xs, Pivot, Smalls, Rest)
    ).
 
quicksort([])     --> [].			/* 表empty list視為排序好的list */
quicksort([X|Xs]) -->			/* 此行相當於quicksort([X|Xs],Start,End) :-  此规则讓Start為sorted list */
    { partition(Xs, X, Smaller, Bigger) },	/* 由上行最左端元素為 Pivot */
    quicksort(Smaller), [X], quicksort(Bigger).	/* 此行相當於	quicksort(Smaller,Start,A),
    								A=[X|B],  注意首字母大寫者皆視為變數(list)
								quicksort(Bigger,B,End).  */
:- initialization(q).		/* 啟動q處goals */


sort

下面簡潔的排序範例可以體會到為什麼AI領域喜用Prolog:

/* sortcsj.pl    原始參考:Computer Science  J. Glenn Brookshear   */
/* sortcsj()中的第二個引數帶有排序好的結果 */
/* 僅為示範,若為gprolog使用者則用內建sort等較佳 */
/* 在gprolog下之編譯例:gplc --min-size sortcsj.pl */
/*   執行 sortcsj 後會出現排序結果 [2,9,18,18,25,33,66,77] */

q:- L=[33,18,2,77,18,66,9,25], (sortcsj(L,P), write(P), nl). 

sortcsj(L,S) :-  permutation(L,S), ordered(S).	/* L為原list, S為排序好的list, 此為permutation關係(built-in) */

ordered([]).			/* 表empty list視為排序好的list */
ordered([_|[]]).			/* 只有一元素之list視為排序好的list */
ordered([A|[B|T]]) :- A =< B, ordered([B|T]).	/* 此规则約束所謂的排序好是指前項元素小於或等於後一項元素 */

:- initialization(q).		/* 啟動q處goals */


Russell's paradox

示範羅素悖論在Prolog下會導致堆疊溢位

/* tstpx.pl */
/* 羅素佯謬(羅素悖論)(皇帝新腦 羅杰.彭羅斯 p.120)會導致不停機(使得gprolog產生 stack overflow) */
/* 在gprolog下之編譯例:gplc --min-size tstpx.pl */

q:- px(_).              /* 找尋任何可使 px() 规则成立的方式 */

px(1) :- \+ px(1).      /* 規定此规则不成立。 i.e. 此规则為假時此规则才為真 (佯謬)*/

:- initialization(q).           /* 啟動q處goal */

参考文献

  1. ^ Clocksin, William F.; Mellish, Christopher S. Programming in Prolog. Berlin; New York: Springer-Verlag. 2003. ISBN 978-3-540-00678-7. 
  2. ^ Bratko, Ivan. Prolog programming for artificial intelligence 4th. Harlow, England; New York: Addison Wesley. 2012. ISBN 978-0-321-41746-6. 
  3. ^ Covington, Michael A. Natural language processing for Prolog programmers. Englewood Cliffs, N.J.: Prentice Hall. 1994. ISBN 978-0-13-629213-5. 
  4. ^ Stickel, M. E. A prolog technology theorem prover: Implementation by an extended prolog compiler. Journal of Automated Reasoning. 1988, 4 (4): 353–380. CiteSeerX 10.1.1.47.3057可免费查阅. S2CID 14621218. doi:10.1007/BF00297245. 
  5. ^ Merritt, Dennis. Building expert systems in Prolog需要免费注册. Berlin: Springer-Verlag. 1989. ISBN 978-0-387-97016-5. 

外部連結

实现

参见

Read other articles:

Pour un article plus général, voir Histoire du Cameroun. Cameroun français 1916 – 1960 (44 ans)Drapeau. Hymne La Marseillaise Carte de l'évolution territoriale du Cameroun ; le Cameroun français est indiqué en bleu.Informations générales Statut Territoire sous mandat de l'Empire colonial françaisTerritoire sous tutelle de l'Union française. Capitale Yaoundé Langue(s) Français Religion Catholicisme, Bwiti et islam Monnaie Franc français et Franc CFA Démographie P...

 

В Википедии есть статьи о других людях с фамилией Гловацкий. Вадим Гловацкий Позиция защитник Рост 183 см Вес 90 кг Страна  СССР →  Казахстан Дата рождения 1 января 1970(1970-01-01) Место рождения Темиртау, Казахская ССР Дата смерти 5 января 2015(2015-01-05) (45 лет) Карьера 1985—2006 �...

 

Pertempuran Sungai SilerBagian dari Perang Budak KetigaPertempuran Sungai SilerTanggal71 SMLokasiDekat Sungai Siler, ItaliaHasil Kemenangan telak RomawiAkhir Perang Budak KetigaPihak terlibat Republik Romawi Pasukan budak pelarianTokoh dan pemimpin Marcus Licinius Crassus Spartacus †Kekuatan 32,000:6 legiun4 legiun konsul Sekitar 50,000 tentaraKorban 36,000 tewas6,000 ditawan5,000 orang yang melarikan diri kemudian ditangkap oleh Gnaeus Pompeius Magnus dan disalibkan lbsPerang Budak Ro...

County in Virginia, United States County in VirginiaHanover CountyCountyCurrent Hanover County Courthouse FlagSealLocation within the U.S. state of VirginiaVirginia's location within the U.S.Coordinates: 37°46′N 77°29′W / 37.76°N 77.49°W / 37.76; -77.49Country United StatesState VirginiaFounded1720Named forElectorate of HanoverSeatHanover CourthouseLargest townAshlandArea • Total474 sq mi (1,230 km2) • Land469...

 

1993 Hong Kong martial arts comedy film by Corey Yuen Fong Sai-yuk IIPromotional artworkTraditional Chinese方世玉續集Simplified Chinese方世玉续集Hanyu PinyinFāng Shìyù XùjíJyutpingFong1 Sai3 Juk6 Zuk6 Zaap6 Directed byCorey YuenWritten byJohn ChanJeff LauProduced byJet LiStarringJet LiJosephine SiaoAdam ChengMichelle ReisAmy KwokCorey YuenCinematographyMark LeeEdited byAngie LamMusic byLowell LoStephen ShingProductioncompanyEastern Production Ltd.Distributed byGala Film Di...

 

Ehemaliger Kanton Marseille-La Rose Region Provence-Alpes-Côte d’Azur Département Bouches-du-Rhône Arrondissement Marseille Auflösungsdatum 29. März 2015 Einwohner 35.166 (1. Jan. 2012) Bevölkerungsdichte 6.610 Einw./km² Fläche 5.32 km² Gemeinden 1 INSEE-Code 1340 Lage des Kantons Marseille-La Rose im Département Bouches-du-Rhône Der Kanton Marseille-La Rose war bis 2015 ein französischer Wahlkreis im Arrondissement Marseille, im Département Bouches-du-Rhôn...

En este artículo se detectaron varios problemas. Por favor, edítalo y/o discute los problemas en la discusión para mejorarlo: Necesita ser wikificado conforme a las convenciones de estilo de Wikipedia. Necesita mejorar su estructura. Su redacción no sigue las convenciones de estilo. Carece de fuentes o referencias que aparezcan en una fuente acreditada. Este aviso fue puesto el 3 de diciembre de 2023. Puedes avisar al redactor principal pegando lo siguiente en su página de discusi

 

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: アウグスト・ヴィルヘルム・フォン・プロイセン 1887-1949 – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2018年6月...

 

The Collection: Story Op.2Album kompilasi karya JonghyunDirilis24 April 2017 (2017-04-24)BahasaKoreanLabel S.M. Entertainment KT Music Kronologi Jonghyun 'She Is(2016) The Collection: Story Op.2 ' Poet | Artist(2018) 'The Collection: Story Op.1(2015) '''The Collection: Story Op.2(2017) Singel dalam album Story Op.2 Lonely (Feat. TaeYeon)Dirilis: 24 April 2017 The Collection: Story Op.2 (Hangul: 소품집: 이야기 Op.2; RR: Sopunjib: Iyagi Op.2) adalah album kompilasi kedua dan tera...

Joseph Mackey Brown Joseph Mackey Brown (* 28. Dezember 1851 in Canton, Georgia; † 3. März 1932 in Marietta, Georgia) war ein US-amerikanischer Politiker und amtierte zweimal als Gouverneur von Georgia. Inhaltsverzeichnis 1 Jugend und politischer Aufstieg 2 Die Fehde mit Hoke Smith 3 Gouverneur von Georgia 4 Lebensende und Tod 5 Literatur 6 Weblinks Jugend und politischer Aufstieg Joseph Brown war der Sohn von Joseph E. Brown und dessen Frau Elizabeth Grisham. Der Vater war zwischen 1857 u...

 

AwardUnit Citation for Gallantry insignia worn if a member of the unit when earned (left)and if joined after (right)TypeUnit CitationAwarded forExtraordinary gallantry in actionPresented byAustraliaEligibilityAustralian military unitsStatusCurrently awardedEstablished15 January 1991First awarded27 November 2004Last awarded1 June 2018Total6Total awarded posthumously1Award streamer RelatedCommendation for Gallantry The Unit Citation for Gallantry is a collective group decoration awarded to memb...

 

No debe confundirse con El Libro de Rutas y Reinos (al-Bakri). Mapa de Eurasia mostrando la red de comercio de los Radhanitas (hacia 870), tal cual es descrito por ibn Khordadbeh en El Libro de Rutas y Reinos. El Libro de Rutas y Reinos (en árabe: كتاب المسالك والممالك, Kitab al-w'al Masalik-Mamalik) es un texto geográfico del siglo IX escrito por el geógrafo persa Ibn Khordadbeh.[1]​ El libro describe las principales rutas comerciales del mundo mulsumán de l...

American football player (born 1990) For other people named Robert Quinn, see Bob Quinn. American football player Robert QuinnQuinn with the Rams in 2015Personal informationBorn: (1990-05-18) May 18, 1990 (age 33)Ladson, South Carolina, U.S.Height:6 ft 4 in (1.93 m)Weight:245 lb (111 kg)Career informationHigh school:Fort Dorchester(North Charleston, South Carolina)College:North Carolina (2008–2010)Position:Defensive endNFL Draft:2011 / Round: 1 /...

 

RFN 152 000Wissembourg - Lauterbourg-Gare Totale lengte20,7 kmSpoorwijdtenormaalspoor 1435 mmAangelegd doorReichseisenbahnen in Elsaß-LothringenGeopend1 juli 1900Opheffingtreindienst1 oktober 1947GeslotenWissembourg - Scheibenhard: 1969Scheibenhard - Lauterbourg: 12 november 1954Huidige statusopgebrokenGeëlektrificeerdnee Traject Legenda DB 3433 van Neustadt (Weinstr) Hbf grens Duitsland - Frankrijk 0,0 Wissembourg 1,2 lijn 146 056 opgebroken lijn 146 000 naar Vendenheim 8,9 Schleital 11,5 ...

 

الجاسوس الذي أحبنيThe Spy Who Loved Me (بالإنجليزية) الشعارملصق الفيلممعلومات عامةالصنف الفني  القائمة ... فيلم إثارة — فيلم تجسس — فيلم مغامرة[1][2] — فيلم أكشن — فيلم مقتبس من عمل أدبي تاريخ الصدور7 يوليو 1977 (1977-07-07) (لندن)مدة العرض 125 دقيقةاللغة الأصلية الإنجليز...

Der Deutsche Sprachatlas (DSA) ist ein Sprachatlas der Dialekte auf dem Gebiet des ehemaligen Deutschen Kaiserreiches und zugleich Namensgeber für das dahinter stehende Institut, das Forschungszentrum Deutscher Sprachatlas. Der DSA (Werk und Institut) geht auf den von Georg Wenker (1852–1911) seit 1876 vorbereiteten und ab 1878 erhobenen Sprachatlas des Deutschen Reichs zurück.[1] Mit seinen über 40.000 Erhebungsorten (und weiteren Orten aus den Nacherhebungen in deutschen Sprach...

 

Township in Pennsylvania, United StatesEasttown TownshipTownshipCabbage Town, Waterloo MillsLocation in Chester County and the state of Pennsylvania.Location of Pennsylvania in the United StatesCoordinates: 40°02′08″N 75°26′22″W / 40.03556°N 75.43944°W / 40.03556; -75.43944CountryUnited StatesStatePennsylvaniaCountyChesterFoundedIncorporated ca. 1704Area[1] • Total8.27 sq mi (21.41 km2) • Land8.22 sq ...

 

Walt Disney Attractions Japan is a wholly owned subsidiary of Disney Parks, Experiences and Products, one of four sectors of the American entertainment conglomerate The Walt Disney Company.[1] Founded in 1982, a year before the opening of the Tokyo Disneyland theme park in Chiba, Japan, its purpose was to liaise with The Oriental Land Company - the financial owners of Tokyo Disneyland - in all aspects of running and maintaining the theme park. Activities Developing ideas for theme par...

Bridge in Perth, Western Australia This article is about the bridge in Perth, Western Australia. For the bridge in Pennsylvania, United States, see McKeesport Connecting Railroad Bridge. Riverton Bridge Designations Western Australia Heritage RegisterOfficial nameRiverton Road BridgeTypeMunicipal InventoryDesignated18 September 2018Reference no.11962MunicipalityCity of Canning Riverton Bridge is a two-lane road traffic bridge spanning the Canning River at Riverton, in Perth, Western Aust...

 

Pour les articles homonymes, voir M1 et Autoroute de l'Ouest. Autoroute hongroise M1 L'autoroute M1 près de Óbarok Autres dénominations Autoroute de l’Ouest Historique Ouverture de 1964 à 1996 Caractéristiques Longueur 172 km Direction est / ouest De Budapest Vers Hegyeshalom / à Autriche Villes principales Budapest, Bicske, Tatabánya, Tata, Komárom, Győr, Mosonmagyaróvár Réseau Autoroutes de Hongrie 4 comitats Pest, Fejér, Komárom-Esztergom, Győr-Moson-Sopron modifier&#...

 
Kembali kehalaman sebelumnya