Server: Tag usage through ~all apps

Created on 3 Jan 2019  路  18Comments  路  Source: nextcloud/server

Is your feature request related to a problem? Please describe.

  • I can tag my files, and so my photos
  • I can categorize my notes
  • I can tag my bookmarks
  • I can categorize my tasks

First problem:

  • I can have many tags for files & bookmarks
  • I can have many categories for tasks
  • I can have only one category for notes

So two terms and two behaviors, but they do not match.

Describe the solution you'd like

I would like to be consistent:

  • Have tags everywhere, thus allowing to have many tags for one object
  • Tags list being shared between apps.

Additional context

  • This will allow a consistent taxonomy on your objects (tasks, bookmarks, ....)
  • This will induce a capability to find all objects related to a tag.

Example:
I use the tag recipe to track my recipes, and the tag cooking for the things to try in the kitchen
I have a pdf of a recipe, which I tag with cooking and recipe
I pasted another recipe in a note, which I only tag recipe because I already did it with my mother last week.
I bookmarked a third recipe, and tag it with cooking and recipe
I uploaded a photo of a recipe from a book taken during a trip in Italy, which I tag with cooking and recipe
I create a task Schedule invitations for cooking tag which I tag with cooking

We may then envision to have a global tag search, so that if I search for tag cooking, it will show me all the objects tagged with it (files, photos, tasks, bookmarks, notes).

0. Needs triage enhancement

Most helpful comment

I will try to create an overall synthesis that can be useful to the developers. And then @MorrisJobke will have the possibility to manage the issue more quickly.

Two considerations:

  1. the fact that a tag is a system tag should be optional?
  • If not, probably that would mean that the number of system tags could be bigger; that could lead to the necessity of better tools for the management of tags
  • If yes, that would add a different complexity in the attribution of a tag to an object (contact, calendar item, ...) or in the management of tags; for each tag the user should decide if it is a system tag or not
  1. maybe I am off track but this issue could be related to #13478 . We could have an unique "definition" of tags in all the apps as well as an unique "definition" of user groups in all the apps

list of App related issues:

  • announcementcenter nextcloud/announcementcenter#2
  • bookmarks nextcloud/bookmarks#794
  • calendar nextcloud/calendar#107
  • circles nextcloud/circles#335
  • contacts nextcloud/contacts#310
  • deck nextcloud/deck#201
  • Mail nextcloud/mail#25 (issue on the possibility to tag messages, not on tagging integration)
  • news nextcloud/news#386 (issue on the possibility to tag newsfeeds, not on tagging integration)
  • notes nextcloud/notes/issues/299
  • polls (not possible to use tagging now. Could it make sense?)
  • Radio (not possible to use tagging now. Could it make sense?)
  • Tasks nextcloud/tasks#89
  • Maps https://github.com/nextcloud/maps/issues/181 (if I get well the issue, it is about displaying and adding tags in the app)

I did not insert apps like Audio Player because I think that mixing the tags internal to Nextcloud with the tags that derive from metadata inserted in the file format (like MP3) is another issue.

All 18 comments

It seems to me that this tags unification for all the apps was already considered.
Maybe @nickvergessen can provide additional information and decide how to deal with this issue.

Related issue in Tasks repository: https://github.com/nextcloud/tasks/issues/89

I did not manage to find a similar issue for bookmarks and notes (I did a quick search...)

Yeah, we have "System tags" which should serve exactly this purpose. So in theory you should open a new issue in all of the affected apps and ask them to use the system tags instead of implementing yet another tagging system.

Maybe the way to integrate "System tags" could be a bit more straightforward?

@nickvergessen Is it useful to collect here the issues in all the different apps?

For example in deck there is https://github.com/nextcloud/deck/issues/201 ; in calendar there is https://github.com/nextcloud/calendar/issues/107

I will try to create an overall synthesis that can be useful to the developers. And then @MorrisJobke will have the possibility to manage the issue more quickly.

Two considerations:

  1. the fact that a tag is a system tag should be optional?
  • If not, probably that would mean that the number of system tags could be bigger; that could lead to the necessity of better tools for the management of tags
  • If yes, that would add a different complexity in the attribution of a tag to an object (contact, calendar item, ...) or in the management of tags; for each tag the user should decide if it is a system tag or not
  1. maybe I am off track but this issue could be related to #13478 . We could have an unique "definition" of tags in all the apps as well as an unique "definition" of user groups in all the apps

list of App related issues:

  • announcementcenter nextcloud/announcementcenter#2
  • bookmarks nextcloud/bookmarks#794
  • calendar nextcloud/calendar#107
  • circles nextcloud/circles#335
  • contacts nextcloud/contacts#310
  • deck nextcloud/deck#201
  • Mail nextcloud/mail#25 (issue on the possibility to tag messages, not on tagging integration)
  • news nextcloud/news#386 (issue on the possibility to tag newsfeeds, not on tagging integration)
  • notes nextcloud/notes/issues/299
  • polls (not possible to use tagging now. Could it make sense?)
  • Radio (not possible to use tagging now. Could it make sense?)
  • Tasks nextcloud/tasks#89
  • Maps https://github.com/nextcloud/maps/issues/181 (if I get well the issue, it is about displaying and adding tags in the app)

I did not insert apps like Audio Player because I think that mixing the tags internal to Nextcloud with the tags that derive from metadata inserted in the file format (like MP3) is another issue.

Thanks @Spartachetto for consolidating information.
I will try to open missing issues this week on notes & bookmarks.
Mails are not shareable, I would rather ask for a "Save to nextcloud as HTML", in the same way we can save attachments.
News can be shared, so that is another way to think about it.
IMO, it makes sense for polls. A poll is rarely a standalone task, but rather an item in a project, a workflow, which is my purpose for tags. To reuse my example, I may set a poll to let my guests choose their recipe :)

@mat-m What do you mean by "Mails are not shareable"?

If you are interested in _sharing_ different kinds of objects together, you could be interested in the idea of collections ( #11015 ).

As you were describing the use of system tags as a classification of all your different objects related to something, I have the impression that emails could be of interest.

Mind to clarify why you do not agree? Thank you in advance!

@Spartachetto , Mailboxes are only IMAP, so mails are on the server. I don't see a way to share a mail that is in your mailbox with others.
Collections are one way to do it, but I also think that having a centralized tags definition is a key point for data and metadata consistency.

If this global use of system tags will be realized, #2143 would be even more useful....

I do not know if you would include also #16885 here. @nickvergessen what do you think?

Could someone point to documentation on how to integrate system tags?

This is probably the relevant public API, however, as usual, it's quite minimal. If there is a feature in core that is supposed to be used by apps, I would expect to see explanations and guides on how it works and how it is supposed to be used. The absence of documentation, makes it clear why no app developer has implemented this. As it is, the developer experience in general is quite underwhelming atm, IMHO.

As @marcelklehr is an experienced app developer, I think it is a warning sign if even he thinks that the documentation is lacking.

I do not know if @nickvergessen is the right one to solve the problem. Otherwise maybe he can pass the message to the right persons...

If you have a specific question I may be able to point you to some code. But I'm pretty bad at writing generic documentations. Mean while the API docu is down temporarily, but yeah https://github.com/nextcloud/server/tree/5bf3d1bb384da56adbf205752be8f840aac3b0c5/lib/public/SystemTag is your home. Use ISystemTagManager to get/create a tag and ISystemTagObjectMapper to add it to and remove it from items, or get the list of tags on an item.

Your items identify by the object type (files e.g. for the system tags you can put on files) and an object id (the file id for files, in talk we would use the conversation token, etc). Hope that helps?

CLosing as dedicated tickets have been created

Was this page helpful?
0 / 5 - 0 ratings