unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Adding tags to packages
@ 2015-07-08  7:41 Pjotr Prins
  2015-07-08  9:24 ` John Darrington
  0 siblings, 1 reply; 16+ messages in thread
From: Pjotr Prins @ 2015-07-08  7:41 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

I don't know it this has been discussed before, but it would be useful
to have an optional tagging system. I would like to mark packages that
are useful for bioinformatics which can be outside the
bioinformatics.scm. Likewise it would be useful to mark packages that
are security related, network related, desktop related, x11 related
etc.

I propose an open metadata tagging system where package maintainers
can just enter any keyword in a list. Like the license tag, they can
be approved by GNU Guix and have metadescriptions somewhere.

This is about searching for information. One useful output would be to
present collections of packages on the www or in RDF/JSON.

Pj.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2015-07-08  7:41 Pjotr Prins
@ 2015-07-08  9:24 ` John Darrington
  2015-07-08 12:55   ` Ludovic Courtès
  2015-07-08 13:55   ` Pjotr Prins
  0 siblings, 2 replies; 16+ messages in thread
From: John Darrington @ 2015-07-08  9:24 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1282 bytes --]

On Wed, Jul 08, 2015 at 09:41:04AM +0200, Pjotr Prins wrote:
     I don't know it this has been discussed before, but it would be useful
     to have an optional tagging system. I would like to mark packages that
     are useful for bioinformatics which can be outside the
     bioinformatics.scm. Likewise it would be useful to mark packages that
     are security related, network related, desktop related, x11 related
     etc.
     
     I propose an open metadata tagging system where package maintainers
     can just enter any keyword in a list. Like the license tag, they can
     be approved by GNU Guix and have metadescriptions somewhere.
     
     This is about searching for information. One useful output would be to
     present collections of packages on the www or in RDF/JSON.
     

Yeah it's been discussed before.

Looking at other operating systems / package managers which do this, it
has never really been a success.  Trying to predict what tags the user 
is going to search for is  - well like trying to read the mind of
someone you've not yet met.

J'

-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2015-07-08  9:24 ` John Darrington
@ 2015-07-08 12:55   ` Ludovic Courtès
  2015-07-08 13:55   ` Pjotr Prins
  1 sibling, 0 replies; 16+ messages in thread
From: Ludovic Courtès @ 2015-07-08 12:55 UTC (permalink / raw)
  To: John Darrington; +Cc: guix-devel

John Darrington <john@darrington.wattle.id.au> skribis:

> Looking at other operating systems / package managers which do this, it
> has never really been a success.  Trying to predict what tags the user 
> is going to search for is  - well like trying to read the mind of
> someone you've not yet met.

Agreed.  Several years ago, I was pleased when debtags came along.  But
let’s face it: People are used to just typing random keywords in a box,
rather than having to think about the syntax and semantics of tags, and
finding the right tags to look for.

I think ‘guix package --search’ works OK for the general case,
esp. since its output can be piped to recutils or grep if you really
want to filter the search results.

Now, I understand that an operation like listing all bioinfo packages is
not that simple.  Currently it can be achieved by filtering based on the
‘location’ field:

  guix package -s . | recsel -p name -e 'location ~ "bioinformatics"'

But then again the same goes for “listing all the PDF readers”, etc.

WDYT?

Ludo’.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2015-07-08  9:24 ` John Darrington
  2015-07-08 12:55   ` Ludovic Courtès
@ 2015-07-08 13:55   ` Pjotr Prins
  1 sibling, 0 replies; 16+ messages in thread
From: Pjotr Prins @ 2015-07-08 13:55 UTC (permalink / raw)
  To: John Darrington; +Cc: guix-devel

I can predict how I will use it. I want to list bioinformatics package
and keep track of statistics.

Pj.

On Wed, Jul 08, 2015 at 11:24:55AM +0200, John Darrington wrote:
> On Wed, Jul 08, 2015 at 09:41:04AM +0200, Pjotr Prins wrote:
>      I don't know it this has been discussed before, but it would be useful
>      to have an optional tagging system. I would like to mark packages that
>      are useful for bioinformatics which can be outside the
>      bioinformatics.scm. Likewise it would be useful to mark packages that
>      are security related, network related, desktop related, x11 related
>      etc.
>      
>      I propose an open metadata tagging system where package maintainers
>      can just enter any keyword in a list. Like the license tag, they can
>      be approved by GNU Guix and have metadescriptions somewhere.
>      
>      This is about searching for information. One useful output would be to
>      present collections of packages on the www or in RDF/JSON.
>      
> 
> Yeah it's been discussed before.
> 
> Looking at other operating systems / package managers which do this, it
> has never really been a success.  Trying to predict what tags the user 
> is going to search for is  - well like trying to read the mind of
> someone you've not yet met.
> 
> J'
> 
> -- 
> PGP Public key ID: 1024D/2DE827B3 
> fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
> See http://sks-keyservers.net or any PGP keyserver for public key.
> 



-- 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
@ 2016-01-02 19:45 Fabio Pesari
  2016-01-03  9:02 ` Alex Kost
  2016-01-03 14:33 ` Ludovic Courtès
  0 siblings, 2 replies; 16+ messages in thread
From: Fabio Pesari @ 2016-01-02 19:45 UTC (permalink / raw)
  To: guix-devel

Sorry to bump an old thread but I agree with the OP that tags in
packages would be very helpful, and I can think of at least one use case
in which they might be necessary: games.

While game genre can be put into the description, games right now are
not all in the same .scm files (for example, gnome-mines is in gnome.scm
and not in games.scm).

I've checked out all descriptions and so far you've done a good job of
incorporating game genres into descriptions, but there are some cases in
which that is not enough.

For example, if I search for "board game" then a game like gnubg won't
show up, because only "board" is in its description...but searching for
"board" alone might bring unrelated results like non-board games that
have boards in their description (like Five or More from GNOME, a puzzle
game) or unrelated software like kanban boards.

Also, in other package managers, people are not consistent in their
descriptions and so "RPG" and "role-playing game" and "role playing
game" can all give different results. I think this issue should be
solved by approving each tag, so that they are used carefully (the same
could be said about descriptions right now, but it'd be harder to enforce).

In short, I think tags are a simple solution to a problem that's been
around for many years, and the fact that it wasn't done properly in the
past is purely anecdotal and doesn't mean it can't be done properly now.

Filtering is a very important issue, IMO, and tags are pretty much the
only solution to facilitate it (since categories can be too broad - VLC
and Yoshimi are both audio programs, even if they are completely different).

I propose that tags are implemented, and that each tag has to be
approved by the devs before it is used, and that a list of all tags is
published on the Guix website to help people choose the right tags.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2016-01-02 19:45 Adding tags to packages Fabio Pesari
@ 2016-01-03  9:02 ` Alex Kost
  2016-01-03 14:20   ` Ludovic Courtès
  2016-01-03 14:33 ` Ludovic Courtès
  1 sibling, 1 reply; 16+ messages in thread
From: Alex Kost @ 2016-01-03  9:02 UTC (permalink / raw)
  To: Fabio Pesari; +Cc: guix-devel

Fabio Pesari (2016-01-02 22:45 +0300) wrote:

> Sorry to bump an old thread but I agree with the OP that tags in
> packages would be very helpful, and I can think of at least one use case
> in which they might be necessary: games.

I also think tags may be useful (especially searching by tags).  In the
worst case it will do no harm.  If you don't want to use tags, you
can ignore them.

-- 
Alex

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2016-01-03  9:02 ` Alex Kost
@ 2016-01-03 14:20   ` Ludovic Courtès
  2016-01-03 14:34     ` Fabio Pesari
  0 siblings, 1 reply; 16+ messages in thread
From: Ludovic Courtès @ 2016-01-03 14:20 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel, Fabio Pesari

Alex Kost <alezost@gmail.com> skribis:

> Fabio Pesari (2016-01-02 22:45 +0300) wrote:
>
>> Sorry to bump an old thread but I agree with the OP that tags in
>> packages would be very helpful, and I can think of at least one use case
>> in which they might be necessary: games.
>
> I also think tags may be useful (especially searching by tags).  In the
> worst case it will do no harm.  If you don't want to use tags, you
> can ignore them.

We must also keep in mind the cost of maintaining them and the
associated infrastructure.

Ludo’.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2016-01-02 19:45 Adding tags to packages Fabio Pesari
  2016-01-03  9:02 ` Alex Kost
@ 2016-01-03 14:33 ` Ludovic Courtès
  2016-01-03 16:22   ` Ricardo Wurmus
  2016-01-04 23:30   ` Ludovic Courtès
  1 sibling, 2 replies; 16+ messages in thread
From: Ludovic Courtès @ 2016-01-03 14:33 UTC (permalink / raw)
  To: Fabio Pesari; +Cc: guix-devel

Fabio Pesari <fabiop@gnu.org> skribis:

> In short, I think tags are a simple solution to a problem that's been
> around for many years, and the fact that it wasn't done properly in the
> past is purely anecdotal and doesn't mean it can't be done properly now.

As discussed before¹, even though I’m sympathetic to the approach, I
believe experience suggests that tags are not a success.

The main reason is probably that it provides a UI that’s more “complex”
than plain-text/regexp search, and that plain-text search works “well
enough” most of the time.

As Alex writes, one can always choose not to use tags; this would be an
argument for implementing them.  However, it seems to me that the cost
of implementing and maintaining them would be high enough (the
implementation itself may not be that trivial if we want a query
language, i18n, RDF(?), and whatnot.)

What about exploring ways to improve --search?

I can think of a very simple improvement to make: make it so that

  guix package -s '\<board\>' -s game

returns packages that match *both* regexps instead of one or the other
as is currently the case?  We could make a similar change in guix.el.

A second idea would be to rank search matches based on the number of
occurrences of the regexps and their location (package name
vs. description.)

Thoughts?

Thanks,
Ludo’.

¹ https://lists.gnu.org/archive/html/guix-devel/2015-07/msg00198.html

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2016-01-03 14:20   ` Ludovic Courtès
@ 2016-01-03 14:34     ` Fabio Pesari
  2016-01-03 15:04       ` Ludovic Courtès
  0 siblings, 1 reply; 16+ messages in thread
From: Fabio Pesari @ 2016-01-03 14:34 UTC (permalink / raw)
  To: Ludovic Courtès, Alex Kost; +Cc: guix-devel

On 01/03/2016 03:20 PM, Ludovic Courtès wrote:
>
> We must also keep in mind the cost of maintaining them and the
> associated infrastructure.
> 
> Ludo’.

Sorry but what does maintaining tags mean? I'm not talking about a user
tag system like Libre.fm, I'm talking about a simple tag list in package
definitions, a field like "synopsis" or "description" which refers to a
list of tags.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2016-01-03 14:34     ` Fabio Pesari
@ 2016-01-03 15:04       ` Ludovic Courtès
  2016-01-03 15:31         ` Fabio Pesari
  0 siblings, 1 reply; 16+ messages in thread
From: Ludovic Courtès @ 2016-01-03 15:04 UTC (permalink / raw)
  To: Fabio Pesari; +Cc: guix-devel, Alex Kost

Fabio Pesari <fabiop@gnu.org> skribis:

> On 01/03/2016 03:20 PM, Ludovic Courtès wrote:
>>
>> We must also keep in mind the cost of maintaining them and the
>> associated infrastructure.
>> 
>> Ludo’.
>
> Sorry but what does maintaining tags mean? I'm not talking about a user
> tag system like Libre.fm, I'm talking about a simple tag list in package
> definitions, a field like "synopsis" or "description" which refers to a
> list of tags.

Maintaining tags means agreeing on a set of tags and adjusting it as we
see fit, adding tags to existing packages, reviewing them for new
packages, etc.

Ludo’.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2016-01-03 15:04       ` Ludovic Courtès
@ 2016-01-03 15:31         ` Fabio Pesari
  2016-01-03 22:37           ` Ludovic Courtès
  0 siblings, 1 reply; 16+ messages in thread
From: Fabio Pesari @ 2016-01-03 15:31 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel, Alex Kost

On 01/03/2016 04:04 PM, Ludovic Courtès wrote:
>
> Maintaining tags means agreeing on a set of tags and adjusting it as we
> see fit, adding tags to existing packages, reviewing them for new
> packages, etc.

I can see why this might sound like a lot of work, but what if all
distros worked together on a common database? It's a problem all package
repositories have, after all, and there's no need to have multiple
people write tags for the same packages over and over.

The Free Software Directory could be used for that purpose, and tags
could be generated from its categories by using the MediaWiki API.

For this purpose, some works needs to be done on the FSD. For example:

https://directory.fsf.org/wiki/Nethack

Nethack isn't really an adventure game, and "Game:roguelike" should also
be a category, but I think that this could work (and as a result of it,
the FSD would gain more contributions and exposure).

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2016-01-03 14:33 ` Ludovic Courtès
@ 2016-01-03 16:22   ` Ricardo Wurmus
  2016-01-03 17:15     ` Ludovic Courtès
  2016-01-04 23:30   ` Ludovic Courtès
  1 sibling, 1 reply; 16+ messages in thread
From: Ricardo Wurmus @ 2016-01-03 16:22 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel, Fabio Pesari


Ludovic Courtès <ludo@gnu.org> writes:

> As Alex writes, one can always choose not to use tags; this would be an
> argument for implementing them.  However, it seems to me that the cost
> of implementing and maintaining them would be high enough (the
> implementation itself may not be that trivial if we want a query
> language, i18n, RDF(?), and whatnot.)

I understood the request to mean that a new field would be added that
contained words or phrases that are not easily/naturally added to the
description or synopsis field.  Search would just have to also check for
matches against the strings contained in the proposed tags field.

What would adding a query language for tags bring us that would outweigh
the cost of implementing it?  Wouldn’t it solve most of the problems if
we just added a field holding “additional” search terms for all those
useful terms that are not otherwise contained in the description or
synopsis?

~~ Ricardo

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2016-01-03 16:22   ` Ricardo Wurmus
@ 2016-01-03 17:15     ` Ludovic Courtès
  2016-01-04  9:19       ` Pjotr Prins
  0 siblings, 1 reply; 16+ messages in thread
From: Ludovic Courtès @ 2016-01-03 17:15 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel, Fabio Pesari

Ricardo Wurmus <rekado@elephly.net> skribis:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> As Alex writes, one can always choose not to use tags; this would be an
>> argument for implementing them.  However, it seems to me that the cost
>> of implementing and maintaining them would be high enough (the
>> implementation itself may not be that trivial if we want a query
>> language, i18n, RDF(?), and whatnot.)
>
> I understood the request to mean that a new field would be added that
> contained words or phrases that are not easily/naturally added to the
> description or synopsis field.  Search would just have to also check for
> matches against the strings contained in the proposed tags field.

Should it be just words or tuples?  Debtags does something relatively
fancy, like ‘works-with’ tag: <http://debtags.debian.net/reports/facets>.

> What would adding a query language for tags bring us that would outweigh
> the cost of implementing it?  Wouldn’t it solve most of the problems if
> we just added a field holding “additional” search terms for all those
> useful terms that are not otherwise contained in the description or
> synopsis?

As an example, Debtags comes with a query language:

  https://wiki.debian.org/Debtags/SearchHelp

Tags are more than keywords in this case.

The query language helps users make fine-grain searches.  I think tags
would be much less useful without it.  But this is non-trivial
development work.

Ludo’.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2016-01-03 15:31         ` Fabio Pesari
@ 2016-01-03 22:37           ` Ludovic Courtès
  0 siblings, 0 replies; 16+ messages in thread
From: Ludovic Courtès @ 2016-01-03 22:37 UTC (permalink / raw)
  To: Fabio Pesari; +Cc: guix-devel, Alex Kost

Fabio Pesari <fabiop@gnu.org> skribis:

> The Free Software Directory could be used for that purpose, and tags
> could be generated from its categories by using the MediaWiki API.

Sharing data with the FSD in general sounds like a good idea.  I don’t
know how well its categories would work for us.

It doesn’t seem to address all my concerns about tags, though.  ;-)

Ludo’.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2016-01-03 17:15     ` Ludovic Courtès
@ 2016-01-04  9:19       ` Pjotr Prins
  0 siblings, 0 replies; 16+ messages in thread
From: Pjotr Prins @ 2016-01-04  9:19 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel, Fabio Pesari

On Sun, Jan 03, 2016 at 06:15:32PM +0100, Ludovic Courtès wrote:
> Tags are more than keywords in this case.
> 
> The query language helps users make fine-grain searches.  I think tags
> would be much less useful without it.  But this is non-trivial
> development work.


The idea of a simple tag system is appealing. Even without approved
tags. I think we can add it, even if it grows wild and wrong. It is a
simple form of metadata that can be useful for specific purposes
(games, bioinformatics). I don't think we need to approve tags - let
the relevant parties sort it for themselves. Tags should be single
words, so multiple can be listed, that would be the main criterium.

Even so, I agree with you that a fully searchable meta-data would be
extremely useful too, i.e., how do we find relevant software when we
need it. This is an effort that spans distributions, for sure.
Because GNU Guix has no tags at all, I was thinking of creating a
tagging system for bioinformatics outside GNU Guix, possibly using
wikipedia infrastructure and RDF. Not sure that is really the best
way, but if it works it would address the need for finding relevant
software.

Please, let's not try to make this complicated. We are no Debian.

Pj.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Adding tags to packages
  2016-01-03 14:33 ` Ludovic Courtès
  2016-01-03 16:22   ` Ricardo Wurmus
@ 2016-01-04 23:30   ` Ludovic Courtès
  1 sibling, 0 replies; 16+ messages in thread
From: Ludovic Courtès @ 2016-01-04 23:30 UTC (permalink / raw)
  To: Fabio Pesari; +Cc: guix-devel

ludo@gnu.org (Ludovic Courtès) skribis:

> I can think of a very simple improvement to make: make it so that
>
>   guix package -s '\<board\>' -s game
>
> returns packages that match *both* regexps instead of one or the other
> as is currently the case?  We could make a similar change in guix.el.

Done in db5a944.

Ludo’.

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2016-01-04 23:30 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-02 19:45 Adding tags to packages Fabio Pesari
2016-01-03  9:02 ` Alex Kost
2016-01-03 14:20   ` Ludovic Courtès
2016-01-03 14:34     ` Fabio Pesari
2016-01-03 15:04       ` Ludovic Courtès
2016-01-03 15:31         ` Fabio Pesari
2016-01-03 22:37           ` Ludovic Courtès
2016-01-03 14:33 ` Ludovic Courtès
2016-01-03 16:22   ` Ricardo Wurmus
2016-01-03 17:15     ` Ludovic Courtès
2016-01-04  9:19       ` Pjotr Prins
2016-01-04 23:30   ` Ludovic Courtès
  -- strict thread matches above, loose matches on Subject: below --
2015-07-08  7:41 Pjotr Prins
2015-07-08  9:24 ` John Darrington
2015-07-08 12:55   ` Ludovic Courtès
2015-07-08 13:55   ` Pjotr Prins

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).