owncloud / core

:cloud: ownCloud web server core (Files, DAV, etc.)
https://owncloud.com
GNU Affero General Public License v3.0
8.36k stars 2.06k forks source link

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

Closed jancborchardt closed 3 years ago

jancborchardt commented 11 years ago

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«):

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 commented 10 years ago

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

alexisread commented 10 years ago

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 commented 10 years ago

As mentioned IRC etc. there is a generic tagging library. More details in https://github.com/owncloud/apps/issues/1124#issuecomment-35301338

bernic commented 10 years ago

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 commented 10 years ago

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 commented 10 years ago

@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 commented 10 years ago

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 commented 10 years ago

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 commented 10 years ago

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 commented 10 years ago

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 commented 10 years ago

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 #6260https://github.com/owncloud/core/pull/6260 .

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

ockham commented 10 years ago

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 commented 10 years ago

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:

ockham commented 10 years ago

Please review: #11383

Bugsbane commented 10 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

Ticket about implementing favorites/star/bookmark for files using the existing tags system: https://github.com/owncloud/core/issues/2368

stevenbuehner commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

@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 commented 9 years ago

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:

...or they wish to share:

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 commented 9 years ago

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 commented 9 years ago

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.

jospoortvliet commented 9 years ago

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

oparoz commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

@Bugsbane's request: https://github.com/owncloud/core/issues/13168

Bugsbane commented 9 years ago

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

oparoz commented 9 years ago

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

Bugsbane commented 8 years ago

Tagging seems, according to https://github.com/owncloud/core/issues/16325 to be targeted for v9. Possibly we should (ironically) be tagging this with both feature:tags and milestone 9.0-current

matlag commented 8 years ago

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 commented 8 years ago

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 commented 8 years ago

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