Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design forward: Global grouping system (categories/tags/topics/…) [$20] #3812

Closed
jancborchardt opened this issue Jun 21, 2013 · 34 comments
Closed

Comments

@jancborchardt
Copy link
Member

jancborchardt commented Jun 21, 2013

First let me say: It might be a surprise to you that I think tags are a good idea now. This is only when the system is holistic and across the whole platform – and when tags are the main/only system of categorization, not tacked on as an afterthought. Here we go:

There are several apps which use grouping, for instance Contacts, Bookmarks, (Files uses folders), etc. The problem is that every app uses their own system, which makes the whole thing a chore of repeatedly needing to organize your things.

But this can become a powerful system to aid filtering and search when these tags are shared across apps. @tanghus told me that there’s already backend code for it there, just not used / hooked up / finished yet.

Example: I would have tags for: »Design«, »ownCloud«, »Read«, »Watch«, »Psychology«, »Philosophy«, »Games«, »Nomadism«, »Berlin«, »San Francisco«, »Munich«, etc etc., so it would be topics, places, type of content, what to do with it, projects, and more. I currently use these manually in my apps for notes, reading stuff later, contacts, file system, news app, …. I guess you get the point because you probably also use tags or whatever system of categorization where these categories overlap across apps.

Another example: Planning your next vacation and you have a shared task list, some bookmarks, some files and some people you’re traveling with? No problem, just create the tag »Vacation yeah!« and share it with the friends involved in it!
Now no matter where you first created that tag (let’s say in the Files app to share a folder), it will also be available in the other apps for autocompletion.

Then there would need to be a view where you can see all the items in that category, even if they are across apps (easiest way: Show which other apps make use of that tag. Or show images or names of task lists directly).

Here’s a bit more of a stretch and maybe not a good idea, but it could even be automatic – wherever you create a tag, it will also be created in other apps (albeit we will probably not use the word »Tag« for it. Maybe rather »Topic«):

  • Files can have a »bookmark« type quick filter in the sidebar, like other file managers
  • Contacts will have a group of which the contacts you shared the topic with are members of
  • Calendar will have a calendar named by that topic, automatically shared with those people.
  • Tasks will have a task list named by that topic, automatically shared with those people.
  • Bookmars will have a category …
  • Pictures will have an album …
  • News will have a folder …

Now I think the first step would be to get the apps which already use a notion of tags to use this. Namely Bookmarks @eMerzh and Contacts @tanghus (because contacts can be in multiple groups).

I’m guessing @tanghus likes this (and would like to help implementing it ;)
cc app devs @icewind1991 @georgehrke @eMerzh @Raydiation @zimba12 @bartv2

What do you think? @karlitschek @MTRichards @butonic @DeepDiver1975

@MTRichards
Copy link
Contributor

I equate this to the meta data conversation as well, where you can comment on files and track this along with tags.

@alexisread
Copy link

I've been pulling in some of the contacts backend (on my uncommitted branch) to allow files to use webdav properties. The UI has needed to be altered as below. Comments welcome as I'd like to stay in-keeping with the OC style...

image

@tanghus
Copy link
Contributor

tanghus commented Feb 23, 2014

As mentioned IRC etc. there is a generic tagging library. More details in owncloud-archive/apps#1124 (comment)

@bernic
Copy link

bernic commented Feb 27, 2014

Completely agree with the idea though I do not get everything:

"Here’s a bit more of a stretch and maybe not a good idea, but it could even be automatic – wherever you create a tag, it will also be created in other apps (albeit we will probably not use the word »Tag« for it. Maybe rather »Topic«)"

Why? I would think that when you create a tag it can then be used by any application, you do not need to automatically duplicate it for all applications.
I would also think that whenever you create a tag from an application it is immediately available in the tag appli and hence for all other applications.

to expand on your ideas, I would say that we need a tag appli from where we can manage tag:
-create tag
-delete tag
-browse tags and their content as in a file system
Tags should be hierarchical as it adds a lot of flexibility, and help maintain a certain degree of tidiness. (you can very quickly have a huge number of tags, and if you do not classify them, they become less useful as they are too many)

Tags will be very useful to regroup everything that share something in common and share them in one click even if these are files, contact, calendars,... that are dispersed in owcloud and would require currently a lot of effort to be shared (many click and a lot of navigation in the different app to find the data to be shared.)

It could also be very efficient to find all the files you have shared so far, if a "shared" tag was automatically created upon sharing, as currently (unless there is already a way to do it?) it is not possible to view all the files we have shared with others at once

@tanghus
Copy link
Contributor

tanghus commented Feb 28, 2014

First: Let's just call them Tags for now ;)

We need to distinguish between (at least) two kinds of Tags:

  1. Tags that creates a relation between objects of the same kind, which would make no sense to be used inter-app. As an example in the Contacts app the standard Tags are Friends, Family, Work and in Calendar app Birthday, Business, Call, Clients, Deliverer, Holidays, Ideas, Journey etc. Some of these Tags correlate, but that is purely by coincidence, and I don't want for example to group my contacts by "Ideas" :D
  2. Tags that creates relations between object of different kinds. That could be Holiday/Journey, Call, Business/Work - you probably have a lot more ideas than what springs to my mind atm. :)

The existing Tags library is very basic and only deals with the 1. - I made it because the implementations I've dealt with made duplicate/empty tags and was a generally a mess, and I haven't given much thought to the 2. simply because I haven't had much use for it.

But let me emphasize that I'm very much against hierarchical tags; it leads to a reintroduction/duplication of hierarchical filesystems, which I hope we all know has it's way of creating an unholy mess ;)

Wrt. shared objects I believe that's already possible and done in the Activities app, but I haven't tried it so I'm not sure.

@jancborchardt
Copy link
Member Author

@alexisread do you have that branch as a Work-in-Progress pull request? Looks like it should be combined with the general sidebar idea for Files, see #6260.

@bernic
Copy link

bernic commented Feb 28, 2014

Hi
Hierarchical tags is very different from hierarchical file system.
For the very reason that a tagged object can exist in different leaves of the tree, whereas it can't in a file system.
When you begin to have huge number of tags, the flat system is also prone to huge mess. Personally I tried the bookmark application and I stopped using it because I have too many keywords to type, I found it very time consuming to tag bookmarks. More over I have ended up with duplicates tags all over the place, using synonyms, because after a while I could not remember if I used "computer" or "computer science",... just because I could not see which tag already existed.
It is not a coincidence if most photo management system uses a hierarchical system, because you very quickly ends up with several tens thousands of keywords which is absolutely unusable in a flat keyword organisation.
Note that google mail has also introduced this feature from user demand even if I find it not very well implemented I use it a lot

But I get your point.
I suppose people have different brains and so different ways of working.

But the good part of hierarchical tags is that you can use them as none hierarchical whereas if you implement a none hierarchical tag system you will never be able to go back.
While I respect your point of view, I think a system should never get in the user way, and the user should ultimately be the one that decides. So if you can create a system that can do both seamlessly you should.
regards

@jancborchardt
Copy link
Member Author

Just for the record: Let’s not talk about hierarchical tags at this point. We’re not even at the stage that simple tagging works.

@tanghus
Copy link
Contributor

tanghus commented Feb 28, 2014

More over I have ended up with duplicates tags all over the place, using synonyms, because after a while I could not remember if I used "computer" or "computer science",... just because I could not see which tag already existed.

That is an implementation detail. Of course the system should suggest already existing tags.
One good implementation I've seen is Firefox's Smartbar (or whatever they call it?). It combines searching with the default search engine with searching through tags, and I think that approach would fit very well in ownCloud. A thing it's missing is that it should show whether the result is based on a general search or a tag - or both :)

@fpiraneo
Copy link

fpiraneo commented Mar 3, 2014

Hi all,
as reported on some other discussions referenced here (i.e. the issue 1124) I've developed a tag application that allows the user to insert, arrange and modify tags on owncloud (sources available here: https://github.com/fpiraneo/oclife); these tags can be assigned to files and when selecting one or more tags on the tag app on the right side the file's thumbnail with the tags assigned are shown.
I've developed this app completely ignorant of such exigence and existing library reported by tanghus; moreover it's possible the use of imagemagick library to generate thumbnails of broader image type.
As underlined by bernic a hierarchical tags would be great, yes I'm agree, actually oclife's tags are hierarchical and yes if user like tanghus doesn't like hierarchy on tags, the user is not compelled to use it, allowing great freedom of usability: If someone don't like hierarchy, just don't use it.
I have some plans on my mind for future development, I admit, I don't installed this app on my production owncloud, I'll do it in the next days, but everyone is encouraged to download and install it and report me his/her experience; any suggestion is welcome and I'll try to implement it. Let me know if my project can meet your wishes.

@alexisread
Copy link

I'm planning to do the tags extension in a few steps.

  1. I've submitted a pull request for the contacts app - some MVC
    refactoring mainly so I can get to grips with things.
  2. Change the current files app code structure over to the contacts style.
  3. Add on the sidebar and tags, using the current tagging structure.

As such, I was going to do the sidebar in the same fashion as the contacts
app (See the #3812 screenshot). I'm not sure what style people prefer (I
have no preference), but it would be best to be consistent ie. contacts and
files the same.
Currently my implementation changes very little of the files css to get
this look.

Note that it looks like the current tagging systems can't support
heirarchies. I'm envisioning the file heirarchy being navigable when a tag
is selected ie. the tags are merely filters on the filesystem.
What you can do as well is support file views (aka addressbooks in the
current OC structure), which would allow you to create independent files
heirarchies (aka alias trees).

What I'm trying to do is to put the tagging at a lower level, so that tags
can be exported/imported with the files via webdav. I'm not sure tag
heirarchies are compatible with that. Francesco's app supports tag
heirarchies for those that want it, and I don't see why we can't have both!

Cheers

On 28 February 2014 10:44, Jan-Christoph Borchardt <notifications@github.com

wrote:

@alexisread https://github.com/alexisread do you have that branch as a
Work-in-Progress pull request? Looks like it should be combined with the
general sidebar idea for Files, see #6260#6260
.


Reply to this email directly or view it on GitHubhttps://github.com//issues/3812#issuecomment-36339263
.

@ockham
Copy link
Contributor

ockham commented Aug 8, 2014

FWIW, I've started work on owncloud/contacts#38 which soon turned out to be more about core than contacts as that's where tags are implemented. I'm going to push a preliminary work-in-progress PR which enables tags sharing for contacts (but possibly also for other items) soon.

@ockham
Copy link
Contributor

ockham commented Aug 16, 2014

So here's my work-in-progress branch. Tested with contacts only, but nothing contacts-specific in the code, so it should work with other apps that use tags as well.

Known issues:

  • If the owner and the sharee both have a tag of the same name, there will probably some collision with unknown outcome (untested).
  • If the sharee tags a contact of their own with a shared tag, that contact will be counted in the owner's tagged items count as well, i.e. in the number right to the tag's name in the left column of the Contacts app.

@ockham
Copy link
Contributor

ockham commented Oct 1, 2014

Please review: #11383

@ockham ockham mentioned this issue Oct 1, 2014
@Bugsbane
Copy link

Bugsbane commented Oct 1, 2014

I'm curious how tagging items that are shared would eventually be handled. While it's contacts only for now, and this isn't an issue as contacts aren't shared, eventually if someone shares a photo, would the tags be set by the original uploader, on a per-user basis or editable by any user and visible to all?

Personally, my preference would be to have tags be added on a per user basis (everyone has their own set of tags), but with tags added by other people in the same group(s) also appearing, but differentiated from the users own tags. Then sorting could be separated in the left column by categories like "Tagged by me, tagged by others, tagged by anyone" etc.

I ask, because I could see the organization of this eventually extending out even beyond tags. If in future we have tags and comments, then something like ratings for photos and videos is a logical next step. If we have ratings then often we'll want to know what the average rating is (ie see the most important documents, or best photos first) but still want the freedom to rate them ourselves and have that take preference.

I understand that this is still some way off (I'm thrilled we're getting global tagging, period.) But just thought it was worth considering in the overall structure being set up.

@spoorun
Copy link

spoorun commented Oct 25, 2014

Zimbra does tags well, having or soon to have most of the features suggested below:

PER APP AND GLOBAL

All tags are global in the backend, but they can be hidden/displayed per app (and changed) via the UI.

E.g. A WaterProject tag could appear for Contacts, Notes, and Events, but IncompleteAddress tag would just appear under Contacts.

TAGS LIKE FOLDERS

Tags are treated like folders, and appear in the same part of the layout. User can choose to use folders, tags, searches, or any combination.

They don't need a separate area in the layout. This also prevents tag duplication, and ensures orderly information.

Tags could ideally replace folders for many of us.

GROUPING

When a lot of tags are available, they need the ability to be grouped (either hierarchically, non-hierarchically, or both) so that only the group names appear and the user can open each group to see the available tags.

FILTERING & APPLYING

When applying tags, the user should be able to drop object(s) (files, contacts etc..) onto a tag. When filering by tag the user should be able to multiselect a tag. Tags should selectable when a user creates an item (note, contact etc...)

If a user has a specific project - such as FootballClub - then the same tag may appear across contacts, photos, notes, emails, and events. When searching FootballClub the user should be able to choose to see items of all types, or just those of the app they are in.

SHARED TAGS

Zimbra manages to allow shared tags. If an item is shared with a user where such tag that does not exist, then the tag is retained for that user, and retained with the item, but greyed out in the UI. If the tag does already exist for that user (or is created manually), then it appears as usual.

@spoorun
Copy link

spoorun commented Oct 25, 2014

I think calling tags should be termed and appear within the UI as 'tags' rather than merging them within apps as 'bookmarks', 'task lists' and 'contact groups'. Those grouping mechanisms have quite different objectives and uses. Tags is for sorting, grouping, viewing and finding related items - and should be for all apps. Tags are like folders, but are more dynamic, and should be usable as well as or instead of folders. A well designed software would permit (user) folders to be dispensed with (at least within the UI). Contact groups are used for creating a group to be contacted simultaneously (as per vCard/CardDAV standards). Task lists and albums are more analogous, but perhaps more hard-wired than tags.

Mixing up tag and other app-specific terminology is unhelpful to users. E.g. In photos 'albums' should virtual albums - viewable by clicking on a folder, a tag, or a saved search term (and perhaps in future a location, a timeline period, or a person from contacts) - rather than having a separate 'album' paradigm.

@PVince81
Copy link
Contributor

Ticket about implementing favorites/star/bookmark for files using the existing tags system: #2368

@stevenbuehner
Copy link
Contributor

Hi there! I'd love to participate in the discussion of a non hierarchical tagging-app.
What do you think about grouping tags to be of a specific type. For example labels, cities, people, language and so on. Each Type is handled by a different php-class and therefore able to perform typespecific tasks.

The People-class for example could reference to a person in the adressbook whereas the City-class would generate a link to the citiy via GoogleMaps and Geo-Coordinates, ...

What do you think about the idea?

@Bugsbane
Copy link

Bugsbane commented Jan 4, 2015

the City-class would generate a link to the citiy via GoogleMaps
...
What do you think about the idea?

I think I'd rather Open Street Map. :)

@jancborchardt
Copy link
Member Author

@zocker22 these are all nice technical ideas. We should start out with the purpose though: What is the actual value we can provide to people? And then design solutions for that. :)

@Bugsbane
Copy link

Bugsbane commented Jan 6, 2015

The value we can provide is simply to make resources easily accessible based on the concepts and people that are relevant to the user.

Currently, having to use folder structures makes finding things difficult, as files can only be assigned to one folder / concept (eg. photos/personal/family or photos/location/barcelona but not both) rather than multiple concepts (eg my kids + travel + Barcelona + DSLR + personal + 2014)

While there are a lot of fancy and complicated (but very cool) potential uses, I submit that 99% of what 99% of users would actually use tagging for is simply finding and sharing the stuff they want to.

eg. They want to find:

  • "That document I worked on last week as part of project X" or...
  • "That photo of my kids on the beach in Barcelona that a bunch of my family members liked" or...
  • "That person that I emailed a couple of months ago about my taxes."

...or they wish to share:

  • "All of the photos of my kids that are my favorites, with my family"
  • "All of my tax documents with my accountant"
  • "My party music with my media player on the deck outside"

Personally, what I really want tagging for is to be able to:

  1. Share the best pictures of my kids with my family, while being able to sort them by both date, place and people involved
  2. See which ones were liked the best by my family members
  3. Let them give feedback such as ratings and later comments (no, comments aren't part of "tags")
  4. Identify sets of files related to specific projects (eg podcast and episode 51 and interviews)

@jancborchardt
Copy link
Member Author

That’s what I wanted to hear. :) Just making sure we don’t start a feature by talking about how cool it would be and how to implement it, but how it will be valuable to actual people.

@Bugsbane
Copy link

Bugsbane commented Jan 7, 2015

Just making sure we don’t start a feature by talking about how cool it would be and how to implement it

Lol. I'm just a user, without any ability to code / implement anything beyond a bug report or some graphic design. :) I have been desperately waiting for tags for a long time though, for the ability to do what I outlined above.

@jancborchardt jancborchardt modified the milestones: Maybe someday, backlog Mar 23, 2015
@jospoortvliet
Copy link

It looks like @Wattos has moved on and implemented an UI for this: https://github.com/Wattos/oc-custom-tags quite awesome, yes?

@oparoz
Copy link
Contributor

oparoz commented May 12, 2015

Sharing is just as important as tagging. I was about to suggest introducing virtual folders, but grouping via tags would work as long as these clusters can be shared. It's currently a pain to have to duplicate files several times just because they need to be shared in different combinations.

@Bugsbane
Copy link

Sharing is just as important as tagging.

Somewhere, I filed a feature request to be able to share by tag, which would solve this.

@oparoz
Copy link
Contributor

oparoz commented May 19, 2015

@Bugsbane's request: #13168

@Bugsbane
Copy link

Thanks @oparoz for being less lazy than I and doing the 15 seconds of research. ;-)

@oparoz
Copy link
Contributor

oparoz commented May 20, 2015

lol, I was just curious. Sometimes referenced issues are not an exact match :)

@Bugsbane
Copy link

Bugsbane commented Nov 6, 2015

Tagging seems, according to #16325 to be targeted for v9. Possibly we should (ironically) be tagging this with both feature:tags and milestone 9.0-current

@matlag
Copy link

matlag commented May 8, 2016

Resurrecting the thread to add some requests that may or may not belong here, but let's try:
If tags are to become a "main" feature, it would be appropriate they get easier to use:

When you deal with a lot of documents or photo, tagging them one by one is a real pain.
I would like to see a way to select a bench of documents and give them same tags all at once.

On a similar basis, tags should be visible when you browse a directory (I can't even figure out which photos are tagged and which are not!).

Finally, it would be really cool if one could make boolean operations on tags filter (eg: say I want to show photos of my house but maintain privacy of my family, I would use 'home' AND (NOT ('spouse' OR 'kid')).

@Bugsbane
Copy link

Bugsbane commented May 8, 2016

I would like to see a way to select a bench of documents and give them same tags all at once.

Agreed, although I'd add that there are many other uses for being able to select multiple files at once and apply an operation (delete, move, copy, add to music que etc).

Some kind of view for untagged files in the side bar would be useful as well.

@PVince81
Copy link
Contributor

PVince81 commented May 9, 2016

I suggest making separate tickets for these:

  1. make it possible to view sidebar entries with multiple selection
  2. adjust tags field to support showing/editing tags from multiple files
  3. improve "Tags" filter field to allow boolean operations

@DeepDiver1975 DeepDiver1975 changed the title Design forward: Global grouping system (categories/tags/topics/…) Design forward: Global grouping system (categories/tags/topics/…) [$20] Feb 7, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests