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
Partiamo dal fatto che non mi convince la prima dichiarazione...
Diciamo che appartiene alla classe "senzapatente" qualsiasi istanza che abbia una relazione di tipo "commessoreato".
Partiamo poi dalla fine.
E' inizializzata l'istanza "guidainstatodiebrezza" della classe "reatoautomobilistico", e viene asserito che una istanza della classe "persona" ha una relazione di tipo "commessoreato" con l'istanza "guidainstatodiebrezza".
Poi sappiamo che "reatoautomobilistico" è sottoclasse di "reato".
Dunque la "perona" di prima ha una relazione di tipo "commessoreato" con un'istanza di tipo "reato" ("reatoautomobilistico" è sottoclasse di reato).
Secondo la prima dichiarazione dunque, la persona in questione è "senzapatente".
Il tutto insomma si focalizza sul fatto che se un'istanza ha una relazione di tipo "commessoreato" con un'istanza della classe "reatoautomobilistico" si può secondo me inferire che abbia una relazione con un'istanza della classe reato.
Voi che ne dite belli miei???

PS: ditemi voi se dopo una partita di calcetto uno si può piazzare al volo sul PC per vedere se qualcuno aveva risposto...
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Il bello è che anche secondo me tutta l'ontologia è fatta apposta per farti cascare nel tranello...
Ma non riesco a non cascarci...

Come quel maledetto Pete che non si sa che cos'è e quella Duffy che non è una papera ma un uomo...
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
secondo me confondi il fatto che commesso reato è una relazione si che sta dentro senza patente ma non è detto che si trovi soli li,quindi non puoi stabilire che tutte le istanze che abbiano commessoreato facciano parte di senzapatente.potrebbero far parte come no.non c'è un legame diretto come diceva acela
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Come quel maledetto Pete che non si sa che cos'è e quella Duffy che non è una papera ma un uomo...

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.
Comment
There are no comments made yet.
Accepted Answer Pending Moderation

Il predicato per il massimo lavora come tutti i predicati sulle liste...
Conoscendo il massimo di una lista...
Aggiungendo a questa un elemento (la testa), il nuovo massimo sarà aggiornato, solo se la testa è maggiore del "vecchio massimo"...

Il problema è che non capisco perché non basti questa condizione... :?

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.
Questa è la mia proposta, una con le condizioini esplicite, l'altra col una cut:
[code type="markup"]maxlist([X],X).
maxlist([X|Xs],X) :- maxlist(Xs,M), X>M.
maxlist([X|Xs],M) :- maxlist(Xs,M), X=<M.[/code]
[code type="markup"]
maxlist([X],X).
maxlist([X|Xs],X) :- maxlist(Xs,M), X>M, !.
maxlist([_|Xs],M) :- maxlist(Xs,M).[/code][/code]
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.
Accepted Answer Pending Moderation
Dove posso trovare l'esempio sul treno?
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?


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
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
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
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
Grazie! Ho trovato quello che cercavo! :wink:
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
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
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

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
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
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
[...]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.


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