====== nomoTools ====== Le logiciel //nomoTools// offre la possibilité de se dispenser de l'environnement de développement //nomoSDK// notamment pour la vérification, l'édition des liens et la compilation. Le logiciel //nomoTools// est utilisable en ligne de commande. La commande //-h// permet d'afficher la notice suivant : Usage : nomotools [option] [file] [file] can be: A unit(.uni) A model(.mod) A program(.prg) A knowledge base(.bas) A inference engine(.eng) A unit after linking(.lnk) A unit after encoding(.cod) A log file of full rules(.fr) A log file of partial rules(.pr) [option] can be: -h Help - display this message -parse Valid XML file with basic grammar of the extension (option by default of XML document) -link Link a unit file(.uni) or a program file(.prg) or a model file(.mod) -encode Encode a unit file after linking (.lnk) -compile Compile a unit file after encoding (.cod) -interface [l] [e] Generate the interface of a unit file after encoding (.cod) in the language [l] and with a extension [e] -db [path] Generate the database of unit file after encoding (.cod) or log file (.pr .fr) -udb [path] If exist update the database with log file (.pr .fr) else create the database -csv [list] Convert log file in CSV format, optional [list] in CSV format (option by default of log files) -xml Convert log file in XML format -seed [seed] Convert log file of full rule(.fr) in SEED format, [seed] is the origin seed -critical [-full] Generate a unit for the maximal computing time of the interpretation process from a encode file (.cod). The option [-full] calculates the maximum number of rules with knowledge base -time Compile the file(.cod) from the critical unit generate and evaluate the time process, after remove the seed Avec ce logiciel, la compilation d'une unité nomo s'effectue selon les étapes suivantes : - Vérifier la bonne forme du fichier avec la commande //-parse example.uni// - Éditer les liens avec la commande //-link example.uni// - Vérifier la bonne forme du fichier obtenu avec la commande //-parse example.lnk// - Encoder le fichier avec la commande //-encode example.lnk// - Vérifier la bonne forme du fichier obtenu avec la commande //-parse example.cod// - Compiler le fichier obtenu avec la commande //-compil example.cod// qui vous donnera //example.seed// à l'endroit spécifier dans votre unité. Attention, bien que //nomoTools// puisse vérifier la bonne forme d'un fichier utilisant une macro ou un formalisme, il n'en effectuera pas la transformation en nomo lors de l'édition des liens. Dans ce cas, il est nécessaire de passer par //nomoSDK//. Afin de déterminer une fréquence d'horloge qui assure de manière certaine un temps de calcul suffisant pour le fonctionnement d'une base de règle, la commande //-critical// génère une base de règle correspondant au pire des cas d'une base de règles. Plus précisément, toutes les règles ont un nombre de prémisses maximales, toutes les règles possèdent une spécificité identique de sorte qu'elles sont toutes évaluer. Les conditions sont constituer de prémisses identiques maximisant la combinatoire pour l'évaluation des règles. Par ailleurs, si une règle peut être maximisée alors toutes les règles seront considérées comme telles, si une prémisse possède une tolérance non nulle et fini alors toutes les tolérances de la même sorte seront non nulles et finies. Le temps de calcul d'une interprétation avec cette base de règles générées, nécessairement plus important que celle de départ, se trouve estimé par la moyen de 1000 interprétations successives via la commande //-time//. Par exemple, l'unité présenté dans le [[tutoriel:genie_logiciel|troisième tutoriel]] "tutorial_3.uni", comportant une centaine de règles, se trouve circonscrite en terme de criticité par l'unité "tutorial_3_critical.uni" générée par //-critical//. Une fois l'édition des liens et l'encodage effectuées, la commande //-time// avec "tutorial_3_critical.cod" renvoie le temps de calcul maximal et le temps de calcul moyen d'une interprétation, avec un Intel® Core™2 Duo Mobile T9600 2.80 GHz : {{ :nomotools:time1.png?nolink&600 |}} Avec l'option //-full// le nombre de règles de l'unité générée s'appuie sur le nombre maximal de règles par type prévu dans la base de connaissance. Ici, cela revient à générer une base de règles près de mille règles, soit le temps de calcul maximal et le temps de calcul moyen d'une interprétation suivant : {{ :nomotools:time2.png?nolink&600 |}}