2009-11-19 13 views
13

Esistono librerie o determinate "tecniche" che è possibile utilizzare per creare un'ontologia di elementi?Come creare un'ontologia in python?

Oppure "schemi di progettazione"?

Sto parlando solo di un "grafico" di cose. Supponiamo di avere un sacco di parole. Alcune parole sono "sotto" altre parole o "correlate" ad altre parole. Ho bisogno di un buon modo per raggrupparli e conoscere la loro relazione.

+0

Si prega di essere più specifico. Una tabella hash potrebbe adattarsi alle tue esigenze. –

+3

Stai parlando di tripli RDF, che sono spesso usati per codificare informazioni ontologiche? Di cosa stai parlando? –

risposta

6
+0

ow ... questo è ** fantastico ** ... un protetto scriptable :))) –

+4

L'idea è grande. Sfortunatamente, questo progetto è morto dal 2009 e fa affidamento su Pellet e JPype che sono notoriamente instabili. Non ero in grado di far girare il campione di base di seth usando le versioni attuali di Pellet e JPype. – Cerin

2

un'ontologia è un dizionario che definisce gli URI e concorda su un significato per ognuno di essi. Una ontologia banale è solo un mucchio di URI che scegli più o meno di punto in bianco. Questo metodo purtroppo non ti fornisce alcuna informazione sulle relazioni semantiche delle tue entità ontologiche. Per spiegare queste relazioni normalmente le descrivi con un file OWL e normalmente usi strumenti per questo. Io uso Protege. è abbastanza ok

7

È possibile utilizzare rdflib (http://www.rdflib.net/) per la memorizzazione di triple. Dovrai quindi prendere le tue decisioni sul tipo di ontologia che vuoi costruire. Guarda il formato OWL per questo.

Durante il mio dottorato mi sono divertito con python e ontologie, quindi forse una rapida scansione della mia tesi può darvi qualche idea. Ad esempio un short OWL summary o un UML model of a plone ontology tool.

+0

Sto cercando qualcuno che mi aiuti con la definizione di una piccola ontologia. avresti tempo per un progetto opensource? –

+0

Scusate, sono già pieno di molti altri progetti (e due bambini :-)) –

1

Se ha senso rappresentare qualcosa come un grafico diretto, perché non usare solo una classe di grafici? Il grafico Python offre semplici rappresentazioni grafiche di puro python. NetworkX ha un'implementazione C leggermente più difficile da usare.

3

RDFLIB è un'implementazione matura di un negozio triplo, con un gran numero di documentation.

Tuttavia, questa libreria ha funzionato per me solo per i progetti più piccoli. Ad esempio c'è un bel catalogo RDF/XML dello Gutenberg Project Library, che non ero in grado di modificare (con il mio dual-core, 2GBRAM), perché è semplicemente troppo grande (~ 100M) - anche Java/Protege aveva una tendenza a fermarsi su questo file. È un peccato.

Alternativa: http://seth-scripting.sourceforge.net/

3

Supponiamo che io sono un mucchio di parole. Alcune parole sono "sotto" altre parole o "correlate" ad altre parole. Ho bisogno di un buon modo per raggrupparli e conoscere la loro relazione .

Date un'occhiata a WordNet, che è disponibile in formato RDF vale a dire in base a un'ontologia RDF Schema. Questo è esattamente ciò che descrivi.

http://www.w3.org/2006/03/wn/wn20/


(C. Fellbaum WordNet:.. Un database lessicale elettronico MIT Press, 1998. Vedi anche http://wordnet.princeton.edu/)

(van Assem, Gangemi e Schreiber (a cura di) RDF../OWL Rappresentazione di WordNet, W3C Working Draft 19 giugno 2006 W3C Working Draft 19 giugno 2006; http://www.w3.org/TR/2006/WD-wordnet-rdf-20060619/)

Problemi correlati