[mpeg-OTspec] Toward a Composite Font format specification

Levantovsky, Vladimir vladimir.levantovsky at monotypeimaging.com
Fri Sep 18 16:07:00 CEST 2009


Daniel,

 

I am not sure what you're asking, can you please elaborate? Is there an example or use case that you can present, where not fulfilling creator's intent would benefit a consumer?

 

Thank you,

Vlad

 

 

From: Daniel Strebe [mailto:dstrebe at adobe.com] 
Sent: Tuesday, September 15, 2009 7:58 PM
To: Levantovsky, Vladimir; Ken Lunde; mpeg-OTspec at yahoogroups.com
Subject: Re: [mpeg-OTspec] Toward a Composite Font format specification

 

Vladimir:

Do you believe a composite font recipe cannot be useful to a consumer unless it fulfills the creator's intent?

Regards,

- daan Strebe
Senior Computer Scientist
Adobe Systems Incorporated


On 09/09/15 15:55, "Levantovsky, Vladimir" <Vladimir.Levantovsky at MonotypeImaging.com> wrote:

Daniel, 
 
You wrote:
"Meanwhile, what is a specification? It is a rigorous communication of intent. Because of the many variables we cannot control, and because of inability to anticipate the consumer's intent, we are left to ask what it is we are communicating. The answer is that we are communicating the creator's intent. That is this specification's raison d'être. If we start issuing instructions to the consumer about what we have decided is necessary from that recipe, then we are no longer communicating the creator's intent - which is already conveyed by the recipe - but instead we are communicating OUR intent. How did our intent come into play here?"


I am in full agreement with your statement that the only reason for specification to be developed is to communicate the creator's intent. This is exactly why the specification must issue the instructions to the consumer about what has to be done on the implementation side to ensure that creator's intent can be fulfilled. Please note - this is necessary only for the purpose to fulfill the creator's intent, and it has nothing to do with OUR intent.
 
Ideally, all provisions of the spec have to be implemented by all consumers - this will guarantee the 100% interoperability between different implementations. At a minimum, in order to enable the guaranteed minimal level of interoperability we ought to come up with the list of elements (data formats, attributes, etc.) that must be supported by all consumers - this has to be done so that the creator's intent (not our intent) can be fulfilled. Making everything optional would make it impossible for creators to communicate their intent reliably, knowing full well that consumers may disregard any and all parts of their recipe.
 
"Any consumer who cares about typographic fidelity ought to implement the entire specification."
 
Again, I agree with you. In ideal world - this is exactly what we should do, and the spec must mandate everything. In reality - this is just another reason why I believe that the spec ought to say what must be implemented (and why), and what may be implemented if a certain outcome is desired. (OpenType specification is a good example of this - it has mandatory required tables, conditional mandatory tables that are necessary only if a certain type of outlines is supported, and optional table that are needed only if certain functionality is needed.)
 
I believe that making everything optional and giving consumers the complete freedom to implement any parts of the spec of their own choosing will make it impossible to fulfill the creator's intent and will result in interoperability nightmare.
 
Regards,
Vladimir
 
 

From: Daniel Strebe [mailto:dstrebe at adobe.com] 
Sent: Friday, September 11, 2009 3:52 PM
To: Levantovsky, Vladimir; Ken Lunde; mpeg-OTspec at yahoogroups.com
Subject: Re: [mpeg-OTspec] Toward a Composite Font format specification

Vlad, and colleagues,

I had hoped our policy in this regard was settled so we could move on.
I see the interoperability as the main benefit of standardization since it provides a certain level of guarantee for a content creator (in this case, for a Composite Font creator) that the font resource (a Composite Font) and a content that uses it will be processed and presented to an end-user as intended by the author.

The  specification we produce will guarantee nothing regardless of how we write it. Composite fonts will be only a tiny component of a broader environment that we have no control over even if we "mandate" aspects of consumer behavior. Specifically, we cannot guarantee:

1.	The presence of the base fonts by some loose match (i.e, font name). 
2.	The presence of the base fonts by some strict match (i.e., font technology, version number, or computational hash). 
3.	The ability of the environment at large to render according to the component fonts' specifications. 
4.	Strict adherence of the component fonts to their formats' specifications. 
5.	Clarity (lack of ambiguity) in the specifications of the component fonts' formats. 
6.	Anything at all about how the viewing application lays out text. 
7.	Anything at all about the intent of the consumer. 


PDF has control over everything except (4) and (5), and could conceivably even make reasonable contingencies or clarifications for both. How does PDF have control over the intent of the consumer? It doesn't directly, of course. But the implied intent of the consumer is PDF's raison d'être. It is built on the assumption that the consumer wishes to display a document in exactly the same way it was created, now and forever, even if the original constructing software is not available. PDF purports to separate construction of a document from display of the completed document so that it retains its fidelity during subsequent communications in and through hostile environments. That is its utility. If that is not your intent, you do not need to use PDF.

We have already agreed, however, that we cannot anticipate the intent of the composite font consumer. We have imagined typographic scenarios, where details of layout are critical. We have imagined fallback scenarios where layout is subordinate to legibility. We have imagined deployment in mobile environments where typography has no meaning. We have imagined propriety systems where the intent is some implied contract outside the composite font specification. Even if the creator had some intent, the fact that the consumer "violates" that intent in no way invalidates the utility of the recipe. It is the consumer who ultimately determines the utility of what is consumed, not the creator. You can create an exquisite chocolate, but you cannot make the eater taste it as you do.

Meanwhile, what is a specification? It is a rigorous communication of intent. Because of the many variables we cannot control, and because of inability to anticipate the consumer's intent, we are left to ask what it is we are communicating. The answer is that we are communicating the creator's intent. That is this specification's raison d'être. If we start issuing instructions to the consumer about what we have decided is necessary from that recipe, then we are no longer communicating the creator's intent - which is already conveyed by the recipe - but instead we are communicating OUR intent. How did our intent come into play here?

Nor do I find the argument of interoperability compelling. Any consumer who cares about typographic fidelity ought to implement the entire specification. If typographic fidelity is not the intent of the consumer, then what do we mean by "interoperability"? From whose standpoint? And how does dictating some portions of the specification but not others contribute to interoperability? If the consumer receives a document containing a richly specified composite font, but the consumer is only concerned with legibility, then what is wrong with the consumer saving the document with only the abbreviated portion of the recipe that it knows how to deal with? It is hardly likely that the remaining traits of the original document were otherwise preserved by the viewing application, since its purpose never was typographic fidelity. Alternatively, what if the consumer saves the full recipe? What good is that when it strips out all the typography of the document anyway? 

Hence I cannot agree that PDF provides an analogy for our circumstances. The factors that contributed to its success differ greatly from the factors in play here. We would be better served by looking at XML, for example. There is a case where the specification of creator's intent is rigorous but the consumer is free to deal with "recipes" as best it may. Needless to say, XML is extremely successful, and indeed we seem to have settled on it ourselves for creating recipes.

Let me suggest we issue recommendations on minimal support levels for various consumer intentions we identify. I do not even see much harm in "requiring" such support in order to be "compliant" with those specific categories of intent. Perhaps that will make the job of consumers easier: they can pick some canned definition of their intent and implement against it without having to think hard about it. I strongly advise against precluding implementations outside those recommendations, however. No one is well-served by throttling innovative uses - and I have a strong suspicion we will witness uses we never imagined.

- Regards,

Daniel "daan" Strebe
Senior Computer Scientist
Adobe Systems Incorporated


On 09/09/11 7:55, "Levantovsky, Vladimir" <vladimir.levantovsky at monotypeimaging.com> wrote:

 
 

Ken,
 
I do understand your concerns and agree that in some circumstances the mandate to implement a particular feature may put an additional burden on the consumers of the Composite Font recipe.
 
At the same time, the main intent of any standardization activity is  to create an environment where multiple different implementations are compliant and interoperable. I see the interoperability as the main benefit of standardization since it provides a certain level of guarantee for a content creator (in this case, for a Composite Font creator) that the font resource (a Composite Font) and a content that uses it will be processed and presented to an end-user as intended by the author.
 
Developing a standard that does not provide this guarantee of baseline interoperability defeats the purpose of standardization. We may end up having multiple different implementations that are all compliant with the specification but incompatible with each other, producing different results when presented with the same content for rendering. This would be a very unfortunate outcome. 
 
Currently, we have very few consumers that support Composite Font functionality. For many, the Composite Fonts specification will offer a guideline of what (and how) new features should be implemented. I am sure that in many circumstances the implementers will appreciate specification that provides clear and unambiguous description of the features to be supported, rather than presenting them with many different options for implementers to choose from. Striking the healthy balance between the core set of features (that we want to see supported by all interoperable implementations) and a set of optional features (that we wish to see supported) is the ultimate challenge that in my opinion should be looked at not only from the position of the implementer (a consumer of the Composite Font recipe) but first and foremost from the creator point of view. PDF is a good example - its success was to significant extent determined by the guarantees of consistency of presentation of PDF documents it offered to content creators.
 
Best regards,
Vlad
 
 

From: mpeg-OTspec at yahoogroups.com [mailto:mpeg-OTspec at yahoogroups.com] On Behalf Of Ken Lunde
Sent: Friday, September 04, 2009 4:47 PM
To: mpeg-OTspec at yahoogroups.com
Subject: Re: [mpeg-OTspec] Toward a Composite Font format specification

  

Vladimir,

My main fear in this is that we'd be asking consumers to do something 
that they are already doing, or overriding it. Some consumers may lack 
the ability to override the behavior that dictates whether a device or 
embedded (or web) font is used.

Ultimately, each consumer will need to decide whether it can honor the 
intent of the Composite Font recipe.

Regards...

-- Ken

On 2009/08/31, at 12:17, Levantovsky, Vladimir wrote:

> Ken,
>
> I agree that existing implementations already deal with the scenarios
> where fonts may be present locally and/or embedded, and that consumers
> who support embedded fonts may behave differently with regard to 
> giving
> preferences to embedded vs. local fonts. I see this uncertainty in
> consumer behavior as a potential interoperability problem.
>
> It is true that embedded fonts are most likely to be used when a
> producer cares about content presentation and appearance, and this is
> when the attribute about font location is likely to be present. I 
> think
> it would be seen as a benefit to give producers a certain level of
> assurance of consumer's behavior. In fact, I know that in some
> environments this has already been done. For example, in Java MIDP3.0
> profile - if there is an apparent conflict between embedded and local
> font (e.g. both fonts have the same names), the embedded (or 
> downloaded)
> font is always given a preference to make sure that the content is
> rendered using a resource chosen by producer (author).
>
> In general, I believe that we should try (whenever possible) to reduce
> potential uncertainty in consumer behavior, especially if a feature
> under consideration (e.g. a preference between embedded and local 
> font)
> is not going to affect implementation complexity and cost. A good
> specification should have a healthy balance between mandatory and
> optional features - a specification that is overly strict may be 
> seen as
> burden for implementers, but, alternatively, a specification where
> everything is optional (MMS come to mind) will likely result in
> producing incompatible implementations.
>
> Regards,
> Vladimir
>
>
>> -----Original Message-----
>> From: mpeg-OTspec at yahoogroups.com <mailto:mpeg-OTspec%40yahoogroups.com> [mailto:mpeg- 
>> OTspec at yahoogroups.com <mailto:OTspec%40yahoogroups.com> ]
>> On Behalf Of Ken Lunde
>> Sent: Saturday, August 29, 2009 10:32 AM
>> To: mpeg-OTspec at yahoogroups.com <mailto:mpeg-OTspec%40yahoogroups.com> 
>> Subject: Re: [mpeg-OTspec] Toward a Composite Font format
> specification
>>
>> Vladimir,
>>
>> In thinking about the issue that you raised, I don't think that we
>> need to worry about the case when a font with the same name exists on
>> the device and also embedded in the file. Consider the fact that
>> consumers who support embedded fonts already need to deal with this
>> scenario, and obviously prefer one over the other. So, if this
>> attribute specifies one or the other (device versus embedded), that 
>> is
>> sufficient to guide the consumer. And, there are some consumers that
>> are unable to support files with embedded fonts. Likewise, some
> closed-
>> environment consumers may even be unable to support device fonts,
>> though there will be very few of these in the real world.
>>
>> In any case, if the producer cares about font location (device,
>> embedded, or web), what this attribute constitutes is a preference. 
>> If
>> it is flagged as a device font, a path to the font may be included as
>> part of this attribute. If it is flagged as embedded, it is treated 
>> as
>> a boolean, because it is a binary condition.
>>
>> My reasoning is that producers would be asking consumers to do
>> something that they already support, or already have a strong
>> preference one way or another, and also that producers may be
>> specifying information that a consumer would be forced to ignore.
>>
>> Feel free to prove me wrong about this issue.
>>
>> -- Ken
>>
>> On 2009/08/28, at 14:02, Levantovsky, Vladimir wrote:
>>
>>> Ken,
>>>
>>> I like your proposed approach, and I agree that issues such as
>>> rendering and font access permissions should be left out of
>>> composite font recipe. With regards to font location, one additional
>>> case that we should consider and clarify is if the font is embedded
>>> in a document (or in a CF recipe) and is also present on a device. I
>>> believe that some implementations in these circumstances may
>>> sometime disregard the embedded font and use local copy instead,
>>> although I can imagine there may be circumstances when authors may
>>> want the embedded font be used at all times, regardless of whether
>>> the same font is present on a device (e.g. if embedded font contains
>>> additional character set that may not be part of the local font).
>>>
>>> Regards,
>>> Vladimir
>>>
>>>
>>>> -----Original Message-----
>>>> From: mpeg-OTspec at yahoogroups.com <mailto:mpeg-OTspec%40yahoogroups.com> [mailto:mpeg-
>>>> OTspec at yahoogroups.com <mailto:OTspec%40yahoogroups.com> ]
>>>> On Behalf Of Ken Lunde
>>>> Sent: Friday, August 28, 2009 4:41 PM
>>>> To: mpeg-OTspec at yahoogroups.com <mailto:mpeg-OTspec%40yahoogroups.com> 
>>>> Subject: Re: [mpeg-OTspec] Toward a Composite Font format
>>>> specification
>>>>
>>>> Mikhail and others,
>>>>
>>>> Sorry for the delay. I was discussing this issue internally with a
>>>> couple different development teams. I wanted to make sure that our
>>>> bases are covered before I suggested some working definitions.
>>>>
>>>> I like the idea of using "LocationHint" as the name of this
>>>> <ComponentFont> attribute.
>>>>
>>>> Getting back to the issue, I think that there are three of them to
>>>> consider:
>>>>
>>>> 1) Font location. Installed onto the device proper, meaning in a
>>>> standard location, embedded in the file that references it, either
>>>> directly or via a Composite Font recipe, or elsewhere (web fonts).
>>>>
>>>> 2) Rendering. Done by the OS, the application itself, or some other
>>>> rendering client such as a library.
>>>>
>>>> 3) Access. This boils down to private versus public. In general, if
>> a
>>>> font is embedded in the file that references it, it is effectively
>>>> private, and available only to the consumer. If a font is installed
>>>> on
>>>> the device in a standard location, it is effectively public,
>> multiple
>>>> consumers have access to it, and can thus use it.
>>>>
>>>> In the context of Composite Fonts, and considering producers (those
>>>> who create the Composite Font recipes) and consumers (those who use
>>>> or
>>>> "consume" the Composite Font recipes), I cannot think of any usage
>>>> scenarios that specify how rendering is to be done. So, Issue #2
>>>> becomes moot. The consumer already knows how to handle this, and
>>>> simply knowing where to look for the font is sufficient.
>>>>
>>>> And, Issue #3 is a non-issue in the sense that the location of the
>>>> font implies its access level.
>>>>
>>>> Thus, what we have left is Issue #1, which is about location.
>>>> Embedded
>>>> fonts do not need a location, but need a name (this is required
>>>> anyway
>>>> for any Component Font), and it may be useful to flag it as an
>>>> embedded font. Device fonts can benefit from a location, such as a
>>>> path, and the usage scenario you gave helps. I assume that web
> fonts
>>>> merely require a URL.
>>>>
>>>> The following are three definitions to consider:
>>>>
>>>> Device font:
>>>> A font installed on the device, in a standard location, and thus
>>>> accessible by multiple consumers.
>>>>
>>>> Embedded font:
>>>> A font or subset of a font that is embedded in a file that
>>>> references it, and thus accessible only by the file's consumer.
>>>>
>>>> Web font:
>>>> A font that is neither installed on the device nor embedded in a
>>>> file, but is otherwise accessible through the network.
>>>>
>>>> Thoughts?
>>>>
>>>> -- Ken
>>>>
>>>> On 2009/08/26, at 15:52, Mikhail Leonov wrote:
>>>>
>>>>> Hi Ken,
>>>>> This type of issue came up in some of my recent conversations as
>>>> well.
>>>>>
>>>>> Conceptually, recipe creators want to specify some additional
>>>>> properties about a component font, such as its location. For some
>>>>> scenarios a simple Boolean flag is sufficient, while for other
>>>>> scenarios something like a URL or an internal resource path is
>>>>> necessary.
>>>>>
>>>>> To give an example of the latter, a document could embed 2
> versions
>>>>> of the same font and use different resource paths, for example /
>>>>> Resources/Fonts/1/arial.ttf and /Resources/Fonts/2/arial.ttf.
>>>>>
>>>>> Given there is a large number of potential methods for storing
> font
>>>>> file locations, I(tm)fd like to suggest for this property to be
> opaque
>>>>> and optional, akin to a hint rather than a strict directive.
>>>>>
>>>>> How does a new string property LocationHint sound?
>>>>>
>>>>> Thanks!
>>>>> Mikhail Leonov
>>>>> Microsoft
>>>>>
>>>>>
>>>>> From: mpeg-OTspec at yahoogroups.com <mailto:mpeg-OTspec%40yahoogroups.com> [mailto:mpeg-
>>>>> OTspec at yahoogroups.com <mailto:OTspec%40yahoogroups.com> ] On Behalf Of Ken Lunde
>>>>> Sent: Wednesday, August 26, 2009 2:26 PM
>>>>> To: mpeg-OTspec at yahoogroups.com <mailto:mpeg-OTspec%40yahoogroups.com> 
>>>>> Subject: Re: [mpeg-OTspec] Toward a Composite Font format
>>>>> specification
>>>>>
>>>>>
>>>>>
>>>>> All,
>>>>>
>>>>> Slight topic deviation ahead...
>>>>>
>>>>> I was in a meeting this morning, and its discussions led to an
> idea
>>>>> for another <ComponentFont> attribute that we have not yet
>>>> considered.
>>>>> Under some circumstances, especially when dealing with embedded
>>>> fonts,
>>>>> it may be useful to specify whether the font is embedded (in a
> file
>>>>> that references the Composite Font or the Component Font) or
>>>> available
>>>>> on the device (a "device" font). This, of course, would be
>> optional,
>>>>> but I guarantee that some producers will want to specify this.
>>>>>
>>>>> I am not sure about the best way to characterize this, in terms of
>>>>> an
>>>>> attribute name, but perhaps we can state that all <ComponentFont>
>>>>> instances are "device fonts" unless an "IsEmbedded" boolean flag
> is
>>>>> specified.
>>>>>
>>>>> I would welcome any thoughts about this.
>>>>>
>>>>> -- Ken
>>>>>
>>>>> On 2009/08/26, at 12:20, Thomas Phinney wrote:
>>>>>
>>>>>> My first assumption would be that all scaling should include
>>>>>> scaling
>>>>>> metrics, though I am mindful of the issues Karsten brings up.
>>>>>>
>>>>>> T
>>>>>>
>>>>>> On Wed, Aug 26, 2009 at 9:27 AM, Daniel
>>>> Strebe<dstrebe at adobe.com <mailto:dstrebe%40adobe.com> <mailto:dstrebe%40adobe.com
>>>>>>>>
>>>>>> wrote:
>>>>>>>
>>>>>>> Thomas,
>>>>>>>
>>>>>>> Thanks for chiming in. To clarify, do you mean to advocate
>> scaling
>>>>>>> horizontally within the same design space when you mention faux
>>>>>>> small caps?
>>>>>>> (Meaning, without increasing the glyph advance width,
> escapement,
>>>>>>> and
>>>>>>> kerning values?)
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> (tm)\ daan Strebe
>>>>>>> Senior Computer Scientist
>>>>>>> Adobe Systems Incorporated
>>>>>>>
>>>>>>>
>>>>>>> On 09/08/25 21:51, "Thomas Phinney"
>>>> <tphinney at cal.berkeley.edu <mailto:tphinney%40cal.berkeley.edu> <mailto:tphinney%40cal.berkeley.edu
>>>>>>>>>
>>>>>>> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I'd advocate keeping the three different scaling factors
>> (overall,
>>>> X
>>>>>>> and Y). I can honestly imagine plenty of use cases for them,
> both
>>>> in
>>>>>>> traditional and non-traditional cases.
>>>>>>>
>>>>>>> One use for asymmetric X/Y scaling is in manufacturing small
>> caps.
>>>>>>> One
>>>>>>> could use a composite font mechanism to build faux small caps,
>>>>>>> possibly scaled slightly so as to be slightly wider than
> strictly
>>>>>>> proportional scaling. Ditto for creating numeric (or alphabetic)
>>>>>>> inferiors or superiors. Using the composite font mechanism would
>>>>>>> allow
>>>>>>> for taking the base glyphs from a heavier weight of the "same"
>>>>>>> typeface....
>>>>>>>
>>>>>>> cheers,
>>>>>>>
>>>>>>> T
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> "Men occasionally stumble over the truth, but most of them pick
>>>>>> themselves up
>>>>>> and hurry off as if nothing ever happened."
>>>>>> - Sir Winston Churchill
>>>>>>
>>>>>>
>>>>>> ------------------------------------
>>>>>>
>>>>>> Yahoo! Groups Links
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> ------------------------------------
>>>>
>>>> Yahoo! Groups Links
>>>>
>>>>
>>>>
>>
>>
>>
>> ------------------------------------
>>
>> Yahoo! Groups Links
>>
>>
>>

  
    


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20090918/b720090c/attachment.html>


More information about the mpeg-otspec mailing list