{"id":"https://openalex.org/W2399860790","doi":"https://doi.org/10.14279/tuj.eceasst.68.952","title":"A Modular and Statically Typed Effectful Stack for Custom Graph Traversals","display_name":"A Modular and Statically Typed Effectful Stack for Custom Graph Traversals","publication_year":2024,"publication_date":"2024-03-25","ids":{"openalex":"https://openalex.org/W2399860790","doi":"https://doi.org/10.14279/tuj.eceasst.68.952","mag":"2399860790"},"language":"en","primary_location":{"id":"doi:10.14279/tuj.eceasst.68.952","is_oa":true,"landing_page_url":"https://doi.org/10.14279/tuj.eceasst.68.952","pdf_url":null,"source":{"id":"https://openalex.org/S7407052985","display_name":"Technische Universit\u00e4t Berlin \u2013 Universit\u00e4tsbibliothek","issn_l":null,"issn":[],"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":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"article-journal"},"type":"article","indexed_in":["datacite"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://doi.org/10.14279/tuj.eceasst.68.952","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5038624734","display_name":"Norbert Tausch","orcid":null},"institutions":[{"id":"https://openalex.org/I181369854","display_name":"Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg","ror":"https://ror.org/00f7hpc57","country_code":"DE","type":"education","lineage":["https://openalex.org/I181369854"]}],"countries":["DE"],"is_corresponding":true,"raw_author_name":"Tausch, Norbert","raw_affiliation_strings":["University Erlangen-Nuremberg Programming Systems Group","University Erlangen-Nuremberg#R##N#Programming Systems Group"],"affiliations":[{"raw_affiliation_string":"University Erlangen-Nuremberg Programming Systems Group","institution_ids":["https://openalex.org/I181369854"]},{"raw_affiliation_string":"University Erlangen-Nuremberg#R##N#Programming Systems Group","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5006774910","display_name":"Mich\u00e6l Philippsen","orcid":"https://orcid.org/0000-0002-3202-2904"},"institutions":[{"id":"https://openalex.org/I181369854","display_name":"Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg","ror":"https://ror.org/00f7hpc57","country_code":"DE","type":"education","lineage":["https://openalex.org/I181369854"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Philippsen, Michael","raw_affiliation_strings":["University Erlangen-Nuremberg Programming Systems Group","University Erlangen-Nuremberg#R##N#Programming Systems Group"],"affiliations":[{"raw_affiliation_string":"University Erlangen-Nuremberg Programming Systems Group","institution_ids":["https://openalex.org/I181369854"]},{"raw_affiliation_string":"University Erlangen-Nuremberg#R##N#Programming Systems Group","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5038624734"],"corresponding_institution_ids":["https://openalex.org/I181369854"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.00056446,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"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.9994000196456909,"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.9994000196456909,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9983000159263611,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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/T10260","display_name":"Software Engineering Research","score":0.9976999759674072,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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/computer-science","display_name":"Computer science","score":0.8872413635253906},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.780189037322998},{"id":"https://openalex.org/keywords/graph-traversal","display_name":"Graph traversal","score":0.733404278755188},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.6319299936294556},{"id":"https://openalex.org/keywords/modular-design","display_name":"Modular design","score":0.6275861859321594},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.585351824760437},{"id":"https://openalex.org/keywords/graph","display_name":"Graph","score":0.5540732145309448},{"id":"https://openalex.org/keywords/graph-database","display_name":"Graph database","score":0.5205936431884766},{"id":"https://openalex.org/keywords/call-graph","display_name":"Call graph","score":0.5173137187957764},{"id":"https://openalex.org/keywords/tree-traversal","display_name":"Tree traversal","score":0.5130185484886169},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.5116139054298401},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.447032630443573}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8872413635253906},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.780189037322998},{"id":"https://openalex.org/C96333769","wikidata":"https://www.wikidata.org/wiki/Q907955","display_name":"Graph traversal","level":3,"score":0.733404278755188},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.6319299936294556},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.6275861859321594},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.585351824760437},{"id":"https://openalex.org/C132525143","wikidata":"https://www.wikidata.org/wiki/Q141488","display_name":"Graph","level":2,"score":0.5540732145309448},{"id":"https://openalex.org/C176225458","wikidata":"https://www.wikidata.org/wiki/Q595971","display_name":"Graph database","level":3,"score":0.5205936431884766},{"id":"https://openalex.org/C102379954","wikidata":"https://www.wikidata.org/wiki/Q2589940","display_name":"Call graph","level":2,"score":0.5173137187957764},{"id":"https://openalex.org/C140745168","wikidata":"https://www.wikidata.org/wiki/Q1210082","display_name":"Tree traversal","level":2,"score":0.5130185484886169},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.5116139054298401},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.447032630443573}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.14279/tuj.eceasst.68.952","is_oa":true,"landing_page_url":"https://doi.org/10.14279/tuj.eceasst.68.952","pdf_url":null,"source":{"id":"https://openalex.org/S7407052985","display_name":"Technische Universit\u00e4t Berlin \u2013 Universit\u00e4tsbibliothek","issn_l":null,"issn":[],"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":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"article-journal"}],"best_oa_location":{"id":"doi:10.14279/tuj.eceasst.68.952","is_oa":true,"landing_page_url":"https://doi.org/10.14279/tuj.eceasst.68.952","pdf_url":null,"source":{"id":"https://openalex.org/S7407052985","display_name":"Technische Universit\u00e4t Berlin \u2013 Universit\u00e4tsbibliothek","issn_l":null,"issn":[],"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":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"article-journal"},"sustainable_development_goals":[{"display_name":"Quality Education","score":0.6499999761581421,"id":"https://metadata.un.org/sdg/4"}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":14,"referenced_works":["https://openalex.org/W2264687","https://openalex.org/W1553131155","https://openalex.org/W1588575005","https://openalex.org/W1594279870","https://openalex.org/W1989439909","https://openalex.org/W2012450002","https://openalex.org/W2026323010","https://openalex.org/W2059895047","https://openalex.org/W2083342911","https://openalex.org/W2118791211","https://openalex.org/W2141576692","https://openalex.org/W2148544545","https://openalex.org/W2156876717","https://openalex.org/W2469935013"],"related_works":["https://openalex.org/W2150162206","https://openalex.org/W1961431777","https://openalex.org/W2069663962","https://openalex.org/W2462394761","https://openalex.org/W3100848628","https://openalex.org/W2075090836","https://openalex.org/W1968369498","https://openalex.org/W2158126684","https://openalex.org/W2032988652","https://openalex.org/W2169032781","https://openalex.org/W19213215","https://openalex.org/W2589182629","https://openalex.org/W2200207505","https://openalex.org/W2140052473","https://openalex.org/W2167539735","https://openalex.org/W2912256776","https://openalex.org/W1953786023","https://openalex.org/W2155293695","https://openalex.org/W283810587","https://openalex.org/W2159430067"],"abstract_inverted_index":{"Programmers":[0],"often":[1],"have":[2],"to":[3,122],"implement":[4],"custom":[5],"graph":[6,41,55,59,75,88],"traversals":[7,76],"by":[8,102],"hand":[9],"as":[10],"either":[11],"there":[12],"are":[13,24],"no":[14],"suitable":[15],"text-book":[16],"algorithms":[17],"for":[18,27,93],"their":[19,22],"tasks,":[20],"or":[21,35],"problems":[23],"too":[25],"complex":[26],"a":[28,68,80,109],"pure":[29],"querying":[30],"language":[31,43],"that":[32,48],"lacks":[33],"modularity":[34],"static":[36],"typing.":[37],"Our":[38,114],"new":[39],"Scala-based":[40],"traversal":[42],"uses":[44],"an":[45,106],"effectful":[46],"stack":[47],"adapts":[49],"monads":[50],"and":[51,58,65,70,86,90],"type":[52],"classes.":[53],"Arbitrary":[54],"effect":[56],"computations":[57],"processing":[60],"rules":[61],"can":[62],"be":[63],"defined":[64],"composed":[66],"in":[67,79,108],"modular":[69],"statically":[71],"typed":[72],"way.":[73],"Custom":[74],"become":[77],"expressible":[78],"concise":[81],"notation,":[82],"run":[83],"both":[84],"in-memory":[85],"on":[87],"databases,":[89],"also":[91],"allow":[92],"parallelization.":[94,123],"We":[95],"evaluate":[96],"the":[97,117],"usability":[98],"of":[99,105],"our":[100],"approach":[101,115,120],"detecting":[103],"occurences":[104],"anti-pattern":[107],"Java":[110],"source":[111],"code":[112],"archive.":[113],"outperforms":[116],"well-known":[118],"Gremlin":[119],"due":[121]},"counts_by_year":[],"updated_date":"2025-11-06T06:51:31.235846","created_date":"2025-10-10T00:00:00"}
