Martingale and semi-martingale have very precise mathematical definitions, so it's definitely not something easy to understand. I'll try to give some intuition without too much mathematical details.
Martingale is a stochastic process that it's expectation is equal to the current value. This means:
- No clear trend (like a random process)
- Your previous knowledge can't help you to predict the future
For example, if you have the Google stock, and it's $100. You might assume the daily stock movement is a martingale. The probability of it reaching 110 is the same as the probability of it reaching 90. On average, the most likely stock price after a week is still 100. If you need to make a bet on the most likely stock price after one week of trading, you should go for 100. Note in our example, we don't need to know the past stock price, only today's price is relevant. Since your best prediction is actually today's price, you aren't actually predicting anything.
Mathematically:

Semi-martingale is similar to martingale but it's not always a martingale. For example, if you can somehow use the past stock data to predict accurately Google stock price for the first week (and only the first week), it won't be a martingale process. Starting from the second week, the process becomes a martingale again.
Mathematically:

You can think semi-martingale like a merge of martingale (more precisely local martingale) and a non-martingale process.