1 điểm bởi GN⁺ 2025-06-29 | 1 bình luận | Chia sẻ qua WhatsApp
  • Đây là một trường hợp xem quy trình xin hộ chiếu Vương quốc Anh như một câu đố thu thập giấy tờ quan liêu, và dùng tìm kiếm logic trong Haskell để tính tổ hợp giấy tờ cần thiết để chứng minh quốc tịch
  • Yêu cầu giấy tờ của HMPO có thể đệ quy theo hướng cây gia phả tùy theo nơi sinh và ngày sinh của người nộp đơn, cha mẹ, ông bà; quốc tịch và tình trạng định cư của cha mẹ; cũng như tình trạng hôn nhân
  • Trong đơn xin hộ chiếu đầu tiên cho trẻ sinh ở nước ngoài, cơ quan đã yêu cầu đến cả giấy khai sinh và giấy chứng nhận kết hôn của cụ nội; đệ quy chỉ dừng khi chạm tới trường hợp cơ sở như sinh tại UK trước năm 1983
  • Phần triển khai dùng LogicT của Haskell và StateT Claims IO thay vì Prolog để liệt kê các Proof chứng minh quốc tịch có thể có, rồi tính Set Document cần cho từng đường đi
  • Cùng một đơn vẫn có thể có nhiều đường chứng minh, nên yêu cầu thực tế có thể dài hơn dù còn tồn tại một đường đơn giản hơn; tự động hóa có thể giúp chuẩn bị giấy tờ và hiểu lý do bị yêu cầu

Xem Passport Application như một trò chơi thu thập giấy tờ

  • Passport Application của Vương quốc Anh là quy trình nộp đơn trực tuyến do HMPO vận hành; phiên bản trực tuyến tiêu chuẩn có chi phí ban đầu khoảng £100
  • Mục tiêu là gom các giấy tờ gốc nằm rải rác ở nhiều cơ quan hành chính để chứng minh mệnh đề “người nộp đơn là người British”
  • Phần thưởng cuối cùng là một cuốn sổ nhỏ ghi ngày có thể nộp lại, tức hộ chiếu
  • Đơn giấy gần giống phiên bản “hardcore” dựa vào bưu điện

Các yêu cầu giấy tờ phát sinh trong đơn thực tế

  • Trường hợp này là một đơn nộp trực tuyến thay cho con gái, chọn độ khó “first child passport born abroad
  • Đơn được một “examiner” xử lý, nhưng người nộp đơn chỉ có thể hỏi thông qua advice agent trên chat hoặc điện thoại
    • Hướng dẫn của advice agent không phải quyết định chính thức
    • Nếu chuyển câu hỏi cho examiner thì sẽ phát sinh thời gian chờ vài ngày, trong trường hợp này tối đa khoảng 10 ngày
  • Khoảng 50% yêu cầu giấy tờ ban đầu được dịch vụ chat thông báo là không cần thiết, nhưng sau đó vẫn tiếp tục có yêu cầu bổ sung giấy tờ
  • Email yêu cầu có chứa __APPLICANT_NAME__ trông như một template bị lỗi, và điều kiện chứng minh trách nhiệm của cha mẹ cũng không rõ ràng
  • Cuối cùng, một yêu cầu hiếm gặp được đưa ra: giấy khai sinh và giấy chứng nhận kết hôn của cụ nội phía cha
    • “applicant's Paternal great grandfather” có thể mơ hồ vì có hai người
    • Trường hợp này được hiểu là applicant's father's father's father's birth certificate

Diễn giải logic của HMPO thành bài toán chứng minh đệ quy

  • Logic của HMPO có thể được xem là Bureaucratic Logic dựa trên giấy tờ
    • Giống Constructive Logic, chỉ khả năng logic đơn thuần là chưa đủ
    • Một chứng minh cần có “nhân chứng” là giấy tờ gốc
  • Không thể dùng trực tiếp luật bài trung P ∨ ¬P
    • Ví dụ, không được nói rằng một trong hai khả năng “cha của cha sinh tại UK hay không” là đúng rồi nộp giấy tờ cho cả hai kịch bản
    • Phải chọn một phương án và nộp giấy tờ phù hợp với phương án đó
  • Theo hướng dẫn của HMPO, người sinh ngoài UK sau ngày 31/12/1982 thường trở thành British citizen nếu tại thời điểm sinh có một trong hai cha mẹ là “British citizen otherwise than by descent”
  • Vì HMPO không chứng minh Britishness chỉ bằng hồ sơ hộ chiếu nội bộ của họ, một số đơn sẽ phát sinh yêu cầu giấy tờ đệ quy theo hướng cha mẹ, ông bà
  • Đệ quy dừng ở tổ tiên mà Britishness không phụ thuộc vào cha mẹ
    • Ví dụ: người đã nhập tịch
    • Ví dụ: người sinh tại UK trước năm 1983, một trường hợp cơ sở là British bất kể cha mẹ

Chuỗi yêu cầu trong trường hợp này

  • Ngày HMPO nhận giấy tờ đầu tiên là 7/6, bao gồm giấy khai sinh của người nộp đơn và giấy khai sinh của cha người nộp đơn
  • Yêu cầu ngày 12/6:
    • Vì cha người nộp đơn sinh sau ngày 1/1/1983, họ thông báo cần bằng chứng cho claim British citizenship của người cha
    • Do đó, giấy khai sinh của cha của người cha được yêu cầu
  • Yêu cầu ngày 26/6:
    • Vì ông nội của người nộp đơn sinh ở nước ngoài, họ thông báo cần bằng chứng cho claim British citizenship
    • Theo đó, giấy tờ của cụ nội phía cha của người nộp đơn được yêu cầu
    • Giấy tờ cần có là giấy khai sinh và giấy chứng nhận kết hôn
  • Đệ quy này diễn ra dưới dạng các email yêu cầu

Cấu trúc triển khai Haskell

  • Toàn bộ mã nằm trên GitHub
  • Ban đầu các quy tắc được mã hóa bằng Prolog, sau đó chuyển sang monad LogicT của Haskell
  • Mục tiêu không phải là một danh sách giấy tờ duy nhất, mà là tìm nhiều tập giấy tờ khả dĩ
    • Vì có nhiều cách claim quốc tịch, tập giấy tờ cần thiết cũng có thể có nhiều loại
    • Về mặt khái niệm cần Set (Set Document)
  • Mô hình giấy tờ biểu diễn người nộp đơn, tổ tiên và loại chứng nhận bằng type
    • Parent = Mother | Father
    • Person = Applicant | Parent Parent Person
    • Document = BirthCertificate Person | MarriageCertificate Person Person | NaturalizationCertificate Person | Passport Person
  • Chỉ có danh sách giấy tờ đơn thuần thì khó biết tại sao như vậy là đủ, nên bài toán được xử lý như tìm kiếm chứng minh
    • Dùng LogicT để liệt kê mọi Proof cho Britishness của người nộp đơn
    • Tính tập giấy tờ cần cho từng Proof

Proof và trạng thái tri thức

  • Type chứng minh gồm ba dạng
    • ViaParent Person Proof: suy ra Britishness thông qua cha/mẹ
    • And Proof Proof: kết hợp hai claim
    • Evidence Predicate: bằng chứng cơ sở
  • Các câu hỏi cần thiết được hỏi người dùng trong lúc chạy, và các câu trả lời trước đó được tái sử dụng ở mọi nhánh và khi backtracking
  • Để làm việc này, IO, State, LogicT được kết hợp
    • type Claims = Map Predicate Knowledge
    • type M a = LogicT (StateT Claims IO) a
  • Knowledge được chia thành SureYes, SureNo, Unsure
  • Predicate biểu diễn các điều kiện cần cho việc phán định quy tắc
    • IsBritish Person
    • Settled Person
    • BornBefore Int Person
    • BornInUK Person
    • BornAfter Int Person
    • Naturalized Person
    • Years3LivingInUK Person
    • IsBritOtbd Person
    • Married Person Person

Cốt lõi của các quy tắc xác định quốc tịch

  • Hàm brit là hàm gốc để xác định một người có British hay không
    • Trước tiên kiểm tra IsBritish p
    • Sau đó tìm kiếm Britishness theo nơi sinh và Britishness thông qua nhập tịch
  • Nhập tịch là một đường đơn giản, trong đó giấy chứng nhận nhập tịch là giấy tờ cốt lõi
  • Người sinh tại UK được chia đại khái thành hai trường hợp
    • Nếu sinh tại UK trước năm 1983, đó là trường hợp cơ sở để có Britishness
    • Nếu sinh sau đó, kiểm tra xem một trong hai cha mẹ có British hoặc có tình trạng định cư tại thời điểm đó hay không
  • Trường hợp sinh ngoài UK phức tạp hơn
    • Kiểm tra xem cha/mẹ có phải British otherwise than by descent hay không
    • Hoặc kiểm tra xem cha/mẹ có British và có bằng chứng đã cư trú liên tục 3 năm tại UK hay không
  • “British otherwise than by descent” chỉ người không nhận Britishness chỉ từ cha mẹ
    • Ví dụ: nhập tịch
    • Ví dụ: sinh tại UK
    • Ví dụ: sinh ở nước ngoài nhưng cha/mẹ đang làm việc trong “Crown Service”

Lan truyền thông qua cha/mẹ và điều kiện năm 2006

  • viaParent biểu diễn trường hợp con nhận Britishness thông qua cha/mẹ
  • Cả đường qua mẹ và qua cha đều được tìm kiếm, nhưng đường qua cha có điều kiện bổ sung
    • Nếu con sinh sau năm 2006, có thể dùng trực tiếp đường qua cha
    • Nếu sinh trước năm 2006, kiểm tra xem cha và mẹ có kết hôn tại thời điểm sinh hay không
  • Phần triển khai không bao gồm các đường có thể đi vòng như “registration” và một số điều khoản lịch sử mang tính phân biệt giới tính
  • Các luật hiện không còn áp dụng vẫn có thể cần được áp dụng về mặt lịch sử khi xác định Britishness của tổ tiên

Kết quả chạy và ba đường chứng minh

  • Chạy run (brit Applicant) diễn ra dưới dạng hỏi đáp tương tác
    • Ví dụ: người nộp đơn có sinh tại UK không
    • Ví dụ: người cha có British otherwise than by descent không
    • Ví dụ: ông bà có tình trạng định cư không
    • Trong trường hợp này, tổng cộng có 37 câu hỏi
  • Người dùng có thể trả lời không biết bằng dk, khi đó chương trình tiếp tục tìm kiếm nhánh tương ứng
  • Kết quả in ra rằng người nộp đơn có 3 Britishness proof
  • Proof 1:
    • Người nộp đơn sinh sau năm 2006
    • Britishness thông qua cha
    • Người cha sinh tại UK
    • Mẹ của người cha có tình trạng định cư tại thời điểm sinh
    • Giấy tờ cần thiết là giấy khai sinh của người nộp đơn, giấy khai sinh của người cha, và giấy tờ về tình trạng định cư của mẹ người cha
  • Proof 2:
    • Đây là đường trong đó mẹ của cha của cha sinh tại UK trước năm 1983
    • Giấy tờ cần có bao gồm giấy khai sinh của người nộp đơn, người cha, ông nội, mẹ của ông nội, cùng giấy chứng nhận kết hôn của ông bà
  • Proof 3:
    • Đây là đường trong đó cha của cha của cha, tức cụ nội phía cha, sinh tại UK trước năm 1983
    • Giấy tờ cần có bao gồm giấy khai sinh của người nộp đơn, người cha, ông nội, cụ nội phía cha, cùng giấy chứng nhận kết hôn của hai thế hệ
    • Birth certificate for Applicant's Father's Father's Father mà HMPO yêu cầu xuất hiện ở đường này

Crown Service và các đường phức tạp hơn

  • Trong trường hợp này, tình trạng Crown Service của cụ nội phía cha tạo ra sự rối rắm, nhưng theo kết quả chạy thì tình trạng đó không cần thiết
  • Trạng thái British otherwise than by descent của người cha đã được suy ra từ việc sinh tại UK và Britishness đơn giản của ông nội
  • Tuy vậy, Britishness đơn giản của ông nội vẫn cần được chứng minh, nên đệ quy đi xuống thế hệ ông nội
  • Giấy chứng nhận kết hôn cũng cần thiết để chứng minh “legitimacy” của ông nội
  • Đường mà HMPO chọn là Proof 3, dài và phức tạp nhất trong ba đường
    • Proof 1 là một đường đơn giản hơn, chỉ cần chứng minh tình trạng định cư của một tổ tiên
    • Công dân có được thông qua tổ tiên định cư nhưng không British có thể đơn giản hơn vì không đệ quy
    • Tuy nhiên bản thân việc chứng minh tình trạng định cư tại một thời điểm cụ thể có thể khó

Hạn chế triển khai và nhận định về tự động hóa

  • orElse không tìm kiếm nhánh thứ hai nếu nhánh thứ nhất thành công, nhưng <|> tìm kiếm cả hai nhánh
  • Trong một số quy tắc, dùng <|> sẽ tạo ra nhiều đường chứng minh quốc tịch hơn, nhưng có trường hợp trông như HMPO muốn đi hết một đường cụ thể trước
  • Phần triển khai không theo dõi đủ chính xác các điều kiện tại thời điểm cụ thể
    • Ví dụ: trường hợp tình trạng hôn nhân hoặc tình trạng định cư phải tồn tại tại thời điểm sinh của một người cụ thể
    • Tác giả xem đây là phần có thể bổ sung không quá khó
  • Đây không phải là triển khai toàn bộ luật quốc tịch Vương quốc Anh, mà chỉ mã hóa các phần liên quan đến trường hợp này hoặc thú vị
    • Một triển khai đầy đủ sẽ cần nhiều mã hơn rất nhiều và rất nhiều ngoại lệ
  • Nếu có phần mềm như vậy, nó có thể hữu ích trong việc tạo đúng tập giấy tờ nhanh hơn và hiểu vì sao yêu cầu trở nên phức tạp
  • Tự động hóa hoàn toàn cũng có rủi ro
    • Nếu chương trình cho false positive, có thể sẽ phát sinh khiếu nại kiểu “máy tính nói là được”
    • Tự động hóa thay thế chuyên môn con người có thể dẫn tới tình huống quyền công dân bị từ chối vì “máy tính nói là không được”
  • Hiện đơn vẫn chưa kết thúc; kế hoạch là theo đồng thời Proof 2 và Proof 3, nếu thất bại thì thử Proof 1

1 bình luận

 
GN⁺ 2025-06-29
Ý kiến trên Hacker News
  • Trong 10 năm qua, tôi đã làm việc với nhiều hệ thống lớn của chính phủ Anh, và bài viết này cho thấy rất rõ vì sao khi xây dựng dịch vụ/phần mềm chính phủ lại thường cho ra những kết quả kỳ lạ
    Về bản chất, phần mềm chính phủ là việc chuyển hàng trăm năm luật của Quốc hội thành mã. Nếu đã xây dựng hệ thống hộ chiếu HMPO mà luật làm nền tảng cho nó bị thay đổi hoặc bãi bỏ, thì ai đó phải tìm và sửa mọi phần trong tất cả các hệ thống chịu ảnh hưởng của luật đó
    Thêm vào đó, chính phủ thường thuê ngoài cho các công ty tư vấn đắt đỏ, còn các công ty này có động cơ kéo dài hợp đồng, tối đa hóa giá trị thu được từ khách hàng và bám trụ vị trí. Vì họ tạo ra các hệ thống có chất lượng và độ linh hoạt thất thường, nên mỗi khi luật thay đổi, quy trình tương tự lại lặp lại
    Trước đây từng có quyền ra quyết định tập trung như Spend Controls, nhưng giờ không còn một trung tâm nào điều phối vấn đề này, và đó là lý do chi phí cung cấp dịch vụ chính phủ lại đắt đỏ đến vậy

    • Tôi thắc mắc vì sao về mặt hợp đồng, các nhà thầu phụ dường như không có nghĩa vụ phải tạo ra một hệ thống hoạt động được
      Trên thực tế, họ tạo ra thứ gì đó gần như hoạt động được, tính phí cao quá mức khoảng 1000 lần cho một sản phẩm mà có lẽ một lập trình viên junior làm trong 3 tháng là xong, nhưng vẫn có vẻ được trả tiền như thể hệ thống thật sự đã hoạt động
    • Gần đây tôi gia hạn hộ chiếu ở Pháp, nơi có một nền tảng khá mới cho phép nộp tất cả giấy tờ cần thiết, và tôi chỉ phải điền một biểu mẫu trực tuyến
      Biểu mẫu dễ làm theo, sau đó tôi đến văn phòng một lần để hoàn tất thủ tục, chỉ mất 10 phút và hộ chiếu được gửi tới. Tôi thấy đó là một quy trình ít phiền toái nhất có thể
      Dù tình hình ở Anh ra sao thì cũng không đến mức vô vọng. Chính phủ không nên sợ tuyển nhân viên thật sự và cần nội bộ hóa toàn bộ hoạt động phát triển
    • Tôi nghĩ có thể có cơ hội cho một hệ thống quy tắc mã nguồn mở có thể tái sử dụng. Chính phủ ở mọi cấp có lẽ đều có thể dùng một hệ thống cho phép định nghĩa quy tắc một cách giàu khả năng biểu đạt và quản lý phiên bản
      Như đã chỉ ra, toàn bộ công việc kỹ thuật đều bị thuê ngoài, nên một phần khoảng cách có vẻ là do thiếu năng lực nội bộ để hình dung và thực hiện một thiết kế lại khá mang tính cách mạng
      Thật bực bội khi chính phủ chi hàng chục triệu cho chi phí nhà thầu trong các dự án IT, nhưng lại không thể trả mức giá thị trường cho các kỹ sư nội bộ, điều có thể rẻ hơn về dài hạn
    • Vấn đề luật về bản chất trở thành một kho lưu trữ chỉ được phép thêm vào với các sửa đổi liên tục chồng lên nhau không chỉ riêng ở Anh
      Sẽ tốt hơn nếu có một hệ thống mà ta chỉ cần nạp các “bản vá” theo kiểu chỉ thêm vào, thay vì rải các câu điều kiện ngoại lệ khắp nơi
      Một số ngôn ngữ lập trình logic có thể làm được phần nào, nhưng vấn đề thật sự có lẽ là không có ngân sách cho nợ kỹ thuật, và ngay cả các luật sư xử lý luật cũng có thể hưởng lợi từ sự phức tạp. Ước gì có những người chuyên trách giữ cho luật đơn giản nhất có thể
    • Thuê ngoài đã từng thật sự thành công cho ai chưa? Tôi hiếm khi nghe chuyện chính phủ thuê ngoài một việc gì đó mà thành công
  • Cú pháp Haskell rất thú vị. Sau khi có ai đó giải thích thì thấy trực quan, nhưng trước khi được giải thích thì không trực quan lắm
    Tôi không nghĩ chỉ vì mình quen với các ngôn ngữ họ Algol (C, Python, v.v.). Mã Haskell tôi từng thấy cho đến nay có quá nhiều toán tử nhằm làm mã ngắn gọn hơn, và chỉ nhìn vào thì không rõ chúng làm gì: https://academy.fpblock.com/haskell/tutorial/operators/

    • Trước đây tôi từng đếm sơ bộ, và số lượng toán tử gặp trong mã Haskell “thông thường” khi tránh lens hoặc thư viện đặc thù miền khá tương đương với số toán tử gặp trong JavaScript
      Cũng đã lâu rồi nên tôi không muốn làm lại, nhưng ngay cả nếu tính rộng rãi cho phía JavaScript, số toán tử cần cho Haskell thực tế không phải gấp 10 lần JavaScript thực tế, mà là khoảng gấp 2 lần
      Haskell có độ phức tạp phụ phải chấp nhận lúc đầu, nhưng đó không phải là khác biệt về loại so với các ngôn ngữ nhập môn phổ biến, mà là khác biệt về mức độ. Ta rất dễ quên mình đã học bao nhiêu thứ về các ngôn ngữ kiểu Algol, vì chúng đã được nội tâm hóa quá sâu
      Tôi từng dạy Java và Python cho học sinh trung học cơ sở/phổ thông mới học lập trình, và đặc biệt khi dạy 1:1, các em thường mắc ở những thứ mà tôi còn quên mất rằng chúng cần được giải thích. Chẳng hạn đặt sai vị trí dấu : trong Python, hoặc không hiểu = hoạt động như thế nào
      Ngay cả cú pháp “cơ bản” như := cũng phức tạp hơn chúng ta nghĩ rất nhiều. Nó giống như người bản ngữ tiếng Anh không ý thức về quy tắc thứ tự tính từ trong “big red ball” và “red big ball”, nhưng người học lại gặp nó như một bức tường
    • Phần lớn toán tử trong liên kết đó là những thứ rất chuẩn, và thuộc nhóm ít thú vị nhất khi nói về Haskell
      Nếu không biết lập trình mà cầm đại một chương trình Java lên, bạn cũng gần như sẽ không hiểu gì. Tương tự, nếu chưa học lớp toán nào mà cố đọc công thức, bạn sẽ không hiểu toán tử hay bất cứ thứ gì khác
      Tiêu chí nên là sau khi học các phần cơ bản và làm vài tutorial thì có thể hiểu được bao nhiêu
    • Tôi nghĩ “trực quan sau khi được giải thích, nhưng trước đó thì không” khá gần với ý nghĩa của trực quan
      Trực quan gần với việc có thể dễ dàng hiểu hoặc học mà không cần kiến thức hay giải thích trước đó
    • Tôi nhớ Larry Wall từng nói điều tương tự về Perl. Có những thứ chỉ có thể trở nên trực quan sau khi đã học
      Thứ bị phàn nàn thật ra có vẻ cũng không phải là cú pháp. Một số thành phần của Haskell tham chiếu đến các mô hình cụ thể như monad hay lens, và nếu người đọc chưa có sẵn kiến thức đó thì không cú pháp nào có thể nhồi kiến thức ấy vào cho họ
  • Tôi thích bài này. Ban đầu nó bắt đầu như một bản parody, rồi dần dần biến thành một lời giải nghiêm túc và tao nhã cho “trò chơi” đó
    Đến cuối bài, tôi cũng muốn tự thử làm

    • Có lẽ chơi thì được, nhưng vượt qua phần cuối sẽ khó hơn nhiều
  • Việc xin hộ chiếu Anh có thể hoàn tất hoàn toàn trực tuyến, ngoại trừ việc gửi các giấy tờ cần thiết qua bưu điện đến HMPO
    Ngay cả khi trở thành công dân “mới” qua nhận con nuôi, nhập tịch hoặc huyết thống, bạn vẫn có thể nộp đơn xin hộ chiếu mới từ ngoài Vương quốc Anh chỉ bằng thiết bị di động, bao gồm cả chụp ảnh, mà không cần tải ứng dụng riêng
    Có thể đùa rằng dùng giấy bút để chơi “chế độ khó”, nhưng trải nghiệm của tôi thì rất hiệu quả, nhanh và đơn giản

    • Năm ngoái tôi đã dùng hệ thống gia hạn hộ chiếu trực tuyến của Anh, và đó là một trong những website tốt nhất tôi dùng sau một thời gian rất dài. Thật sự rất mới mẻ
      Nó hoạt động hoàn hảo ngay cả trên máy tính cũ và trình duyệt “cổ”, màu sắc, văn bản, nút bấm, ô nhập liệu và yêu cầu đều đơn giản, dễ tiếp cận và rõ ràng. Điều hướng từng bước cũng đơn giản và thực sự thân thiện
      Thật tiếc là không có nhiều doanh nghiệp quan tâm đủ đến khách hàng để đầu tư vào những website được thiết kế tốt như vậy. HMPO làm tốt lắm
    • Gần đây tôi lần đầu gia hạn bằng hệ thống trực tuyến và toàn bộ quy trình nhanh một cách bất thường. Tôi nộp đơn từ California và nhận lại hộ chiếu trong chưa đầy 2 tuần
      Để so sánh, khi tôi gia hạn hộ chiếu Canada ở California, đó là hộ chiếu bị hỏng sau 3 năm và mất 4 tháng. Hoàn toàn dựa trên giấy tờ, với những điều kiện vô lý như yêu cầu ảnh có đóng dấu của người bảo lãnh và thợ chụp ảnh
      Tôi biết đang có dự án thí điểm số hóa, nhưng họ nên triển khai toàn diện càng sớm càng tốt
    • Có vẻ bạn nói làm cho nó trông đơn giản hơn thực tế rất nhiều. Tôi thừa nhận quy trình gia hạn đã được tinh giản khá thành công, nhưng vài năm trước khi giúp một người bạn xin hộ chiếu lần đầu, tôi thấy quy trình dài và tẻ nhạt
      Cần phỏng vấn trực tiếp và cần chữ ký của một người có trách nhiệm, điều mà nhiều người không tiếp cận được. Ví dụ bác sĩ không được chấp nhận
  • Với những người làm thủ tục này ở Nhật, đây là các giấy tờ tôi đã phải nộp. Tùy hoàn cảnh mà sẽ khác, đặc biệt tác giả bài gốc có vẻ cũng sinh ngoài Vương quốc Anh nên có thể đã cần giấy tờ khác hoặc nhiều hơn
    Những thứ tôi nộp gồm bản sao chứng thực giấy khai sinh đặt từ General Register Office của Anh, bản gốc và bản dịch hộ tịch Nhật, bản gốc và bản dịch giấy chứng nhận thụ lý khai sinh, bản gốc và bản dịch giấy đăng ký kết hôn, bản sao màu tất cả các trang hộ chiếu Nhật của con, và bản sao hộ chiếu của một công dân Mỹ hoặc Anh xác nhận đứa trẻ là con tôi
    Quy trình khá không rõ ràng, và nhìn chung có vẻ là cơ chế tiếp tục nộp giấy tờ cho đến khi người phụ trách hài lòng

    • Trong trường hợp này, thực ra applicant's father, tức là tôi, sinh ở Anh, nhưng applicant's father's father thì không sinh ở Anh, và đó là nguyên nhân gây thêm phức tạp
    • Thú vị thật. Họ không yêu cầu giấy khai sinh của cha mẹ sao?
      Tôi là người Anh, vợ tôi là người Hungary và chúng tôi sống ở Hungary; họ yêu cầu giấy khai sinh của cả hai bên cha mẹ và giấy khai sinh của cả bốn ông bà
      Vì vợ tôi không liên lạc với cha mình, chúng tôi phải nộp thư giải thích tình huống và được chấp nhận. Tuy nhiên, dù sao quốc tịch Anh của con trai tôi cũng đến từ quốc tịch Anh của tôi, nên tôi không thật sự hiểu quốc tịch của vợ tôi và của cha mẹ vợ liên quan gì
      Chúng tôi không cần sao chép hộ chiếu của người khác, nhưng một người bạn gia đình phải xác nhận trực tuyến. Người bạn gia đình đó là luật sư ở Anh nên nằm trong danh sách nghề nghiệp được chấp thuận
    • Bản sao màu tất cả các trang hộ chiếu Nhật của đứa trẻ ư, cần làm gì nhỉ?
  • Vì con gái tôi sinh ở Mỹ nên phải làm đơn MN1. Lý do là cả tôi và vợ/chồng tôi đều sinh ở nước ngoài
    Như bài gốc ám chỉ, đây là một kiểu nhiệm vụ phụ gọi là “đăng ký”, và nếu không làm trước khi đứa trẻ 18 tuổi thì sẽ quá hạn. Dĩ nhiên tôi hiểu là ngay cả trong tình huống này vẫn còn có các con đường để lấy quốc tịch
    Phần khó nhất của quy trình là tìm người chứng thực các giấy tờ bằng chứng của tôi, thứ không được xử lý trong phiên bản Passport Application này nhưng có vẻ sẽ xuất hiện trong gói DLC tương lai. Họ nói phải nộp bản gốc, nhưng vì họ giữ giấy tờ, kể cả hộ chiếu, trong 3–6 tháng, nên điều đó không thực tế với người sống ở nước ngoài
    Tôi không nhớ chính xác quy định, nhưng không thể dùng công chứng viên Mỹ hay quy trình chứng thực thông thường của luật sư, và cuối cùng phải đến văn phòng hội đồng quận
    Tôi gọi khoảng năm hội đồng quận và tất cả đều nói không biết quy trình hay yêu cầu, cuối cùng tìm được một người rất thân thiện ở Islington Council. Dù vậy, đây vẫn thuộc nhóm những tương tác gây bực bội hơn của tôi với chính phủ Anh

  • Tôi cũng đã chơi trò Passport Application với tư cách người đại diện
    Một trong những quy tắc thú vị mà bài gốc không nhắc đến là quy tắc lịch sử biến thiên. Các sự kiện chứa trong một tài liệu có thể thay đổi ngay trong một khoảng thời gian ngắn, nên một tài liệu đã được quét vào hệ thống ghi nhận sự kiện của thẩm tra viên có thể cần được gửi trả lại để quét lại về sau
    Người ta nói rằng việc xác minh các sự kiện trong tài liệu có thay đổi hay không đồng nghĩa với việc chủng tộc thẩm tra viên ngầm thừa nhận sự tồn tại của đa vũ trụ
    Kênh liên lạc giữa nhân viên tổng đài “NPC” và thẩm tra viên có vẻ giống như cầu nguyện, và thứ thực sự nhận được chỉ là những suy đoán mơ hồ
    Ngoài ra, có thể tác giả bài gốc là người mê Mornington Crescent. Một trò chơi có topo quy tắc trông tương tự Passport Application nói trên

    • Trong hệ thống của Anh, tên gọi có tính lưu động và có thể thay đổi tùy ý mà không cần tuyên bố riêng. Vì vậy mẹ tôi có thể đăng ký khai sinh tôi bằng họ từ cuộc hôn nhân thứ ba của mẹ bà
      Giấy khai sinh ở một số khía cạnh cũng không thể thay đổi, nhưng không phải mọi thứ ghi trên đó đều hoàn toàn bất biến
      Hơn nữa, văn phòng hộ chiếu đã quên mất quyết định liên quan đến hộ chiếu trước đây của tôi, khi họ từng giải thích và bỏ qua sự không khớp về họ này. Thậm chí trong một hộ chiếu, tôi còn được ghi trên một trang trong hộ chiếu của mẹ tôi
      Các NPC thật sự khiến người ta nổi giận. Mỗi lần gọi điện và gửi email lại nhận được câu trả lời khác nhau. Giống một mô hình ngôn ngữ lớn tệ hại
      Sau khi nộp đơn, tôi phải giải thích với mẹ rằng trong cùng một bộ hồ sơ, một cô con gái cần thêm giấy tờ của Anh còn cô con gái kia thì không cần và đã được cấp hộ chiếu. Chỉ vì một người sinh ở Anh còn người kia thì không
      Mẹ tôi tất nhiên nổi giận, nêu vấn đề với nghị sĩ, và nó được giải quyết trong một ngày
  • Tôi vừa trải qua quy trình địa ngục này vì một trong các con gái. Con bé sinh ở Nhật, và tôi đã vất vả để khớp họ của mẹ tôi với họ ghi trên giấy khai sinh của tôi
    Nói ngắn gọn, vì tôi đã chứng minh mình sinh ở Anh và có quốc tịch, tức là có hộ chiếu, nên dù xét khả năng nào thì đó cũng có vẻ là một trạng thái có thể truyền cho con gái tôi. Điều này không khớp với hướng dẫn về giấy tờ yêu cầu, nhưng tôi xem đó là cách ít đau đớn hơn nhiều

  • “Trường hợp cơ sở là gì? Trường hợp cơ sở là một tổ tiên có tư cách người Anh không phụ thuộc vào cha mẹ, chẳng hạn người đã nhập tịch hoặc người sinh ra ở Anh trước năm 1983. Càng đi xa từ năm 1983 về tương lai, call stack này càng sâu hơn” — đoạn này trông như chuyện điên rồ đối với người đến từ một nước có cơ sở dữ liệu trung tâm về công dân và cư dân nước ngoài, nơi việc xác minh quốc tịch chỉ cỡ một lệnh SELECT đơn trong bảng SQL

    • Nhiều quốc gia không có cách nào biết ai là công dân của mình
      Người sinh ra ở nước ngoài trong nhiều trường hợp cũng là công dân, và Anh đã trải qua nhiều thay đổi lãnh thổ ảnh hưởng đến quốc tịch đến mức vô lý
      Một số công dân hiện nay có quốc tịch vì họ sinh ra ở Bombay, tức Mumbai, còn một số khác có quốc tịch vì họ sinh ra ở Hong Kong
      Để duy trì một danh sách công dân đáng tin cậy thì cần đăng ký định kỳ, và những ai không đăng ký phải bị mất quốc tịch
    • Tôi không nghĩ có khả năng việc xác minh quốc tịch chỉ là một lệnh SELECT đơn trong bảng SQL. Dù tỷ lệ cược cực kỳ bất lợi cho tôi, tôi vẫn sẵn sàng cược
  • Vài năm trước tôi đã chơi trò này
    Dù sinh ra ở Anh với cha là người Anh, nhân vật của tôi trước đây lại không phải là người Anh. Vì cha mẹ không kết hôn, và tôi sinh sau năm 1983 nhưng trước khi quy định được thay đổi vào năm 2006
    Tôi không chắc thời điểm chính xác, nhưng có vẻ vào một lúc nào đó trong thập niên 2010, bản cập nhật năm 2006 đã được áp dụng hồi tố nên nhân vật của tôi cũng có thể chơi được. Tôi không làm nhiều nhiệm vụ phụ; việc chính là tìm giấy khai sinh của cha
    Nhân vật của tôi cũng phải tham dự nghi thức cuối game và tuyên thệ trung thành với Nữ hoàng, điều đó cảm thấy kỳ lạ với một người sinh ra ở đất nước này và sống ở đây cả đời

    • Dù sao thì cũng nhận được phần credit kết thúc bonus!