- From: Max Polk <maxpolk@gmail.com>
- Date: Sun, 08 Dec 2013 15:14:30 -0500
- To: Eliezer Bernart <eliezer.bernart@gmail.com>, Julee Burdekin <jburdeki@adobe.com>
- CC: Webplatform List <public-webplatform@w3.org>
- Message-ID: <52A4D326.8070803@gmail.com>
On 12/7/2013 9:57 PM, Eliezer Bernart wrote: > Once we start with a non-multi-layered approach and we want to change > to a multi-layered, how difficult or painful it will be the process to > do this update? That question brings us to the second part. Topic clusters. To adhere to the principles described at http://is.gd/kl5LIu , where it says, "We use topic clusters to group articles of similar topics ... Topic clusters produce a list of related topics in the See Also section," we would split the one new topic "JavaScript language" into multiple topic clusters. A top-level page for that cluster could have automatic listing of the relevant pages. A first jaunt down that line of reasoning would, perhaps, lead us to choose topic clusters obtained from the top-level links on the javascript reference page: http://docs.webplatform.org/test/javascript/javascript_reference Where we read these potential topic clusters within the single "JavaScript language" topic pages: Objects (about 24 pages in javascript/*) Constants (about 20 pages in javascript/*/constant or javascript/constant) Properties (about 25 pages in javascript/*/property) Functions (about 50 pages in javascript/*/function or javascript/function) Methods (about 100 pages in javascript/*/method or javascript/method) Operators (about 40 pages in javascript/operators/*) Statements (about 19 pages in javascript/statements/*) The rest are individual pages, no clustering at all needed: JavaScript Directives Errors JavaScript Reserved Words JavaScript Future Reserved Words This single-topic / multiple-topic-clusters approach dictates that (if this line of reasoning is correct) all the pages are edited the same way. That is, the same semantic form is used for all JS language pages. If the JS language pages are fundamentally different in their layout, then this single-topic / multiple-topic-clusters approach is insufficient. So how do we know about page layout? We should have a hard look at the page formats of each potential topic clusters listed above. In order to facilitate that, I performed an analysis listed below showing repeated lines of the format COUNT SECTION, listing every known section in all the pages, and counting how many times they occur. I dividing the results into three segments, to discuss them later. Here you can see, for example, there are 279 pages with ==Remarks== sections, and 269 pages with ==Example== sections, and so on. Naturally the most used sections are candidates for templates: FIRST SEGMENT 279 Remarks 269 Example 249 See Also 230 Parameters 72 Return Value 22 Exceptions SECOND SEGMENT 21 Properties 20 Methods 11 Constants 8 Functions 2 Examples 2 Arguments THIRD SEGMENT 1 Syntax 1 Statements 1 Reserved Keywords 1 Related Sections 1 Related Reference 1 Operators 1 Objects 1 Number Object Constants 1 Modifying Properties 1 Modifying an Accessor Property 1 Modifying a Property on a DOM Element 1 Modifying a Data Property 1 Math Object Constants 1 In This Section 1 Future reserved words 1 Example 2 1 Example 1 1 Errors 1 Error Types 1 Directives 1 Data Property Example 1 Assignment Operators 1 Adding Properties 1 Adding an Accessor Property 1 Adding a Data Property My thought is that we should: (1) create templates for each section in the first segment, (2) create autogenerated page listing to replace the sections in the second segment; and (3) wrap the remaining sections as one-off info or merge into some other section in the first segment. We can definitely use semantic forms (templates) for the *first* segment. Lots of pages have remarks, examples, parameters, etc. This is perhaps our best chance for a single *kind* of JavaScript element page, one that has all the first segment editable sections in it. The *third* segment above we can rule out as page-specific information that doesn't warrant a semantic form. There is only one page that ever uses any of those sections. Those individual pages can be dealt with on a case by case basis, by merging the information into other sections like Remarks or something. The amazing thing about the *second* segment is that (except for "Examples" which is just an "Example" and moved to the first segment, and "Arguments" which is really just a "Parameter" and moved to the first segment), every one of the second segment sections are simply a list of subpages within it. Our wiki does that if organized correctly, so this is potentially a huge win! As an example of autogenerating Properties, one newly imported page (the "Array" page) has a 'Properties' section that by just glancing at it, you can tell it is a listing of the subpages of Array that are the properties of Array: At http://docs.webplatform.org/test/javascript/Array ==Properties== The following table lists the properties of the '''Array''' object. {| class='wikitable' |- ! Property ! Description |- | [[javascript/Array/constructor|constructor Property]] | Specifies the function that creates an array. |- | [[javascript/Array/length|length Property (Array)]] | Returns an integer value that is one higher than the highest element defined in an array. |- | [[javascript/Array/prototype|prototype Property]] | Returns a reference to the prototype for an array. |} Glance on the page for the other under Functions and Methods and you can see the same thing of listing of subpages. The sweet realization is that these listings are easily autogenerated since the wiki already does it using Concept_Listing and API_Listing templates! The templates even pull in the summary just like you see the manually entered summary above. It is nearly an exact match, isn't that fortuitous? To show show webplatform autogenerates subpages or topics or topic clusters, for example see how the apis page pulls in first-level subpages under "List of all APIs" when it codes Concept_Listing: At http://docs.webplatform.org/wiki/apis == List of all APIs == {{Concept_Listing |Query=[[Category:API]][[Category:API_Listings]] |Use_page_title=No |List_all_subpages=No }} Or see how the html attributes page under "Summary" when it codes API_Listing: At http://docs.webplatform.org/wiki/html/attributes {{Summary_Section|Index page for HTML attributes.}} {{API_Listing |Query=[[Category:Markup_Attributes]][[Category:HTML]] |Use_page_title=Yes |List_all_subpages=Yes }} If we play our cards right, we can replace these "listing of subpages" sections (the second segment) with autogenerated equivalencies. While I'm still learning when and where to use what template, and how it interoperates with topics and topic clusters, I do think the section analysis was fruitful. In summary, I believe for all known sections that I've partitioned into segments, we should do templates for the first segment (or find similar things in the /apis/ pages we can reuse), merge the third segment into other places, and autogenerate the second segment.
Received on Sunday, 8 December 2013 20:15:00 UTC