Hey,
To be honest because I wanted to implement the queries
because they are
really needed for me and other bot operators.
We are planning to provide a query API in the near future. Initially this
will consist of an API module that allows finding entity ids based on a
property value combination [0]. Later on we will add a module that takes an
Ask [1] query, and returns a result object. This means there will be no
need for a ton of different API modules that can all only handle a very
specific kind of query.
[0] This is the API module I linked in my last email
[1]
https://github.com/wikimedia/mediawiki-extensions-Ask/blob/master/README.md
But I think it would be evil if even the page to query items without
interwikilinks would inherit from the ApiWikibase
class because it provides
functions like addSiteLinksToResult, addAliasesToResult or worse also
attemptSaveEntity which really have nothing to do with quering data. If you
see this functions you have to realize that the ApiWikibase class is only
designed for api modules that edit or get data from one *single* entity. A
module that queries data from *lots of* entities should not be a subclass
of this class but however it would be a ApiWikibase module. This is the
reason why the module should be renamed in my opinion.
I guess you do not understand what I wrote earlier. If one does not have
business logic in the API modules themselves, inheritance abuse involving
functions such as "addSiteLinksToResult" simply will not happen. Sharing
code via inheritance is generally wrong, and the issue you are seeing is
one of the problems it tends to cause. The solution is not to add more base
classes and blow up the christmas tree of classes more, it is to not abuse
inheritance in the first place.
Cheers
--
Jeroen De Dauw
http://www.bn2vs.com
Don't panic. Don't be evil. ~=[,,_,,]:3
--