Wolfram Research

ISO 639-3 set of codes for all known human languages

Details

ISO 639-3 is a set of codes that defines three-letter identifiers for all known human languages.
The data is imported from and formatted for computation.
The default content is an EntityStore containing the following properties:
"Comment" a comment relating to other properties, if any
"EthnologueURL" a Hyperlink of the language code in Ethnologue
"GlottologURL" a Hyperlink of the language code in Glottolog
"Id:ISO639-1" the two-letter 639-1 identifier, if any
"Id:ISO639-2B" the three-letter 639-2 identifier of the bibliographic applications code set, if any
"Id:ISO639-2T" the three-letter 639-2 identifier of the terminology applications code set, if any
"Id:ISO639-3" the three-letter 639-3 identifier
"InvertedName" inverted form of the "PrintName" property
"Label" language label
"MacrolanguageMapping" mapping to the individual language entities that comprise the macrolanguage
"MacrolanguageMappingIds" mapping to the individual language ids that comprise the macrolanguage
"MacrolanguageQ" True if the entity is a macrolanguage
"MultitreeURL" a Hyperlink of the language code in Multitree
"PrintName" name in "print" form (used in most contexts)
"ReferenceName" reference language name
"RetiredQ" True if the entity is retired/deprecated
"RetirementDate" DateObject of the effective date of retirement
"RetirementMapping" mapping to the language entity/entities the language has changed to, if any
"RetirementMappingIds" mapping to the language id(s) the language has changed to, if any
"RetirementReason" the reason the language code was retired/deprecated
"Scope" scope of denotation
"SILURL" a Hyperlink of the language code in SIL
"Type" language type
"WikipediaURL" a Hyperlink of the language code in Wikipedia

Examples

Sample entities

In[1]:=
{Entity["ISOLanguage", "cmn"], Entity["ISOLanguage", "que"], Entity["ISOLanguage", "rus"], Entity["ISOLanguage", "jpn"], Entity["ISOLanguage", "aym"], Entity["ISOLanguage", "ell"], Entity["ISOLanguage", "deu"]}

Basic Examples

Retrieve the EntityStore and register it:

In[2]:=
EntityRegister[ResourceData[\!\(\*
TagBox["\"\<ISO 639-3\>\"",
#& ,
BoxID -> "ResourceTag-ISO 639-3-Input",
AutoDelete->True]\)]]
Out[2]=

Number of all ISO 639-3 languages:

In[3]:=
EntityValue["ISOLanguage", "EntityCount"]
Out[3]=

Number of all available properties:

In[4]:=
EntityProperties["ISOLanguage"]
Out[4]=

Find a property value for an entity:

In[5]:=
Entity["ISOLanguage", "lat"][EntityProperty["ISOLanguage", "Type"]]
Out[5]=

Retrieve a dataset of all available properties for an entity:

In[6]:=
Entity["ISOLanguage", "ell"]["Dataset"]
Out[6]=

Properties

Get multiple names for the "fuq" language code:

In[7]:=
Entity["ISOLanguage", "fuq"][{EntityProperty["ISOLanguage", "InvertedName"], EntityProperty["ISOLanguage", "PrintName"], EntityProperty["ISOLanguage", "ReferenceName"]}] // Column
Out[7]=

Obtain all hyperlinks to the main language data sites:

In[8]:=
Entity["ISOLanguage", "que"][{EntityProperty["ISOLanguage", "EthnologueURL"], EntityProperty["ISOLanguage", "GlottologURL"], EntityProperty["ISOLanguage", "MultitreeURL"], EntityProperty["ISOLanguage", "SILURL"], EntityProperty["ISOLanguage", "WikipediaURL"]}] // Column
Out[8]=

Determine the retirement reason, what it changed to, and effective date of the code "fri":

In[9]:=
Entity["ISOLanguage", "fri"][{EntityProperty["ISOLanguage", "RetirementReason"], EntityProperty["ISOLanguage", "RetirementMapping"], EntityProperty["ISOLanguage", "RetirementDate"]}]
Out[9]=

Entity Classes

List all pre-defined entity classes:

In[10]:=
EntityClassList["ISOLanguage"]
Out[10]=
In[11]:=
EntityValue[EntityClass["ISOLanguage", "Active"], "EntityCount"]
Out[11]=

List all macrolanguages and determine the number of individual language members:

In[12]:=
Length /@ EntityValue[EntityClass["ISOLanguage", "Macrolanguages"], "MacrolanguageMapping", "EntityAssociation"]
Out[12]=

Create an implicitly defined entity class consisting of all languages that were deprecated due to being duplicates:

In[13]:=
EntityClass[
   "ISOLanguage", {EntityProperty["ISOLanguage", "RetirementReason"] -> "Duplicate"}] // EntityList // Shallow
Out[13]=

Analysis

Top 10 macrolanguages with highest language mappings:

In[14]:=
BarChart[
 Reverse@TakeLargest[
   Length /@ EntityValue[EntityClass["ISOLanguage", "Macrolanguages"], "MacrolanguageMapping", "EntityAssociation"], 10],
 ChartLabels -> Automatic,
 BarOrigin -> Left
 ]
Out[14]=

Distribution of language types:

In[15]:=
BarChart[
 Sort[Counts@
   EntityValue[EntityClass["ISOLanguage", "Active"], "Type"]],
 ChartLabels -> Automatic,
 BarOrigin -> Left,
 ScalingFunctions -> "Log"
 ]
Out[15]=

Find what the most common reason of retirement is:

In[16]:=
PieChart[
 Counts@EntityValue[EntityClass["ISOLanguage", "Retired"], "RetirementReason"],
 ChartLabels -> Placed[Automatic, "VerticalCallout"],
 PlotLabel -> "Retirement reasons: "]
Out[16]=

Daniel Sanchez, "ISO 639-3" from the Wolfram Data Repository (2021) 

Data Resource History

Source Metadata

Publisher Information