{"id":18862126,"url":"https://github.com/yohasebe/rubyfca","last_synced_at":"2025-04-14T13:03:55.710Z","repository":{"id":654599,"uuid":"297231","full_name":"yohasebe/rubyfca","owner":"yohasebe","description":"Command line tool for Formal Concept Analysis written in Ruby","archived":false,"fork":false,"pushed_at":"2023-06-19T08:38:14.000Z","size":1534,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-12T06:16:44.614Z","etag":null,"topics":["fca","formal-concept-analysis","ruby","visualization"],"latest_commit_sha":null,"homepage":"http://github.com/yohasebe/rubyfca","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yohasebe.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,"governance":null}},"created_at":"2009-09-04T07:09:22.000Z","updated_at":"2024-01-16T15:49:06.000Z","dependencies_parsed_at":"2023-07-05T15:03:32.746Z","dependency_job_id":null,"html_url":"https://github.com/yohasebe/rubyfca","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yohasebe%2Frubyfca","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yohasebe%2Frubyfca/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yohasebe%2Frubyfca/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yohasebe%2Frubyfca/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yohasebe","download_url":"https://codeload.github.com/yohasebe/rubyfca/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248886304,"owners_count":21177643,"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":["fca","formal-concept-analysis","ruby","visualization"],"created_at":"2024-11-08T04:33:22.076Z","updated_at":"2025-04-14T13:03:55.680Z","avatar_url":"https://github.com/yohasebe.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💭 RubyFCA\n\nCommand line tool for Formal Concept Analysis (FCA) written in Ruby.\n\n\u003cimg src=\"./images/fca-source-result.png\" width=\"800px\"/\u003e\n\n## Change Log\n\n- More test cases added [June 19, 2023]\n- Microsoft Excel `.xlsx` files supported [June 18, 2023]\n\n## Features\n\n* Converts data in XLSX (Microsoft Excel), CSV (comma-separated values), or CXT ([Conexp](https://github.com/fcatools)) and generate a Graphviz DOT file, a SVG/EPS vector image file, or /a PNG/JPG bitmap file.\n* Adopts the Ganter algorithm (with reference to its Perl implementation of [Fcastone](https://upriss.github.io/fcastone) by Uta Priss).\n\n## Dependencies\n\n- [Graphviz](https://graphviz.org/)\n\nTo install Graphviz using Homebrew on MacOS, for example, execute the following command:\n\n    brew install graphviz\n\nFor installation instructions for other platforms, see the [Graphviz download page](https://graphviz.org/download/).\n\n## Installation\n\nInstall the gem:\n\n    gem install rubyfca\n\n## How to Use\n\n    RubuFCA converts Conexp CXT data to Graphviz dot format.\n    \n    Usage:\n           rubyfca [options] \u003csource file\u003e \u003coutput file\u003e\n    \n    where:\n    \u003csource file\u003e\n           \".xlsx\", \".csv\" ,\".cxt\"\n    \u003coutput file\u003e\n           \".svg\", \".png\", \".jpg\", \".eps\", or \".dot\"\n    [options]:\n              --full, -f:   Do not contract concept labels\n      --coloring, -c \u003ci\u003e:   Color concept nodes [0 = none (default), 1 =\n                            lightblue/pink, 2 = monochrome] (default: 0)\n          --straight, -s:   Straighten edges (available when output format is\n                            either png, jpg, svg, pdf, or eps)\n       --nodesep, -n \u003cf\u003e:   Size of separation between sister nodes (from 0.1 to\n                            5.0) (default: 0.4)\n       --ranksep, -r \u003cf\u003e:   Size of separation between ranks (from 0.1 to 5.0)\n                            (default: 0.2)\n            --legend, -l:   Print the legend of concept nodes (available only when\n                            using circle node shape)\n            --circle, -i:   Use circle shaped concept nodes\n           --version, -v:   Print version and exit\n              --help, -h:   Show this message\n\n## Examples\n\n### Input Data\n\n#### XLSX (Excel)\n\n\u003ckbd\u003e\n    \u003cimg src=\"./images/xlsx-sample.png\" width=\"800px\"/\u003e\n\u003c/kbd\u003e\n\n#### CSV\n\n```\n        , Ostrich , Sparrow , Eagle , Lion , Bonobo , Human being\nbird    , X       , X       , X     ,      ,        ,  \nmammal  ,         ,         ,       , X    , X      , X\nape     ,         ,         ,       ,      , X      , X\nflying  ,         , X       , X     ,      ,        ,  \npreying ,         ,         , X     , X    ,        ,  \ntalking ,         ,         ,       ,      ,        , X\n```\n\n#### CXT\n\n```\nB\n\n6\n6\n\nOstrich\nSparrow\nEagle\nLion\nBonobo\nHuman being\nbird\nmammal\nape\nflying\npreying\ntalking\nXXX...\n...XXX\n....XX\n.XX...\n..XX..\n.....X\n```\n\n### Output\n\n`rubyfca input_file output_file --coloring 1 --full --nodesep 0.8 --ranksep 0.3 --straight`\n\n\u003cimg src=\"./images/sample_01.svg\" width=\"500px\"/\u003e\n\n`rubyfca input_file output_file --coloring 2 --nodesep 0.5 --ranksep 0.3`\n\n\u003cimg src=\"./images/sample_02.svg\" width=\"400px\"/\u003e\n\n`rubyfca input_file output_file --circle --legend --coloring 1 --full --nodesep 0.8 --ranksep 0.3 --straight`\n\n\u003cimg src=\"./images/sample_03.svg\" width=\"800px\"/\u003e\n\n**N.B.** The arrangement of elements in the right-hand side of the image above has been a little modified for  better visibility.\n\n### Miscellaneous\n\n#### RGB Color Model\n\n\u003cimg src=\"./images/color-source-result.png\" width=\"600px\"/\u003e\n\n#### Natural numbers \n\n\u003cimg src=\"./images/fca-source-result.png\" width=\"800px\"/\u003e\n\n## References\n\nYoichiro Hasebe and Kow Kuroda. 2009. [Extraction of English Ditransitive Constructions Using Formal Concept Analysis](https://aclanthology.org/Y09-2028/). In *Proceedings of the 23rd Pacific Asia Conference on Language, Information and Computation*, Volume 2, pages 678–685, Hong Kong. City University of Hong Kong.\n\n## Authors\n\n- [Yoichiro Hasebe](https://github.com/yohasebe) \n- [Kow Kuroda](https://github.com/kow-k)\n\n## License\n\nSee LICENSE for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyohasebe%2Frubyfca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyohasebe%2Frubyfca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyohasebe%2Frubyfca/lists"}