Well, I assume you know what full stall is, but for anyone else stall is where you use only or almost only defensive Pokemon, and attempt to win battles via having virtually no weak points and knocking out Pokemon via passive damage (like poisoning, hazards, recoil etc).
Semi-Stall is basically what it sounds like: a style of battling that consists of the team being majority defensive Pokemon with virtually no weak points. However, a semi-stall would also consists of at least one sweeper (sometimes two, three starts turning it into a mixed team). This can be a bulky sweeper to carry on the continuity of taking hits, a glass cannon to deal damage to a threat as fast as possible or anything else that contributes to the teams success.
But why use this? Well, unlike a Bulky Offensive team or a Mixed team, it's still about 5/6 defensive and operates much in the same way as stall does. It's defences are ridiculous and carries many passive damaging moves and abilities. But that one sweeper gets you out of situations you otherwise couldn't, such as demolishing a single threat that the rest can't deal with, or even beating another stall team. The offensive Pokemon supports the defensive, which is the opposite of most offensive team bases.
Note: Most semi-sall is still categorised as stall, which makes it damn hard to find a decent RMT on it without trawlign through every RMT with stall in it's name on the whoel of smogon e.e