From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <emacs-orgmode-bounces+larch=yhetil.org@gnu.org>
Received: from mp12.migadu.com ([2001:41d0:2:4a6f::])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	by ms0.migadu.com with LMTPS
	id CFApFb1vRGJVkQAAgWs5BA
	(envelope-from <emacs-orgmode-bounces+larch=yhetil.org@gnu.org>)
	for <larch@yhetil.org>; Wed, 30 Mar 2022 16:57:01 +0200
Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	by mp12.migadu.com with LMTPS
	id kBP1Eb1vRGJ4ZwEAauVa8A
	(envelope-from <emacs-orgmode-bounces+larch=yhetil.org@gnu.org>)
	for <larch@yhetil.org>; Wed, 30 Mar 2022 16:57:01 +0200
Received: from lists.gnu.org (lists.gnu.org [209.51.188.17])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by aspmx1.migadu.com (Postfix) with ESMTPS id AAE5B15F28
	for <larch@yhetil.org>; Wed, 30 Mar 2022 16:57:00 +0200 (CEST)
Received: from localhost ([::1]:49728 helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <emacs-orgmode-bounces+larch=yhetil.org@gnu.org>)
	id 1nZZkp-0007A9-6Q
	for larch@yhetil.org; Wed, 30 Mar 2022 10:56:59 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52622)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <bdarcus@gmail.com>) id 1nZZkF-0007A0-H0
 for emacs-orgmode@gnu.org; Wed, 30 Mar 2022 10:56:23 -0400
Received: from [2a00:1450:4864:20::42c] (port=34311
 helo=mail-wr1-x42c.google.com)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <bdarcus@gmail.com>) id 1nZZkD-0003VA-Nr
 for emacs-orgmode@gnu.org; Wed, 30 Mar 2022 10:56:23 -0400
Received: by mail-wr1-x42c.google.com with SMTP id m30so29711365wrb.1
 for <emacs-orgmode@gnu.org>; Wed, 30 Mar 2022 07:56:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=7HnchfOpkWJIcE7PmcWDqxhphHgtj8uVqQ+M/ppRQ9k=;
 b=acJ/M6SZZtHnI0RviFXxBeH3oMlYX1EEWwA2TqdgXTBPPG6iBgQp4H/uh289XrDroe
 +oDUBSsFPMTZYCkI4EXIlp6EKl9F14RXpxhAc5yVRTy3BQZyzFyhHgwlAxmU8Lv7ZAcD
 oIuafCtbBFxz4NbKGgrGpqB8fn+vojY7huQ7WJwUXypndelSNss9I7sRJZoGhb4zMdJz
 z+dB6VtYc9wDndvjx1DOkkpytzvn48jQfCA3THFqw31qIbfMCtXV0k7DUlHaTghoezrX
 6HUEKEvzaeox3u4WFDe3c39zYc+ee7Ua79ZoD3tV/UYkAEAHtvoSbza2BprRzCBJrSOV
 Pz+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=7HnchfOpkWJIcE7PmcWDqxhphHgtj8uVqQ+M/ppRQ9k=;
 b=489LxN/GVqujx/5k6hRwT7ED+ivZilIcaJg2EvQBpNwd1h47l3OPE4G9hUc0wxDriv
 EfYWFLGGPWRAZdfrGtrwBkPgzAyo7aV0t3vyoZDni02/Ll6cFIE5Y4wPEUKUe6EyJKbK
 9DUKUGxpeuJuHis2YLLGokJ3SEsi1JukcybAmtlp0lX6F+IYIcGuYyB4y827NsRZsnCQ
 lOLY73I+Tw1PEBoz/rXpigNAl1yjXK/hEVWS8Xgtuq9FKt2XfX9cMxZf9qbd8f84lm2v
 EeRS5PTI3+CIYif3RDTGPcY+eYWzThyHZZQRtXU8VnZrxN7mR6+kWPSzKajT1gFk3yn9
 sgCg==
X-Gm-Message-State: AOAM530IElKZWiedYeCnO1bmjKsWJfyBBzaabhOcn5zP690Dmwm3vG+d
 jf1SrHtvGEfD8G5Vpdf6X7DYx32FjxceW4zlCAQ=
X-Google-Smtp-Source: ABdhPJxXkwpAbIXMdDTbr5zuN9iPCs2jZiuCBO5W34lHEI7yim6gWQHf7QQS58c+hADyCEHAkcFpqLOXaNgrtyPm8+Q=
X-Received: by 2002:a5d:6905:0:b0:205:d510:c73a with SMTP id
 t5-20020a5d6905000000b00205d510c73amr7192611wru.275.1648652180034; Wed, 30
 Mar 2022 07:56:20 -0700 (PDT)
MIME-Version: 1.0
References: <t21iov$sns$1@ciao.gmane.io>
In-Reply-To: <t21iov$sns$1@ciao.gmane.io>
From: "Bruce D'Arcus" <bdarcus@gmail.com>
Date: Wed, 30 Mar 2022 10:56:09 -0400
Message-ID: <CAF-FPGPrU3ev-ByrkK-a9R-E+q4FCYtF7fia6+FVDL2N50FnPg@mail.gmail.com>
Subject: Re: org-cite styles as flags (idea)
To: Max Nikulin <manikulin@gmail.com>
Content-Type: text/plain; charset="UTF-8"
X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::42c
 (failed)
Received-SPF: pass client-ip=2a00:1450:4864:20::42c;
 envelope-from=bdarcus@gmail.com; helo=mail-wr1-x42c.google.com
X-Spam_score_int: -6
X-Spam_score: -0.7
X-Spam_bar: /
X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no
X-Spam_action: no action
X-BeenThere: emacs-orgmode@gnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "General discussions about Org-mode." <emacs-orgmode.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/emacs-orgmode>,
 <mailto:emacs-orgmode-request@gnu.org?subject=unsubscribe>
List-Archive: <https://lists.gnu.org/archive/html/emacs-orgmode>
List-Post: <mailto:emacs-orgmode@gnu.org>
List-Help: <mailto:emacs-orgmode-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/emacs-orgmode>,
 <mailto:emacs-orgmode-request@gnu.org?subject=subscribe>
Cc: org-mode-email <emacs-orgmode@gnu.org>
Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org
Sender: "Emacs-orgmode" <emacs-orgmode-bounces+larch=yhetil.org@gnu.org>
X-Migadu-Flow: FLOW_IN
X-Migadu-To: larch@yhetil.org
X-Migadu-Country: US
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org;
	s=key1; t=1648652220;
	h=from:from:sender:sender:reply-to:subject:subject:date:date:
	 message-id:message-id:to:to:cc:cc:mime-version:mime-version:
	 content-type:content-type:in-reply-to:in-reply-to:
	 references:references:list-id:list-help:list-unsubscribe:
	 list-subscribe:list-post:dkim-signature;
	bh=7HnchfOpkWJIcE7PmcWDqxhphHgtj8uVqQ+M/ppRQ9k=;
	b=asYvRnP2UITKN7SEk4G2H2dviyuak9e3TcHlwxRVc2slex6HMaGH7rMM0qcV0dFXCO7OSP
	/653CcQ3+uhq72a//m73M36MAoNVt+tcAq2NhlUweUwd1w9xnvxMA1VkuXw+YhTcyoR23p
	Hv0do4e7xZfV20sfbLTXsj7KaOBCyY+XCFj5OWDL0XQ4EhqV1RSP75BOVgDlyVYw+TNtaB
	+zmOjV53A/t0KEhIeUiF8fjzGLKt912D+oOp48kqSwOnHeWpWhlwDkWLoJ8oUgtL3KymAB
	U9UiDnOO6ePyxmNJdueFkVWfj6Lmhl/25ckmvBdnyJVGZzYZcbSsXfaKFUWvug==
ARC-Seal: i=1; s=key1; d=yhetil.org; t=1648652220; a=rsa-sha256; cv=none;
	b=Xu/+TQakPq/NCBY3ksZyMy8mji/cA7+OppRkyraXxtX/HPpjMqKTCW/eWU4Op4zt5ROqMp
	itjYQM1odCgAIHl6zmVpwmgrV1f0B8XXO4p5YXzuTk+YWE2JzV5XUYTkBAty2UDvB6us4s
	8RmeyUXwNFyzWjjCfScks0Q2eoEbJevwPuyQjdb9izrxPcrL4X1RO+/ZGW3dFGFjO6Smeq
	+BnxDNUzCOVlQP8SDRIC8jd/LzFqppRZEyLhH1W/5QFbhc3V92R6x1yYI+b8qtY0U1aBS6
	heVq3Ptx6JhKYPmn9bu0QBFHuqnkHXZmM/zm0blvZ76nUxXAJw6Wzq+VUmBRBQ==
ARC-Authentication-Results: i=1;
	aspmx1.migadu.com;
	dkim=pass header.d=gmail.com header.s=20210112 header.b="acJ/M6SZ";
	dmarc=pass (policy=none) header.from=gmail.com;
	spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"
X-Migadu-Spam-Score: -6.07
Authentication-Results: aspmx1.migadu.com;
	dkim=pass header.d=gmail.com header.s=20210112 header.b="acJ/M6SZ";
	dmarc=pass (policy=none) header.from=gmail.com;
	spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"
X-Migadu-Queue-Id: AAE5B15F28
X-Spam-Score: -6.07
X-Migadu-Scanner: scn0.migadu.com
X-TUID: hZKNzm4MLwHw

On Wed, Mar 30, 2022 at 8:36 AM Max Nikulin <manikulin@gmail.com> wrote:
>
> Hi,
>
> In a recent thread it was discussed that currently style selection is
> not always obvious:
>
> John Kitchin. citations: org-cite vs org-ref 3.0.
> Sun, 27 Mar 2022 13:00:40 -0400.
> https://list.orgmode.org/m24k3jnq0k.fsf@andrew.cmu.edu
>
> > [cite/na/b:@key] or [cite/noauthor/bare:@key] to mean \citeyear{key}?
> >
> > Why wouldn't it be \citetitle? or \citeurl, or \citedate? or even,
> > \citenum?
> >
> > I get it, you can define [cite/noauthor/year:] or even [cite/year:] or
> > [cite/y:] and even [cite/citeyear:] to get the command in there, and
> > something for each of those other ones. Maybe even the documented
> > convention will change to some other potentially mnemonic form.
>
> It seems, no backends uses hierarchy of substyles. Please, correct me, I
> may be wrong since I was BibTeX user and have not tried BibLaTeX.
>
> I have an idea to consider each component started from slash as
> independent boolean flags (or constraints), so they can be reordered
>
>     /author/bare/caps = /caps/bare/author

An earlier version of the oc processors had that syntax, but Nicolas
found it too complex to implement.

But I'm not sure; it's possible your suggestion differs from that
beyond the syntax.

Practically speaking, it's useful for portability if an author does
"text/x" and an export processor doesn't support "x", that it still
will use "text".

Bruce

> For citeproc.el it is a natural mapping since e.g. noauthor is
> implemented as a value of suppress-author parameter. For BibTeX commands
> it may be described as set of properties, so the code discards ones
> inconsistent with provided criteria. E.g. (:bare t :author nil :noauthor
> t :full nil) for \citeyear, :caps does not matter.
>
> As at was suggested earlier, /year modifier existing in oc-csl should be
> implemented for oc-natbib.
>
> [cite/author/noauthor:...] should generate a warning as an impossible
> combination and fallback to defaults.
>
> The origin of the proposal is the following part of the discussion:
>
> Bruce D'Arcus, Tue, 29 Mar 2022 12:14:03 -0400
> https://list.orgmode.org/CAF-FPGOCm5m5jZSOu-37V77Me76EWwg_xcd4d7k30ffXS0HyQg@mail.gmail.com
> > On Tue, Mar 29, 2022 at 11:23 AM Max Nikulin wrote:
> >
> >> It seems modifiers are set of boolean flags (positive "year" or negative
> >> "suppress-author") in citeproc.el, set of values in natbib, and a kind
> >> of hierarchy in org-cite. From my point of view, set of constrains
> >> (flags) is the most general variant in this list.
> >
> > I think that's right, and is how it's represented in a GUI app like
> > Zotero. But that's not so convenient in a plain text format.
>
> I may easily miss something important making such idea broken. At least
> it looks like a backward-compatible change if old /caps-full is mapped
> to new /caps/full (or /full/caps).
>
>