{"id":24884491,"url":"https://github.com/learnlib/ralib","last_synced_at":"2025-10-16T03:30:43.893Z","repository":{"id":180919443,"uuid":"498634420","full_name":"LearnLib/ralib","owner":"LearnLib","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-15T21:54:22.000Z","size":43405,"stargazers_count":4,"open_issues_count":8,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-04-16T18:20:38.586Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LearnLib.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-06-01T07:28:44.000Z","updated_at":"2024-04-19T11:24:14.134Z","dependencies_parsed_at":"2023-10-16T23:37:13.581Z","dependency_job_id":"f01100b9-9768-4e54-a58e-a53cc75809a5","html_url":"https://github.com/LearnLib/ralib","commit_stats":null,"previous_names":["learnlib/ralib"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnLib%2Fralib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnLib%2Fralib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnLib%2Fralib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnLib%2Fralib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LearnLib","download_url":"https://codeload.github.com/LearnLib/ralib/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236673386,"owners_count":19186868,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-01T14:28:07.910Z","updated_at":"2025-10-16T03:30:43.875Z","avatar_url":"https://github.com/LearnLib.png","language":"Java","readme":"RALib\n=========================\n\nRALib is a library for active learning algorithms for register automata\n(a form of extended finite state machines). RALib is licensed under\nthe [*Apache License, Version 2.0*][2].\n\nRALib is developed as an extension to [*LearnLib*][1].\nIt currently implements the following algorithms for learning register automata:\n\n1. The _SLλ algorithm_\n   by Simon Dierl, Paul Fiterau-Brostean, Falk Howar, Bengt Jonsson,\n   Konstantinos Sagonas, and Fredrik Tåquist,\n   presented in the paper [Scalable Tree-based Register Automata Learning][4],\n   Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2024),\n    pp 87-108.\n\n2. The _SL* algorithm_\n   by Sofia Cassel, Falk Howar, Bengt Jonsson, and Bernhard Steffen,\n   presented in the paper [Learning Extended Finite State Machines][3],\n   Software Engineering and Formal Methods (SEFM 2014), pp 250-264.\n\n\nInstallation\n-------------------------\n\nRaLib uses maven as a build system. You can simply run\n\n```sh\nmvn package assembly:single\n```\n\nto build RaLib.\n\n\nUsing RALib\n-------------------------\n\nRALib can be used as a library from Java. The test cases that come with RALib\ndemonstrate how this can be done. RALib currently also provides two tools\nthat can be run from the shell. A 'simulator' for inferring RA models from\nsimulated systems (automata) and a 'class analyzer' for inferring RA models\nof Java classes. Running\n```sh\njava -ea -jar target/ralib-0.1-SNAPSHOT-jar-with-dependencies.jar\n```\nwill show some help and available options to the tools.\n\nBelow we provide two example configurations.\n\n1. For learning a model of `java.util.LinkedList` with the `class-analyzer` call:\n\n   ```sh\n   java -ea -jar target/ralib-0.1-SNAPSHOT-jar-with-dependencies.jar  class-analyzer -f config\n   ```\n   with the following `config` file:\n   ```\n   target=java.util.LinkedList\n   methods=push(java.lang.Object:int)boolean:boolean+\\\n   pop()java.lang.Object:int\n\n   logging.level=WARNING\n   max.time.millis=600000\n   use.ceopt=true\n   use.suffixopt=true\n   use.fresh=false\n   use.rwalk=true\n   export.model=true\n   rwalk.prob.fresh=0.8\n   rwalk.prob.reset=0.1\n   rwalk.max.depth=6\n   rwalk.max.runs=10000\n   rwalk.reset.count=false\n   rwalk.draw.uniform=false\n   teachers=int:de.learnlib.ralib.tools.theories.IntegerEqualityTheory\n   ```\n\n2. For learning a model of the SIP protocol with the `iosimulator` call:\n   ```sh\n   java -ea -jar target ralib-0.1-SNAPSHOT-jar-with-dependencies.jar iosimulator -f config\n   ```\n   with the following `config` file\n   ```\n   target=src/test/resources/de/learnlib/ralib/automata/xml/sip.xml\n\n   logging.level=WARNING\n   max.time.millis=600000\n   use.eqtest=true\n   use.ceopt=true\n   use.suffixopt=true\n   use.fresh=false\n   use.rwalk=true\n   export.model=true\n   rwalk.prob.fresh=0.8\n   rwalk.prob.reset=0.1\n   rwalk.max.depth=100\n   rwalk.max.runs=10000\n   rwalk.reset.count=false\n   rwalk.draw.uniform=false\n   teachers=int:de.learnlib.ralib.tools.theories.IntegerEqualityTheory\n   ```\n\n\n[1]: http://www.learnlib.de\n[2]: http://www.apache.org/licenses/LICENSE-2.0\n[3]: https://link.springer.com/chapter/10.1007/978-3-319-10431-7_18\n[4]: https://doi.org/10.1007/978-3-031-57249-4_5\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flearnlib%2Fralib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flearnlib%2Fralib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flearnlib%2Fralib/lists"}