{"action":"created","issue":{"url":"https://api.github.com/repos/Axelrod-Python/Axelrod/issues/225","labels_url":"https://api.github.com/repos/Axelrod-Python/Axelrod/issues/225/labels{/name}","comments_url":"https://api.github.com/repos/Axelrod-Python/Axelrod/issues/225/comments","events_url":"https://api.github.com/repos/Axelrod-Python/Axelrod/issues/225/events","html_url":"https://github.com/Axelrod-Python/Axelrod/issues/225","id":96118555,"number":225,"title":"Add sources for the definitions of strategies","user":{"login":"marcharper","id":203345,"avatar_url":"https://avatars.githubusercontent.com/u/203345?v=3","gravatar_id":"","url":"https://api.github.com/users/marcharper","html_url":"https://github.com/marcharper","followers_url":"https://api.github.com/users/marcharper/followers","following_url":"https://api.github.com/users/marcharper/following{/other_user}","gists_url":"https://api.github.com/users/marcharper/gists{/gist_id}","starred_url":"https://api.github.com/users/marcharper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcharper/subscriptions","organizations_url":"https://api.github.com/users/marcharper/orgs","repos_url":"https://api.github.com/users/marcharper/repos","events_url":"https://api.github.com/users/marcharper/events{/privacy}","received_events_url":"https://api.github.com/users/marcharper/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Axelrod-Python/Axelrod/labels/documentation","name":"documentation","color":"fbca04"},{"url":"https://api.github.com/repos/Axelrod-Python/Axelrod/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":13,"created_at":"2015-07-20T17:43:04Z","updated_at":"2015-07-21T15:37:22Z","closed_at":null,"body":"Right now we have a lot of strategies (expecting more, I presume), and there are a few issues that make sense to stay on top of: (1) identifying the original source of a strategy, and (2) tracking multiple names for a given strategy.\r\n\r\nIdeally we would have a list of sources that we can cite in various places -- the strategy overview docs as well as the doc strings for the various strategies. I would also help to have an index of strategies of sources indicating what has been implemented, including strategies that have multiple names. That way if someone is either looking for an existing strategy (and doesn't know that WSLS and Pavlov are the same thing) or wants to add a strategy, they can tell if it's already present without digging through all the code (as it's not necessarily obvious which file a strategy would even be in).\r\n\r\nI'm imaging an documentation *.rst file that has an alphabetical list of strategy names and alternates along with the library name and citations to the original source of the strategy. Of course I'm open to other suggestions.\r\n\r\nRight now the overview of strategy doc is fine but it is organized around existing tournaments, and there are many strategies in the library already that are not in one of these tournaments (and many still from the tournaments that need to implemented). "},"comment":{"url":"https://api.github.com/repos/Axelrod-Python/Axelrod/issues/comments/123375273","html_url":"https://github.com/Axelrod-Python/Axelrod/issues/225#issuecomment-123375273","issue_url":"https://api.github.com/repos/Axelrod-Python/Axelrod/issues/225","id":123375273,"user":{"login":"marcharper","id":203345,"avatar_url":"https://avatars.githubusercontent.com/u/203345?v=3","gravatar_id":"","url":"https://api.github.com/users/marcharper","html_url":"https://github.com/marcharper","followers_url":"https://api.github.com/users/marcharper/followers","following_url":"https://api.github.com/users/marcharper/following{/other_user}","gists_url":"https://api.github.com/users/marcharper/gists{/gist_id}","starred_url":"https://api.github.com/users/marcharper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcharper/subscriptions","organizations_url":"https://api.github.com/users/marcharper/orgs","repos_url":"https://api.github.com/users/marcharper/repos","events_url":"https://api.github.com/users/marcharper/events{/privacy}","received_events_url":"https://api.github.com/users/marcharper/received_events","type":"User","site_admin":false},"created_at":"2015-07-21T15:37:22Z","updated_at":"2015-07-21T15:37:22Z","body":"So maybe this will help -- when someone comes upon the project, where are they likely to go first to see if a particular strategy is already in the library? Not to the code probably, rather to one of the documentation pages. Ideally there is a page that's easy to navigate to that you can CTRL-F a strategy name and find out if it's in the library. So whatever ultimately achieves that goal would be a \"good enough\" solution IMO.\r\n\r\nUnfortunately the sourcing issue isn't totally independent of the naming issue -- with the name you'd often like to know the source.\r\n\r\nIn the documentation we could have, for each strategy, something like:\r\n\r\nNames and sources\r\n------------------------\r\n* Name_1, Title of source, <URL of source> or other identifier\r\n* Name_2, Title of source, <URL of source>\r\n\r\nAlternatively, if we want this information to be programmatically accessible, I like the suggestion of something like:\r\n\r\nnames_and_sources = [(\"Name_1\", source_index_1), (\"Name_2\", source_index_2)]\r\n\r\nas a class variable (with the sources defined elsewhere in a bibtex-like manner as @drvinceknight suggests with Sphinx). Then I presume we could generate a master index from the code.\r\n\r\nA tangential benefit of doing this well is that the documentation becomes an aggregator of strategies and names for the prisoner's dilemma, ultimately leading more people to discover the project. For example, if you search ZDGTFT2, the Axelrod source file for memory one strategies is on the first page of Google results (as well as one of the earlier issues)."}}