Jump to content

BML - Markup language for Full Disclosure


Recommended Posts

Hi!

 

I recently discovered the Full disclosure system on BBO. I tried using bidedit for a while, but found it pretty slow to work with. I've created a markup language which I call Bridge Bidding Markup Language (BML for short).

 

BML is intended to be easy to write and easy to read. Right now I also have a program written in Python which can convert BML files to BSS (the format used by BBO), and these files can be used while playing online.

 

All features of the Full Disclosure system isn't implemented yet, but the most useful ones (according to me) are. I would be happy if you tried it out and gave me some thoughts. You can download the manual and the converting program from here

 

Just to give you an example, here's what a BML file can look like (including a basic description of a No Trump structure):

 

SAYC
A natural system with 5 card majors and best minor

1C; 3+!c, 11+ hcp
1D; 3+!d, 11+ hcp
1H; 5+!h, 11+ hcp
1S; 5+!s, 11+ hcp
1N; 15-17 bal
2C; ARTIFICIAL. Game-forcing or 22-24 bal
2D; Weak
2H; Weak
2S; Weak
2N; 20-21 bal

1N;
2C ARTIFICIAL. Stayman
  2D ARTIFICIAL. No 4 card major
  2H NON-FORCING. 4+!h
  2S NON-FORCING. 4+!s
2D TRANSFER. 5+!h
  2H NON-FORCING.
  3H NON-FORCING. Super accept
2H TRANSFER. 5+!s
  2S NON-FORCING.
  3S NON-FORCING. Super accept
2S ARTIFICIAL. Minor suit Stayman
2N INVITATIONAL.

 

Edit 2012-07-20:

BML has been updated to version 0.3. Changes include variables and support for BSS suit lengths and outcomes. The manual has also been updated and now has information on bids depending on seat and/or vulnerability.

 

Edit 2013-04-01:

BML has been completly rewritten and can now be found at GitHub.

  • Upvote 1
Link to comment
Share on other sites

One comment (about comments): your manual shows that you can use C++ -style comments (//comment).

Your continuation example uses Perl-style comments (#comment).

 

Are both of them legal? Can I also use C-style block comments or Python docstring-style block comments?

Link to comment
Share on other sites

Ah, I'm sorry. The documentation is wrong (I just kind of wanted to "get it out there" and hopefully recieve some feedback). It uses C-style // comments. At first I used # as comments, but I figured that you may want to use # in your description of bids for some reason (like #5!s or something similar).

 

So currently only // as comments, and no block comments (though I guess they could be implemented).

Link to comment
Share on other sites

I've got this going. Some thoughts

 

A) It's really good, I like it

 

B) Nothing you can do, but the BBO interface for uploading FD cards is 100% made of pure ass.

 

C) Make the headers preceeded by a tag or something - it took me awhile to work out why the 1C bidding description was becoming the system name.

 

D) Number 1 feature request PLEASE OH PLEASE let tabs work for indenting bidding trees!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Or make the converter replace a tab with 8 spaces. I care not.

 

Otherwise it's pretty good, working a system up into it now.

 

 

Edit: Also, can you validate if the output is a legit BSS file? I guess this is partly FD's fault - it never says 'OH NOES your file is buggered right up' it just fails silently. Which is awesome when you're trying to debug stuff. Not.

 

Edit2: Also, what is the 'symbol' for Pass? Passes have meanings in my system, so I need to be able to define a meaning for that bid.

 

Feature Requests:

 

Allow me to define PASS or if you have tell me how

 

Let it read tabs as white space

 

Can it accept and expand the short hand

 

4m

4M

4x

 

to 4C and 4D, 4H/S and 4C/D/H/S respectively?

 

This is partly personal interest. If it can do that, I can paste my system notes directly from excel into the program. However, just the shorthand and pass is a massive leap forward, replacing tabs with whitespace can be done with find/replace.

Link to comment
Share on other sites

I'm glad you're using and liking it!

 

C) One of the purposes of BML was to make the "code" readable and easy to write. That's the reason why there's no tags. But ofcourse it could be implemented.

D) Okay, I'll look into this. Should be easy to implement.

Link to comment
Share on other sites

Got practically an entire system in and working - it's pretty good and quite fast if you doco your system in excel. I am going to change my documenting style to meet your parser haha.

 

 

2/1 Game forcing with a short club
WBF Red, 5 card majors, 14-16 N and 1C = clubs or balanced

1C; 2+!c, 11-20 HCP - !cs or bal.
1D; 4+!d, 11-20 HCP - unbal. may have longer !cs
1H; 5+!h, 11-20 HCP
1S; 5+!s, 11-20 HCP
1N; 14-16, may include a 5 card major or 6 card minor
2C; Weak 5+!d, 22+ Bal, 21+ Unbal or 9+ Playing tricks
2D; Weak 5+!h or Weak 5+!s 
2H; Weak 4+!s and 4+!h
2S; Weak 4+!s and 5+!c or 5+!d


1N;     14-16 Balanced
2C    Stayman(extended)....used even wo 4M
 2D   Stayman answer, No 4cM
  2H  weak scramble for either major (4+ in both majors, 4-4-1-4)
  2S  NF 5S 4H invitational
  2N  game invitation may or may not contain 4 card major
  3C  natural GF, generally slamish
  3H  Smolen, showing 5 of unbid major and 4 of the bid major, GF
  3N  to play
  4C  RKC Gerber 1430 2B 2G  (2 bad 2 good)
  4D  5-5+ majors GF and non-slamish 
 2H   
  2S  4 card suit invitational values
  2N  invitational no 4 card major
  3C  natural GF, generally slamish
  3H  invite
  3S  splinter for S or balanced slam try
   3N Asks
   4H Spade splinter
  3N  to play
  4C  splinters
  4H  to play
  4S  exclusion blackwood  (see SLAM)
  4N  quantitative balanced with 4S
  5C  exclusion blackwood  (see SLAM)
  5H  call 6 with 2 of top 4
 2S   Stayman answer, 4+!s. denies 4 hearts
  2N  invitational may have 4H, may not
  3C  natural GF, generally slamish
  3H  balanced slam try with 4S
  3S  invite
  3N  to play
  4C  splinters
  4S  to play
  4N  quantitative balanced with 4H
  5C  exclusion blackwood  (see SLAM)
  5S  call 6 with 2 of top 4
2D    Transfer to Hearts (5+)
 2H   Transfer to Hearts (5+)
  2S  5-5 majors, slamish
  2N  Invitational with 5 H
  3C  Second Suit, GF
  3H  Invitational with 6+ H
  3S  Splinter (6+!h, slam interest)
  3N  Pick a game
  4C  Splinter (6+ H, slam interest)
  4S  exclusion blackwood  (see SLAM)
  4N  Quantitative
  5C  exclusion blackwood  (see SLAM)
 3H   Super accept: 4H and a minimum
 3C   Super accept: 4H, a maximum, and 2 cards in the bid suit
 2N   A maximum with: Hxx hearts or 3-4-3-3 exactly and stoppers in every other suit
 4H   5 Hearts
2H    Transfer to Spades (5+)
 2S   Acceptance
  2N  Invitational with 5 S
  3C  Second Suit, GF
  3H  Balanced slamish (with 5 S)
  3S  Invitational with 6+!s
  3N  Pick a game
  4C  Splinter (6+ S, slam interest)
  4N  Quantitative
  5C  exclusion blackwood  (see SLAM)
 3S   Super accept: 4S and a minimum
 3C   Super accept: 4S, a maximum, and 2 cards in the bid suit
 2N   A maximum with: Hxx spades, or 4-3-3-3 and stoppers in every other suit
 4S   5 Spades
2S    Transfer to Clubs (6+)
 2N   Super Accept of Transfer  (max clubs Hxx  or 4+)
 3C   Normal Acceptance 
  4D  RKC
  4N  Quantitative 
2N    Transfer to Diamonds (6+)
 3C   Super Accept of Transfer  (max with honor 3rd  or 4+)
 3D   Normal Acceptance 
  4C  RKC
  4N  Quantitative 
3C    Muppet Stayman
 3D   4-card major/s
  3H  Responder holds 4 of other M
  3N  No 4cM
 3H   No 5 or 4 card major
  3S  5 Spades
 3S   5 Spades
 3N   5 Hearts - Choice of games
3D    5-5 minors GF
3H    Exactly 31(54/45)  GF
3S    Exactly 13(54/45)  GF
3N    To Play
4C    Gerber, asking for Aces
4D    Texas Transfers to H (6+)
 4H   Acceptance
4H    Texas Transfers to S (6+)
 4S   Acceptance
4S    Exactly 4-4 minors, slam force - (Possible Change) maybe can be weak quantitative slam invite
4N    Balanced Quantitative (no 4cM) 17ish pts
5C    To play (preemptive type)
5N    Pick a slam (20-21 pts)




1C;     
1D    4+ Hearts
 1H   11-13 bal with 2-3 card support or a hand with no sensible bid (typically 5-4-3-1 with 3 card support and a minimum
  1S  Weak or invitational
   1N 2-4 clubs or exactly 3235
   2C 5+ clubs exactly 3 hearts
  1N  4+ Spades NF
   2C To Play
   2D Undefined (good hand with spade fit?
   2H Undefined?
   2S To Play
  2C  To Play
  2D  Artifical Game force
   2H Balanced 3 hearts without 4 spades
   2S 4=3=1=5 or 4=3=0=6
   2N Balanced with 2 hearts and without 4S
   3C 3 Hearts and 6+ clubs
   3D 1=3=4=5 or 0=3=4=6
  2H  Preemptive to play
  2S  Nat. Game Forcing
  2N  Game forcing with 6+ Hearts
  3C  Nat. Game Forcing
  3D  Nat. Game Forcing
 1S   4+,  12-17 points - opener must have 5+ clubs!
 1N   17-19 HCP Bal
 2C   6+, 12-15 HCP no 4cM
 2D   Reverse 16+ HCP
 2H   11-15 4+
 2S   Jump Shift 4+ with 18+ HCP (denies H support)
 2N   6+!c and 3!h w/15+ points OR 4+!h any 16+ signoffs in 3!c ir 3!h clubs or 3H.
 3C   Strong rebid 6+ with 16+ HCP
 3D   "No Use"
 3H   Good Raise 16-17 HCP
 3S   Splinter 17+ HCP
 3N   "No Use "
1H    4+ Spades 
 1S   11-13 bal with 2-3 card support or a hand with no sensible bid (typically 5-4-3-1 with 3 card support and a minimum
 1N   17-19 HCP Bal
 2C   6+, 12-15 HCP no 4cM
 2D   Reverse 16+ HCP
 2H   Reverse 16+ HCP
 2S   11-15 4+
 2N   6+ clubs and 3 Hearts w/15+ points OR 4+ H any 16+ Signoffs in 3 clubs or 3H. Opener pulling (except 3C->3H) is a strong game try, (probably 17+)
 3C   Strong rebid 6+ with 16+ HCP
 3D   "No Use  - Splinter?
 3H   Jump Shift 4+ with 18+ HCP (denies S support)
 3S   Good Raise 16-18 HCP
 3N   20-21 HCP that couldn’t open 2N ...
 4C   2-suited hand (5+!c and 4+ H)
 4D   Splinter 17+ HCP with 4+!s support
 4H   Splinter 17+ HCP with 4+!s support
 4S   18+ points with 4+!s support
1S    5+ Diamonds (denies a 4CM, unsuitable for 1N or 2N)
 1N   17-19 HCP balanced
 2C   6+, 11-15 HCP no 4cM
 2D   11-13 bal with 2-3 card support or a hand with no sensible bid (typically 5-4-3-1 with 3 card support and a minimum
 2H   Reverse 16+ HCP
 2S   Reverse 16+ HCP
 2N   6+ clubs, 3 Spades, 15+ points, good hand. Signoffs in 3 clubs or 3H. Anything else is game forcing
 3C   Strong rebid 6+ with 16+ HCP
 3D   Good Raise 16-17 HCP
 3H   ".   Jump Reverse No Use 
 3S   ".   Jump Reverse No Use 
 3N   20-21 HCP that couldn’t open 2N ...
 4C   2-suited hand (5+!c and 4+!s)
 4D   Splinter 17+ HCP
 4H   Splinter 17+ HCP
 4S   Splinter 17+ HCP
1N    Balanced, no intrest in game opposite a 11-13 weak N, no 4cM
 2C   6+, 12-15 HCP unbalanced
 2D   Reverse 16+ HCP
 2H   Reverse 16+ HCP
 2S   Reverse 16+ HCP
 2N   15-16 HCP balanced invite
 3C   6+, 16-17 HCP unbalanced
 3D   -
 3N   to play
2C    5+!c Limit Raise (Good 10+), no 4cM
 2D   Values for 3N: 
 2H   Values for 3N:
 2S   Values for 3N: 
 2N   Weak N
 3C   unbalanced club hand, NF
 3C   Splinter
 3H   Splinter
 3N   To Play
 4C   Minorwood (see SLAM for continuations)
2D    Soloway Jump Shift - See Tab
2H    Soloway Jump Shift - See Tab
2S    Soloway Jump Shift - See Tab
2N    "12-14 or 18-19 HCP 4333/4432 can have 4cM 
3C    5+!c Preemptive
 3D   I want to bid 3N, do you think I can make it?
  3H  You play it
  3N  I will play it
  4C  Hell no
3D    Splinter 11-14 HCP
3H    Splinter 11-14 HCP
3N    15-17 HCP no 4cM
4C    Minorwood (see SLAM for continuations)
4D    Exclusion?
4H    Exclusion?
4N    -
5C    Probably to play, but when is it not worth a slam try for 6?

1D;    
1H   4+ Hearts
 1S  4+,  12-17 points
 1N  12-13 HCP balanced
 2C  4+, natural
 2D  6+, 12-15 HCP no 4cM
 2H  12-15 4+ (sometimes 3 with unbalanced hand) 
 2S  Jump Shift 4+ with 18+ HCP (denies H support)
 2N  18-19 HCP Balanced (can have 4 S)
 3C  "No Use 
 3D  Strong rebid 6+ with 16+ HCP
 3H  Good Raise 16-17 HCP
 3S  Splinter 17+ HCP
 3N  20-21 HCP that couldn’t open 2N ...
 4C  Splinter 17+ HCP
 4D  2-suited hand (5+!d and 4+ H)
 4H  18+ points with 4+!h support
1S   4+
 1N  12-13 HCP balanced
 2D  6+, 12-15 HCP no 4cM
 2H  Reverse 16+ HCP
 2S  12-15 4+ (sometimes 3 with unbalanced hand) 
 2N         
 3C  ".   Jump Reverse No Use 
 3D  Strong rebid 6+ with 16+ HCP
 3H  ".   Jump Reverse No Use 
 3S  Good Raise 16-17 HCP
 3N  20-21 HCP that couldn’t open 2N ...
 4C  Splinter 17+ HCP
 4D  2-suited hand (5+!d and 4+!s)
 4H  Splinter 17+ HCP
 4S  18+ points with 4+!s support
1N   6-10 HCP no 4cM
 2C  4+, natural
 2D  6+, 12-15 HCP unbalanced
 2H  Reverse 16+ HCP
 2S  Reverse 16+ HCP
 2N  15-16 HCP balanced invite
 3C  -
 3D  6+, 16-17 HCP unbalanced
 3N  to play
2C   5+!c GF, or artificial w/ bal 16+.  Can have 4cM
 2D  6+!d 
 2H  4+!h ?
 2S  Good club raise
 2N  11-13 balanced trash
 3D  6+, 16-17 HCP unbalanced
 3H  Splinter
 3N  17-19 bal
2D   5+!d Limit Raise (Good 9, bad 10-11), no 4cM
2H   Soloway Jump Shift - See Tab
2S   Soloway Jump Shift - See Tab
2N   "12-14 or 18-19 HCP 4333/4432 can have 4cM, GF
3C   6+!c LR (good 9-11 HCP), no 4cM, no 4 diamonds
3D   5+!d Preemptive
 3H  I want to bid 3N, do you think I can make it?
  3S You play it
  3N I will play it
  4D Hell no
3H   Splinter 11-14 HCP
3N   15-17 HCP no 4cM
4C   Splinter 11-14 HCP
4D   Minorwood (see SLAM for continuations)
4H   Exclusion?
4N   Exclusion for C?
5C   Maybe bid grand with 2 of top 3, otherwise 6?


1H;       
1S     F1: Either 0-4 Spades any strength or 5+ spades, Game forcing (reverse into spades again later) 
 1N    Either Balanced 11-13 or Transfer to clubs 16 HCP max (with 14-15 balance OPEN 1N so you don't have this problem) 
  2C   Accepting the transfer - implies desire to play in clubs and an unwillingness to play 1N 
  2D   Good diamonds? 
  2H   To play 
  2S   Game forcing reverse, 13+ HCP 5+ Spades 
  2N   Invitational opposite 11-13 (so a good 12 count?) 
  3C   TBD 
  3D   TBD 
  3H   Invitational with 3 cards? 
  3S   TBD 
  3N   To play 
 2C    Xfer to Diamonds, Max of 16 points, can pass with long clubs and a garbage hand 
 2D    6+ Hearts, 11-15 
 2H    5 hearts 4 spades exactly 11-15 
 2S    Reverse 16+ HCP 
 2N    17-18 HCP Balanced - does not deny 4S 
 3C    Jump Shift 4+ with 18+ HCP, game forcing 
 3H    6+, 16-17 HCP 
 3S    Not Used 
 3N    Not Used 
 4C    Splinter 17+ HCP 
1N     5+ Spades, Weak <-> invitational, NF 
 2C    "4+ Natural non-forcing, 17 HCP max
 2D    "4+ Always, Natural non-forcing, 17 HCP max, 
 2H    6+, 12-15 
 2S    12-15 3+ spades  
 2N    17-18 HCP balanced, can have 4cOM 
 3C    4+ Jump Shift 18+ HCP 
 3H    6+, 16-18 HCP 
 3S    Invitational 16-17 
 3N    Balanced or semi-balanced 18+ HCP 
2C     5+ GF or 16+ bal (*comment). Can have 4S or 3H... 
 2D    Natural 4+, doesn't promise extras 
 2H    "Catch-up bid. Either unbalanced or 6+ and Min 
 2S    Natural 4+ 
 2N    Minimum 12-13 balanced 5-3-3-2 shape 
 3C    3+ good support and extras, not a bare min  
 3D    Splinter 
 3H    Solid Suit 6+ sets trump 
 3S    Splinter, slammish 
2D     5+ GF. Can have 4S or 3H.  
2H     Constructive 3-card support 7-9 total points 
2S     Soloway Jump Shifts - see tab 
2N     Limit Raise+ 
 3C    Up to 15 points including distribution. Extras start at 16 (inc distribution). Use judgement here 
  3D   Forcing Relay 
   3H  Any shortness 
    3S Shortness Ask (bid suit with shortness) 
   3S  5-4-2-2 shape 
    3N Whats your 4 card suit? (bid it, be careful, can get too high here) 
   3N  11-14 bal 
   4C  5H-5x, no particular controls but not a terrible suit 
   4H  6+ H, no shortness, bad hand for slam 
  3H   Limit Raise 
   4H  Will play 4H opposite a limit raise 
 3D    Extras, Side suit shortness 
  3H   Shortness Ask (bid suit with shortness) 
 3H    5-4-2-2 shape, extras 
  3S   Whats your 4 card suit? (bid it, be careful, can get too high here) 
 3S    6+ Hearts, Extras 
 3N    Big balanced hand (17-19) 
 4C    5H-5x, no particular controls but not a terrible suit 
 4H    6+ Hearts, Minimum hand, nice for slam 
3C     Invitational in clubs (10-11, 6+ good clubs) 
3D     Invitational in diamonds (10-11, 6+ good diamonds) 
3H     Mixed raise 7-10 Raise Points?, 4 card support 
3S     Splinter 11-14 HCP 
3N     15-17 HCP Balanced (3Hearts) 
4C     Splinter 11-14 HCP 
4H     Two-way raise, 5+ card support, no slam intrest 


1S;      
1N     Bad 12 HCP or less, any shape semi-forcing. 
 2C    "Natural non-forcing, 17 HCP max 2+!c
  2D   Implies 5 hearts, 2 spades and 6-9, relays partner to 2H
   2H  Accepting Relay (Implies 3 small hearts or Hx and a minimum)
    2S 2S 9-10 points
    2N 4C Bal 11-12 points
    3C 5C 10-11
    3D Long diamonds, not much outside
    3H 6 clubs, no heart stopper
    3S Good limit raise
    3N 6C, heart stopper
   3D  Super accept of hearts, responder will pass with a bust in diamonds
  2H   To play (6+ hearts, weak hand)
  2S   <9 points
  2N   10-12 points not 4C
  3C   8-9 5C
  3D   To play (6+ diamonds, weak hand)
  3H   6H 10-12 
  3S   bad limit raise
  3N   (4-3-3-3 with 3 spades, 12-15 HCP and notrump interest)
 2D    "Natural non-forcing, 17 HCP max
 2H    "Natural non-forcing, 17 HCP max
 2S    6+, 12-15
 2N    18-19 HCP balanced, can have 4cOM
 3C    Jump Shift 18+ HCP
 3H    Jump Shift 18+ HCP
 3S    6+, 16-18 HCP
 3N    Balanced or semi-balanced 18+ HCP
2C     5+ GF (*comment) or 16+ bal. Can have 4S or 3H...
 2D    Natural 4+, doesn't promise extras
 2H    Natural 4+
 2S    "Catch-up bid. Either unbalanced or 6+ and Min 
 2N    Minimum 12-13 balanced 5-3-3-2 shape
 3C    3+ good support and extras, not a bare min 
 3D    Splinter
 3H    Splinter, slammish
 3S    Solid Suit 6+ sets trump
2D 5+ GF
2H 5+ GF
2S 3+!s 6-9 Total Points
2N Limit raise or better
 3C    Up to 15 points including distribution
  3D   Forcing Relay
   3H  Any shortness
    3S Shortness Ask (bid suit with shortness)
   3S  5-4-2-2 shape
    3N Whats your 4 card suit? (bid it, be careful, can get too high here)
   3N  11-13 (14) bal
   4C  5S-5C, no particular controls but not a terrible suit
   4H  6+ S, no shortness, bad hand for slam
  3S   Limit Raise
   4S  Will play 4S opposite a limit raise
 3D    Extras, Side suit shortness
  3H   Shortness Ask (bid suit with shortness)
 3H    5-4-2-2 shape, extras
  3S   Whats your 4 card suit? (bid it, be careful, can get too high here)
 3S    6+ Spades, Extras
 3N    Big balanced hand (17-19)
 4C    5!s-5!c, no particular controls but not a terrible suit
 4S    6+ Spades, Minimum hand, nice for slam
3C     Invitational in clubs (10-11, 6+ good clubs)
3D     Invitational in diamonds (10-11, 6+ good diamonds)
3H     Invitational in diamonds (10-11, 6+ good Hearts)
3S     Mixed raise 7-10 Raise Points?, 4 card support
3N     15-17 HCP Balanced (3 spades)
4C     Splinter 11-14 HCP
4S     Two-way raise, 5+ card support, no slam intrest

2D;    
2H    To play opposite a weak 2H
2S    To play opposite weak 2S, invitational opposite weak 2H
2N    Asks how many losers you have
 3C   8- losers, good hand w/Hearts
  3D  Asking relay
   3H 8 Losers exactly
   3S 7 or less
 3D   8- losers, good hand w/Spades
  3H  Asking asking relay
   3S 8 Losers exactly
   3N 7 or less
 3H   9+ Losers w/Hearts
 3S   9+ Losers w/Spades
3H    Pass or correct
3S    Pass or correct
3N    To play
4C    Transfer to 1 under actual suit
4D    No Agreement
4H    Pass or Correct
4S    To play


2H;     2H: 4/4 - 5/5 in the majors 3-10
2S    Simple Preference
2N    Suit Quality, distribution & values Inquiry
 3C   Any Minimum
  3D  Second Relay
   3H 5 hearts
   3S 5 spades
   3N 4/4 in the majors
  3H  To Play
  3S  To Play
  3N  To Play
 3D   5/5 in the majors, max, GF
  3H  Slam Suggestion - 3N should be good hand for slam, cues should be bad hand
  3S  Slam Suggestion - 3N should be good hand for slam, cues should be bad hand
  4H  To Play
  4S  To Play
 3H   4 spades, 5 hearts, max, GF
 3S   5 spades, 4 hearts, max, GF
 3N   4/4 in the majors, max, GF
3C    Natural
3D    Invitational with 3/3 in the majors
3H    Pre-emptive
3S    Pre-emptive
3N    To Play
4C    Cue-bid
4D    Cue-bid
4H    Two-way raise, may be blocking or making
4S    Two-way raise, may be blocking or making
4N    6-keycard blackwood


2S;     4-5 Spades, a longer minor (5+)
2N    Asks how many losers you have
 3C   Bad hand with clubs
  3D  Trump quality asking relay
   3H Bad Trumps
   3S Good Trumps
 3D   Bad hand with diamonds
 3H   Good with clubs
 3S   Good with diamonds
 3N   7- losers, good hand
3C    Pass or Correct for minor
3D    Pass or Correct (ParadoX response)
3S    Pre-emptive
3N    To Play
4C    GF
4D    GF
4H    To play (Some sort of self sufficent suit)
4S     two way raise (Might make, or blocking)
5C    To play (Some sort of self sufficent suit)
5D    To play (Some sort of self sufficent suit)


2C; 
2D    Pass or Correct
 2H   Kokish Relay to 2S
  2S  Forced Relay
   2N 23-24
   3H Natural Hearts + a side 4 card side suit
   3N 27-28 (Systems on?)
 2S   Natural 5c suit
 2N   21-22, systems on
 3C   Natural
 3D   Natural
 3H   7+ card suit, sets trumps.
 3S   7+ card suit, sets trumps.
 3N   25-26
 4C   7+ card suit, sets trumps.
 4D   7+ card suit, sets trumps.
2H    Total Bust (less than a A or K)
 2S   To Play
 3C   To Play
 3D   To Play
 2N   To Play
 3N   To Play
 3H   Natural, good suit, forcing
 3S   Natural, good suit, forcing
 4C   Natural, good suit, forcing
 4D   Natural, good suit, forcing
2N   Invite  
 3C   8 losers, good hand
 3D   9+ Losers
 3H   7 or less losers, good hand

 

Link to comment
Share on other sites

Heh, I understand Herr Kungsgeten, re: spaces only; all his editing software (and mine) has an option to do this automatically (and it does auto-indent, which means I don't have to make tabs "8 spaces", tab means "go to the next indent point", just like Remington designed it). It's SOP for Python editors, for whom tab is anathema.

 

Not that I don't agree with you Cthulhu; but it's a "fault of the environment" - given that for us the tools are automatic. However, don't get me started on Editor Wars...I do Have A Preference.

Link to comment
Share on other sites

I've updated the bml.zip and now a tab character is interpreted as 8 spaces.

 

Wow! Great work Cthulhu :) Have you tested it on BBO or similar? You use some notation which I myself haven't tried (mostly related to spaces). Documenting in Excel, seems pretty cool (I use LaTeX myself). I'm thinking of writing a program which turns BML into HTML, but we'll see about that. I would also like to add some kind of feature to BML which makes it easier to document relay sequences.

 

Yeah mycroft, you're correct. My editor doesn't work with tabs (unless I really want them, which I do not) so I didn't think about implementing support for tab characters. As far as editor wars go; BML is written in Emacs :)

Link to comment
Share on other sites

Heh, I understand Herr Kungsgeten, re: spaces only; all his editing software (and mine) has an option to do this automatically (and it does auto-indent, which means I don't have to make tabs "8 spaces", tab means "go to the next indent point", just like Remington designed it). It's SOP for Python editors, for whom tab is anathema.

 

Not that I don't agree with you Cthulhu; but it's a "fault of the environment" - given that for us the tools are automatic. However, don't get me started on Editor Wars...I do Have A Preference.

 

I'm working with wordpad here, I probably need to use a more sophisticated editor. I haven't used emacs since I quit programming and I haven't used VI since university.

 

Wow! Great work Cthulhu :) Have you tested it on BBO or similar? You use some notation which I myself haven't tried (mostly related to spaces). Documenting in Excel, seems pretty cool (I use LaTeX myself). I'm thinking of writing a program which turns BML into HTML, but we'll see about that. I would also like to add some kind of feature to BML which makes it easier to document relay sequences.

 

Just tested it then, works fine.

 

Excel is very good at this because - well, check out my notes.

 

https://docs.google.com/spreadsheet/pub?hl=en_US&key=0ApdG9_UbtV3HdF9rYzBsZVNmb2o2QzQ1OFF2OUdIN3c&hl=en_US&gid=9

 

Turns out if you just select the entire system description for each opening, then paste it into wordpad and do a find replace for tabs and replace them with a single space, the entire system comes across. The only problem is bids where I have used shorthand like

 

4m

4M

4x

 

Those obviously don't work. It would be great if the parser did understand them or something similar. I also hate that the parser doesn't understand that 1NT = 1N, but that's easy to find replace again as well.

 

So I'm going to redevelop my notes to expand out the shorthand, but it works very nicely.

 

Edit: Is P the bid for pass?

Link to comment
Share on other sites

Looks like a good way to document stuff! Instead of 4m you could write 4CD (and 4HS instead of 4M), but the continuations may become weird (see manual).

 

P is the notation for pass, that is correct. However, BSS do not accept pass as an opening bid, so if you want to make a bid mean something in third hand (or have a forcing pass system or similar) you have to define the position in which the bids work. By default the bids are applied to all positions, but you can for instance write pos=34 to apply the meaning of the bid when opener (other bid than pass) has opened in third or fourth position.

 

In short: P is for pass, D is for double and R is for redouble.

Link to comment
Share on other sites

Looks like a good way to document stuff! Instead of 4m you could write 4CD (and 4HS instead of 4M), but the continuations may become weird (see manual).

 

That's beautiful - I'd read the manual but hadn't put 2 and 2 together. All my 4x etc are at the tail end of sequences so I can definitely do this.

 

P is the notation for pass, that is correct. However, BSS do not accept pass as an opening bid, so if you want to make a bid mean something in third hand (or have a forcing pass system or similar) you have to define the position in which the bids work. By default the bids are applied to all positions, but you can for instance write pos=34 to apply the meaning of the bid when opener (other bid than pass) has opened in third or fourth position.

 

In short: P is for pass, D is for double and R is for redouble.

 

Oh it's mostly to handle stuff like garbage stayman sequences so 1NT-2C-2H pass tells you stuff about responders hand. But sweet that works.

 

Fantastic, will produce a new iteration this weekend.

Link to comment
Share on other sites

  • 2 weeks later...

My first 30 min

 

I'll be happy to hear about your comments.

 

Cannot comment yet, I just can say that this python thing is not so simple to master for a non-programmer. Maybe my stumbling can be of help for future user with my knowledge level.

 

OS Win7 64Bit Home Premium

 

Tried to start bml2bss.exe

Result: A Pop-Up window flashed up an disappeared within ms, no idea of what was written in it.

 

Ok, so maybe that is that dll thing. So I went to the MS Homepage and installed Microsoft Visual Studio C++ 2010 Express

 

Tried to start bml2bss.exe

Result: As before, no improvement

 

Well, the Pop-Up window has a black background as the DOS-Prompt, so lets try to start it there manually to see if I can discover something else.

 

Started the DOS-prompt, cd till I was in the right folder, started the bml2bss.exe an got:

 

What's the name of the file you want to convert?
Traceback <most recent call last>:
File "bmlsbss.py", line 293, in <module>
IOError: [Errno 2] No such file or directory: 'test.txt'

c:\Users\stefan\Desktop\bml\bml2bss_exe>

 

Then I created an empty dummy file test.txt. Now I do not longer get the error, just the question

What's the name of the file you want to convert?

c:\Users\stefan\Desktop\bml\bml2bss_exe>

 

If now I point for instance to sayc.bml I get a message that windows does not know which program should handle a *.bml file.

 

Linking the bml-file-format to the bml2bss.exe didn't help. Again a Pop-Up window coming and disappearing within ms.

 

ciao

stefan

Link to comment
Share on other sites

Sorry for continuing OT about python:

 

After the above mentioned failure, I started plan B.

 

Went to python.org, and installed python on my machine (will maybe post later the process).

 

Now I want to start with python the bml2bss.py But this file seems not to be included in the zipfile that I downloaded.

 

Where can I find the bml2bss.py?

 

ciao

stefan

Link to comment
Share on other sites

Yeah you need to run everything from the dos prompt (not really the dos prompt any more, but you know, close enough). There is no GUI on the thing.

 

Also the files need to be called test.bml (or randomname.bml etc) otherwise it doesn't work.

 

Not sure if that will fix all your problems though.

Link to comment
Share on other sites

Yeah you need to run everything from the dos prompt (not really the dos prompt any more, but you know, close enough). There is no GUI on the thing.

 

Also the files need to be called test.bml (or randomname.bml etc) otherwise it doesn't work.

 

Not sure if that will fix all your problems though.

 

Well it didn't fix all my problems, but at least it solved my problems with this program.

 

Thank you

stefan

Link to comment
Share on other sites

Hi! I'm sorry that I haven't replied earlier. I'm even more sorry that I managed to upload a version which was wrong. The problems should be fixed now if you download the .zip-file again.

 

antonylee: I forgot to include the .py-file in the last version of the zip-file. It is there now.

 

Download bml2bss from here

Link to comment
Share on other sites

I recently discovered the Full disclosure system on BBO. I tried using bidedit for a while, but found it pretty slow to work with. I've created a markup language which I call Bridge Bidding Markup Language (BML for short). BML is intended to be easy to write and easy to read. Right now I also have a program written in Python which can convert BML files to BSS (the format used by BBO), and these files can be used while playing online. All features of the Full Disclosure system isn't implemented yet, but the most useful ones (according to me) are. I would be happy if you tried it out and gave me some thoughts. You can download the manual and the converting program from www.snortingmaradonas.se/erik/bml.zip

Just to give you an example, here's what a BML file can look like (including a basic description of a No Trump structure):

SAYC
A natural system with 5 card majors and best minor
1C; 3+!c, 11+ hcp
1D; 3+!d, 11+ hcp
1H; 5+!h, 11+ hcp
1S; 5+!s, 11+ hcp
1N; 15-17 bal
2C; ARTIFICIAL. Game-forcing or 22-24 bal
2D; Weak
2H; Weak
2S; Weak
2N; 20-21 bal
1N;
2C ARTIFICIAL. Stayman
  2D ARTIFICIAL. No 4 card major
  2H NON-FORCING. 4+!h
  2S NON-FORCING. 4+!s
2D TRANSFER. 5+!h
  2H NON-FORCING.
  3H NON-FORCING. Super accept
2H TRANSFER. 5+!s
  2S NON-FORCING.
  3S NON-FORCING. Super accept
2S ARTIFICIAL. Minor suit Stayman
2N INVITATIONAL.

Kungsgeten, your BML seems great. Suggestions

  • As well as a BML->BSS it would be useful to have a BSS -> BML program
  • Then you could offer BML to BBO as an alternative to BSS. With automatic interconversion, BBO could allow members to use either format
  • Later you could write conversion programs to HTML and WBF system-card format
  • Allow WBF abbreviations (e.g. ART for Artificial, INV for invitational) with automatic expansion on display.
  • Allow generic descriptions (e.g. for raises, splinters) so a program could use BML to automatically bid hands (c.f. COBRA).
  • OK OK yes I know: If you put a broom up your arse, you could also sweep the floor :)

Link to comment
Share on other sites

Kungsgeten, your BML seems great. Suggestions

  • As well as a BML->BSS it would be useful to have a BSS -> BML program
  • Then you could offer BML to BBO as an alternative to BSS. With automatic interconversion, BBO could allow members to use either format
  • Later you could write conversion programs to HTML and WBF system-card format
  • Allow WBF abbreviations (e.g. ART for Artificial, INV for invitational) with automatic expansion on display.
  • Allow generic descriptions (e.g. for raises, splinters) so a program could use BML to automatically bid hands (c.f. COBRA).
  • OK OK yes I know: If you put a broom up your arse, you could also sweep the floor :)

 

Glad you like it!

 

BSS->BML might be possible. However BML does not currently use some of the features of BSS when converting, so this would need to be fixed in that case.

 

I have actually thought about doing a HTML converter, but I'm not quite sure how such a page would look. I wont write a converter to the WBF system-card format since I do not use these cards. But if anyone else wants to do it, feel free!

 

The abbreviations which you suggest are included and should show up on screen on BBO since they're a part of the BSS file format. Check the manual for a full list of abbreviations.

 

I don't know how these generic descriptions would work, and they would probably not work on conversion to BSS (which is the main purpose for BML as of now). I had an idea of a feature where you could define a sequence which would be used at all times except when defined elsewhere. Like 4NT as RKCB for instance. This is not supported by BSS, so these sequences would be copied into all other sequences in the BSS-file (making the file quite big).

Link to comment
Share on other sites

  • 2 weeks later...

I think I found a bug.

 

 

(1C);
D 15+
 1D ART. 0-4 Bust
1D  7-15 3-4 !d w/5-6 !h or !s
 1STEP ART. Pass or Correct
 1S F1 Own Suit
 1N 7-10 with a stopper
 2C ART. Game Try
 2D Non Constructive Raise
 2H Own Suit NF
 2N Balanced Invite (13-14)
 3C Good raise to 3D
 3D Non Constructive Raise
1H  7-15 3-4 !h w/5-6 !s or !d
 1STEP ART. Pass or Correct
 1N 7-10 with a stopper
 2C ART. Game Try
 2D F1 Own Suit
 2H Non Constructive Raise
 2N Balanced Invite (13-14)
 3C Good raise
 3H Non Constructive Raise
1S  7-15 3-4 !s w/5-6 !h or !d
 1N 7-10 with a stopper
 2C ART. Game Try
 2D ART. Pass or Correct
 2H Own Suit NF
 2S Non Constructive Raise
 2N Balanced Invite (13-14)
 3C Good raise to 3S
 3S Non Constructive Raise
1N	8-14  3 Suited takeout
2C	10-14  5 Diamonds & A 5 card Major
2D	6+!s or 6+!h weak
 1STEP ART. Pass or Correct
 2STEP Paradox Response -> !h values
 2N ART. Inquiry
  3C Max with !hs
  3D Max with !ss
  3H Min with !hs
  3S Min with !ss
2H	5-9  4+/4+ Majors
2S	Good Preempt in any suit
2N	Good Intermediate Jump in D with a stop
3C	10-14 5+/5+ Both Majors
3D	Good Intermediate Jump in D with no stop
3HS	Poor preempt

 

 

Works fine, but if I change

 

D 15+

1D ART. 0-4 Bust

 

to

 

D 15+

1STEP ART. 0-4 Bust

 

It won't compile

 

d:\PlaceIHavethings\>bml2bss.exe

What's the name of the file you want to convert?

SCM.bml

Traceback (most recent call last):

File "bml2bss.py", line 302, in <module>

parse(i[:-1]) # skip the \n

File "bml2bss.py", line 182, in parse

include(row, _indentation)

File "bml2bss.py", line 140, in include

parse(' ' * indentation + i)

File "bml2bss.py", line 189, in parse

bid = stepBid(_lastbid, bid)

File "bml2bss.py", line 96, in stepBid

denomination = int(bid[0])

ValueError: invalid literal for int() with base 10: 'C'

 

I can email you a copy of all the files involved.

 

 

Note for reproducing: It only seems to happen if I use the step command after a double - as seen in the file above, the step is fine after a bid of a suit! This took me some time to figure out - what a bug! I think it's simply that STEP looks for the root bid, gets double and breaks.

 

Thanks again for all your work

Also, if anyone wants it, I've developed a bunch of modules for this

 

Canape Overcalls - Mark Abraham's Catomult overcalls

Overcall Structure - Fout's overcall structure

Myxos - Myxomitis twos

1416NT - 14-16 NT response structure

Majors

ShortClub

UnbalancedDiamond

Inquiry's Equality Transfer Advances

 

The 1CDHS openings are based on stuff from the forums

 

And one included Ekrens 2H, Multi 2D, Dutch 2C and a random 2S. Nothing is of course perfect, but if anyone wants them email me :)

 

Edit: Tip for authors, if you write a COPY/END copy block, then import it into your main BML file, your other bml files can refer to it - so I have my variation of XYZ in a copy block and then my 1C and 1D structures just have INSERT TransferXYZ so I only need to update one place despite having it mentioned in lots of modules.

Link to comment
Share on other sites

Yeah, the step feature nor the disturbed/defensive bidding features aren't tested very much. You are correct in that the step won't work after a double because I haven't defined what a step after a double actually is. Is the step a pass, is it a redouble (if the double is made by an opponent), is it the nearest suit/NT?

 

Also, have you tested running your code example? I haven't used the disturbed/defensive features very much as I said, but I think something like

 

(1C);
D 15+
 1D ART. 0-4 Bust

 

would be defined as the OPPONENTS showing 0-4 and a bust after they bid 1 after your double of their 1 opening. I may be wrong about this, but I think the correct code would be:

 

(1C);
D 15+
 P1D ART. 0-4 Bust

 

Its great to hear that you've written BML modules! Right now the interest for BML seems to be pretty limited, but it would be fun to do a website where people could post their modules and stuff :)

Link to comment
Share on other sites

Yeah, the step feature nor the disturbed/defensive bidding features aren't tested very much. You are correct in that the step won't work after a double because I haven't defined what a step after a double actually is. Is the step a pass, is it a redouble (if the double is made by an opponent), is it the nearest suit/NT?

 

Also, have you tested running your code example? I haven't used the disturbed/defensive features very much as I said, but I think something like

 

would be defined as the OPPONENTS showing 0-4 and a bust after they bid 1♦ after your double of their 1♣ opening. I may be wrong about this, but I think the correct code would be:

 

 

I literally logged in to post about this, but I see you are ahead of me. Your solution doesn't quote work, either this:

 

1N	8-14  3 Suited takeout
 (P)-2C ART. Game Try
 (P)-2D To Play
 (P)-2H To Play
 (P)-2S To Play 
 (P)-3D To Play
 (P)-3H To Play
 (P)-3S To Play 
 (P)-2N Asking for 5 card suit
 (P)-3C Asking for 4 card major, Invitational+

 

or this

 

1N  8-14  3 Suited takeout
 (P)
  2S ART. Game Try
  2CDH To Play
  3CDH To Play
  2N Asking for 5 card suit
  3S Asking for 4 card major, Invitational+

 

Work - the second option is better because (P)-2CDH doesn;t work.

Link to comment
Share on other sites

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...