2012-10-19 19 views
7

Immagina di iniziare a utilizzare un'ontologia perché fornisce un utile vocabolario per descrivere un oggetto a cui sono interessato, ad es. FOAF per descrivere una persona (me). Ho subito due problemi. Mi imbatto in un'altra ontologia che ha anche un vocabolario che descrive una persona.Come mescolare le ontologie che descrivono lo stesso oggetto (usando rdfa?)

Problema 1: Alcuni di questi termini sono funzionalmente equivalenti o relativa, ma non voglio essere disturbato avvolgendo entrambe le ontologie intorno allo stesso oggetto,

<span property="foaf:name"><span property="dc:creator">Carl Boettiger</span></span> 

Perché questo è ingombrante e sembra ignorare l'intera idea di ha collegato i dati, che dovrebbero presumibilmente essere abbastanza intelligenti da sapere che uno dc:creator è anche un foaf:person. Quindi qual è il modo corretto per farlo? Come posso confermare la relazione tra questi oggetti (ad esempio presumibilmente non tuttidovrebbe essere dc:creator. È detto da qualche parte sul Web Semantico che dc:creator è un sottoinsieme di foaf:person? Devo collegarmi a tale affermazione in qualche modo? dove

Problema 2:?. il vocabolario in un'ontologia non è sufficiente per i miei scopi, quindi ho bisogno di usare il vocabolario da un altro, per esempio, FOAF, a mia conoscenza, non fornisce me un modo per dichiarare la mia organizzazione, posizione o ruolo (che sembra che GoogleSnippets ritenga che i campi obbligatori siano una persona valida). Quindi vado a trovare una pratica ontologia, ad esempio quella suggerita da Google, http://rdf.data-vocabulary.org, con questi termini. Ora di nuovo ho il strettamente correlato d problema di fare in modo che i due ontologie d'accordo su ciò che una persona è:

<div typeof="foaf:Person"> 
    <span property="foaf:name">Carl Boettiger</span> is a <span property="v:role"> graduate student </span> 
</div> 

v:role ha il proprio idea di ciò che appartiene ad un typeof="v:Person. Devo aggiungere anche questa dichiarazione typeof? Devo quindi fare qualcosa per dire che è lo stesso di foaf:Person, e infatti che v:role e descrivono entrambi la stessa cosa (io)?

Mille grazie per aver chiarito il mio disappunto.

risposta

6

Si noti che foaf: Person è un tipo o una classe che in RDFa è espressa tramite l'attributo @typeof. dc: creator, foaf: name, v: role d'altra parte sono proprietà che sono inserite nell'attributo @property in RDFa. In genere, si inizia digitando il proprio oggetto nel codice HTML (ad esempio una persona) e quindi si attribuiscono i suoi attributi come nome o ruolo tramite proprietà. I tipi di solito iniziano con una lettera minuscola (foaf: Person), mentre le proprietà iniziano con una minuscola (foaf: name).

Problema 1: invece di aggiungere un nuovo elemento arco per ogni nuova proprietà, si può mettere tutte le proprietà all'interno della stessa proprietà attributo separato con uno spazio:

<span property="foaf:name dc:creator">Carl Boettiger</span> 

è detto da qualche parte sul Semantic Web che dc: creator è un sottoinsieme di foaf: person?

In primo luogo, l'esempio non è davvero sufficiente, dc: creator essendo una proprietà e foaf: persona un tipo, ma immaginiamo che stiamo parlando di foaf: Agent e foaf: una persona, la specifica foaf afferma che foaf : Person è una sottoclasse di foaf: Agent: http://xmlns.com/foaf/spec/#term_Person - I vocaboli potrebbero definire tali relazioni. Esistono anche mappature del vocabolario incrociato che a volte definiscono le relazioni tra classi e proprietà di vari vocaboli.

Ho bisogno di collegare in qualche modo tale affermazione?

no, in genere non è necessario.

Problema 2: notare che http://rdf.data-vocabulary.org è deprecato in favore del vocabolario schema.org: http://schema.org/docs/full.html e http://schema.rdfs.org/

Devo aggiungere questa dichiarazione typeof pure? Devo quindi fare qualcosa per dire che è lo stesso di foaf: Person, e infatti v: role e foaf: il nome entrambi descrivono la stessa cosa (io)?

In generale, quando la pubblicazione di dati in formato HTML, non si tenta di equivalenze di stato tra vocabolari, invece si pubblica con tutti i termini di vocabolario che si pensa possa essere utile per le applicazioni che consumano i dati, ed è facile fallo in RDFa poiché puoi incorporare più tipi e proprietà all'interno di un attributo @typeof o @property.

<div typeof="foaf:Person v:Person"> 
    <span property="foaf:name v:name">Carl Boettiger</span> is a <span property="v:role"> graduate student </span> 
</div> 

noti che è possibile testare il markup RDFa a http://rdfa.info/play/

+0

Grazie per i chiarimenti e una grande risposta. Scusa per la mia confusione tra '@ property' e un' typeOf', questa è una buona differenza da sapere. Ma per affrontare correttamente il problema 1, qual è il modo corretto per mostrare la connessione tra questi; cioè, per affermare che la cosa dc: il creatore sembra essere anche foaf: Person with foaf: name "Carl Boettiger"? – cboettig

+0

L'elenco di entrambi i vocabolari sembra decisamente la soluzione corretta per il problema 2, ma solleva comunque la domanda nel punto 1: perché è necessario elencare entrambe le proprietà? Non è detto da qualche parte sul web che 'foaf: name' e' v: name' sono lingue diverse che significano la stessa cosa? Dovendo tradurre esplicitamente la parola "nome" in ogni ontologia che voglio sostenere sembra che sconfigga del tutto lo scopo del web semantico. – cboettig

+1

Penso che entrambe le mie ulteriori domande rispondano bene qui: http://answers.semanticweb.com/questions/19275 – cboettig