PDA

Visualizza la versione completa : Ontologia in RDF schema, come?


Neptune
22-05-2013, 22:38
Scrivo in ot perchè non è un "Problema di programmazione" da risolvere ma è un problema di ricerca di un manuale o meglio di un breve how-to.

Per farla breve devo descrivere l'ontologia di un azienda mediante RDF schema (ovvero l'azienda che quaestio mi ha descritto in pvt quindi è colpa sua se sono qui a rompere :D), in maniera nemmeno eccessivamente dettagliata perchè vuole più che altro una descrizione a grafo accompagnata da una descrizione discorsiva (quindi a parole niente codice).

Andando sul sito della W3C ci sono solo esempi di codice RDFS e niente grafo, a me serviva invece vedere qualche esempio di grafo già fatto in maniera di capire meglio come farlo, con qualche commento assieme.

Questo è ciò che ha consegnato uno studente degli anni passati:
http://www.scribd.com/doc/100237013/Ontologie-per-l-organizzazione-domini-concettuali-in-un-agenzia-assicurativa

Purtroppo però solo guardando il suo esmepio non sono risucito a comprendere appieno come farlo e vorrei evitare di fare errori.

P.S: Alla prima relazione in cui descrivevo l'azienda ho preso 30 grazie a quaestio che è stato gentilissimo, spero di poter replicare il voto capendo come fare questa ontologia :fagiano:

redcloud
23-05-2013, 00:17
Neptune io ti stimo, però direi che per me è la cipolla!

URANIO
23-05-2013, 09:29
http://en.wikipedia.org/wiki/RDF_Schema
C'è anche un esempio.

Neptune
23-05-2013, 11:25
Quindi se ho capito bene i pallini sono classi (o al più istanze di classi), le frecce le relazioni.

Le relazioni (che poi chiamano proprerty) definiscono appunto le proprietà delle classi.

Posso dire Rdfs:type per dire che un oggetto è un istanza di una classe;
Posso dire rdfs:subclassof per dire che è una sottoclasse;

Posso anche crearne di mie, ho visto ad esempio zoo:host anche se non ho capito bene con che regole posso crearne.

Poi ci sono le proprietà delle relazioni, ovvero rdfs:range e rdfs:domain, che nel grafo si vede che sono frecce che collegano una relazione (quindi partono da un freccia) ad una classe. Se ho ben capito se una relazione collega assieme A e B, il dominio ci dice di che classe deve essere A, mentre il range dice di che classe deve essere B.

Non ho ben capito come mai alcune classi le chiama inziiando con "ex" del tipo "ex:employer" ed altre invece le chiama come vuole del tipo "foaf:person". Che cosa sta a significare ex? quando posso invece mettere un prefisso a mio piacimento?

URANIO
23-05-2013, 11:30
Originariamente inviato da Neptune
Non ho ben capito come mai alcune classi le chiama inziiando con "ex" del tipo "ex:employer" ed altre invece le chiama come vuole del tipo "foaf:person". Che cosa sta a significare ex? quando posso invece mettere un prefisso a mio piacimento?

A typical example of an rdfs:Class is foaf:Person in the Friend of a Friend (FOAF) vocabulary. An instance of foaf:Person is a resource that is linked to the class foaf:Person using the rdf:type property, such as in the following formal expression of the natural language sentence : 'John is a Person'.
ex:John rdf:type foaf:Person

Neptune
23-05-2013, 11:50
Essi l'ho letto ma non l'ho capito :confused:

URANIO
23-05-2013, 12:52
A quanto ho capito io è come con classi ed oggetti
ex:John rdf:type foaf:Person

L'oggetto john (il cerchio) è di tipo Person e quindi ne ha tutte le caratteristiche
In questo caso FOAF è un caso particolare usato (non ho capito perchè) per descrivere un gruppo di persone relazionate tra loro

Curiosità:
Perchè i grafici li devi fare usando questo standard?

Neptune
23-05-2013, 14:59
Originariamente inviato da URANIO
A quanto ho capito io è come con classi ed oggetti
ex:John rdf:type foaf:Person

L'oggetto john (il cerchio) è di tipo Person e quindi ne ha tutte le caratteristiche
In questo caso FOAF è un caso particolare usato (non ho capito perchè) per descrivere un gruppo di persone relazionate tra loro

Curiosità:
Perchè i grafici li devi fare usando questo standard?

Eh non lo so perchè sia stato scelto proprio questo. E' per un esame, ci è stata fatta una lezione lampo sulle ontologie in cui gli ultimi 10 minuti si vedeva l'rdfs e successivamente ci è stato detto di realizzare l'ontologia tramite RDFS e gli interessava la rappresentazione a grafico.

Dato che tutto il voto di questa relazione dipende da quanto ho compreso l'rdfs schema ecco che mi ritrovo qui un pò preoccupato.

Quindi FOAF è una "classe" di persone? non la bisogna definire da nessuna parte?

Sai da un lato vorrei tendere ad usare costrutti il più semplcie possibile per evitare di utilizzarli male, dall'altro non vorrei che farlo troppo semplice mi porti ad un voto troppo scarso.
Tra l'altro nella relazione che ti ho linkato il tizio per non farla troppo piatta ha anche fatto un esempio di interrogazione in "SPARQL-like" che invece non ce stato nemmeno accennato. Io qui devo produrre una relazione di 4 pagine, 1 pagina il grafo se mi impegno molto, 1 pagina con un pò di descrizioni e poi le altre due pagine che faccio le riempio di ghirigori? :D

Per questo più ne capisco di RDFS e più posso farlo complesso e più evito di far uscire una cosa striminzita.

URANIO
23-05-2013, 17:09
http://www.w3schools.com/rdf/rdf_example.asp
Qua fa un esempio con risultato anche il grafo
Alla fine si tratta di descrivere una relazione di risorse con un linguaggio.
C'è anche il validatore online per evitare di scrivere cazzate.

FOAF mi pare di capire che sia una cosa usata solo per il web, o comunque comunità interconnesse.

FOAF (an acronym of Friend of a friend) is a machine-readable ontology describing persons, their activities and their relations to other people and objects. Anyone can use FOAF to describe him- or herself. FOAF allows groups of people to describe social networks without the need for a centralised database.


Per SPARQL sembra essere una specie di Linq per RDF, tratta lo schema come se fosse un database, e sembra più semplice di linq;)

Neptune
25-05-2013, 12:08
Mi sto un pò bloccando sulla modellazione, magari puoi sbloccarmi con qualche consiglio :D

Dunque io ho delle classi "Affitto", due tipologie di contratti di affitto sono l'affitto di un locale e l'affitto di uno spazio pubblicitario e le ho inserite come sottoclassi.

Ora se voglio dire che l'affitto in generale ha una "cifra" (cosi dovrebbe essere ereditata anche dalle sottoclassi giusto?) ma che lo spazio pubblicitario ha come caratteristiche chessò posizione, durata e grandezza, mentre l'affitto della stanza ha carratteristiche posizione, grandezza, durata, mobilio, e altri servizi come lo potrei descrivere?

Nell'esempio che vi ho riportato nel primo post viene descritta una compagnia assicurativa e ad esempio lui descrivere una classe sinistro con tanti attributi (come codice, comune in cui è accaduto, numero polizza) che collega con il tag "rdfs:domain". Secondo te è giusto? Domain non dovrebbe descrivere una relazione? quindi lui sta dicendo che il sinistro è solo una relazione con queste proprietà?

Però se facessi così io non potrei dire che spazio pubblicitario sia una sottoclasse di affitto ma una sottoproprietà?

Loading