User:Cewbot/機器人設計理念
外观
機器人設計理念
[编辑]以下列出理想之機器人設計理念:
- 最小化更動
- 若是完全不更動也能接受,就不更動。若必須更動,則在可確認的範圍內一次更改到位,包括規範化;否則僅作最小修正。
- 除非是非修正不可的問題,否則應該盡量避免修改封存紀錄。
- 一次到位
- 更動具穩定度。同樣操作執行一次後,第二次執行就不該有更動。
- 僅更動篩選過的內容
- 僅處理確認屬於本次任務之 pattern。對於無法解析或有問題者,跳過不處理之。寧可漏判 (false negative) 也不誤判 (false positive)。例如先對內容作盡可能精準之模式匹配,並針對符合之部分方作更動。若模糊無法判別,則不更動,而註記為可能需要增加模式、或需要人工判別之內容。
- cf. 最小權限原則
- 考量特殊wikitext
- 處理頁面最好採用語法解析器。直接處理wikitext時,須考量特殊情形。如:
- 考量相同表現之語法。如:要尋找所有「軟體」亦須匹配字詞轉換語法「軟-{}-體」。
- 要偵測所有{{Tl}}須排除「
<!-- {{Template:Tl}} -->
」或在<nowiki></nowiki>
中的情況。 - 使用
{{-}}
、{{!}}
、{{=}}
、解析器函數、特殊字符與魔術字的情況。例如要找「机器人」,也得考慮「{{{name|{{int:Group-bot}}}}}
」。
因此:
- 依據規範產生wikitext,少用花俏(漂亮舒適而繁雜)但能產生(解析出)相同表現之語法。
- 對大量使用之外部連結,以模板替代之。e.g., 近代デジタルライブラリーのアドレス変更およびテンプートによるカプセル化
- 繁簡文字直接用分歧性最大的語言,於分歧性小的語言自動轉換就沒有這個煩惱了。就「-{回复}-」、「-{回復}-」、「-{回覆}-」來說,使用繁體,簡體自動轉換。遇到「著」這個這個字則分開成「着」和「著」(
由於「著」字意思太多,香港和大陸將「着」、「著」二字分家,其實比台灣只用一字更能消除歧義。
)。這樣都能顯著降低轉換錯誤的困擾。(Wikipedia:互助客栈/其他#假如有很簡潔扼要的方法能解決繁簡轉換問題,是否有必要特地使用複雜的手工轉換標籤?有相關討論) - 字詞轉換應該盡可能維持整個詞彙的完整,這樣除了人類容易讀原始碼,亦可方便機器處理。若無必要,建議採用「-{軟體}-」而非「軟-{}-體」以方便搜尋。必要時,亦可考慮以零寬空格代替<nowiki>。
- 完整記錄
- 盡可能作完整記錄。可能的話還包含 undo script。
- 更動後須測試再上路
- 每次更動後皆先作小幅度測試。若發生問題則即時回復,確保沒問題再正式上路,應用於成品/上線環境 (production environment)。
- 考量人類作業的因素
- 機器人的操作應該能夠讓人類理解。並且若是人類手動代替機器人操作部分作業時,機器人也能夠正確判別以及運作。
- 機器人對使用者編輯的修正應採用友善的語氣。
- 當機器人失靈時,人類應當有辦法手動代替作業。例如不能夠把知道某些密碼、密鑰或是雜湊值或者其生成方法當作編輯後能夠正確運作的條件。
- 機器人應考慮作業到一半被其他人或者其他機器人插斷、編輯衝突的情況,若可行則再次作業,或採行相對應的措施。
- 開放原始碼並且維持一個能夠即時修改維護程式的團隊
- 這可以讓機器人在出問題、有漏洞時可以即時更正,並且避免機器人年久失修、無人維護。