[packagekit] [GSOC] Recommender Systems

Matthias Klumpp matthias at tenstral.net
Tue Apr 26 19:14:49 UTC 2016

2016-04-26 20:51 GMT+02:00 Lucas Moura <lucas.moura128 at gmail.com>:
> Hello,
> My name is Lucas Moura and I am Google Summer of Code Student working for
> the Debian project. My summer project is related to AppRecommender, a Debian
> package recommender system:
> https://github.com/TCC-AppRecommender/AppRecommender
> This application works by creating an user profile based on the user
> installed packages, this profile is basically the most significant terms on
> all user packages. With this profile built, AppRecommender uses Xapian to
> query for Debian packages and display the closest ones with the query.

Hi there!
First of all, sorry for not-replying to your initial mail you sent
about a month ago.... I read it on a train and then it completely
vanished from my head afterwards, since there was so much stuff going
on... This was my fault, but next time feel free to send a reminder
email in such cases :-)
Anyway, I'm glad you got into this year's GSoC!

> Currently, this application can only be used via terminal access. However,
> my gsoc project is to change that, and allow AppRecommender to be integrated
> into graphical package managers:
> https://wiki.debian.org/SummerOfCode2016/StudentApplications/LucasMoura
> I originally thought about integrating it with PackageKit, since this would
> allow some famous graphical package managers to actually show the
> recommendations, such as Gnome-software.
> However, since AppRecommender only works for Debian and Ubuntu distros, I
> would like to ask what would be the best approach to integrate
> AppRecommender with PackageKit and the opinion of the application
> maintainers with this idea.

First of all, that tool should get off app-install-data and use
AppStream instead ;-) The app-install-data stuff is ancient and is no
longer maintained or even updated, while AppStream is the new shiny
thing (I am obviously biased as AppStream maintainer, but you can
trust me on that).
Is there *any* reason why this just works on Debian/Ubuntu? I haven't
looked at the code yet, but I can't think of any reason at time why
this feature should be restricted to the Debian world.

Adding it to PackageKit is something which will be very hard, since PK
has a different, package-centric scope and I am not sure if Richard
wants new API added to the core for this feature (which you would
highly likely need, since no plugins are supported anymore).

Adding a feature like this to the AppStream libraries, however, would
be most welcome! We even discussed about this at the GNOME Software
hackfest. The problem there is that we would need this feature as a
nice C library, or need it to be added to one of the existing C
Richard is maintaining libappstream-glib[1], which is mainly used by
GNOME Software and contains lots of helper routines GS needs. I
maintain libappstream, which is used by some web-stores, Elementary
and KDE for their AppStream stuff. The libappstream library also uses
a Xapian database internally.
I could definitely imagine adding API to libappstream to support a
"suggest me apps I would like to use" feature, but a precondition
would be that this feature is available on more distributions, ideally

As a last option, you could always create your own C/C++ library, and
we could add a vendor-specific plugin for this feature to GNOME
Software and KDE Discover.

I'll read a bit more about your project, at time I can't make any
recommendation on what is best (I can only say for sure that PK is
likely not the right place for this).


[1]: https://github.com/hughsie/appstream-glib
[2]: https://github.com/ximion/appstream

Debian Developer | Freedesktop-Developer
I welcome VSRE emails. See http://vsre.info/

More information about the PackageKit mailing list