User:Born2cycle/Titles

Main points
 * 1) The process of deciding titles can be algorithmic
 * 2) The process of deciding titles is algorithmic - implicitly if not explicitly.
 * 3) Wikipedia title determination would be greatly improved (much less disagreement about titles) if people were more aware of the algorithms they used to decide titles, and used them more explicitly
 * 4) Examples of algorithms for deciding titles.

Basic Title Deciding Functions
This section describes basic functions that are used in deciding titles.


 * 1) SelectMostCommonName: identifying the most common name for a given topic (if it has any name)
 * 2) SelectDescriptiveTitle: choose a descriptive title for topics that don't have names
 * 3) IdentifyAllOtherTopics: For a given name, identify all topics in WP for which that name is the name most commonly used to refer to those topics.
 * 4) DisambiguateParenthetically - Given a title that needs to be disambiguated, choose a distinctive term and create a new title using parenthetic disambiguation.

SelectMostCommonName

 * INPUTS: topic
 * RETURNS: most-common-name or null (if topic has no name)
 * BEGIN
 * For the given topic, select the name most commonly used in reliable English sources to refer to this topic.
 * IF the topic has not even one name (it's not a named topic, but requires a descriptive title, like List of Countries or Definition of planet) THEN
 * RETURN null
 * IF exactly one obvious most common name name is found THEN
 * RETURN most-common-name
 * IF exactly one of the equally common names is unique (has no other uses in WP) THEN
 * RETURN most-common-unique-name
 * IF one of the equally common names is clearly most succinct THEN
 * RETURN most-succinct-unique-name
 * // At this point all of the candidates are essentially equally commonly used, none are exclusively unique, nor clearly most succinct.
 * // For lack of any other criteria, go alphabetically. This should rarely, if ever, occur.
 * RETURN alphabetically-first-common-name
 * END
 * END

SelectDescriptiveTitle

 * // Select a descriptive title for the topic of an article
 * INPUTS: Current-title
 * RETURNS: New-title
 * BEGIN
 * IF there are similar articles to this that follow a particular pattern in their titles THEN
 * RETURN descriptive-title-based-on-that-pattern
 * IF there is an obvious natural choice that is not used in WP THEN
 * RETURN descriptive-title-based-on-natural-choice
 * Select the best title for the article based on WP:CRITERIA
 * RETURN best-title
 * END
 * END

IdentifyAllOtherTopics

 * // Identify all topics besides thistopic to which name refers
 * INPUTS: name, thisTopic
 * RETURNS: List of topics, or other than thisTopic, to which name refers.
 * BEGIN
 * IF ( name  is an article OR  name  is a redirect to an article) AND the topic of that article is not thistopic THEN
 * RETURN topic of that article
 * IF name  is a dab page OR  name  is a redirect to a dab page THEN
 * RETURN all topics listed on that dab page except thistopic
 * RETURN null // no other topics found
 * END
 * END

DisambiguateParenthetically

 * // For the given name for the specified topic select a title
 * // that distinguishes this use of name from other uses.
 * // The key here is that we determine the disambiguating factor
 * // by looking at the list of other topics to which this name refers to
 * // decide how best to distinguish this use from the others.
 * INPUTS: name, thisUse, allOtherUsesOfThisName
 * RETURNS: title disambiguated parenthetically
 * BEGIN
 * Note all outstanding characteristics that distinguish thisUse from allOtherUsesOfThisName (that is, none of them share that particular characteristic).
 * If any of the identified characteristics unique to thisUse are overly wordy, toss them out, leaving at least one unique characteristic that is relatively succinct.
 * IF there is more than one one reasonably succinct distinguishing characteristic THEN
 * Select the characteristic of thisUse which is most notable.
 * RETURN "name (chosen-distinguishing-characteristic)"
 * END
 * END

ResolveCommonality

 * // For the two specified titles, identify which if any
 * // has commonality - is commonly used in all varieties of English
 * // Assumes common use in both US and UK english implies common use
 * // in all varieties.
 * INPUTS: title1, title2
 * RETURNS: commonly used title OR null (if neither or both is commonly used)
 * BEGIN
 * if title1 not commonly used in US English but title2 is commonly used in US and UK English
 * RETURN title2
 * if title2 not commonly used in US English but title1 is commonly used in US and UK English
 * RETURN title1
 * RETURN null (both or neither are commonly used in both US and UK English
 * END
 * RETURN null (both or neither are commonly used in both US and UK English
 * END

SimplisticTitleSelector
''This trivially simple algorithm can be used to determine a unique and useful title for any topic covered in Wikipedia. For a variety of reasons Wikipedians prefer a more nuanced process, but the point of this example is to demonstrate that titles can be determined via algorithm.'' The approach here is to use the most common name if it has one, disambiguated parenthetically if necessary, or an appropriate descriptive title if the topic has no name.
 * TITLE SelectTitleForTopic(topic)
 * BEGIN
 * name = SelectMostCommonName(topic)
 * IF name is null // topic is un-named, like List of Countries
 * name = 'SelectDescriptiveTitle(current-title-of-article'');
 * othertopics = IdentifyAllOtherTopics(name, topic)
 * IF othertopics is null THEN // no other topics use this name
 * RETURN name
 * RETURN DisambiguateParenthetically(name, topic, othertopics)
 * END