Fusion là tên tạm thời cho một dự án phần mềm giúp đồng bộ hệ thống bản mẫu, module của viwiki với enwiki.

Bối cảnh

sửa

Thứ nhất, nhân lực của viwiki không có nhiều để quản lý hệ thống bản mẫu, module được up-to-date so với enwiki. Khi không up-to-date, có thể dẫn đến nhiều hệ quả như các bài dịch bị thiếu bản mẫu, bản mẫu bị lỗi, bị không hiển thị thông tin do bản mẫu thiếu tham số, các bản mẫu và tham số có cách dùng lỗi thời so với enwiki, thiếu sự đồng bộ, tài liệu hướng dẫn sử dụng không có hoặc lỗi thời, gây nhầm lẫn.

Thứ hai, trình độ của người nhập bản mẫu chưa chắc đã tốt, một số trường hợp nhập nhưng dịch hết tên tham số sang tiếng Việt, không chừa lại tên tiếng Anh gốc; xóa mất mã gọi Module:Check for unknown parameters để giúp quản lý các tham số lạ; không dịch phần tài liệu, phần TemplateData (phần rất quan trọng đối với hoạt động của VisualEditor, ContentTranslation và hàng tá bot), phần testcases (quan trọng để đảm bảo cách chạy của bản mẫu là đúng).

Thứ ba, một số bản mẫu, module có sự thiếu thống nhất với enwiki, điều này dẫn tới sự vênh giữa bài dịch và bài tự viết (với cách dùng bản mẫu theo thói quen) trong cách bản mẫu hiển thị và thực thi logic. Các khác biệt này cần hạn chế, và nếu bắt buộc phải giữ, thì nó nên được quản lý chặt chẽ, như việc quản lý thông qua các thể loại bảo trì.

Mục tiêu

sửa

Biến việc cập nhật bản mẫu, module trở nên liên tục và chủ động hơn, thay vì phải đợi gặp lỗi rồi mới sửa.

Những ý tưởng sơ bộ

sửa

Fusion bản chất là một cơ sở dữ liệu, lưu trữ những báo cáo về tình trạng của các bản mẫu, module.

Đầu tiên, người quản trị cần tạo một chỉ mục cho một bản mẫu hoặc module trên Fusion, ví dụ như tạo chỉ mục cho Mô đun:Arguments. Fusion có thể dùng Wikidata để tìm module tương ứng của module này bên enwiki, và có thể quan tâm cập nhật cho cả những trang con như Mô đun:Arguments/tài liệu, Mô đun:Arguments/sandbox; thậm chí bao gồm luôn các thể loại bảo trì có liên quan. Trong trường hợp nếu Wikidata không đáp ứng được việc này, thì người quản trị cần khai báo tay, đó là những trường hợp bản mẫu có thể phải thông qua một module đặc biệt có tên là Mô đun:ParameterAliasNormalizer để hoạt động.

Người quản trị sẽ cần đánh dấu 2 phiên bản tương ứng giữa enwiki và viwiki của module này để làm mốc so sánh.

Khi đã có chỉ mục, Fusion bắt đầu thực hiện công việc của mình. Bằng việc kết nối liên tục với dòng dữ liệu từ enwiki, Fusion có thể biết được en:Module:Arguments có thể có sửa đổi gì mới hay không, tính từ mốc đánh dấu. Nếu sự thay đổi đó tạo ra sự khác biệt đủ lớn đến phiên bản hiện tại của viwiki, thì một báo cáo sẽ được xuất trình, yêu cầu rằng nên cập nhật để đảm bảo tương thích. Việc quan sát này không chỉ áp dụng cho mã nguồn, mà còn bao gồm cả các trang con như /doc, /testcases.

Khi có báo cáo, người quản trị có thể quyết định cập nhật hay không. Mã nguồn lúc này sẽ được hợp nhất (fusion) theo 4 nguồn: mã nguồn mốc ban đầu trên viwiki, mã nguồn mốc báo cáo trên viwiki, mã nguồn mốc ban đầu trên enwiki, mã nguồn mốc báo cáo trên enwiki. Cơ chế triển khai có thể dùng AI. Dữ liệu hợp nhất này mang tính chất gợi ý, người quản trị có thể dựa vào báo cáo này để đưa ra những quyết định: cập nhật bằng máy, cập nhật bằng tay, không cập nhật. Các quyết định này sẽ được lưu vào lịch sử kiểm duyệt.

Tuy nhiên, để tiết kiệm công sức, nếu là việc hợp nhất một số phần không gây ảnh hưởng lớn như /doc, /testcases thì có thể cho máy tự thực hiện, thông qua một tài khoản bot. Đây là một tùy chọn, có thể bật hoặc tắt cho từng chỉ mục, mặc định là bật.

Đối với mã nguồn thì nhìn chung không nên tự động vì không đảm bảo sự an toàn, nhưng có một phương án nên được tính đến là cho phép AI tự động cập nhật /sandbox (kết hợp với /testcases), và gửi một thông báo báo cáo trên trang thảo luận để bất kỳ người nào quan tâm cũng có thể hỗ trợ cập nhật giùm. Bản báo cáo cần mô tả chi tiết những thay đổi và quan điểm của AI về tính hợp lý của những thay đổi.

Việc quan sát của Fusion kết hợp với tương tác của người quản trị, người quan tâm sẽ giúp hệ thống bản mẫu, module có sự khỏe mạnh (healthy), hạn chế bớt lỗi, các xung đột, mức độ lỗi thời.

Mã đánh dấu

sửa

Một số trường hợp bản mẫu hay module sẽ có những điểm khác so với bản tương ứng bên enwiki, điều này đặt ra việc phải dùng mã đánh dấu để hỗ trợ cho quá trình hợp nhất.

Dịch label

sửa

Đây có lẽ là điểm khác biệt dễ nhận ra. Nếu một label đã được dịch, thì nó nên được giữ nguyên, không tác động. Vấn đề này thì AI có lẽ đủ thông minh để nhận biết, không cần mã đánh dấu.

Ví dụ về những label được dịch (label59 và label60):

| label59    = Thành phố
| data59     = {{{cities|{{{city|}}}}}}

| label60    = Dân số
| data60     = {{{basin_population|}}}

Đoạn mã địa phương

sửa

Một số đoạn mã có tính chất địa phương và không nên được xem xét là khác biệt khi đánh giá để hợp nhất. Một đoạn mã đánh dấu có thể được sử dụng để giảm áp lực suy luận cho AI.

Mã ví dụ cho bản mẫu:

<!-- [[@FUSION]] IGNORED -->
Đoạn mã địa phương
<!-- [[@FUSION]] END_IGNORED -->

Mã ví dụ cho module Lua:

-- [[@FUSION]] IGNORED
Đoạn  địa phương
-- [[@FUSION]] END_IGNORED

Giải pháp tốt hơn cho mã đánh dấu: Prompt

sửa

Nếu đã dùng LLM, thì hãy đi theo cách của LLM. Mã đánh dấu cũng có nhược điểm là không hẳn trực quan và dễ hiểu, khi gõ thì có thể gặp sai sót. Một hướng đi khác thì hãy để thẳng một số prompt vào tài liệu của bản mẫu, module. Ví dụ:

{{Fusion|prompt
|Bỏ qua những label đã được dịch
|Bỏ qua tham số character_design 
|Bỏ qua đoạn mã liên quan đến phần XYZ
}}

Khi đó, Fusion sẽ căn cứ các gợi ý này để đảm bảo quá trình đánh giá được đúng như mong muốn.

Vấn đề địa phương hóa mã nguồn bản mẫu và module

sửa

Việc địa phương hóa (localization, l10n) là một việc tương đối gây tranh cãi, vì nếu không địa phương hóa thì không thể hiển thị các nhãn tiếng Việt, mà địa phương hóa rồi thì việc xung đột với bản tương ứng bên enwiki có thể xảy ra khi những đoạn mã bị địa phương hóa quá mức, như việc thêm các tham số khác biệt.

Trước mắt, việc địa phương hóa là được chấp nhận ở việc dịch các label, message.

Tiếp theo, việc địa phương hóa cũng được chấp nhận ở việc dịch tên tham số, tuy nhiên, cần giữ lại tên tham số gốc. Các tham số được dịch phải được cập nhật vào TemplateData để đảm bảo hoạt động cho những công cụ bên thứ 3.

Cuối cùng, những công việc địa phương hóa trong quá khứ có thể được giữ lại hoặc bỏ đi, theo quan điểm là "hạn chế sự khác biệt" trong khả năng.

Nhiều công việc địa phương hóa thật sự đã tạo ra các thay đổi không cần thiết (không so sánh với enwiki), chúng nên được tái xem xét và loại bỏ dần.

Một số ngoại lệ:

  • Nếu như tham số là dành cho môi trường tiếng Anh kiểu như publisher_en, thì việc có một tham số như publisher_vi là hợp lý. Tuy nhiên, phải xem thử công cụ ContentTranslation có hành vi thế nào trong trường hợp này?
  • Vấn đề màu sắc: Việc này cần rà soát thử, cách dùng màu đang như thế nào? Một số màu có tính truyền thống và hợp lý thì giữ.

Module này là một giải pháp thú vị để gia tăng tính tổng quát cho việc nhập các bản mẫu từ enwiki, nhất là các bản mẫu infobox, khi việc dịch tên tham số được thực hiện qua một lớp trung gian. Điều này giúp mã nguồn của bản mẫu bên vi gần giống bên en khá nhiều, khi không cần phải chèn tên tiếng Việt cho các tham số tiếng Anh. Việc sử dụng module này được khuyến khích cho infobox, vì các infobox thường có rất nhiều tham số.

Thông báo định kỳ đến các kỹ thuật viên bản mẫu

sửa

Fusion có thể tổng hợp những bản mẫu, module nào đang cần được cập nhật, và gửi cho danh sách thành viên kỹ thuật viên bản mẫu để họ có thể quan tâm nâng cấp, tần suất gửi là khoảng 1–2 lần/tuần. Thành viên nào thấy phiền có thể chặn gửi. Mặc dù vậy, là KTVBM thì nên biết tình hình bản mẫu, module trong tuần.

Các giai đoạn

sửa

Giai đoạn 0

sửa

Cần xóa bớt các bản mẫu, module không dùng, thừa thãi; gộp những cái cùng chức năng; kêu gọi bỏ bớt các khác biệt trong vấn đề địa phương hóa.

Giai đoạn 1

sửa

Lập chỉ mục cho các bản mẫu, module nền tảng, hệ thống.

Giai đoạn 2

sửa

Lập chỉ mục cho các bản mẫu lặp đi lặp lại với số lượng lớn như Taxonomy, Sơ khai, Dự án.

Câu hỏi: Ngưỡng nào được xem là "số lượng lớn"?

Giai đoạn 3

sửa

Lập chỉ mục cho các bản mẫu nội dung như infobox, sidebar, navbox.

Mở rộng

sửa

Fusion có thể được mở rộng cho những cộng đồng wiki có nhu cầu tương tự.

Xem thêm

sửa