Abstract Wikipedia/Architecture/zh
- This is part of the development plan for a wiki of functions.
- Continues from Requirements for the wiki of functions.
The main components of the project are the following three:
- Constructors – definitions of Constructors and their slots, including what they mean and restrictions on the types for the slots and the return type of the Constructor (e.g. define a Constructor
rank
that takes in an item, an item type, the ranking as a number, what it is ranked by, and a local constraint) - Content – abstract calls to Constructors including fillers for the slots (e.g.
rank(SanFrancisco, city, 4, population, California)
) - Renderers – functions that take Content and a language and return a text, resulting in the natural language representing the meaning of the Content (e.g. in the given example it results in “San Francisco is the fourth largest city by population in California.”)
有四种主要的可能性来实现三个不同的主要组件:
- 构造器、内容和渲染器都在维基数据中实现。
- 构造器和渲染器在维基函数中实现,而内容则在维基数据中相应的项旁边实现。
- 构造函数、内容和渲染器都是通过维基功能实现的。
- Constructors and Content are implemented in Wikidata, and the Renderers in the local editions of Wikipedia.
解决方案 4 的缺点是,许多功能可以在不同语言之间共享,而将渲染器和功能转移到本地维基百科中,我们就失去了这种可能性。此外,将渲染器移至本地维基百科,我们就失去了一个独立的功能目录所能实现的潜力。
我们认为,引入一个新项目--维基功能(Wikifunctions)--用于新形式的知识资产,即包括渲染器在内的功能,有利于交流和社区建设。这就是解决方案 2 和 3。
解决方案 3 要求我们在功能维基中为每一个可能的维基百科文章创建一个新的位置。鉴于维基数据中的 "条目"(Items)已经为此提供了一个自然的位置,使用它并将 "内容"(Content)与维基数据中的 "条目"(Items)一起存储会更方便。
Because of these reasons, we favor Solution 2 and assume it for the rest of the proposal. If we switch to another, the project plan can be easily accommodated (besides for Solution 4, which would need quite some rewriting). Note that solution 2 requires the agreement of the Wikidata community to proceed. If they disagree, Solution 3 is likely the next closest option.
The proposed architecture for the multilingual Wikipedia looks as follows. Wikipedia calls the Content which is stored in Wikidata next to the Items. We call this extension of Wikidata Abstract Wikipedia. Note that this is merely a name for the development project, and that this is not expected to be a name that sticks around - there won’t be a new Wikiproject of that name. With a call to the Renderers in Wikifunctions, the Content gets translated into natural language text. The Renderers rely on the other Functions, Types, and Constructors in Wikifunctions. Wikifunctions also can call out to the lexicographic knowledge in the Lexemes in Wikidata, to be used in translating the Content to text. Wikifunctions will be a new Wikimedia project on par with Commons, Wikidata, or Wikisource.
(The components named in italics are to be added by this proposal, the components in bold already exist. Top level boxes are Wikimedia projects, inner boxes are parts of the given Wikimedia projects.) ("Wikilambda" was the working name for what is now known as "Wikifunctions".)
- Continued in Components of the wiki of functions.