¿Cómo hacer la conversión caso en el prólogo?
Pregunta
Estoy interfaz con WordNet , y algunos de los términos que me gustaría para clasificar (varios adecuada nombres) se capitalizan en la base de datos, pero la entrada de recibo no podrá ser capitalizado adecuadamente. Mi idea inicial aquí es escribir un predicado que produce las diversas capitalizaciones posibles de una entrada, pero no estoy seguro de cómo hacerlo.
¿Alguien tiene una idea de cómo ir sobre esto, o mejor aún, de una manera más eficiente para lograr lo que me gustaría hacer?
Solución
Depende de lo que Prolog aplicación que está usando, pero puede haber funciones de la biblioteca se pueden utilizar.
por ejemplo. Del SWI-Prolog manual de referencia :
4.22.1 Caso de conversión
No hay nada en el estándar de Prolog para convertir el caso en datos textuales. El SWI-Prolog predicados code_type / 2 y char_type / 2 puede ser utilizado para probar y convertir individuo caracteres. Hemos comenzado un poco de apoyo adicional:
downcase_atom (+ anycase, -LowerCase)
convierte los caracteres de anycase en minúsculas como char_type / 2 no (es decir, basado en el locale definido si Prolog ofrece soporte local en la plataforma de alojamiento) y unifica la átomo minúsculas con minúsculas.
upcase_atom (+ anycase, -UpperCase)
Convierte, similar a downcase_atom / 2, un átomo de mayúsculas.
Dado que esto sólo downcases lo que sea que pasó a ella, puede escribir fácilmente un predicado simple de desinfectar cada entrada antes de realizar cualquier análisis.