2011-10-05 17 views
7

Semantic Web: Best PracticesQuali sono le migliori pratiche per lo sviluppo di applicazioni semantiche utilizzando Jena & RDF

Sono nuovo di Semantic Web, nella mia domanda, sto usando Protege, RDF, SPARQL, Jena, Virtuaso. La mia preoccupazione è che, nei popolari framework Java (come Hibernate), abbiamo il livello POJO, in questa applicazione Web semantica posso avere la stessa cosa? è una buona pratica? Voglio sapere, Jena mi sta fornendo la connessione di RDF e modello, ma quali sono le migliori pratiche per progettare l'intera applicazione? Nel front end userò semplici HTML e JS, quindi i servlet saranno lì. Inoltre, desidero conoscere gli standard di rappresentazione di un'ontologia creata in Protege in Java (senza utilizzare OntModel, perché non sto utilizzando OWL).

risposta

1

Come in qualsiasi applicazione Web, è necessario prendere decisioni architetturali per tre o più livelli.

bagagli strato

maggior parte degli strumenti per la manipolazione di ontologie (Jena, Virtuoso, sesamo, Protege) offre una serie di modi per memorizzare i dati: in-process (in memoria) modelli, il modello RDB (in RDBMS a scelta), archiviazione in formato nativo. La scelta dipende dai vincoli ambientali e dai requisiti di prestazioni/scalabilità.

strato di manipolazione

Selezionando una soluzione qui porta sempre un po 'di trade-off tra il livello di astrazione ed espressività. Questo perché è difficile mappare tutti i costrutti di ontologia a costrutti orientati agli oggetti.

Dato che si può scegliere tra:

  • Jastor o JenaBean che genera le classi Java POJO corrispondente alle proprie classi ontologia, e
  • Jena Model/OntModel, o Protege API a minipulate RDF, OWL, e telaio ontologie basate su un livello inferiore.

Jastor avvolge Jena OntModel o Model ma nasconde interni Jena da voi, quindi se a trovarlo limitato si può sempre estendere. Nota, Jastor sembra non essere più mantenuto.

strato Rappresentazione

tecnologie di strato manipolazione diamo si nasconde interni ontologia dalla vista di rappresentanza, quindi si può utilizzare le tecnologie tradizionali come JSP per produrre output HTML. Tuttavia, per alcuni problemi potrebbe essere utile emettere un modello in formato RDF/XML e applicare la trasformazione simil-XSL (T) ad esso. Ho trovato rx4RDF, uno strumento basato su Python, utile per supportare questo tipo di trasformazioni.

Disclaimer: Ho lavorato 6 anni fa con le tecnologie citate. Le cose potrebbero essere cambiate nel frattempo. Quindi:

  • Vi incoraggio a vedere le architetture di diverse applicazioni Web semantiche esistenti e trovare quella che si adatta al vostro problema. Ad esempio here.
  • Anche se molto lavoro è stato fatto nel campo degli strumenti del Semantic Web, questa è ancora una tecnologia. Per indirizzare meglio la tua domanda, puoi provare a porre la tua domanda sulla mailing list dei prodotti e sui forum di ricerca.
  • Inoltre, W3C mantiene un tempo piuttosto lungo list of tools per l'elaborazione RDF.