Module talk:Chemicals

message: ：已成立追蹤分類:Category:CAS號重定向（搭配模板）--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月19日 (二) 15:47 (UTC)
<BR>，先前已完成:Category:CAS不正確標誌的條目的校对。（PS:已提出机器人请求：Wikipedia:机器人/作业请求）--Leiem（留言） 2017年12月19日 (二) 15:55 (UTC)
replies: text: :分類:Category:無CAS號重定向的物質條目應該可以協助機器人運作。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月20日 (三) 06:39 (UTC)

text: ：已根據CAS号#格式寫了
replies: text: :例如：
replies: text: :: →  （水）

text: :: →

text: :: →

text: ::

text: :: →

text: :: →  （二氧化碳）

text: :: →

text: :已運用於，會在建立錯誤的CAS號重定向時將其加入:Category:CAS號不正確的重定向。請協助複查

text: --　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月19日 (二) 17:39 (UTC)
replies: text: :：由於違反CAS号#格式的重定向一定符合WP:CSD#R3，因此這筆編輯Special:Diff/47445017直接將校驗失敗者掛上，若有違規請回退這筆編輯Special:Diff/47445017。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月19日 (二) 17:42 (UTC)
關於Module:Chemicals裡面校驗副程式，是否有用到d:Property:P231（用於加入CAS號的屬性）的屬性約束的格式約束，因為d:Property:P231的屬性約束的格式約束的正規表達式的格式化字串限定符是「[1-9]\d+-\d\d-\d」，見d:Wikidata:Database reports/Constraint_violations/P231#Format的檢測報告--林勇智 2017年12月21日 (四) 12:59 (UTC)

text: :不需使用正規表達式，只需要檢查是否為三端由「-」分割組成的數字，以及最後一位校驗碼是否正確，此程式碼的正確性將會高於正規表達式：「因為正規表達式不能做加法乘法與取模核對校驗碼」。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 13:04 (UTC)
replies: text: ::一个CAS編號以连字符“-”分为三部分，第一部分有2到7位数字，第二部分有2位数字，第三部分有1位数字作为校验码。CAS編號以升序排列且没有任何内在含义。校验码的计算方法如下：CAS顺序号（第一、二部分数字）的最后一位乘以1，最后第二位乘以2，依此类推，然后再把所有的乘积相加，再把和除以10，其余数就是第三部分的校验码。举例来说，水（H2O）的CAS編號前两部分是7732-18，则其校验码= ( 8×1 + 1×2 + 2×3 + 3×4 + 7×5 + 7×6 ) mod 10 = 105 mod 10 = 5（mod是求餘运算符）--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 13:08 (UTC)
replies: text: :::

text: :::#演算法先檢查是否由「-」分割，且為三部分，因此等價於「[1-9]\d+\d\d\d」

text: :::#接著檢查是否每一位都是數字因此等價於「--」

text: :::#「此部分為該正規表達式的缺陷！！！！」，接著依照CAS顺序号（第一、二部分数字）的最后一位乘以1，最后第二位乘以2，依此类推，然后再把所有的乘积相加，再把和除以10，其余数就與第三部分的校验码比對。

text: ::--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 13:19 (UTC)
replies: text: ::::根據CAS号#格式的敘述，d:Property:P231裡面正規表達式的格式化字串的值有錯，應該是[1-9]\d{1,6}-\d\d-\d，另外先做字串格式檢測，若該字串能匹配[1-9]\d{1,6}-\d\d-\d這個正規表達式才做校驗碼檢測。--林勇智 2017年12月21日 (四) 13:54 (UTC)
replies: text: :::::多此一舉，只要確定其為由「-」分割的三串數字就夠了。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 14:02 (UTC)
replies: text: ::::::只要求Module:Chemicals裡面校驗副程式能正確運作就好了--林勇智 2017年12月21日 (四) 14:15 (UTC)
replies: text: :::::::pseudocode給你，這一定會運作好嗎
  虛擬碼 檢查CAS ( 參數 CAS號 : 字串)  布林字串
       如果 (以「-」分割 CAS號 字串的分割結果)的數量 ≠ 3
          回傳 「」
       宣告 CAS無分割號 : 字串 = 第1個分割區 與 第2個分割區 的字串合併結果
       如果 ( (第1個分割區字數 < 2) 或者 (第1個分割區字數 > 7) )
          回傳 「」
       如果  第2個分割區字數 ≠ 2
          回傳 「」
       如果  第3個分割區字數 ≠ 1
          回傳 「」
       宣告 檢查碼 : 整數 = (第3個分割區)轉成整數
       如果 ((第3個分割區)轉成整數 ) 失敗)
          回傳 「」
        
       宣告 檢查總和 : 整數 = 0
       迴圈 足標 i = 從 1 到 CAS無分割號的長度
          宣告 index : 自然數 = CAS無分割號的長度 + 1 - i
          宣告 cas_symbol : 整數 = (CAS無分割號的第index個字)轉成整數
          如果 ((CAS無分割號的第index個字)轉成整數 ) 成功)
              檢查總和 = 檢查總和 + (cas_symbol × i)
          否則 
              回傳 「」
       如果  (檢查總和 除以 10 的餘數) = 檢查碼
          回傳 「是」
       否則 
          回傳 「」

text: ::::::--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 14:44 (UTC)
replies: text: :::::::正規表達式根本不可能會具備求和、取餘數並比較校驗碼的能力好嗎，正規表達式非萬能，因為他不是程式語言，只是描述語言。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 14:46 (UTC)
replies: text: ::::::::若虛擬碼的如果((第3個分割區)轉成整數)失敗)改成如果(((第3個分割區)轉成整數)失敗)或((CAS無分割號)轉成整數)失敗))的話--林勇智 2017年12月21日 (四) 15:03 (UTC)
replies: text: :::::::::那邊的用途是為了確保「檢查碼」不是Null--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 15:05 (UTC)
replies: text: ::::::::::比如上面故意放娜娜奇去測試，若執行「a = tonumber(娜娜奇)」（一定出錯，因為娜娜奇並不是一個數字），a會是Null，這時若直接把a拿去運算會Crash或Error，因此就讓他直接「」以避免出錯--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 15:11 (UTC)

text: 宇帆先停停。另請來看看代碼是否可行。--Temp3600（留言） 2017年12月21日 (四) 15:16 (UTC)
replies: text: :不認為我的演算法有甚麼問題，完全按照CAS号#格式來Implement。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 15:22 (UTC)
replies: text: ::比方說氯酸鈣在這個版本Special:固定链接/44678491，我的程式就有算出其檢查碼應為0 （手算 4×1 + 7×2 + 7×3 + 1×4 + 0×5 + 0×6 + 1×7 = 50, 50 ≡ 0 mod 10），可是條目中卻寫三，我的程式有順利抓出此錯誤，並加入:Category:CAS不正確標誌的條目；三苯基膦氯化亚金的版本Special:固定链接/41034670中，也有檢查出含非法字元，我的程式有順利抓處此錯誤，並加入:Category:CAS不正確標誌的條目。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 15:37 (UTC)
replies: text: :::我不會coding，所以我只能等WhitePhosphorus來判斷。--Temp3600（留言） 2017年12月21日 (四) 19:40 (UTC)
replies: text: ::::我只是覺得感覺現在好像「我講的一切都是錯的」，然後「白磷講的一切都一定是對的」，讓我覺得很難過。拜託不要這樣好嗎，我希望我們還能和平交流--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 20:41 (UTC)
replies: text: ::::: 没什么问题。只不过输入字符串前后加任意个“-”函数看不出来，例如 → 。不过看起来也不是什么大问题。 --砜中嘌呤的白磷萃取 打谱 2017年12月23日 (六) 03:39 (UTC)
檢查CAS(娜娜奇娜娜奇娜-娜奇-1)的結果應該為「假」--林勇智 2017年12月21日 (四) 15:20 (UTC)

text:  → 。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 15:23 (UTC)
replies: text: :結果為假。不認為這裡會出甚麼錯。實際上也沒有出錯。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月21日 (四) 15:49 (UTC)
replies: text: ::還有，娜娜奇本來就不是一個數字（如果娜娜奇是一個數字，告訴我數學上\sin\left( \sqrt[\text{娜} \quad \text{娜} \quad \text{奇} \quad] {\text{娜} \quad \text{娜} \quad \text{奇} \quad} \right)等於多少 = ），所以在第一次迴圈 宣告 cas_symbol : 整數 = (CAS無分割號的第index個字)轉成整數之後的 如果 ((CAS無分割號的第index個字)轉成整數 ) 成功)這邊就會直接因為轉換失敗而「」，不會進到最後的取餘比對檢查碼程序。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月22日 (五) 15:27 (UTC)

text: :目前看來代碼大致沒問題，CAS號的規則應該不會有特例(這句需要專業的解惑)，另外維基數據裡面的CAS有機器人添加嗎？如果是人手添加我會有擔心手誤的時候，如果有機器人依數據庫添加那較可放心，另如果條目沒有輸入CAS碼，而維基數據有可以在條目添加維基數據存在而條目內沒有提供CAS碼，在依人手或機器人添加（這兩個任務是區分的）。--米莉婭諾朵卡 2017年12月22日 (五) 15:14 (UTC)
*：模組3500+引用，請不要改來改去。--Xiplus←A2093064 2017年12月22日 (五) 15:28 (UTC)
**：，所以我才需要不停地跟再三強調我的Code是對的，避免需要修改。現在我仍堅持我的Code是100%正確無誤。因為是100%正確無誤，因此不存在改來改去的必要，可見的質疑是沒有必要的。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月22日 (五) 15:31 (UTC)
***翻查歷史有許多瑣碎編輯，這都不應該在高引用量模板內發生。請另建沙盒，待所有語法都測試無誤後再一併加入正式模組。--Xiplus←A2093064 2017年12月23日 (六) 02:37 (UTC)
****：那是在加入Template:Chembox CASNo之前發生的。在加入Template:Chembox CASNo之前沒那麼多引用----　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月23日 (六) 04:35 (UTC)
*****好的我了解了。--Xiplus←A2093064 2017年12月23日 (六) 04:46 (UTC)
*是d:User:KrBot：d:Special:diff/102385002--林勇智 2017年12月22日 (五) 17:03 (UTC)
*話說回來，d:Property talk:P231的裡面根本沒放，其SPARQL的程式碼內容應該像d:Property talk:P212一樣可以檢查CAS的校驗碼，有誰會SPARQL這個程式語言--林勇智 2017年12月22日 (五) 18:02 (UTC)
**：中文維基不需要，而且中文維基模組都說要用Lua寫了，我照規矩用都Lua寫好了，也讓3500+個頁面完好運作了，都有一個可以有效運作的程式了，您為何就偏偏不滿意，一直要求修改？，Xiplus←A2093064君說的話，還有WP:沒壞就不要修。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月22日 (五) 18:12 (UTC)
***：希望能夠在維基數據裡面運作--林勇智 2017年12月22日 (五) 18:17 (UTC)
****：那應該要講清楚，從稍早發生爭執都是因為我一直以為你們是在討論中文維基的CAS號重定向通過案之後續處裡。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月22日 (五) 18:20 (UTC)
*chembox中关于CAS号的参数有“CASNo”、“CASNo1”、“CASNo2”等，这些情况会出现在一个化合物存在无水物和水合物，或手性等构型的情况，例如硫酸铜，现CuSO4、CuSO4·5H2O的CAS号都重定向至CuSO4。--Leiem（留言） 2017年12月23日 (六) 05:03 (UTC)
*：分類:Category:含有未校對CAS號的條目已建構，請求Leiem使用您的SciFinder帳戶協助校對，感激不盡。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月24日 (日) 18:14 (UTC)
**：校對完成後，只需要把的第二參數從??或?改成CAS即可使其移除:Category:含有未校對CAS號的條目分類，完成校對清理作業。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月24日 (日) 18:17 (UTC)
***例如，原本為或，校對完成後改為即可。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月24日 (日) 18:19 (UTC)
*****有时间将逐个校验。你也可以通过一些试剂网站搜索CAS，如果找到相应的化学品，就是有的，如Macklin、Aladdin、Alfa等。--Leiem（留言） 2017年12月25日 (一) 07:50 (UTC)
*進度報告，由於先前的校對方式雖然說是先檢查英文維基有無校對，但實際上，為了寫程式方便，所以若發現「英文區校對過了」，我的做法是用正規運算式將整個英文區模板拷貝過來，覆蓋中文區對應模板，但由於會造成中文區遺失內容，因此遭到IRC上多位用戶反對。
**新的做法是，
**# 對所有的中文區校對狀況不明的條目
**# 解析 英文區 和中文區的維基代碼
**# 精確地定出 英文區 和 中文區 的CAS號位置
**# 若發現「英文區校對過了」，中文區就在對應的CAS號位置標記已校對
**# 若發現「英文區沒有校對過」或「英文區條目不存在」，中文區就在對應的CAS號位置標記需要校對
**實作進度:
*** 已完成Lexical Analysis， 和 LR(1) Parsing Table，實測硫酸銅頁面沒有 Syntax Error
**製作中部分:
*** 展出 Parsing Tree[資料結構建置中] （做完Syntax Analysis）， 從Tree中找出，並建出CAS List[部分完成]。
**以上。--　宇帆（明年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2017年12月28日 (四) 19:12 (UTC)
** ，已使用WP:FLOOD從4,058個頁面中，共抓出2,039個需要校對CAS號的條目，但有173個頁面需要手動確認；且自動根據校對狀況建立CAS號重定向機器人User:A2569875-bot已啟動。--　宇帆（今年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2018年1月4日 (四) 02:24 (UTC)
*報告：根據機器人User:A2569875-bot的運作紀錄，截至2018年1月14日 (日) 07:25 (UTC)，已建立2,081個CAS號重定向，但:分類:含有未校對CAS號的條目尚有2,033個條目尚未校對CAS號。未來機器人會根據校對狀況建立CAS號重定向。--　宇帆（今年二月加入維基將滿十周年！留言·歡迎簽到·聯絡） 2018年1月14日 (日) 07:25 (UTC)
thread_title:  建立CAS号重定向後續討論