GGM, Lucien, Johnson, Billion
討論哪些是 MVP、哪些不是,還有頁面怎麼設計。
目標:替代 airtable。Provides similar rumor / answer recommendation to make editors' life easier.
希望可以幫助小編找到要闢謠的資料,也要有簡單的搜尋。
Optional: Search for rumor / answer / crawled doc (可以切換,讓小編們可以查詢)
顯示 rumor 與現有 answer,以及提供送出新的 answer。
排序方面,希望新的 answer 會排在舊的 answer 之上。因為使用者在寫新 answer 時,會看到舊有的 answer,一般來說新的 answer 應該會改進舊的。引入像知識加或 Stackoverflow 的 upvote / downvote 機制需要小心,需要一些規則或限制來避免平台使用者用 downvote 排擠少數使用者之狀況(想像成八卦版的推/噓)。另,如果真有編輯戰的行為,就等遇到之後再來處理(比照維基百科:先鎖定,然後管理者彙整)。
要解決的問題:
例: http://rumors.hacktabl.org/article/5362270457238-rumor 前半講雞腳的問題,後半講雞蛋的問題,兩者可能要分開闢謠。
例:
第一篇: http://rumors.hacktabl.org/article/5514464734557-rumor
第二篇: http://rumors.hacktabl.org/article/5478127110102-rumor
兩篇有若干相同之處,但第一篇多提了一個不實消息『目前最有效的「雞尾酒療法」,只能延長發病死亡時間。』,需要比第二篇多一段。
因此,我們需要比 rumor 更細的 entity ——「segment」(文章段落)
Rumor ---[has & belongs to many]--- Segments ---[has & belongs to many]--- Answers
S = <S1 S2 S3 ... Sn>
是否在 rumor R = <R1 R2 R3 ... Rm>
中存在:
S
做 hash。hash 值計算為 (S1*x^0 + S2*x^1 + ... + Sn*x^n) mod M
, x
與 M
為大質數。for all a from 1 to m-n
,計算 hash(<Ra Ra+1 ... Ra+n-1>)
,如果與 S 的 hash 一樣的話,才做字串比對。不一樣的話,hash(<Ra Ra+1 ... Ra+n-1>)/x + Ra+n * x^n
就會得到 hash(<Ra+1 Ra+2 ... Ra+n>)
的 hash。以上比對 S 與 R 之複雜度為 O(m-n)
。目前資料庫 entry 結構是
Rumor ---[has & belongs to many]--- Answers
加上 segment 就是對於每個 answer 與 rumor 的連線,都開一個 segment 來擺放,而 segment 內容等於整個 rumor。
若這些 rumor 有新的 segment,也會顯示這些新的 segment(因為重複較少)
relatedArticle
field(用來在 detail page 列出 related article)