Wikifunctions:常见问题
本页解答Wikifunctions相关的常见问题。若本页未能解答您的疑惑,欢迎前往讨论页发问。
另外,有關於Wikifunctions和抽象維基百科之中更一般的問題,是否考慮一下我們的元維基上的FAQ。
簡介
这个是关于什么的?
Wikifunctions是一个新兴的维基媒体项目,它提供了一个任何人都可调用、编写、维护和使用的多样化目录。该项目还提供了一种底层技术,它最终将能够把抽象维基百科(Abstract Wikipedia)中与语言无关的内容翻译成任何一种维基百科语言版本。这将让每个人都能用自己偏好的语言来贡献和阅读文章。
什么是函数?
函数是一种知识形态,能够回答问题,比如两个日期之间过去了多少天,或者两个城市之间的距离。更复杂的函数可以解答更复杂的问题,例如三维形状的体积,特定日期火星和金星之间的距离,或者两个物种是否在同一时间存活。
我们已经在许多类型的知识查询中使用了函数,例如向搜索引擎提问。英文维基百科上的模板,例如Template:Convert和Template:Age,也是一些已经在许多维基百科中使用的功能示例,这些功能是用wikitext和Lua编写的,并且需要手动复制到希望使用它们的每一个维基上。
什么是?
实现是一种特定的执行函数方式。实现就像是一个食譜,它列出了运行函数所需的步骤。它可能是编程语言中的一段或是对其它函数调用的组合。一个函数可能有多个实现,这些实现应当都是等效的。
什么是测试?
测试是一种确定给定函数是否正常工作的方法。一个函数通常会有多个测试,每个测试都会指定一些输入到该函数以及给定输入的输出必须满足的条件。
例如,「標題大小寫」功能的測試器應包括:「abc」應該要變成「Abc」;「war and peace」應該要變成「War and Peace」;「война и мир」應該要變成「6」;而「123」應該要保持「123」。
哪些功能現在已經可用,哪些很快就會可用,哪些還需要更長的時間?
- 發佈時:
- 我們能讓函數處理Strings和Booleans。
- Wikifunctions從一開始就會完全國際化。它可以用於任何一個語言。
- 正在開發中:
- 不完全支援泛型的類型和泛型的函式。
- 新增類型在目前僅限於開發團隊。未來,社群將可以新增更多的類型。未來還有許多工作要做,讓類型的行為更順暢。
- 其中一種特別有趣的類型是二進位的資料,尤其是檔案。
- 我們目前支援兩種程式語言的實作:JavaScript和Python。未來,我們希望支援更多的語言。
- 目前,從以任何程式語言撰寫的實作中呼叫其他函式是不可能的。目前只能透過組合來實現。
- 在將來:
- 可以從其他維基媒體專案中呼叫Wikifunctions函式,並將其結果整合到頁面的輸出中。
- 可以在函式中使用來自維基數據的資料。
- 可以從維基共享資源的命名空間呼叫資料集。
Wikifunctions是什麼樣的多語言?
Wikifunctions與抽象維基百科在多種語言上彼此互不影響:
- Wikifunctions的內容和使用者介面都是多語言的。使用者可以用任何的自然語言來讀出和呼叫Wikifunctions上的函式。以下是函式「join string」的英語、波蘭語和希伯來語版函式,這個函式其他更多語言的版本。
- 貢獻者可以用他們的語言編輯和改進Wikifunctions。甚至是這些實作也都可以用貢獻者本身的自然語言來編輯。例如,合成函式「and」可以用德文、英文、或其他約有300種語言中的任何一種來編輯。
- Wikifunctions的函式可以為任何一種自然語言產出結果。社群正在創造越來越多的函式,以支援許多自然語言的文字產生。我們有許多的函式可用在布列塔尼語、羅辛亞語、英語以及許多其他語言。
- Wikifunctions中的函式可以用各種不同的程式語言來實作。例如,join函式就是用JavaScript和Python這二種語言來實作。
Wikifunctions目前支援哪些程式語言?未來將支援哪些程式語言?
目前,Wikifunctions支援以JavaScript和Python語言寫成的實作。我們計劃在未來增加對更多程式語言的支援。我們希望在2025年至少再增加一種程式語言(但尚未決定是哪一種)。
Wikifunctions將會如何整合到其他專案中?
Wikifunctions是建立抽象維基百科的第一步。我們近期的重點是支援社群,並根據回饋進行改進。與此同時,我們將開始將其與維基百科和維基數據整合的過程,這將實現更廣泛的現實生活應用,使我們更接近「抽象維基百科」的願景。
貢獻者將能夠在他們的wiki中呼叫儲存在Wikifunctions網站中的函式。函式呼叫的結果將顯示給維基的讀者。例如,這可以用來計算一個人的年齡,根據Wikidata的人口和面積數據計算人口密度,或者繪製圖表並將其整合到指定的條目中。
整合维基函数的另一种方法是在wiki中整合交互式函数调用界面。例如,在维基百科條目中,可以根据读者提供的参数动态计算物理方程式的结果、绘制数学函数并与之互动等。
维基函数不是什么?
具体请见Wikifunctions:What Wikifunctions is not。
这些函数将使用什么许可协议去授權?
根據2021年11月至12月間在Meta上進行的討論,所有對Wikifunctions和更廣泛的抽象維基百科專案的貢獻都將以自由授權的方式發表。特別是:
- 维基函式的文本内容使用創用CC授權 4.0协议。
- 函数签名和其它结构化內容採用CC 0许可协议发表。
- Wikifunctions中的的實作將以Apache的方式發佈。
- 抽象維基百科的抽象內容 將以創用CC授權 4.0發表。
未來仍有一些問題需要解決,例如從抽象內容所產生內容的授權。我們計劃與法律部門一起起草一份更全面的文件,說明人們如何在遵守授權的前提下,盡可能輕鬆地重複使用維基功能中的。
作出贡献
我是新來的。我可以做些什麼?如何做?
歡迎您 我們很高興您能來到這裡!您有許多機會為Wikifunctions貢獻心力,從建立新功能到改善和翻譯文件。如果您正在尋找參與的方法,我們建議您,根據您的適應程度,就您感興趣的主題建議一個新功能、或甚至創造一個這樣的函式、提供一些測試、嘗試實作、協助翻譯、閱讀並改進我們的文件、協助組織社群。
新的函式我要如何建立、實作、或測試?
若要瞭解如何建立新函式、實作、或測試,請參閱Wikifunctions:介绍.
要詳細瞭解如何建立實作,請參閱Wikifunctions:如何创建函式的。
我應該先編輯什麼?
如果您會寫多種程式語言,請在Special:ListMissingLabels頁面上找找,函式的標籤和說明上面還沒有你所會的程式語言,然後協助加入這些函式。
如果您對某個Wikifunctions可以提供函式的領域有興趣,但該在領域內但卻還沒有;或者如果您對某些函式有更多的想法,你可以到建議新功能頁面,並提出您的想法。
如果您是JavaScript或Python的程式設計師,或許您會想要看看尚未以JavaScript或Python實作出來的函式,然後嘗試寫出這些函式。
我可以去哪裡尋求協助?
您的第一站應該是幫助,在這裡您可以找到所有與使用和編輯維基功能相關的文件。如果你還是卡住了,請在專案聊天上發消息,會有人回答你的問題。
如何进行分类工作?
在現在,對函式進行排序或分類的最佳方法是手動在維基函式命名空間中的頁面中進行。另一個方法是透過該函式的討論頁。我們會監督這些工作,並與社群討論,系統的哪些變更會對這項任務有幫助。