Estructuras de Datos Utilizadas - rubsalas/CallCenterLog GitHub Wiki

Listas:

Bases de Datos para BNFs

Para el reconocimiento de las partes de las BNF´s se utilizan unas bases de datos que comprenden determinantes, sustantivos, verbos y demás partes de la sintaxis del idioma español, todos parte de los sintagmas nominales y verbales. Todos se encuentran dentro de un respectivo hecho que posee una extensa lista de palabras de su tipo. Prolog recorrerá estos hechos para así recorrer las listas y verificar la sintaxis de las oraciones entrantes al programa.

determinantes([determinante1,determinante2,...,determinanteN]).

sujetos([sujeto1,sujeto2,...,sujetoN]).

verbos([verbo1,verbo2,...,verboN]).

adjetivos([adjetivo1,adjetivo2,...adjetivoN]).

afirmaciones([afirmacion1,afirmacion2,...,afirmacionN]).

negaciones([negacion1,negacion2,...,negacionN]).

inicios([inicio1,inicio2,...,inicioN]).

finales([fin1,fin2,...,finN]).

interrogativos([interrogativo1,interrogativo2,...,interrogativoN]).

referencia([referencia1,referencia2,...,referenciaN]).

producto([producto1,producto2,...,productoN]).

Listas de Listas:

Bases de Datos para Entradas y Respuestas

Las listas de listas proporcionan un contenedor ágil para las posibles entradas del usuario y las respuestas de CallCenterLog. Estas poseen keys para que puedan ser identificadas más fácilmente al recorrer.

La más utilizada alrededor del programa sería la lista de listas de los problemas de cada producto. En estas podrán ser verificados los problemas posibles de cada uno y gracias a estos se conocerán las causas y soluciones a los indicados. Poseerán una lista adjunta con sinónimos de estos problemas para generalizar las posibles entradas del usuario.

entrada([ [key,subkey] , [ [[problema,con,sinónimos,1,1], [problema,con,sinonimos,2,1], ..., [problema,con,sinónimos,N,1] ] , [problema,específico,1](/rubsalas/CallCenterLog/wiki/-[[problema,con,sinónimos,1,1],-[problema,con,sinonimos,2,1],-...,-[problema,con,sinónimos,N,1]-]-,-[problema,específico,1) , [problema2], ..., [problemaN] ]]).

Para las causas y soluciones, las listas de listas se vuelven más específicas por la cantidad de keys y parámetros que se necesitan para poder dar con su contenido.

entrada([ [key,subkey] , [ [ [problema1/causa1] , [ [causa1/solucion,1], [causa2/solucion,2], ..., [causaN/solucion,N] ] ], [ [problema2/causa2] , [...] ], ... ,[ [problemaN/causaN] , [...] ] ] ]).

Finalmente, las referencias poseen otro formato parecido, ya que en este se guardará un link y la explicación de lo que hay en este para cuando el usuario lo necesite.

entrada([ [key,subkey] , [ [ [problema,1] , [ [descripción,1],[link1](/rubsalas/CallCenterLog/wiki/descripción,1],[link1),[descripción,2],[link2](/rubsalas/CallCenterLog/wiki/descripción,2],[link2),...,[descripcion,N],[linkN](/rubsalas/CallCenterLog/wiki/descripcion,N],[linkN) ] ], [problema,2],[...](/rubsalas/CallCenterLog/wiki/problema,2],[...),...,[problema,N],[...](/rubsalas/CallCenterLog/wiki/problema,N],[...) ] ]).