fbpx
Skip to main content
  1. VanillaSky
  2. Ingegneria Informatica - Triennale
  3. Giovedì, 22 Febbraio 2007
  4.  Subscribe via email
in virtù degli orari usciti apro il 3d del corso.
Benvengano consigli da chi ha già sostenuto l'esame.
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
A=2 allora ok
mentre se ho [2,1,2,3] a =2 non funziona
restituisce [1,2,3].
la mia domanda perchè?
aiuto :lol:


Al volo, così dovrebbe andare:

cancella([],A,[]).
cancella([H|T1],A,[H|T2]):- (\+ (H is A)), !, cancella(T1, A, T2).
cancella([_|T1],A,List):- cancella(T1,A, List).
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
A=2 allora ok
mentre se ho [2,1,2,3] a =2 non funziona
restituisce [1,2,3].
la mia domanda perchè?
aiuto :lol:

Tu gli fai scorrere ricorsivamente tutta la lista di partenza.... è normale che se trova due elementi uguali a quello che vuoi togliere li toglie entrambi....
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
scusa gira se togli il termine c'è una solavolta nella lista di partenza
ovvero [1,2,3] A=2 allora ok
mentre se ho [2,1,2,3] a =2 non funziona
restituisce [1,2,3].
la mia domanda perchè?
aiuto :lol:
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
ragazzi un chiarimento sul prolog.
voglio fare un prog che mi tolga le occorrenze di un termine in una lista e mi restituisce sempre una llista senza tale termine.
io avrei ragionato cosi:

cancella([],A,[]).
cancella([A|T],A,T):-cancella(T,A,T).
cancella([H|T],A,[H|Y]):-cancella(T,A,Y).

qualcuno potrebbe spiegarmi perchè non funziona grazie.



A ME GIRA..... L'unica cosa è che puoi cancellare un solo elemento da quella lista... la cosa carina sarebbe cancellare una sottolista dalla listona :wink:
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
ragazzi un chiarimento sul prolog.
voglio fare un prog che mi tolga le occorrenze di un termine in una lista e mi restituisce sempre una llista senza tale termine.
io avrei ragionato cosi:

cancella([],A,[]).
cancella([A|T],A,T):-cancella(T,A,T).
cancella([H|T],A,[H|Y]):-cancella(T,A,Y).

qualcuno potrebbe spiegarmi perchè non funziona grazie.
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
[...]quindi se duffy poi viene dichiarato duck allora inferisco che duck è sottoclasse di person e quindi tutte le duck sono persone.

Giusto! Grazie!
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
allora qui devi fare attenzione al fatto che la classe document è equivalente ad una classe che ha come restrinzione che tutti gli autori sono delle persone .
quindi dichiarare mydoc document con duffy come autore ti fa inferire che duffy è una persona .
quindi se duffy poi viene dichiarato duck allora inferisco che duck è sottoclasse di person e quindi tutte le duck sono persone.
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
ecco la mia max:

max([Y],Y).
max([H|[J|T]],X) :- H >= J, max([H|T],X).
max([H|[J|T]],X) :- H < J, max([J|T],X).

sarebbe una sorta di bubble sort in cui si porta avanti l'elemento maggiore...
e quindi alla fine gli dico quando ti è rimasta una lista con un solo elemento il massimo è proprio quello....
Comment
There are no comments made yet.
Accepted Answer Pending Moderation

Attento: l'ultima riga di quella ontologia dice:

<Duck rdf:IF="Duffy> quindi duffy è SICURAMENTE una papera. In questa ontologia c'è invece la stranezza che Duck è sottoclasse di Person, quindi un Duck è ANCHE una Person.

Infatti mi sto chiedendo perche' Stellato scrive:
"Duffy è (contrariamente a quanto il buon senso suggerirebbe!) una Person."!? Io mi sarei aspettato che ci fosse una inconsistenza! Dove sbaglio!?
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Nel terzo test di autovalutazione e sul link

http://www.uniroma2.it/didattica/SBC0506/

dove trovi il file "esercizi ontologie con soluzione".
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
inversefunctionalProperty fa si che solo una istanza puo' avere quel valore. dai post precedenti mi sembrava fosse stata fatta confusione.
Traete le vostre conseguenze.

per quanto riguarda i programmi in prolog:

member([],[]).
member([X|Xs],[X|Ys]).
member([X|Xs],[Y|Ys]):-
member([X|Xs],Ys).

nce([],_).
nce([X|Xs],Ys):-
\+ member([X],Ys),
nce(Xs,Ys).

invece la max:

max([X|Xs],Max):-max(Xs,X,Max).
max([X|Xs],M,Z):-
X>=M, max(Xs,X,Z);
X<M,max(Xs,M,Z).
max([],M,M).

è molto piu' elegante, perche' usa l'accumulatore(il parametro aggiunto al
centro) e dovrebbe essere anche piu' performante.

per capire bene le proprieta' di owl vi consiglio un bel libro, e chi ha orecchie (da mulo) per intendere, che intenda:
Semantic Web Primer.

Saprete dirmi dove trovare materiale didattico per owl+prolog?
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Anche io l'avevo scritto come te, poi mi sono reso conte che così specifichi quando la testa è il massimo della coda, ma se nelle chiamate ricorsive capita di trovare un elemento <= alla testa non viene considerato come soluzione.


Non so se ho capito... Diciamo pure di no... Il mio dubbio era (ed è)...

Scrivendo:

[code type="markup"]max_of_a_list( [Head| []], Head).

max_of_a_list( [Head|Rest], Head) :-
max_of_a_list( Rest, Max ),
Head > Max.

max_of_a_list( [_|Rest], Max ) :-
max_of_a_list( Rest, Max ).[/code]

Perché non funziona???
Per come la vedo io, si dovrebbe usare l'ultima "regola" solo non riuscendo ad applicare le prime due...
Quindi... Se NON si è arrivati al caso base... O se la testa NON è maggiore del vecchio massimo...
Di conseguenza... Solo se la testa è minore o uguale del vecchio massimo... Ma senza scriverlo esplicitamente...
Non so se mi sono spiegato... Dove sbaglio???
Mhh, si ho capito che dici, ma per l'esperienza che ho accumulato finora mi sembra di capire che lui unifica tutto quello che può unificare, anche se ha già unificato con successo con regole precedenti, per questo ho messo la cut (o la condizione esplicita), per non fargli cercare altre soluzioni dopo aver unificato con quella regola. Spero di essere stato d'aiuto, ciao!
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Grazie! Ho trovato quello che cercavo! :wink:
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Ciao! Avrei bisogno di un aiuto su Prolog...non riesco a trovare il comando che da il listato dei predicati proprietari.

Qualcuno mi può aiutare?

Grazie! :D

se usi SWI-Prolog apri l'help alla pagina:
Chapter 4. BUILT-IN PREDICATES
e:
Chapter 11. THE SWI-PROLOG LIBRARY
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Ciao! Avrei bisogno di un aiuto su Prolog...non riesco a trovare il comando che da il listato dei predicati proprietari.

Qualcuno mi può aiutare?

Grazie! :D
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Dove posso trovare l'esempio sul treno?


http://www.uniroma2.it/didattica/SBC050 ... uzione.pdf
E' un insieme di esercizi sulle ontologie tra cui trovi anche quello del treno.

Piuttosto qualcuno saprebbe dirmi dove è possibile trovare l'esercizio sulle automobili, i reati stradali, ecc.?


guarda esercizi non se ne trovano tanti ,io questo l'avevo in materiale cartaceo ed è pure l'unico che ho.quindi se trovi altri esercizi fammelo sapere anche tu. :wink:
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Dove posso trovare l'esempio sul treno?


http://www.uniroma2.it/didattica/SBC050 ... uzione.pdf
E' un insieme di esercizi sulle ontologie tra cui trovi anche quello del treno.

Piuttosto qualcuno saprebbe dirmi dove è possibile trovare l'esercizio sulle automobili, i reati stradali, ecc.?
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Anche io l'avevo scritto come te, poi mi sono reso conte che così specifichi quando la testa è il massimo della coda, ma se nelle chiamate ricorsive capita di trovare un elemento <= alla testa non viene considerato come soluzione.


Non so se ho capito... Diciamo pure di no... Il mio dubbio era (ed è)...

Scrivendo:

[code type="markup"]max_of_a_list( [Head| []], Head).

max_of_a_list( [Head|Rest], Head) :-
max_of_a_list( Rest, Max ),
Head > Max.

max_of_a_list( [_|Rest], Max ) :-
max_of_a_list( Rest, Max ).[/code]

Perché non funziona???
Per come la vedo io, si dovrebbe usare l'ultima "regola" solo non riuscendo ad applicare le prime due...
Quindi... Se NON si è arrivati al caso base... O se la testa NON è maggiore del vecchio massimo...
Di conseguenza... Solo se la testa è minore o uguale del vecchio massimo... Ma senza scriverlo esplicitamente...
Non so se mi sono spiegato... Dove sbaglio???
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Dove posso trovare l'esempio sul treno?
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
<owl:class rdf:id <"senza patente">
<owl: subclassof>
<owl:restriction>
<owl:onproperty rdf: resource ="commessoReato"/>
</owl:restriction>
</owl: subclassof>
</owl: class>

<owl: class rdf :id= "reato"/>

<owl: class rdf: id= "reatoautomobilistico">
<rdfs:subclassof rdf:resource="#reato"/>
</owl class>

<owl: class rdf :id="persona"/>

<owl: class rdf :id="automobile"/>

<owl : objectproperty rdf :id="commessoreato">
<rdfs: domain rdf :resource="#persona"/>
<rdfs: range rdf :resource="#reato"/>
</owl: objectproperty>

<owl : objectproperty rdf :id="possiedemacchina">
<rdfs: domain rdf :resource="#persona"/>
<rdfs: range rdf :resource="#automobile"/>
(in più inverse functionalproperty)
</owl: objectproperty>

<persona rdf id:="pino">
<possiedemacchina rdf:resource="#camilla"/>
</persona>

<automobile rdf:id="camilla"/>

<automobile rdf:id="lucina">
<owl: sameas rdf:resource="#camilla"/>
</automobile>

<reatoautomobilistico rdf:id ="guidainstatodiebrezza"/>

<persona rdf: id="mario">
<commessoreato rdf:resource="#guidainstaodiebrezza"/>
<possiedemacchina rdf:resource="#lucina"/>
</persona>

questo è un esercizio simile a quello del compito
vi chiedo se esistono inconsistenze
e le istanze (esplicite o inferite,se esistenti)della classe senza patente




Per favore mi sapresti dire dove hai preso questo esercizio? Io sto cercando materiale su OWL per esercitarmi ma al di fuori di quello fornito da stellato nn riesco a trovarne
Comment
There are no comments made yet.


There are no replies made for this post yet.
Be one of the first to reply to this post!