Quanti siamo a farlo?Contiamoci :lol: Ieri a AAC eravamo 6 8)
Bye :wink:
- nevermore
- Ingegneria Informatica - Triennale
- Martedì, 05 Settembre 2006
- Subscribe via email
Comment
There are no comments made yet.
Accepted Answer
Pending Moderation
No, io non ho trovato inconsistenze...
Io come inconsistenza ho messo l'istanziazione del binario E,
facendo la seguente considerazione:
sopra viene definita una classe Obiettivo e viene messo il tag
"equivalentClass". Poi la sua proprietà "connesso_a" hasValue "#A".
Io questo l'ho interpretato come : se qualcosa è collegato ad A,
deve essere necessariamente di tipo Obiettivo.
Invece l'inconsistenza sta nel fatto che l'unica cosa collegata
ad A è il binario E, ma non è Obiettivo, bensì nodoFerroviario.
Che ne pensate?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 1
Accepted Answer
Pending Moderation
No non dovrebbe essere cosi..
le istanze della classe Obiettivo corrispondono alle istanze per cui la proprietà "connesso_a" ha come valore "A"..quindi il nodo E fa semplicemente parte della classe Obiettivo..almeno così credo!
le istanze della classe Obiettivo corrispondono alle istanze per cui la proprietà "connesso_a" ha come valore "A"..quindi il nodo E fa semplicemente parte della classe Obiettivo..almeno così credo!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 2
Accepted Answer
Pending Moderation
M'avete fatto venire un altro dubbio...
Allora, quella parte di schema diceva: la classe Obiettivo è formata da tutti i nodi ferroviari (domain e range combaciavano) connessi ad A, simmetricamente e transitivamente.
E qui arriva il dubbio, perché la fretta è sempre cattiva consigliera... "E" era istanziato come NodoFerroviario, sì??? Se così era, allora faceva parte della classe Obiettivo perché collegato transitivamente ad A tramite nodo B (se ricordo bene).. altrimenti... non ne faceva parte (perché non rientrava nel range)... ma comunque sia, incongruenze non ce ne sarebbero state... al massimo non poteva essere inferibile...
Allora, quella parte di schema diceva: la classe Obiettivo è formata da tutti i nodi ferroviari (domain e range combaciavano) connessi ad A, simmetricamente e transitivamente.
E qui arriva il dubbio, perché la fretta è sempre cattiva consigliera... "E" era istanziato come NodoFerroviario, sì??? Se così era, allora faceva parte della classe Obiettivo perché collegato transitivamente ad A tramite nodo B (se ricordo bene).. altrimenti... non ne faceva parte (perché non rientrava nel range)... ma comunque sia, incongruenze non ce ne sarebbero state... al massimo non poteva essere inferibile...
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 3
Accepted Answer
Pending Moderation
Mi sembra di si!
Accidenti mi hai fatto venire il dubbio!
Speriamo bene!
Accidenti mi hai fatto venire il dubbio!
Speriamo bene!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 4
Accepted Answer
Pending Moderation
Confido in Armandino
anche se sento puzza di insufficienza (mannaggia a me ed al Prolog...grrrrrrr)....
Per il resto...
L'ontologia col prolog?? Chi l'ha fatta?
Io c'ho provato... anche se ho sbarellato davanti all'UnionOf..
Come l'avete gestito!?!? :?
anche se sento puzza di insufficienza (mannaggia a me ed al Prolog...grrrrrrr)....
Per il resto...
L'ontologia col prolog?? Chi l'ha fatta?
Io c'ho provato... anche se ho sbarellato davanti all'UnionOf..
Come l'avete gestito!?!? :?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 5
Accepted Answer
Pending Moderation
Ragazzi qualcuno di voi ha chiesto piu o meno quando usciranno i risultati?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 6
Accepted Answer
Pending Moderation
Usciti!!
Te pareva che non passavo!! :evil:
Regà...me dite come si faceva l'ultimo esercizio....in vista del secondo appello!
Grazie
Te pareva che non passavo!! :evil:
Regà...me dite come si faceva l'ultimo esercizio....in vista del secondo appello!
Grazie
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 7
Accepted Answer
Pending Moderation
L'ultimo era un po' lungo da svolgere... ed ancora adesso non so se l'ho fatto benissimo...
Cmq si basa tutto sullo scorrimento delle liste ... se vedi gli esempi che Armandino ha lasciato su web, vedrai che sono sulla falsa riga...
La prima cosa che dovresti fare è individuare tutte le classi, le relazioni ed eventualmente le istanze presenti nello schema xml... e le riscrivi in ordine sul foglio, così hai già un'idea ...
Poi ti conviene scriverti l'algoritmo... tanto per non perdere il filo...
Esempio: cantautore(Musicista).
Chiedeva che, affinché sia verificata, il musicista fosse sia autore che cantante di un brano.
Quindi, pressapoco:
- Prendi la lista dei musicisti 'autore_di' [che era una ObjectProperty che metteva in relazione Musicista e Brano]; per questa c'era già il predicato apposito getObjectPropertyValues. Ora hai tutti i brani di cui il musicista è autore.
- Prendi la lista dei brani trovati in precedenza, e controlla che facciano parte della lista dei brani in cui l'autore canta [ 'canta_in', ObjectProperty, che metteva di nuovo in relazione Musicista e Brano]. Uso del getObjectProperyValues e della funzione member... poi la cicli per ogni elemento della lista...
In linea teoria, suppongo possa andar bene, no?
Cmq si basa tutto sullo scorrimento delle liste ... se vedi gli esempi che Armandino ha lasciato su web, vedrai che sono sulla falsa riga...
La prima cosa che dovresti fare è individuare tutte le classi, le relazioni ed eventualmente le istanze presenti nello schema xml... e le riscrivi in ordine sul foglio, così hai già un'idea ...
Poi ti conviene scriverti l'algoritmo... tanto per non perdere il filo...
Esempio: cantautore(Musicista).
Chiedeva che, affinché sia verificata, il musicista fosse sia autore che cantante di un brano.
Quindi, pressapoco:
- Prendi la lista dei musicisti 'autore_di' [che era una ObjectProperty che metteva in relazione Musicista e Brano]; per questa c'era già il predicato apposito getObjectPropertyValues. Ora hai tutti i brani di cui il musicista è autore.
- Prendi la lista dei brani trovati in precedenza, e controlla che facciano parte della lista dei brani in cui l'autore canta [ 'canta_in', ObjectProperty, che metteva di nuovo in relazione Musicista e Brano]. Uso del getObjectProperyValues e della funzione member... poi la cicli per ogni elemento della lista...
In linea teoria, suppongo possa andar bene, no?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 8
Accepted Answer
Pending Moderation
Scusate l'esercizio sul prolog quale era?non ho potuto fare il primo appello
possibilmente con la soluzione.Quanti esercizi erano?
possibilmente con la soluzione.Quanti esercizi erano?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 9
Accepted Answer
Pending Moderation
Dunque... c'era un esercizio sul prolog, uno sull'algebra proposizionale, due ontologie, di cui l'ultima richiedeva una parte in prolog e l'altra di esprimere una classe o scrivendo direttamente l'xml o usando il DL...
il prolog era semplicissimo (sigh)...
Ti chiedeva di sostituire una data occorrenza in una lista, con un certo valore.
Esempio: subst(T,U,M,L).
subst(3,4, [1,2,3,5,7,3,4,8],L).
? - L = [1,2,4,5,7,4,4,8].
Il predicato:
subst(X,Y,[],[]).
subst(X,Y,[X|T],[Y|T1]) :- subst(X,Y,T,T1).
subst(X,Y,[H|T],[H|T1]) :- subst(X,Y,T,T1), !.
il prolog era semplicissimo (sigh)...
Ti chiedeva di sostituire una data occorrenza in una lista, con un certo valore.
Esempio: subst(T,U,M,L).
subst(3,4, [1,2,3,5,7,3,4,8],L).
? - L = [1,2,4,5,7,4,4,8].
Il predicato:
subst(X,Y,[],[]).
subst(X,Y,[X|T],[Y|T1]) :- subst(X,Y,T,T1).
subst(X,Y,[H|T],[H|T1]) :- subst(X,Y,T,T1), !.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 10
Accepted Answer
Pending Moderation
Grazie tante !!!!speriamo sia cosi' facile anche il secondo esame!!!per quanto riguarda il prolog!!!! :wink:
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 11
Accepted Answer
Pending Moderation
Da quello che m'è "parso" di sentire durante l'esame.... ha accennato al fatto che il secondo appello sarà di difficoltà simile ... quindi, non si spera invano
In bocca al lupo!
In bocca al lupo!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 12
Accepted Answer
Pending Moderation
CREPI!!!!!!!!!!!!!!!!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 13
ah rega qualcuno mi spiega l'esercizio sul prolog perchè so de coccio e non riesco a comprenderlo...grazie
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 14
Accepted Answer
Pending Moderation
Dici il subst che ho postato prima?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 15
si grazie...saresti veramente gentile...
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 16
Accepted Answer
Pending Moderation
[code type="markup"]subst(X,Y,[],[]). [/code]
regola per finire la ricorsione: "finisci quando le liste sono vuote"
[code type="markup"]subst(X,Y,[X|T],[Y|T1]) :- subst(X,Y,T,T1). [/code]
si basa sullo scorrimento delle liste e sull'unificazione.
X è il valore che vuoi cercare
Y è il valore con cui vuoi sostituire X, nel caso sia presente nella lista
[X|T] è la lista che gli hai passato come "parametro" nella query da console. In questo modo inizi a scorrerla, separando il primo elemento dal resto della lista. Ora, il grosso del lavoro lo fa l'unificazione. Il fatto che il valore che stai cercando e la testa della lista, vengano chiamati con lo stesso "nome", dice al Prolog di verificare che siano uguali.
Questo perché si può evitare di scrivere subst(X,Y,[Z|T],[Y|T1]) :- X = Z, subst(X,Y,T,T1). che sarebbe una cosa inutile.
Quindi, se i due valori sono uguali, nella nuova lista che vai costruendoti per ricorsione, appendi il valore Y al posto del valore X.
Il resto è, appunto, la chiamata ricorsiva, una su T (che è quello che rimane dopo aver letto il primo valore) e su T1 che è la lista che hai appena cominciato a costuire a cui aggiungerai i restanti valori, man mano che finisci di leggere la lista-parametro (...mi sto incartando coi nomi...).
[code type="markup"] subst(X,Y,[H|T],[H|T1]) :- subst(X,Y,T,T1), !.[/code]
In questa analizzi il caso in cui il valore della lista sia diverso da quello che stai cercando (ed infatti tu stai cercando X, ma trovi H), quindi non lo devi sostituire, allora prendi quel valore e lo appendi alla nuova lista.
Ed alla fine, come output, ottieni quello che era stato richiesto...
Quest'esempio è meno difficile di quello che sembra...
regola per finire la ricorsione: "finisci quando le liste sono vuote"
[code type="markup"]subst(X,Y,[X|T],[Y|T1]) :- subst(X,Y,T,T1). [/code]
si basa sullo scorrimento delle liste e sull'unificazione.
X è il valore che vuoi cercare
Y è il valore con cui vuoi sostituire X, nel caso sia presente nella lista
[X|T] è la lista che gli hai passato come "parametro" nella query da console. In questo modo inizi a scorrerla, separando il primo elemento dal resto della lista. Ora, il grosso del lavoro lo fa l'unificazione. Il fatto che il valore che stai cercando e la testa della lista, vengano chiamati con lo stesso "nome", dice al Prolog di verificare che siano uguali.
Questo perché si può evitare di scrivere subst(X,Y,[Z|T],[Y|T1]) :- X = Z, subst(X,Y,T,T1). che sarebbe una cosa inutile.
Quindi, se i due valori sono uguali, nella nuova lista che vai costruendoti per ricorsione, appendi il valore Y al posto del valore X.
Il resto è, appunto, la chiamata ricorsiva, una su T (che è quello che rimane dopo aver letto il primo valore) e su T1 che è la lista che hai appena cominciato a costuire a cui aggiungerai i restanti valori, man mano che finisci di leggere la lista-parametro (...mi sto incartando coi nomi...).
[code type="markup"] subst(X,Y,[H|T],[H|T1]) :- subst(X,Y,T,T1), !.[/code]
In questa analizzi il caso in cui il valore della lista sia diverso da quello che stai cercando (ed infatti tu stai cercando X, ma trovi H), quindi non lo devi sostituire, allora prendi quel valore e lo appendi alla nuova lista.
Ed alla fine, come output, ottieni quello che era stato richiesto...
Quest'esempio è meno difficile di quello che sembra...
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 17
ti ringrazio infinitamente..sei stato gentilissimo e molto preciso...grazie ancora!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 18
- Page :
- 1
- 2
There are no replies made for this post yet.
Be one of the first to reply to this post!
Be one of the first to reply to this post!
Please login to post a reply
You will need to be logged in to be able to post a reply. Login using the form on the right or register an account if you are new here. Register Here »