{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,22]],"date-time":"2023-10-22T05:40:37Z","timestamp":1697953237886},"reference-count":11,"publisher":"Wiley","issue":"8","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":6299,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1989,8]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Prolog is a relatively new programming language that has proved excellent for symbolic computation. However, Prolog was not specifically designed for industrial scale work and it lacks some standard features that are useful for reading, maintaining and debugging large programs. In particular, Prolog has no record mechanism, and programs often require major changes when data structures are modified.<\/jats:p><jats:p>The <jats:italic>record<\/jats:italic> is a standard data abstraction concept that improves the robustness of programs. The main advantage in using records is that data structures can be modified and extended with minimal repercussion to program code. Furthermore, the use of significant names to access data fields means that the intent of code is generally clearer.<\/jats:p><jats:p>We present a set of primitive operators that support a readable and robust programming style for the manipulation of record data structures in standard Prolog. The proposal covers both simple and imbricated record types and handles selective modification of records cleanly. We also treat property lists and records in a uniform way. These benefits are achieved with minimal overhead while retaining the traditional Prolog non\u2010deterministic style.<\/jats:p>","DOI":"10.1002\/spe.4380190808","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T05:08:03Z","timestamp":1163826483000},"page":"801-807","source":"Crossref","is-referenced-by-count":0,"title":["Record manipulation in prolog"],"prefix":"10.1002","volume":"19","author":[{"given":"Jean G.","family":"Vaucher","sequence":"first","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/214956.214958"},{"key":"e_1_2_1_3_2","volume-title":"Programming in Prolog","author":"Clocksin W.","year":"1981"},{"key":"e_1_2_1_4_2","volume-title":"Prolog Programming for Artificial Intelligence","author":"Bratko I.","year":"1986"},{"key":"e_1_2_1_5_2","volume-title":"The Art of Pmlog","author":"Sterling L.","year":"1986"},{"key":"e_1_2_1_6_2","first-page":"415","volume-title":"Integrating complex data structures in Prolog","author":"Barklund J.","year":"1987"},{"issue":"4","key":"e_1_2_1_7_2","first-page":"271","article-title":"Prolog, bases theoriques et developpements actuels","volume":"2","author":"Colmerauer A.","year":"1983","journal-title":"T.S.I. \u2014 Techniques et Science Informatique"},{"key":"e_1_2_1_8_2","volume-title":"Communicating with Databases in Natural Language","author":"Wallace M.","year":"1984"},{"key":"e_1_2_1_9_2","volume-title":"SCOOP: structured concurrent object\u2010oriented Prolog","author":"Vaucher J.","year":"1988"},{"key":"e_1_2_1_10_2","volume-title":"Common Lisp: the Language","author":"Steele G. L.","year":"1984"},{"key":"e_1_2_1_11_2","unstructured":"D. H.Lanam Advanced A.I. Systems' Prolog Manual Version M\u20101.1 Advanced A. I. Systems Inc. PO Box 39\u20100360 Mountain View California November1986."},{"key":"e_1_2_1_12_2","volume-title":"C\u2010Prolog User's Manual","author":"Pereira F.","year":"1982"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380190808","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380190808","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,21]],"date-time":"2023-10-21T23:46:37Z","timestamp":1697931997000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380190808"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1989,8]]},"references-count":11,"journal-issue":{"issue":"8","published-print":{"date-parts":[[1989,8]]}},"alternative-id":["10.1002\/spe.4380190808"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380190808","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1989,8]]}}}