{"id":15960988,"url":"https://github.com/cxuesong/graywing-prolog","last_synced_at":"2026-03-19T08:10:56.076Z","repository":{"id":73100866,"uuid":"101665273","full_name":"CXuesong/GrayWing-Prolog","owner":"CXuesong","description":"Queries facts in Prolog.","archived":false,"fork":false,"pushed_at":"2017-08-29T14:02:26.000Z","size":61,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-01T09:07:25.793Z","etag":null,"topics":["cat","relationship","warrior-cats"],"latest_commit_sha":null,"homepage":null,"language":"Prolog","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/CXuesong.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.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":"2017-08-28T16:45:52.000Z","updated_at":"2023-08-21T04:01:08.000Z","dependencies_parsed_at":"2023-03-15T05:00:18.409Z","dependency_job_id":null,"html_url":"https://github.com/CXuesong/GrayWing-Prolog","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"99bfb453e47e9c7ca3e1c3b852edbff98f75d348"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CXuesong/GrayWing-Prolog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CXuesong%2FGrayWing-Prolog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CXuesong%2FGrayWing-Prolog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CXuesong%2FGrayWing-Prolog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CXuesong%2FGrayWing-Prolog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CXuesong","download_url":"https://codeload.github.com/CXuesong/GrayWing-Prolog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CXuesong%2FGrayWing-Prolog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29188226,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T05:07:31.176Z","status":"ssl_error","status_checked_at":"2026-02-07T05:06:15.227Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cat","relationship","warrior-cats"],"created_at":"2024-10-07T15:23:08.051Z","updated_at":"2026-02-07T06:31:53.623Z","avatar_url":"https://github.com/CXuesong.png","language":"Prolog","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gray Wing\n\n\u003e   Queries facts in Prolog.\n\nThis repos contains Prolog scripts to which you can make queries about any cat's relations in _Warriors_ series, along with a .NET Core project that can generate the latest facts in Prolog from [Warriors Wiki](http://warriors.wikia.com/).\n\n## To make queries\n\nFor now, the supported direct relations and deductive relations are limited. For a list of deductive relations available, see  [`/Prolog/rules.pl`](/Prolog/rules.pl)\n\nYou need to setup Prolog execution environment. For example, you may install [SWI-Prolog](http://www.swi-prolog.org/download/stable) for your Windows/Linux/MacOS.\n\nLoad [`/Prolog/main.pl`](/Prolog/main.pl), and make queries\n\n```prolog\n?- male('Firestar').                % Is Firestar male?\ntrue.\n\n?- male('Hollyleaf').               % Is Hollyleaf male?\nfalse.\n\n?- female('Mousefur').\ntrue.\n\n?- father(X, 'Bramblestar').                    % Find Bramblestar's father\nX = 'Tigerstar' .\n\n?- child(X, 'Jake', 'Nutmeg (KP)').             % Find Jake and Nutmeg (KP)'s children\nX = 'Firestar' ;                                % Press semicolon to ask for more results\nX = 'Princess'.\n\n?- findall(X, name(X, \"Robinwing\"), L).         % Find all the cats under the name Robinwing .\nL = ['Robinwing (RC)', 'Robinwing (SC)', 'Robinwing (TC)', 'Robinwing (WC)'].\n\n?- findall(X, child(X, 'Snowbird'), L).         % Find Snowbird's children \nL = ['Beenose', 'Berryheart', 'Bluebellkit', 'Cloverfoot', 'Conekit', 'Frondkit', 'Gullkit', 'Rippletail (SC)', 'Yarrowleaf'].\n\n?- findall(X, grandchild(X, 'Firestar'), L).    % Find Firestar's grand-children\nL = ['Alderheart', 'Dandelionkit', 'Hollyleaf', 'Jayfeather', 'Juniperkit', 'Lionblaze', 'Sparkpelt'].\n\n?- findall(X, grandson(X, 'Firestar'), L).      % Find Firestar's grandsons\nL = ['Alderheart', 'Jayfeather', 'Juniperkit', 'Lionblaze'].\n\n?- findall(X, apprentice(X, 'Firestar'), L).    % Find Firestar's apprentices\nL = ['Brackenfur', 'Bramblestar', 'Cherrytail', 'Cinderpelt', 'Cloudtail'].\n\n?- findall(X, (apprentice(Y, 'Firestar'), apprentice(X, Y)), L); true.  % Find Firestar's apprentices' apprentice (2nd. order apprentices)\nL = ['Hollyleaf', 'Icecloud', 'Sorrelstripe', 'Tawnypelt', 'Tigerheart', 'Whitewing', 'Berrynose', 'Rockshade', 'Leafpool'|...] [write]\nL = ['Hollyleaf', 'Icecloud', 'Sorrelstripe', 'Tawnypelt', 'Tigerheart', 'Whitewing', 'Berrynose', 'Rockshade', 'Leafpool', 'Brightheart', 'Cherryfall', 'Cinderheart', 'Flametail', 'Hollytuft', 'Rainwhisker', 'Toadstep']\n\n?- belongsto('Firestar', X).                    % Find Firestar's current clan\nX = 'StarClan'.\n\n?- belongsto(X, 'The Kin').                     % Find the members of Darktail's Kin\nX = 'Cloverfoot' ;\nX = 'Darktail' ;\nX = 'Grassheart' ;\nX = 'Max (Ro)' ;\nX = 'Needletail' ;\nX = 'Nettle (VS)' ;\nX = 'Pinenose' ;\nX = 'Rain (TAQ)' ;\nX = 'Raven (TAQ)' ;\nX = 'Rippletail (SC)' ;\nX = 'Roach' ;\nX = 'Slatefur' ;\nX = 'Sleekwhisker' ;\nX = 'Sparrowtail' ;\nX = 'Spikefur' ;\nX = 'Thistle (Ro)' ;\nX = 'Yarrowleaf'.\n```\n\n## Some failed attempts\n\n```prolog\n% Attempts to find out all the cats whose parents belong to different Clans.\n% Failed because they might be in StarClan now.\n\n?- child(X, F, M), belongsto(F, FC), belongsto(M, MC), FC \\== MC.\nX = 'Berrynose',\nF = 'Smoky',\nM = 'Daisy',\nFC = 'Loner',\nMC = 'ThunderClan' ;\nX = 'Blossomheart',\nF = 'Sharpclaw (SC)',\nM = 'Cherrytail',\nFC = 'SkyClan',\nMC = 'Loner' ;\nX = 'Bramble',\nF = 'Splinter',\nM = 'Milkweed',\nFC = 'Slash\\'s Group',\nMC = 'ThunderClan' ;\nX = 'Cinderfur',\nF = 'Clawface',\nM = 'Rowanberry',\nFC = 'Place of No Stars',\nMC = 'StarClan' ;\n...\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcxuesong%2Fgraywing-prolog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcxuesong%2Fgraywing-prolog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcxuesong%2Fgraywing-prolog/lists"}