Giải bài toán “Passport Application” của Vương quốc Anh bằng Haskell
(jameshaydon.github.io)- Đâ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 IOthay vì Prolog để liệt kê cácProofchứng minh quốc tịch có thể có, rồi tínhSet Documentcầ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
LogicTcủ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 | FatherPerson = Applicant | Parent Parent PersonDocument = 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ọiProofcho Britishness của người nộp đơn - Tính tập giấy tờ cần cho từng
Proof
- Dùng
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 claimEvidence 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ợptype Claims = Map Predicate Knowledgetype M a = LogicT (StateT Claims IO) a
Knowledgeđược chia thànhSureYes,SureNo,UnsurePredicatebiểu diễn các điều kiện cần cho việc phán định quy tắcIsBritish PersonSettled PersonBornBefore Int PersonBornInUK PersonBornAfter Int PersonNaturalized PersonYears3LivingInUK PersonIsBritOtbd PersonMarried Person Person
Cốt lõi của các quy tắc xác định quốc tịch
- Hàm
britlà 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
- Trước tiên kiểm tra
- 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
viaParentbiể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 Fathermà 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
orElsekhô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
Ý 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
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
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
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
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ể
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/
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àoNgay cả cú pháp “cơ bản” như
:và=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ườngNế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
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 đó
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
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ó 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
Để 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ầ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
applicant's father, tức là tôi, sinh ở Anh, nhưngapplicant's father's fatherthì không sinh ở Anh, và đó là nguyên nhân gây thêm phức tạpTô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
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
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 SQLNgườ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
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ượcVà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