{"id":21879340,"url":"https://github.com/animator/orange3-scoring","last_synced_at":"2025-09-14T23:17:24.523Z","repository":{"id":62577799,"uuid":"223011486","full_name":"animator/orange3-scoring","owner":"animator","description":":tangerine: :dart: Score PMML and PFA models in Orange3","archived":false,"fork":false,"pushed_at":"2019-12-17T07:31:06.000Z","size":667,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-16T11:59:04.782Z","etag":null,"topics":["inference","inference-engine","orange","orange3","pfa","pfa-standard","pmml","scoring","scoring-engine"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/orange3-scoring/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/animator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-20T19:28:19.000Z","updated_at":"2024-12-05T05:05:05.000Z","dependencies_parsed_at":"2022-11-03T19:25:32.919Z","dependency_job_id":null,"html_url":"https://github.com/animator/orange3-scoring","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/animator/orange3-scoring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/animator%2Forange3-scoring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/animator%2Forange3-scoring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/animator%2Forange3-scoring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/animator%2Forange3-scoring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/animator","download_url":"https://codeload.github.com/animator/orange3-scoring/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/animator%2Forange3-scoring/sbom","scorecard":{"id":196887,"data":{"date":"2025-08-11","repo":{"name":"github.com/animator/orange3-scoring","commit":"f9e4b01550f2afe13e1aa6644eefe17b61c01695"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.5,"checks":[{"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":"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":"Code-Review","score":0,"reason":"Found 0/12 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":"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":"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":"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":"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":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: pipCommand not pinned by hash: .travis/install_orange.sh:8","Warn: pipCommand not pinned by hash: .travis/install_orange.sh:14","Info:   0 out of   2 pipCommand dependencies pinned"],"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":"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":"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":"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"}},{"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":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.0.1 not signed: https://api.github.com/repos/animator/orange3-scoring/releases/22276036","Warn: release artifact v0.0.1 does not have provenance: https://api.github.com/repos/animator/orange3-scoring/releases/22276036"],"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"}}]},"last_synced_at":"2025-08-16T21:58:28.320Z","repository_id":62577799,"created_at":"2025-08-16T21:58:28.321Z","updated_at":"2025-08-16T21:58:28.321Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275180243,"owners_count":25419075,"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-09-14T02:00:10.474Z","response_time":75,"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":["inference","inference-engine","orange","orange3","pfa","pfa-standard","pmml","scoring","scoring-engine"],"created_at":"2024-11-28T08:16:02.423Z","updated_at":"2025-09-14T23:17:24.489Z","avatar_url":"https://github.com/animator.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Orange3 Scoring\n======================\n\nThis is an scoring/inference add-on for [Orange3](http://orange.biolab.si). This add-on adds widgets to\nload [PMML](http://dmg.org/pmml/v4-4/GeneralStructure.html) and [PFA](http://dmg.org/pfa/index.html) models \nand score data.\n\nDependencies\n------------\n\nTo use PMML models make sure you have Java installed:\n - Java \u003e= 1.8\n - pypmml (downloaded during installation)\n\nTo use PFA models:\n - titus2 (downloaded during installation)\n\nInstallation\n------------\n\nTo install the add-on using pip, run\n```\npip install orange3-scoring\n```\nTo register this add-on with Orange, but keep the code in the development directory (do not copy it to \nPython's site-packages directory), run\n```\npip install -e .\n```\n\nIssues, Questions and Feature Requests\n--------------------------------------\n\nPlease raise an issue/question/request [here](https://github.com/animator/orange3-scoring/issues).\n\nDevelopment\n-----------\n\nWant to contribute? Great!\n\nPlease raise an [issue](https://github.com/animator/orange3-scoring/issues) to discuss your ideas and send a [pull request](https://github.com/animator/orange3-scoring/pulls).\n\nUsage\n-----\n\nAfter the installation, the widget from this add-on is registered with Orange. To run Orange from the terminal,\nuse\n```\npython -m Orange.canvas\n```\n\n**Step 1**\n\nThe new set of widgets appear in the toolbox bar under the section `Scoring`.\n\n![01_intro](https://raw.githubusercontent.com/animator/orange3-scoring/master/screens/01_intro.PNG)\n\n\n**Step 2**\n\nDrag and drop the `Load PMML/PFA Model` widget.\n\n![02_loadmodel](https://raw.githubusercontent.com/animator/orange3-scoring/master/screens/02_loadmodel.PNG)\n\n\n**Step 3**\n\nLoad your PMML model and inspect Input and Output field(s). Sample PMML File [here](https://github.com/animator/orange3-scoring/blob/master/orangecontrib/scoring/tests/sample_pmml.xml).\n\n![03_loadmodel_pmml](https://raw.githubusercontent.com/animator/orange3-scoring/master/screens/03_loadmodel_pmml.PNG)\n\n\n**Step 4**\n\nAdd input dataset using `File` widget (iris) and connect the two widgets to `Evaluate PMML/PFA Model` widget. You can inspect the fields in data and the model and view Processing INFO or Errors.\n\n![04_evaluate_load](https://raw.githubusercontent.com/animator/orange3-scoring/master/screens/04_evaluate_load.PNG)\n\n\n**Step 5**\n\nNow hit `Score` button to score.\n\n![05_evaluate_score](https://raw.githubusercontent.com/animator/orange3-scoring/master/screens/05_evaluate_score.PNG)\n\n\n**Step 6**\n\nConnect the output to `Data Table` widget to view the results. 3 new columns (cluster, cluster_name \u0026 distance) are added after scoring the data obtained for each input record. The actual class value (Y), if present in the data, is also converted to metadata of the result table.\n\n![06_view_result](https://raw.githubusercontent.com/animator/orange3-scoring/master/screens/06_view_result.PNG)\n\n\n**Step 7**\n\nNow lets load a PFA Model. Sample PFA File [here](https://github.com/animator/orange3-scoring/blob/master/orangecontrib/scoring/tests/sample_iris.json).\n\n![07_loadmodel_pfa](https://raw.githubusercontent.com/animator/orange3-scoring/master/screens/07_loadmodel_pfa.PNG)\n\n\n**Step 8**\n\nScore the data using new PFA Model.\n\n![08_evaluate_load](https://raw.githubusercontent.com/animator/orange3-scoring/master/screens/08_evaluate_load.PNG)\n\n\n**Step 9**\n\nNow hit `Score` button to score.\n\n![09_evaluate_score](https://raw.githubusercontent.com/animator/orange3-scoring/master/screens/09_evaluate_score.PNG)\n\n\n**Step 10**\n\nView the results. You can see the predicted class for iris as provided by the PFA Model.\n\n![10_view_result](https://raw.githubusercontent.com/animator/orange3-scoring/master/screens/10_view_result.PNG)\n\n\n**Step 11**\n\nAnother output signal is produced which contains the `Evaluation Results` which can be connected to `Confusion Matrix`, `ROC Analysis` and `Lift Curve` widgets. We can connect it to the `Confusion Matrix` widget to view the difference in predicted and actual results.\n\n![11_view_confusion](https://raw.githubusercontent.com/animator/orange3-scoring/master/screens/11_view_confusion.PNG)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanimator%2Forange3-scoring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanimator%2Forange3-scoring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanimator%2Forange3-scoring/lists"}