From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Kitchin Subject: Re: Ad-hoc, mix-and-match tag hierarchies? Date: Sat, 03 Feb 2018 19:18:37 -0800 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42029) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eiApH-0001bJ-Sd for emacs-orgmode@gnu.org; Sat, 03 Feb 2018 22:18:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eiApG-00017I-Bx for emacs-orgmode@gnu.org; Sat, 03 Feb 2018 22:18:43 -0500 Received: from mail-pl0-x22c.google.com ([2607:f8b0:400e:c01::22c]:40100) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eiApG-000176-21 for emacs-orgmode@gnu.org; Sat, 03 Feb 2018 22:18:42 -0500 Received: by mail-pl0-x22c.google.com with SMTP id g18so9316184plo.7 for ; Sat, 03 Feb 2018 19:18:42 -0800 (PST) In-reply-to: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Lawrence Bottorff Cc: emacs-orgmode Mailinglist , Kaushal Modi I don't think you are missing anything. Your first example leverages inheritance (and you can turn that off if you don't want it), and your second example doesn't. In any case, the order of the tags is irrelevant. To me the real question is what do you want to use them for? I use them in agenda queries, and there the order is not important. That is a nice feature, since you don't have to know the hierarchy, and can query emacs+lisp or lisp+emacs for example and get the same things. Suppose you have the headers at the end of this email. These: (org-tags-view nil "emacs+lisp") (org-tags-view nil "lisp+emacs") both show in the agenda (these are in a file called 2018-02-03.org) 2018-02-03: header 1.1.1 :emacs:orgmode::lisp: 2018-02-03: header b :emacs:orgmode:lisp: 2018-02-03: header B :lisp:emacs:orgmode: Note that header 1.1.1 has all the tags from inheritance, and the other two have all the tags in different orders. You can use a query like "emacs-orgmode" to get headlines tagged emacs and not tagged orgmode. * header 1 :emacs: ** header 1.1 :orgmode: *** header 1.1.1 :lisp: stuff about Emacs' org-mode's lisp code * header a :emacs: stuff about Emacs * header b :emacs:orgmode:lisp: stuff about Emacs' org-mode's lisp code * header B :lisp:emacs:orgmode: The tag order is not important * header c :lisp: stuff about just Common Lisp * header d :emacs:orgmode: stuff about Emacs' org-mode * header e :emacs: more stuff about Emacs Lawrence Bottorff writes: > So a left-to-right listing of (colon-separated) tags after the heading > cannot imply a higher-to-lower hierarchical order? So there is no hierarchy > unless you create it, e.g., > > (setq org-tag-alist '((:startgrouptag) > ("GTD") > (:grouptags) > ("Control") > ("Persp") ... > > -- is what I'm hearing. > > What I meant to do is to be able to use tags alone or together. And when > used together, to somehow imply hierarchy. So if I have > > * header 1 :emacs: > > ** header 1.1 :orgmode: > > *** header 1.1.1 :lisp: > stuff about Emacs' org-mode's lisp code > > this implies subject hierarchy simply from the headers' hierarchy. However > this > > * header 1 :emacs: > stuff about Emacs > * header 2 :emacs:orgmode:lisp > stuff about Emacs' org-mode's lisp code > * header 3 :lisp: > stuff about just Common Lisp > * header 4 :emacs:orgmode: > stuff about Emacs' org-mode > * header 5 :emacs: > more stuff about Emacs > > is all peers header-wise, while the tags (if using left-to-right listing to > mean higher to lower in hierarchy) tell us the depth level of > specialization of a topic. The first set of headers is relying (clumsily) > on the header level to indicate depth of specialization, which is not > always realistic. If I wanted, ad-hoc, to indicate levels of some hierarchy > with tags, that is, not be forced to create empty superior headers, it > seems there's no prescribed way to do this. And creating tag hierarchies > by hand, i.e., (setq org-tag-alist '((:startgrouptag)..., makes me play the > combinatorics game of imagining all different possible hierarchy > combinations. Or am I missing something? > > On Thu, Feb 1, 2018 at 10:36 AM, Kaushal Modi > wrote: > >> On Thu, Feb 1, 2018 at 10:30 AM John Kitchin >> wrote: >> >>> I was not aware of any implied hierarchy with tags. The order is not >>> important as far as I know, and what you describe as mix-and-match seems >>> ok. There is an idea of inheritance, e.g. sub-headings can inherit tags >>> from higher headings. >>> >> >> Same here. >> >> >>> I am not sure about the org-mode tag. >>> >> >> "-" is an invalid tag character.. the tag can be "org_mode", but not >> "org-mode". Last time I tried using hyphen, I remember that the tag >> auto-alignment would stop working (C-u C-c C-q) and also the tag face won't >> be applied. >> >> @Lawrence: >> >> You can have tag inheritance this way: >> >> * Emacs :emacs: >> Emacs stuff >> ** Lisp :lisp: >> Emacs lisp stuff here >> *** Org :org_mode: >> Emacs + Lisp + Org mode stuff >> ** Org :org_mode: >> Emacs + Org mode stuff (but not lisp) >> -- >> >> Kaushal Modi >> -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu