Capitalize concepts only if a definition is included

Some clauses can be used in different contracts, but a definition list is not always included. Is there a central function to indicate that concepts that are not tied to a definition should not display with a capital letter?

In the example below, Initial Term should not start with a capital letter if the concept is not defined (and this may be different in various contracts that use the same clause): The duration of #°contract will be for #?initial-term of #duration^initial-term from the date of signature of #°contract.

One way to indicate that a concept is tied to a definition is by adding a definition to the term in assemble document and then include a list of definitions. However, shorter contracts don’t always have such a list of definitions. In that case, it would be useful to be able to indicate in the clause itself that a concept acts as a definition.

Same example: The duration of #°contract will be for #?initial-term of #duration^initial-term from the date of signature of #°contract ("#-initial-term").

In this case, ("#-initial-term") should act as definition and should only be shown if there is no definition list inserted in the contract that already defines this concept. However, as there is no definition list inserted in this example, the term should still be displayed with a capital letter in other clauses that mention the concept as the definition is included in the clause itself by adding (" ").

If there is no definition list and the concept is not present in one of the clauses where it acts as definition by adding (" "), then the concept should be displayed in other clauses of the same contract without capitals.

Example: The duration of #°contract will be for #?initial-term of #duration^initial-term from the date of signature of #°contract. Suppose there is no definition list that includes a definition for the concept initial term and the clause itself or another clause of the same contract does not include the concept where it acts as definition ("#concept"), then the concept should be lowercase in all the other clauses of that contract.

In summary, I want to be able to use the same clause in multiple contracts and the same concept in multiple clauses, but whether or not this concept should be capitalized is dependent on (1) whether there is a definition list or (2) whether the concept is defined in a particular clause by adding (" ") if there is no definition list. Currently, there is no option to define terms in the clauses themselves. You can do it manually, but then it doesn’t act as a definition.

Hi Bernd,

There is actually a possibility to create these " " definitions: they are formally called “integrated definitions”, and you can create them by establishing a “definition for” link from the clause to the concept. See

Secondly, it’s indeed a good suggestion to have a styling option that would treat concepts without an assignedn definition as regular (uncapitalized) words. I will add this feature in the next week or so. (I would however prefer making it dependent on the question “is a definition assigned?” and not “is a definition assigned & a definition list present?”)

Third, I will add a special function @definition-assigned that will allow you to check whether a definition is assigned. This can probably help in some clauses.

Thank you Maarten. I think that should solve the issue.

Hi Bernd,

1. In the meantime, I have implemented the new special functions @has-definition and @definitionlist-present (see the documentation at Essentially, they allow you to check whether some definition is assigned, and whether at least one definitionlist is currently present in the document/binder.

2. I have also inserted a new styling option that avoids capitalization of terms that have no definition assigned to them.


Please note that this styling option only checks whether some definition is assigned to a defined term (through the Terms Pane of Assemble Document). When analyzing whether to capitalize, the software does not check whether a definition list exists in which that definition happens to be currently visible. The reason is that this would make the software very slow in long/complex documents, because the software will essentially have to calculate every clause twice.

(Background info: The way the software works is that it constructs the contents of the regular clauses first, and while doing so tracks the defined terms that are used in those clauses. Only when all the regular clauses are calculated can the definition lists be calculated, because only at that point it will be known which defined terms are effectively used and should therefore show up in the definition list.

If the new styling feature would need to check whether a definition for some term is currently shown in some definition list, then the software would essentially require a third phase, in which it checks each clause again and un-capitalizes those terms that happen to have no visible definition. This would be very slow, and the use case for this scenario does not warrant, in my opinion, this overall increased slowness.)

3. Note that even with these new features, it is not straightforward to automatically toggle between “if this happens, then Employee will do …” (when a definition is assigned to #employee) and “if this happens, then the employee will do…” (when a definition is not assigned). The reason is that the question whether an article should be shown, is defined at the level of each individual concept-label, and not at the level of the definition styling, because this is simply something that varies between terms.

Nevertheless, please note that we recently added a feature in the terms pane that allows you to bulk-toggle all concept-labels between defined article <–> no article. Do note, of course, that you will probably have to manually correct a few concept-labels.

4. All this new functionality will show up in the various servers of ClauseBase throughout the course of this week.

I experimented a bit with the new special functions, but I’m struggling to combine both special functions.

How should this be done? The below doesn’t work.

{@has-definition(#conceptA) AND @definitionlist-present(#conceptA): #conceptA | else: textA}

Probably I’m doing something wrong?

Almost there!

@definitionlist-present doesn’t take any parameters, so it should be

{@has-definition(#conceptA) AND @definitionlist-present: #conceptA | else: textA}

That works perfectly :slight_smile: