Microsoft Patents 'IsNot'

Carlos Ribeiro carribeiro at
Sun Nov 21 00:00:39 CET 2004

On Sat, 20 Nov 2004 23:38:56 +0100, Martin v. Löwis <martin at> wrote:
> Terry Reedy wrote:
> > But, for whatever it is worth, the ref manual *does* label 'is not' as *an*
> > operator.  In this context, 'is not' is a compound (key)word with a space
> > (rather than a hyphen or neither).  Since English compounds can often be
> > written both with and without a space or hyphen, with the choice being a
> > matter of taste, the difference between 'IsNot' and 'Is Not' is rather
> > trivial
> To a reader, but not in an implementation. I believe that Microsoft
> would have allowed "foo is not Nothing" if they knew how to implement
> it. In the compiler, input is split into tokens, and you can not only
> have space between them, but sometimes also line breaks and comments.
> It appears that the VB parser, when receiving the IsNot token,
> immediately checks whether the thing it got before is an expression.
> If this would have to take "is not" into account as well, it might
> become more complicated.
> > And 'is_not' is the CS alternate spelling of 'is not' with ' ' changed to
> > '_' (instead of '-') to indicate that the space is connective, forming a
> > compound word.
> And I firmly believe that Microsoft has only "connected" spellings in
> mind, in this patent application. The option of unconnected spelling
> (i.e. in multiple tokens) did not occur to them, or else they would
> have given that in the examples.
> > In names, Python also requires, for obvious lexical
> > reasons, connective spaces ('_'s).  Recognizing 'is not' as a unit requires
> > a special rule; 'is_not' might have been more consistent with the rest of
> > Python, but Guido was and is a keywords minimizer.  Without knowing this
> > rule, one could easily parse 'a is not b' as 'a is (not b)' like Basic
> > does.
> See, in Python, there is *no* special rule for 'is' 'not'. It just falls
> out naturally - the expression after 'is' just can't start with a 'not',
> since only tests can start with 'not'; expressions are a special case of
> test that can only start with '(', '+', '-', '~', '[', '{', '`', a name,
> a number, or a string.

I'm curious. I know that Python is not going to enter into a
'patent-filling' frenzy anytime soon. But isn't the 'is not' trick
also patentable on it's own? The reason I ask this is twofold:

1) I always found the "is not" with two tokens a novelty -- I knew no
other language before where this spelling was acceptable. But I am no
"linguist" (in the CS sense), either.

2) Some people seem to think that the better way to defend Open Source
applications against silly patents is to fill a lot of patents in
behalf of open projects, as a defensive measure. I don't have any clue
as to whether this would be effective in practice or not, but anyway,
it seems interesting.

Carlos Ribeiro
Consultoria em Projetos
mail: carribeiro at
mail: carribeiro at

More information about the Python-list mailing list