Intent to Experiment: Language Detector API

272 views
Skip to first unread message

Domenic Denicola

unread,
Aug 15, 2024, 3:13:34 AMAug 15
to blink-dev, Fergal Daly, Kenji Baheux, Daisuke Enomoto

Contact emails

dom...@chromium.orgfer...@chromium.orgkenji...@chromium.org

Explainer

https://github.com/WICG/translation-api/blob/main/README.md

(This explainer bundles together the translator API and the language detector API, since they are very related. This Intent is only for the language detector API.)

Specification

None yet, although we're excited to start writing one during the trial.

Summary

A JavaScript API for detecting the language of text, with confidence levels.


Blink component

Blink>AI>Language Detection

TAG review

https://github.com/w3ctag/design-reviews/issues/948

TAG review status

Issues open: "satisfied with concerns", mainly around naming.

Risks



Interoperability and Compatibility

This feature, like all built-in AI features, has inherent interoperability risks due to the use of AI models whose behavior is not fully specified. See some general discussion in https://www.w3.org/reports/ai-web-impact/#interop. By providing a high-level API with clear output formats, as well as a capabilities API for detecting what a given browser supports, we believe we can guide web developers toward using the API in an interoperable way that does not depend on the specific models that a given browser or browser version uses.



Gecko: No signal (https://github.com/mozilla/standards-positions/issues/1015)

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/339)

Web developers: Positive (https://github.com/WICG/proposals/issues/147)

Other signals:

Ergonomics

This API will likely frequently be used in concert with the translator API (https://chromestatus.com/feature/5172811302961152). Our current implementation is tied up with the browser's built-in language detection, which runs on the main thread. Alternative architectures are possible and we're exploring the implications of the current one through the origin trial process.



Activation

This feature would definitely benefit from having polyfills, backed by any of: cloud services, lazily-loaded on-device models using WebGPU, or the web developer's own server. We anticipate seeing an ecosystem of such polyfills grow as more developers experiment with this API.



WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

None



Goals for experimentation

Our main goal for the origin trial is to get feedback on model quality and performance when faced with real-world use cases from developers. For example, we are interested in how often multilingual input is provided and what developers expect for such cases (https://github.com/WICG/translation-api/issues/13).

We also expect to get some feedback on the API shape (which will likely evolve throughout the trial), and how limiting the current architecture's ability to only run after page load is.

Ongoing technical constraints

None.


Debuggability

Basic tooling suffices


Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?

Yes

Is this feature fully tested by web-platform-tests?

No.


We hope to work on web platform tests for this feature, but how much we can guarantee as testable beyond the surface API is unclear. For example, since no specific languages are guaranteed to be supported, it's not clear we can actually test language detection. APIs to mock the results might help here.



Flag name on chrome://flags

language-detection-api

Finch feature name

LanguageDetectionAPI

Requires code in //chrome?

False

Measurement

kV8LanguageDetector_Detect_Method

Estimated milestones


We may shift these milestones back to 130-135 depending on engineering bandwidth. If so, we will update the Chrome Platform Status entry.

Origin trial desktop first129
Origin trial desktop last134
Origin trial Android first129
Origin trial Android last134
Origin trial WebView first129
Origin trial WebView last134


Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/6494349985841152?gate=6142474019143680

Links to previous Intent discussions

Intent to Prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/Ie46tc6_8so/m/eY1huFmOAAAJ


This intent message was generated by Chrome Platform Status.

Daniel Bratell

unread,
Aug 21, 2024, 11:30:20 AMAug 21
to Domenic Denicola, blink-dev, Fergal Daly, Kenji Baheux, Daisuke Enomoto

LGTM to experiment 129-134 inclusive, or shifted if you can't start in 129.

That said, I would expect things to change during the experiment, including the name. Like TAG I find including "ai" in the programmer visible symbols to be less than optimal. We don't usually put implementation details in names and "ai" in particular is a term that doesn't tell the developer anything useful.

That said, good luck experimenting and may you get useful feedback from your partners.

/Daniel

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra-WvH-sxxWndwAWPLF3eEYqeLhXrz-VmZKH4Wxzbpse-Q%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages