Added a few comments to corpus_tools (mtgjson processing) predicates.
authorYeGoblynQueenne@splinter <ep50@uni.brighton.ac.uk>
Tue, 30 Aug 2016 07:51:53 +0000 (10:51 +0300)
committerYeGoblynQueenne@splinter <ep50@uni.brighton.ac.uk>
Tue, 30 Aug 2016 07:51:53 +0000 (10:51 +0300)
corpus_tools/at_tokenizer.pl
corpus_tools/mtgjson_data.pl
corpus_tools/myreadln.pl

index ca5e60d..4ff9df7 100644 (file)
@@ -4,6 +4,10 @@
 
 :-use_module(myreadln).
 
+/** <module> Predicates to tokenise mtgjson.com data in a Prolog-friendly manner.
+
+*/
+
 /*
 Hint: to keep some tokens from being written out, add a list here (like
 readln_stop_chars//), check it and skip its contents, eg in
@@ -15,8 +19,6 @@ Add a clause:
 
 (member(Token_list,
 Token_lists),member(Token,Token_list),\+memberchk(Token, SkipList)
-
-
 */
 
 readln_stop_chars --> [_].  % Leave as default.
index 11b1a9e..0c46067 100644 (file)
@@ -8,6 +8,10 @@
 :-use_module(library(http/json)).
 :-use_module(library(error)).
 
+/** <module> Predicates to read and write card data from json files obtained from mtgson.com (i.e. other json formats will not be recognised).
+
+*/
+
 %!     mtgjson_stream_alias// is det.
 %
 %      Alias for the stream from which mtgjson is read. Normallly this
@@ -64,34 +68,41 @@ Examples:
 mtgjson_card_dicts('LEA.json', Cards, minimum), member(C,Cards), C.name = "Lightning Bolt", !, Cost=C.manaCost.
 */
 /*
-Plan:
-1. First, make these horrid loops build up a dict rather than a list, so
-I can refer to its elements by name etc. - DONE
-2. Make a predicate to get one card by name, then exploit it to get all
+TODO:
+Make a predicate to get one card by name, then exploit it to get all
 the minimum and extras information. - TODO
 */
 
-% TODO: Update the comments according to the latest changes.
-
-%!     write_ability_text_examples(+Stream_in, +Stream_out) is det.
+%!     write_ability_text_examples(+Stream_in, +Stream_out, +Options) is det.
 %
 %      Read ability text from the cards in Stream_in and write them to
 %      Stream_out, each on a separate line.
+%
 %      Stream_in should be a json file with card information (but not
-%      set information).
+%      set information). Note: ability_text_examples/3 will raise error
+%      if Stream_in is anything besides the atom 'AllSets.json'; this
+%      might need some fixing).
+%
+%      Options needs documenting but should include at least the option
+%      unsets/1, passed to ability_text_examples/3 (to determine
+%      whether to include un-set data or not).
+%
 %      Each ability is written in a separate line, as they are found on
 %      the printed cards (or in any case, Oracle text). No other
 %      information is included- no card name, mana cost etc, so this is
 %      only useful to get some statistics on the corpus.
+%
 %      On the other hand, Oracle text makes no distinction between
 %      ability text proper and reminder text (which is presumably in
 %      plain natural language) so this is included in the examples,
 %      although it can be identified because it's always in
 %      parentheses.
+%
 %      On the other tentacle, basic lands actually have their ability
 %      (to add mana to your pool) as reminder text, ie in parentheses.
-%      So might need to refine this a bit further.
-%      Oof. See notes about this: [reminder_text]
+%      So might need to refine this a bit further. See notes about this
+%      in project notes file; search tag: [reminder_text]
+%
 write_ability_text_examples(Stream_in, Stream_out, Options):-
        ability_text_examples(Stream_in, Examples, Options)
        ,open(Stream_out,write,Alias,[alias(mtgjson_in),encoding(utf8)])
@@ -203,7 +214,7 @@ Remember that scope AllSets.json needs Set:Card Id
 %      AllSets.json: all sets data
 %      <SetCode>.json, where SetCode is an mtg set code: [A-Z]\{3,3}
 %
-%      TODO: no extra information, currently- add that.
+%      TODO: no extra information, currently- add some.
 %
 %      Card_id is an identifier for the card. It can be one of two
 %      things:
index e77cfdc..dc89cc8 100644 (file)
@@ -97,6 +97,11 @@ Examples:
 :- use_module(library(lists)).
 :- license(swipl).
 
+/** <module> Read in a stream line-by-line.
+ * Copied from old Swi library readline (now probably deprecated), and
+ * adjusted slightly for use with mtgjson.com data.
+ */
+
 readln(Stream, Read) :-                        % the default is read up to EOL
        string_codes("_0123456789", Arg2),
        rl_readln(Stream, Line, LastCh, [10], Arg2, uppercase),