namhto / projet-3a Goto Github PK
View Code? Open in Web Editor NEWProjet de 3e année informatique et réseaux - ENSISA
Projet de 3e année informatique et réseaux - ENSISA
Wow c'est une meta issue
Voila ce que je conseil d'utiliser pour faire le serveur prolog : http://www.swi-prolog.org/howto/http/
Il y a la de quoi monter un webservice accessible par http qui permet d'attaquer une base prolog
Ci joint (si ca a marché, premier essai avec GitHub deux fichiers :
webserver.txt : montre comment j'ai monté mon webservice prolog
3 regles :
server(Port) permet de lancer le serveur sur un port donné et de paramètrer son timeout
welcome(_) un petit hello world qui explique comment utiliser le serveur
verify(Request) qui lit la requête en prenant en compte le formatage et sort Data qui est utilisé en paramètre de la règle checkGraph qui me permet de vérifier mes graphes et est implémentée en prolog
MobileMeasure_ModelChecker.txt : le fichier qui défini ce qu'est checkGraph et propose cette règle en module.
Une école contient plusieurs promotions qui peuvent être séparées en groupes de TD et de TP
Pas de commit ce jeudi et vendredi pour cause de nuit de l'info.
J'essaye de rattraper ça ce weekend.
Un cours peut etre composé de tp de td et de cours magistral
Les différentes règles du projet doivent être commentées.
Vous pouvez trouver un template de commentaire pour les règles dans le projet example.
pour les paramètres, les + indiques que sans ce paramètre la clause n'est pas sensé fonctionner et les - que c'est cette variable qui obtiendra le résultat.
on peut également utiliser des ? pour signaler que le paramètre peut être ou ne pas être renseigné, comme par example pour la clause append/3 de la documentation prolog.
%%%%%----------Clause----------%%%%%
%%% safeConvert(+From,+To,-Ratio).
%%% (unitRep,int,unitRep)
% converts the unit From into the unit To asserting that they are of the same dimension
% From : a unit
% To : a unit
% Ratio : a value
%%% Example
%%% safeConvert(prefixedUnit(kilo,metre), metre, Result)
%%%%%----------%%%%%----------%%%%%
Un calendrier scolaires contient des mois, des semaines, des jours, des créneaux.
Bonjour,
Je vois qu'un merge hasardeux et un commit ont été réalisés sur le git. Cependant :
je vais créer des "issues" git pour garder une trace des éléments à réaliser. Lorsque c'est fait, il faut le commit / merge sur la branche master avec un titre compréhensible ET clore l'issue en commentant que ca a été réaliser dans tel fichier avec tel règle.
Navré d'en arriver la, mais je prends la direction du projet puisque vous n'avez pas suivit les règles cette semaine non plus (une fois de plus je ne sais pas ce que vous faites de votre coté. Peut être que vous avez déjà terminé le projet sur vos pc. Le git est ma seule source d'information puisque je n'ai pas eu de mail.)
Le temps est assassin et les deadlines approchent très vite!
Bon courage
(cf le descriptif des fonctionnalisées de scheduleDay(P,X))
Le code du projet doit être séparé en plusieurs fichiers sinon il deviendra ingérable
A pars les annotations de merge et le test qui avait montré les problèmes de la méthode avec assert
A partir de maintenant, tester le code devient vraiment important.
La gestion des listes et la récursivité en folie qui vont arriver demandent de pouvoir facilement tester et surtout RE-tester les fonctionnalisées en place.
Tout à l'heure on a fait la fonction schedule qui créé plusieurs créneaux et vérifie que les contraintes de non multiplicité des profs et salles sont respectées.
Plutôt que de garder le nom schedule, qui n'aura plus de sens une fois schedule day en place, changez ce nom en test_A et en mettant une description précise des contraintes et fonctionnalisées testées en commentaire.
Un jour vous vous amuserez peut etre meme à faite test_X :- test_A(S), test_B(S), test_C(S) si B et C ne contiennent par exemple que une vérification d'un ensemble de contraintes.
Bref, en testant vous assurez 1 la compréhension des règles impliquées leurs utilisation (pour un néophyte du projet) et leurs fonctionnements (pour vous)
Un prof est en droit de demander à ne pas travailler à une certaine heure OU de travailler que à certaines heures
Pour le moment cette contrainte est absolue, un jour elle sera optionnelle.
Attention, un merge vers la branche master à été complètement raté, ce qui a donné un fichier avec des notes Git dedans signalant les conflits non gérés (promo.pl)
[A] Faire une contrainte qui vérifie que si un groupe de TP a cours, alors aucune autre des parties de sa hiérarchie PBDP (Promo/Branche/TD/TP cette acronyme pourrait aller assez bien à la place du "groupTP" actuel a vous de voir :D ) n'a cours en meme temps. Cette contrainte est montante
[B] Faire de meme pour les Promo. Cette contrainte est descendante
[C] Faire de meme pour les branche et TD. Cette contrainte est montante descendante
Hint : faire une isAssociated(X,Y) qui vérifiera s'il y a un chemin unidirectionnel (montant ou descendant mais pas de monté puis descente) entre X et Y X et Y étant un élément de PBDP
En français ca veut dire vérifier :
deux méthodes pour ca :
Pour un créneau donné il ne faut pas que le prof / les étudiants / la salle ne soient dans plusieurs cours en même temps.
Cette contrainte induit implicitement que le même cours ne peut pas avoir lieux plusieurs fois en même temps puisque le prof et les étudiants qui y participent ne peuvent l'être.
Cette question est en suspens pour le moment.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.