{"id":"https://openalex.org/W2055588750","doi":"https://doi.org/10.1016/s1571-0661(04)80346-3","title":"Type Inference using Constraint Handling Rules","display_name":"Type Inference using Constraint Handling Rules","publication_year":2002,"publication_date":"2002-09-01","ids":{"openalex":"https://openalex.org/W2055588750","doi":"https://doi.org/10.1016/s1571-0661(04)80346-3","mag":"2055588750"},"language":"en","primary_location":{"id":"doi:10.1016/s1571-0661(04)80346-3","is_oa":true,"landing_page_url":"https://doi.org/10.1016/s1571-0661(04)80346-3","pdf_url":null,"source":{"id":"https://openalex.org/S50368787","display_name":"Electronic Notes in Theoretical Computer Science","issn_l":"1571-0661","issn":["1571-0661"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Electronic Notes in Theoretical Computer Science","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://doi.org/10.1016/s1571-0661(04)80346-3","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5081807548","display_name":"Sandra Alves","orcid":"https://orcid.org/0000-0001-8840-5587"},"institutions":[{"id":"https://openalex.org/I182534213","display_name":"Universidade do Porto","ror":"https://ror.org/043pwc612","country_code":"PT","type":"education","lineage":["https://openalex.org/I182534213"]}],"countries":["PT"],"is_corresponding":true,"raw_author_name":"Sandra Alves","raw_affiliation_strings":["DCC-FC & LIACC, University of Porto, Porto, Portugal","DCC-FC & LIACC, University of Porto, Porto, Portugal#TAB#"],"affiliations":[{"raw_affiliation_string":"DCC-FC & LIACC, University of Porto, Porto, Portugal","institution_ids":["https://openalex.org/I182534213"]},{"raw_affiliation_string":"DCC-FC & LIACC, University of Porto, Porto, Portugal#TAB#","institution_ids":["https://openalex.org/I182534213"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5009045296","display_name":"M\u00e1rio Florido","orcid":"https://orcid.org/0000-0002-0574-7555"},"institutions":[{"id":"https://openalex.org/I182534213","display_name":"Universidade do Porto","ror":"https://ror.org/043pwc612","country_code":"PT","type":"education","lineage":["https://openalex.org/I182534213"]}],"countries":["PT"],"is_corresponding":true,"raw_author_name":"M\u00e1rio Florido","raw_affiliation_strings":["DCC-FC & LIACC, University of Porto, Porto, Portugal","DCC-FC & LIACC, University of Porto, Porto, Portugal#TAB#"],"affiliations":[{"raw_affiliation_string":"DCC-FC & LIACC, University of Porto, Porto, Portugal","institution_ids":["https://openalex.org/I182534213"]},{"raw_affiliation_string":"DCC-FC & LIACC, University of Porto, Porto, Portugal#TAB#","institution_ids":["https://openalex.org/I182534213"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5009045296","https://openalex.org/A5081807548"],"corresponding_institution_ids":["https://openalex.org/I182534213"],"apc_list":null,"apc_paid":null,"fwci":0.8523,"has_fulltext":false,"cited_by_count":8,"citation_normalized_percentile":{"value":0.77464094,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":94},"biblio":{"volume":"64","issue":null,"first_page":"56","last_page":"72"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11010","display_name":"Logic, Reasoning, and Knowledge","score":0.9947999715805054,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10215","display_name":"Semantic Web and Ontologies","score":0.9872999787330627,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/prolog","display_name":"Prolog","score":0.7972725629806519},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.7490819692611694},{"id":"https://openalex.org/keywords/unification","display_name":"Unification","score":0.7246537208557129},{"id":"https://openalex.org/keywords/constraint-programming","display_name":"Constraint programming","score":0.7056156992912292},{"id":"https://openalex.org/keywords/constraint","display_name":"Constraint (computer-aided design)","score":0.6605428457260132},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6513232588768005},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.6132482886314392},{"id":"https://openalex.org/keywords/constraint-logic-programming","display_name":"Constraint logic programming","score":0.5681020617485046},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5568935871124268},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.4876011908054352},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.47783899307250977},{"id":"https://openalex.org/keywords/solver","display_name":"Solver","score":0.4747736155986786},{"id":"https://openalex.org/keywords/constraint-satisfaction","display_name":"Constraint satisfaction","score":0.4440484046936035},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.324103981256485},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.2768157720565796},{"id":"https://openalex.org/keywords/mathematical-optimization","display_name":"Mathematical optimization","score":0.22877562046051025},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.16151320934295654}],"concepts":[{"id":"https://openalex.org/C81721847","wikidata":"https://www.wikidata.org/wiki/Q163468","display_name":"Prolog","level":2,"score":0.7972725629806519},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.7490819692611694},{"id":"https://openalex.org/C96146094","wikidata":"https://www.wikidata.org/wiki/Q609057","display_name":"Unification","level":2,"score":0.7246537208557129},{"id":"https://openalex.org/C173404611","wikidata":"https://www.wikidata.org/wiki/Q528588","display_name":"Constraint programming","level":3,"score":0.7056156992912292},{"id":"https://openalex.org/C2776036281","wikidata":"https://www.wikidata.org/wiki/Q48769818","display_name":"Constraint (computer-aided design)","level":2,"score":0.6605428457260132},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6513232588768005},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.6132482886314392},{"id":"https://openalex.org/C176783269","wikidata":"https://www.wikidata.org/wiki/Q5164378","display_name":"Constraint logic programming","level":4,"score":0.5681020617485046},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5568935871124268},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.4876011908054352},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.47783899307250977},{"id":"https://openalex.org/C2778770139","wikidata":"https://www.wikidata.org/wiki/Q1966904","display_name":"Solver","level":2,"score":0.4747736155986786},{"id":"https://openalex.org/C44616089","wikidata":"https://www.wikidata.org/wiki/Q30158686","display_name":"Constraint satisfaction","level":3,"score":0.4440484046936035},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.324103981256485},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.2768157720565796},{"id":"https://openalex.org/C126255220","wikidata":"https://www.wikidata.org/wiki/Q141495","display_name":"Mathematical optimization","level":1,"score":0.22877562046051025},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.16151320934295654},{"id":"https://openalex.org/C137631369","wikidata":"https://www.wikidata.org/wiki/Q7617831","display_name":"Stochastic programming","level":2,"score":0.0},{"id":"https://openalex.org/C49937458","wikidata":"https://www.wikidata.org/wiki/Q2599292","display_name":"Probabilistic logic","level":2,"score":0.0},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1016/s1571-0661(04)80346-3","is_oa":true,"landing_page_url":"https://doi.org/10.1016/s1571-0661(04)80346-3","pdf_url":null,"source":{"id":"https://openalex.org/S50368787","display_name":"Electronic Notes in Theoretical Computer Science","issn_l":"1571-0661","issn":["1571-0661"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Electronic Notes in Theoretical Computer Science","raw_type":"journal-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.22.5374","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.22.5374","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.informatik.uni-kiel.de/~wflp2001/proceedings/papers/paper3.ps.gz","raw_type":"text"}],"best_oa_location":{"id":"doi:10.1016/s1571-0661(04)80346-3","is_oa":true,"landing_page_url":"https://doi.org/10.1016/s1571-0661(04)80346-3","pdf_url":null,"source":{"id":"https://openalex.org/S50368787","display_name":"Electronic Notes in Theoretical Computer Science","issn_l":"1571-0661","issn":["1571-0661"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Electronic Notes in Theoretical Computer Science","raw_type":"journal-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/16","display_name":"Peace, Justice and strong institutions","score":0.4099999964237213}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":25,"referenced_works":["https://openalex.org/W1499633535","https://openalex.org/W1541434994","https://openalex.org/W1564110513","https://openalex.org/W1595479588","https://openalex.org/W1829301681","https://openalex.org/W1850217788","https://openalex.org/W2009825892","https://openalex.org/W2016049804","https://openalex.org/W2022443117","https://openalex.org/W2027657506","https://openalex.org/W2032249605","https://openalex.org/W2051981528","https://openalex.org/W2055588750","https://openalex.org/W2059895047","https://openalex.org/W2068457689","https://openalex.org/W2079333278","https://openalex.org/W2092632814","https://openalex.org/W2123396057","https://openalex.org/W2156926516","https://openalex.org/W2163976959","https://openalex.org/W3085585575","https://openalex.org/W4206370914","https://openalex.org/W4301885396","https://openalex.org/W6658525393","https://openalex.org/W6673925309"],"related_works":["https://openalex.org/W1486916474","https://openalex.org/W2097415053","https://openalex.org/W1531664660","https://openalex.org/W1596719193","https://openalex.org/W1496100162","https://openalex.org/W2365168741","https://openalex.org/W1980681296","https://openalex.org/W1514298554","https://openalex.org/W1597500234","https://openalex.org/W1591778271"],"abstract_inverted_index":{"In":[0,22,59],"this":[1],"paper":[2],"we":[3],"present":[4],"an":[5],"implementation":[6,24],"of":[7,31,48,97],"the":[8,25,28,32,37,49,60,99],"general":[9,29],"system":[10],"for":[11,86],"type":[12,33],"inference":[13,34],"algorithms":[14,35],"HM(X),":[15],"using":[16],"Prolog":[17,69],"and":[18,36,94],"Constraint":[19],"Handling":[20],"Rules.":[21],"our":[23],"difference":[26],"between":[27],"aspects":[30],"constraint":[38,61,75],"resolution":[39],"module":[40],"becomes":[41],"clearer,":[42],"when":[43],"compared":[44],"to":[45],"other":[46],"implementations":[47],"same":[50],"systems,":[51],"usually":[52],"made":[53,79],"in":[54,84],"a":[55,81,92],"functional":[56],"programming":[57],"language.":[58],"module,":[62],"solving":[63],"equality":[64],"constraints,":[65],"here":[66],"implemented":[67,83],"by":[68,80],"unification,":[70],"is":[71,78],"completely":[72],"separated":[73],"from":[74],"simplification,":[76],"which":[77],"solver":[82],"CHR":[85,89],"each":[87],"system.":[88],"rules":[90],"become":[91],"clear":[93],"natural":[95],"way":[96],"specifying":[98],"simplification":[100],"mechanism.":[101]},"counts_by_year":[{"year":2020,"cited_by_count":1},{"year":2016,"cited_by_count":1}],"updated_date":"2026-04-04T16:13:02.066488","created_date":"2025-10-10T00:00:00"}
