Krinkle wrote:
Before I respond to the recent new ideas, concepts and
suggestions.
I'd like to
explain a few things about the backend (atleast the way it's currently
planned to be)
The mw_authors table contains unique authors by either a name or a
userid.
And optionally a custom attribution can be given (fallback to
authorname, user real_name or user_name)
Also optionally a url can be given (fallback to nothing or userpage).
The mw_license table contains the different licenses a wiki allows to
be used.
Their canonical name (eg. "GFDL", "CC-BY-SA-3.0" etc.), url to legal
code and usage count[1].
mw_file_props is a table that keeps previous versions of file_props as
well. And is linked to
mw_revision by fp_id in rev_fileprops_id (like mw_text is linked in
rev_text_id).
Both authors and licenses are uniquely identified by their id. This
makes it easy to change stuff later on
in an AuthorManager (eg. different url, username change etc.). The
texts and complete titles of the
licenses are stored in interface messages (for internationalization).
MediaWiki:License-<uniq>-text could
for example contain {{Cc-by-sa-3.0|attribution=$2}} on Wikimedia
Commons.
-
If we store the links in the wikitext (like {{#fileauthor:}} and
{{#filelicense:}}, the advantages are basically
two things:
1) It has all features of editing and revisioning (better history,
edit conflict, diff view, etc.)
2) No need for a revisionized mw_file_props, we can store the current
values in mw_page_props
Possible down side is that a diff like
- {{#fileauthor:2}} {{filelicense:12}}
+ {{#fileauthor:10}} {{#fileauthor:12}} {{#filelicense:
doesn't mean very much. I.m.h.o The solution is not to store the
actual names in wikitext so that
the diffs are better, but to either not store it in wikitext at all,
or customize the behaviour everywhere:
Why? Storing the property "filelicense: GPL" directly in wikitext is not
bad. It's also a relief when we want to delete licenses later.
Same with Author. Take that as a key into a NS_AUTHOR namespace.
Going to Special:LicenseManager/5 in order to change GPL license data is
just added complexity over using the short name "GPL".