How can computational linguistics be used to preserve endangered languages and cultures?