{"id":17514078,"url":"https://github.com/raydac/java-prolog-parser","last_synced_at":"2025-10-06T12:10:52.753Z","repository":{"id":28646841,"uuid":"32166076","full_name":"raydac/java-prolog-parser","owner":"raydac","description":"Java based Edinburgh Prolog parser ","archived":false,"fork":false,"pushed_at":"2025-06-24T18:14:09.000Z","size":1728,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-24T19:31:09.876Z","etag":null,"topics":["java","parser","prolog-programming-language"],"latest_commit_sha":null,"homepage":"","language":"Prolog","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raydac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-2.0.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,"publiccode":null,"codemeta":null}},"created_at":"2015-03-13T16:10:26.000Z","updated_at":"2025-06-24T18:14:12.000Z","dependencies_parsed_at":"2025-03-05T18:45:22.336Z","dependency_job_id":null,"html_url":"https://github.com/raydac/java-prolog-parser","commit_stats":{"total_commits":278,"total_committers":3,"mean_commits":92.66666666666667,"dds":0.02877697841726623,"last_synced_commit":"a4e3438e933c8e6f8f4de83058ede879d1a97791"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/raydac/java-prolog-parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raydac%2Fjava-prolog-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raydac%2Fjava-prolog-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raydac%2Fjava-prolog-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raydac%2Fjava-prolog-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raydac","download_url":"https://codeload.github.com/raydac/java-prolog-parser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raydac%2Fjava-prolog-parser/sbom","scorecard":{"id":763458,"data":{"date":"2025-08-11","repo":{"name":"github.com/raydac/java-prolog-parser","commit":"0d840d74ff0f5aae5a090da82a426e74f7600783"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.7,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE-2.0.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 2.1.0 not signed: https://api.github.com/repos/raydac/java-prolog-parser/releases/132411749","Warn: release artifact 2.0.1 not signed: https://api.github.com/repos/raydac/java-prolog-parser/releases/18315609","Warn: release artifact 2.1.0 does not have provenance: https://api.github.com/repos/raydac/java-prolog-parser/releases/132411749","Warn: release artifact 2.0.1 does not have provenance: https://api.github.com/repos/raydac/java-prolog-parser/releases/18315609"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-23T00:04:47.281Z","repository_id":28646841,"created_at":"2025-08-23T00:04:47.281Z","updated_at":"2025-08-23T00:04:47.281Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278606841,"owners_count":26014705,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["java","parser","prolog-programming-language"],"created_at":"2024-10-20T07:07:55.887Z","updated_at":"2025-10-06T12:10:52.745Z","avatar_url":"https://github.com/raydac.png","language":"Prolog","readme":"[![License Apache 2.0](https://img.shields.io/badge/license-Apache%20License%202.0-green.svg)](http://www.apache.org/licenses/LICENSE-2.0)\n[![Maven central](https://maven-badges.herokuapp.com/maven-central/com.igormaznitsa/java-prolog-parser/badge.svg)](http://search.maven.org/#artifactdetails|com.igormaznitsa|java-prolog-parser|2.2.0|jar)\n[![Java 11.0+](https://img.shields.io/badge/java-8.0%2b-green.svg)](https://bell-sw.com/pages/downloads/#jdk-21-lts)\n[![PayPal donation](https://img.shields.io/badge/donation-PayPal-cyan.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=AHWJHJFBAWGL2)\n[![YooMoney donation](https://img.shields.io/badge/donation-Yoo.money-blue.svg)](https://yoomoney.ru/to/41001158080699)\n\n\n# Pre-word\n\nDuring [my experiments in Prolog with Java](https://github.com/raydac/jprol), I developed some parser to process Prolog sources written in Edinburgh style. I decided that it is useful stuff, and it would be good to be prepared as separated independent module published in Maven central. In 2018 deep refactoring made the parser better and stronger.\n\n# Features\n\nIt supports\n - prolog operators\n - line and block commentaries\n - underline split numbers\n - curly blocks\n\n# Maven dependency\n\nThe parser is a pure Java library without any 3-th side dependency, it is published im the Maven central and can be injected into project just by adding:\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.igormaznitsa\u003c/groupId\u003e\n  \u003cartifactId\u003ejava-prolog-parser\u003c/artifactId\u003e\n    \u003cversion\u003e2.2.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n# How to build?\n\nJust use maven command `mvn install` to get result JAR. The JAR will be Java 1.8 compatible but it requires Java 11+ for\nbuild for involved maven plugins.\n\n# How to use?\nParser implements stream which sequentially reads prolog terms provided by reader. By default, PrologParser is abstract class but there is pre-defined implementation GenericPrologParser for common cases.\n```java\nReader reader = new StringReader(\"hello(world). some({1,2,3}). power(X,Y,Z) :- Z is X ** Y.\");\nParserContext context = DefaultParserContext.of(ParserContext.FLAG_CURLY_BRACKETS, Op.SWI);\nPrologParser parser = new GenericPrologParser(reader, context);\nparser.forEach(System.out::println);\n```\n\n# Supported Prolog terms\nSupported tokens:\n - atoms (class PrologAtom)\n - numbers (classes PrologInt and PrologFloat), they are based on java big number classes so that their size is limited mainly only by heap\n - lists (class PrologList)\n - structures (class PrologStruct)\n - variables (class PrologVar)\n\nSupported quotations:\n - single quote `'`\n - special flag turns on whitespace support in single quote mode\n - double quote `\"`\n - back tick\n\n__Since 2.2.0 it is possible get line and block comments as atoms marked by special quotations.__\n\nBracketed empty-functor structures represented by structure with functor either `{}` or `()` (depends on bracket type).\n","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=AHWJHJFBAWGL2"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraydac%2Fjava-prolog-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraydac%2Fjava-prolog-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraydac%2Fjava-prolog-parser/lists"}