I have realised that with changes to sindex in 0.8.0 we have introduced inconsistency in terminology. While in sjoin, we have an attribute op, in sindex.query we use predicate. Both mean the same thing and are used for the same purpose.
Not sure what the best option would be, but I quite like literal predicate as I always found op a bit cryptic (btw, what the o stands for? overlay? as overlay predicate?). One way could be to have both as synonyms or to have only predicate but silently accept op as well (until some deprecation or just keep that). But even I was confused by the current situation while trying to use op in query.
cc @adriangb
I noticed this a while ago, however I don't think there's much we can do without a hard break in API (which is why I never brought it up). PyGEOS uses the term predicate and sjoin historically uses op (which I guess stands for operation). I also like predicate more, especially since that's what Shapely uses (link).
I personally feel that we should either:
(1) Continue to carry on both terminologies. This is the status quo.
(2) Make a hard API break (maybe with a deprecation warning).
I'm okay either, happy to implement the API change if needed.
I like predicate here because it is precise and clear.
I think it would be reasonable to deprecate op with a deprecation warning and have these as temporary synonyms in both functions until that point.
I always found op a bit cryptic (btw, what the o stands for? overlay? as overlay predicate?).
I always assumed that "op" was short for "operation"
One downside of "predicate" is that I personally find this quite "jargon", at least for non-native speakers I think this is a term mostly used in computer science / math logic theory, and if you are not familiar with those, not sure it's a generally know term (eg I only learned this from unary/binary predicates in programming, and then mainly in geopandas, because in python / pandas we don't really use that term)
What about relation?
EDIT: I should say, I like predicate as well, but appreciate the language issue @jorisvandenbossche notes.
Just a quick check - both sf and QGIS are using predicate, ArcMap (based on screenshots) is using match option and ArcPro Spatial Relationship.
I also like predicate as it is precise, but understand the concerns. However, it feels that it is relatively widely accepted, at least in FOSS world, so introducing new and different keyword doesn't feel right.
Most helpful comment
I like
predicatehere because it is precise and clear.I think it would be reasonable to deprecate
opwith a deprecation warning and have these as temporary synonyms in both functions until that point.