{"id":"https://openalex.org/W7081948876","doi":"https://doi.org/10.4230/oasics.programming.2025.23","title":"The Pyttern Program Query Language","display_name":"The Pyttern Program Query Language","publication_year":2025,"publication_date":"2025-01-01","ids":{"openalex":"https://openalex.org/W7081948876","doi":"https://doi.org/10.4230/oasics.programming.2025.23"},"language":"en","primary_location":{"id":"pmh:oai:lirias2repo.kuleuven.be:20.500.12942/779981","is_oa":true,"landing_page_url":"https://lirias.kuleuven.be/handle/20.500.12942/779981","pdf_url":null,"source":{"id":"https://openalex.org/S7407055369","display_name":"Lirias","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":"9th Symposium on Computer Languages, Implementations and Tools, Prague, Czechia, 2-6 June 2025","raw_type":"info:eu-repo/semantics/conferenceObject"},"type":"conference-paper","indexed_in":["datacite"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://lirias.kuleuven.be/handle/20.500.12942/779981","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"Li\u00e9nard, Julien","orcid":"https://orcid.org/0009-0009-2966-7179"},"institutions":[{"id":"https://openalex.org/I95674353","display_name":"UCLouvain","ror":"https://ror.org/02495e989","country_code":"BE","type":"education","lineage":["https://openalex.org/I95674353"]}],"countries":["BE"],"is_corresponding":false,"raw_author_name":"Li\u00e9nard, Julien","raw_affiliation_strings":["ICTEAM/INGI, UCLouvain, Louvain-la-Neuve, Belgium"],"raw_orcid":"https://orcid.org/0009-0009-2966-7179","affiliations":[{"raw_affiliation_string":"ICTEAM/INGI, UCLouvain, Louvain-la-Neuve, Belgium","institution_ids":["https://openalex.org/I95674353"]}]},{"author_position":"middle","author":{"id":null,"display_name":"Mens, Kim","orcid":"https://orcid.org/0000-0003-0303-1630"},"institutions":[{"id":"https://openalex.org/I95674353","display_name":"UCLouvain","ror":"https://ror.org/02495e989","country_code":"BE","type":"education","lineage":["https://openalex.org/I95674353"]}],"countries":["BE"],"is_corresponding":false,"raw_author_name":"Mens, Kim","raw_affiliation_strings":["ICTEAM/INGI, UCLouvain, Louvain-la-Neuve, Belgium"],"raw_orcid":"https://orcid.org/0000-0003-0303-1630","affiliations":[{"raw_affiliation_string":"ICTEAM/INGI, UCLouvain, Louvain-la-Neuve, Belgium","institution_ids":["https://openalex.org/I95674353"]}]},{"author_position":"last","author":{"id":null,"display_name":"Nijssen, Siegfried","orcid":"https://orcid.org/0000-0003-2678-1266"},"institutions":[{"id":"https://openalex.org/I95674353","display_name":"UCLouvain","ror":"https://ror.org/02495e989","country_code":"BE","type":"education","lineage":["https://openalex.org/I95674353"]},{"id":"https://openalex.org/I99464096","display_name":"KU Leuven","ror":"https://ror.org/05f950310","country_code":"BE","type":"education","lineage":["https://openalex.org/I99464096"]}],"countries":["BE"],"is_corresponding":false,"raw_author_name":"Nijssen, Siegfried","raw_affiliation_strings":["DTAI, KU Leuven, Belgium","ICTEAM/INGI, UCLouvain, Louvain-la-Neuve, Belgium"],"raw_orcid":"https://orcid.org/0000-0003-2678-1266","affiliations":[{"raw_affiliation_string":"DTAI, KU Leuven, Belgium","institution_ids":["https://openalex.org/I99464096"]},{"raw_affiliation_string":"ICTEAM/INGI, UCLouvain, Louvain-la-Neuve, Belgium","institution_ids":["https://openalex.org/I95674353"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":true,"primary_topic":{"id":"https://openalex.org/T12157","display_name":"Geochemistry and Geologic Mapping","score":0.6543999910354614,"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/T12157","display_name":"Geochemistry and Geologic Mapping","score":0.6543999910354614,"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/T13067","display_name":"Geological Modeling and Analysis","score":0.026100000366568565,"subfield":{"id":"https://openalex.org/subfields/1906","display_name":"Geochemistry and Petrology"},"field":{"id":"https://openalex.org/fields/19","display_name":"Earth and Planetary Sciences"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10271","display_name":"Seismic Imaging and Inversion Techniques","score":0.019099999219179153,"subfield":{"id":"https://openalex.org/subfields/1908","display_name":"Geophysics"},"field":{"id":"https://openalex.org/fields/19","display_name":"Earth and Planetary Sciences"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.6777999997138977},{"id":"https://openalex.org/keywords/query-language","display_name":"Query language","score":0.5719000101089478},{"id":"https://openalex.org/keywords/parsing","display_name":"Parsing","score":0.567300021648407},{"id":"https://openalex.org/keywords/usability","display_name":"Usability","score":0.4163999855518341},{"id":"https://openalex.org/keywords/coding","display_name":"Coding (social sciences)","score":0.4059000015258789},{"id":"https://openalex.org/keywords/syntax","display_name":"Syntax","score":0.3833000063896179},{"id":"https://openalex.org/keywords/syntactic-structure","display_name":"Syntactic structure","score":0.3499000072479248},{"id":"https://openalex.org/keywords/automaton","display_name":"Automaton","score":0.33959999680519104}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8669999837875366},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7598999738693237},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.6777999997138977},{"id":"https://openalex.org/C192028432","wikidata":"https://www.wikidata.org/wiki/Q845739","display_name":"Query language","level":2,"score":0.5719000101089478},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.567300021648407},{"id":"https://openalex.org/C170130773","wikidata":"https://www.wikidata.org/wiki/Q216378","display_name":"Usability","level":2,"score":0.4163999855518341},{"id":"https://openalex.org/C179518139","wikidata":"https://www.wikidata.org/wiki/Q5140297","display_name":"Coding (social sciences)","level":2,"score":0.4059000015258789},{"id":"https://openalex.org/C60048249","wikidata":"https://www.wikidata.org/wiki/Q37437","display_name":"Syntax","level":2,"score":0.3833000063896179},{"id":"https://openalex.org/C2986991398","wikidata":"https://www.wikidata.org/wiki/Q37437","display_name":"Syntactic structure","level":3,"score":0.3499000072479248},{"id":"https://openalex.org/C112505250","wikidata":"https://www.wikidata.org/wiki/Q787116","display_name":"Automaton","level":2,"score":0.33959999680519104},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.336899995803833},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.335999995470047},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.32739999890327454},{"id":"https://openalex.org/C96956885","wikidata":"https://www.wikidata.org/wiki/Q6138701","display_name":"RDF query language","level":5,"score":0.32260000705718994},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.3127000033855438},{"id":"https://openalex.org/C48859967","wikidata":"https://www.wikidata.org/wiki/Q6486712","display_name":"Language construct","level":2,"score":0.30959999561309814},{"id":"https://openalex.org/C204321447","wikidata":"https://www.wikidata.org/wiki/Q30642","display_name":"Natural language processing","level":1,"score":0.3010999858379364},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.27459999918937683},{"id":"https://openalex.org/C544833334","wikidata":"https://www.wikidata.org/wiki/Q2005","display_name":"JavaScript","level":2,"score":0.26840001344680786},{"id":"https://openalex.org/C11742125","wikidata":"https://www.wikidata.org/wiki/Q1195374","display_name":"Syntax error","level":4,"score":0.26010000705718994},{"id":"https://openalex.org/C77944639","wikidata":"https://www.wikidata.org/wiki/Q751443","display_name":"Pushdown automaton","level":3,"score":0.25850000977516174},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.25200000405311584},{"id":"https://openalex.org/C23123220","wikidata":"https://www.wikidata.org/wiki/Q816826","display_name":"Information retrieval","level":1,"score":0.250900000333786},{"id":"https://openalex.org/C117667704","wikidata":"https://www.wikidata.org/wiki/Q2011708","display_name":"Object Query Language","level":5,"score":0.2508000135421753}],"mesh":[],"locations_count":4,"locations":[{"id":"pmh:oai:lirias2repo.kuleuven.be:20.500.12942/779981","is_oa":true,"landing_page_url":"https://lirias.kuleuven.be/handle/20.500.12942/779981","pdf_url":null,"source":{"id":"https://openalex.org/S7407055369","display_name":"Lirias","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":"9th Symposium on Computer Languages, Implementations and Tools, Prague, Czechia, 2-6 June 2025","raw_type":"info:eu-repo/semantics/conferenceObject"},{"id":"pmh:oai:drops-oai.dagstuhl.de:24307","is_oa":true,"landing_page_url":"https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.Programming.2025.23","pdf_url":"https://drops.dagstuhl.de/storage/01oasics/oasics-vol134-programming2025/OASIcs.Programming.2025.23/OASIcs.Programming.2025.23.pdf","source":{"id":"https://openalex.org/S4377196569","display_name":"DROPS (Schloss Dagstuhl \u2013 Leibniz Center for Informatics)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I2799853480","host_organization_name":"Schloss Dagstuhl \u2013 Leibniz Center for Informatics","host_organization_lineage":["https://openalex.org/I2799853480"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"InProceedings"},{"id":"pmh:oai:dial.uclouvain.be:boreal:300562","is_oa":true,"landing_page_url":"http://hdl.handle.net/2078.1/300562","pdf_url":null,"source":{"id":"https://openalex.org/S4306400166","display_name":"Digital Access to Libraries","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I2800384882","host_organization_name":"Harris County Public Library","host_organization_lineage":["https://openalex.org/I2800384882"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Companion Proceedings of the 9th International Conference on the Art, Science, and Engineering of Programming (Programming 2025), Vol. 134, no. 23, p. 1-23:15","raw_type":"info:eu-repo/semantics/conferenceObject"},{"id":"doi:10.4230/oasics.programming.2025.23","is_oa":true,"landing_page_url":"https://doi.org/10.4230/oasics.programming.2025.23","pdf_url":null,"source":null,"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"ConferencePaper"}],"best_oa_location":{"id":"pmh:oai:lirias2repo.kuleuven.be:20.500.12942/779981","is_oa":true,"landing_page_url":"https://lirias.kuleuven.be/handle/20.500.12942/779981","pdf_url":null,"source":{"id":"https://openalex.org/S7407055369","display_name":"Lirias","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":"9th Symposium on Computer Languages, Implementations and Tools, Prague, Czechia, 2-6 June 2025","raw_type":"info:eu-repo/semantics/conferenceObject"},"sustainable_development_goals":[{"display_name":"Quality Education","id":"https://metadata.un.org/sdg/4","score":0.757867157459259}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":[],"abstract_inverted_index":{"Despite":[0],"the":[1,24],"availability":[2],"of":[3,75],"numerous":[4],"tools":[5],"and":[6,37,45,108,140],"languages":[7],"for":[8,26,43,100,146],"detecting":[9,46],"structural":[10,48,101],"patterns":[11,50,90,124],"in":[12,51],"programs,":[13],"their":[14],"complexity":[15],"often":[16],"presents":[17],"a":[18,27,61,82,97,111],"steep":[19],"learning":[20],"curve.":[21],"This":[22],"highlights":[23],"need":[25],"program":[28,52,92],"query":[29,62],"language":[30,63],"that":[31,64,133],"is":[32,135],"easier":[33],"to":[34,88,120,125,138,142],"learn,":[35],"use,":[36,143],"read":[38],"while":[39],"remaining":[40],"sufficiently":[41],"expressive":[42],"defining":[44],"relevant":[47],"coding":[49],"code.":[53,77],"To":[54],"address":[55],"this":[56],"challenge,":[57],"we":[58],"present":[59],"Pyttern,":[60],"extends":[65],"Python":[66,76],"syntax":[67],"with":[68],"regular-expression-inspired":[69],"wildcards,":[70],"enabling":[71],"intuitive":[72],"pattern-based":[73],"querying":[74],"Its":[78],"implementation":[79],"relies":[80],"upon":[81],"custom":[83],"pushdown":[84],"automaton":[85],"describing":[86],"how":[87],"match":[89],"over":[91],"parse":[93],"trees,":[94],"thus":[95],"providing":[96],"robust":[98],"foundation":[99],"code":[102],"analysis.":[103],"We":[104],"evaluate":[105],"Pyttern\u2019s":[106],"usability":[107],"effectiveness":[109],"through":[110],"study":[112],"involving":[113],"35":[114],"master\u2019s":[115],"students,":[116],"who":[117],"were":[118],"asked":[119],"write":[121],"seven":[122],"different":[123],"identify":[126],"known":[127],"programming":[128],"misconceptions.":[129],"The":[130],"results":[131],"demonstrate":[132],"Pyttern":[134],"both":[136],"easy":[137],"learn":[139],"practical":[141],"at":[144],"least":[145],"analysing":[147],"small-scale":[148],"programs.":[149]},"counts_by_year":[],"updated_date":"2026-07-28T07:46:37.118299","created_date":"2025-10-10T00:00:00"}
