Thuật ngữ round-trip (tạm dịch: chuyển đổi khứ hồi hoặc chuyển đổi hai chiều) thường được dùng trong lĩnh vực chuyển đổi tài liệu, đặc biệt là khi liên quan đến các ngôn ngữ đánh dấu như XML và SGML. Quá trình round-tripping thực chất là việc chuyển một tài liệu từ định dạng A (docA) sang định dạng B (docB), rồi lại chuyển ngược từ B về lại định dạng A (tạo thành docA′). Quá trình này được xem là thành công và không xảy ra thất thoát thông tin khi và chỉ khi docA và docA′ hoàn toàn trùng khớp với nhau. Hiểu theo nghĩa rộng hơn, thuật ngữ này chỉ quá trình chuyển đổi qua lại giữa bất kỳ hình thức biểu diễn dữ liệu nào, bao gồm cả việc chuyển đổi giữa các cấu trúc dữ liệu khác nhau.
Các trường hợp sử dụng phổ biến
- Cơ sở dữ liệu: Khi di chuyển dữ liệu giữa các hệ thống hoặc định dạng cơ sở dữ liệu khác nhau, round-tripping giúp xác minh rằng dữ liệu vẫn duy trì được tính nhất quán sau quá trình chuyển đổi.
- Định dạng tệp: Việc chuyển đổi tài liệu qua lại giữa các định dạng (chẳng hạn như từ Microsoft Word sang định dạng OpenDocument và ngược lại) nhằm đảm bảo độ trung thực của tài liệu. Một ví dụ khác là chuyển một tài liệu từ HTML sang Markdown rồi đổi lại để kiểm tra tính nhất quán.
- Tuần tự hóa và giải tuần tự hóa: Chuyển đổi các đối tượng sang một định dạng có thể lưu trữ hoặc truyền tải được (như JSON hoặc XML) rồi phục hồi chúng thành các đối tượng ban đầu mà không làm mất dữ liệu.
Trong bối cảnh của cơ sở dữ liệu đồ thị, quá trình round-tripping có thể được dùng để kiểm chứng việc chuyển đổi giữa các mô hình đồ thị khác nhau. Chẳng hạn, chuyển đổi từ mô hình Resource Description Framework (RDF) sang Đồ thị thuộc tính (Property Graphs) và ngược lại nhằm đảm bảo cấu trúc và ngữ nghĩa ban đầu được bảo toàn.
Thất thoát dữ liệu
Việc chuyển đổi tài liệu từ định dạng này sang định dạng khác rất dễ dẫn đến tình trạng mất mát thông tin. Ví dụ, nếu lưu một tài liệu HTML dưới dạng văn bản thuần túy (*.txt), toàn bộ các thẻ đánh dấu (như cấu trúc, định dạng, chữ viết trên/dưới...) sẽ biến mất. Tương tự, các tài liệu phức hợp cũng thường bị mất dữ liệu về hình ảnh hay các đối tượng nhúng bên trong. Khi đó, nếu cố gắng chuyển tệp văn bản này về lại định dạng HTML ban đầu, chắc chắn tài liệu sẽ không còn nguyên vẹn.
Tình trạng tương tự cũng xảy ra đối với các định dạng hình ảnh. Một số định dạng như JPEG thực hiện nén dữ liệu bằng cách chấp nhận đánh đổi một lượng nhỏ thông tin. Do đó, nếu lấy một tệp hình ảnh đang ở định dạng không mất dữ liệu (như BMP hoặc PNG), chuyển sang JPEG rồi lại đổi về định dạng cũ, kết quả thu được sẽ khác biệt so với bản gốc (mặc dù về mặt thị giác chúng có thể trông rất giống nhau).
Tuy nhiên, không thể kết luận ngay là có thất thoát thông tin chỉ vì tài liệu lúc đầu và lúc sau không giống nhau hoàn toàn tới từng bit. Nguyên nhân là do một số định dạng có chứa các trường không xác định, hoặc có những trường mà nội dung bên trong vốn không ảnh hưởng gì đến kết quả tổng thể.
Ngôn ngữ đánh dấu
Về nguyên tắc, các ngôn ngữ đánh dấu như XML có khả năng lưu giữ mọi loại thông tin. Do đó, người ta có thể thiết kế quy trình chuyển đổi docA → docX → docA′ sao cho hoàn toàn không bị mất dữ liệu. Hiện nay, có một xu hướng phổ biến là chuyển các định dạng cũ sang định dạng XML vì XML có tính tương tác cao hơn và được hỗ trợ bởi một hệ sinh thái công cụ phong phú. Chính nhờ vậy, người dùng hoàn toàn có thể chuyển một tài liệu Word sang định dạng XML rồi nhập ngược trở lại.
Trong quá trình này, tài liệu XML phải chứa những thông tin giống hệt như định dạng gốc ban đầu. Điều kiện tiên quyết là quá trình khứ hồi (định dạng cũ → XML → định dạng cũ′) phải cho ra các tài liệu giống nhau về mặt bản chất. Tuy nhiên, vì một số cấu trúc tài liệu cho phép sự linh hoạt nhất định về thứ tự nội dung, khoảng trắng, hay phân biệt chữ hoa/chữ thường, việc có một phương pháp chuẩn hóa định dạng gốc trở nên rất cần thiết. Khi đó, một chu trình round-trip hoàn chỉnh sẽ diễn ra như sau:
- định dạng cũ → định dạng cũ chuẩn hóa → XML → định dạng cũ′ → định dạng cũ chuẩn hóa′
Nếu "định dạng cũ chuẩn hóa" = "định dạng cũ chuẩn hóa′", thì quá trình khứ hồi được xem là thành công.
Mã hóa ký tự
Unicode được thiết kế với nguyên tắc duy trì khả năng tương thích khứ hồi đối với các bộ mã hóa tiêu chuẩn cũ. Nhờ đó, việc chuyển đổi tài liệu sang Unicode không làm mất thông tin và có thể chuyển ngược lại dễ dàng. Để đạt được điều này, hệ thống đã bổ sung thêm các ký tự tương thích Unicode. Tuy nhiên, việc thay đổi kiểu chữ đối với các trường hợp đặc biệt (chẳng hạn như chữ i có chấm và không chấm) rồi đổi ngược lại vẫn có thể trả về kết quả sai, tùy thuộc vào ngôn ngữ của văn bản đó.
Cách sử dụng thuật ngữ
Dù thuật ngữ này xuất hiện khá phổ biến trong ngành công nghệ, nó lại chưa được ghi nhận chính thức trong các từ điển. Một ví dụ tiêu biểu về việc sử dụng thuật ngữ này diễn ra trên một luồng thảo luận của cộng đồng xml-dev vào năm 1999, tuy nhiên rất có thể nó đã được sử dụng từ trước đó rất lâu.