From Wikipedia, the free encyclopedia

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.

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

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

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

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

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

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
From Wikipedia, the free encyclopedia

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.

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

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

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

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

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

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

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook