2016-07-12 44 views
5

Ho ontologia che ha un'altra ontologia importata in essa. Voglio sapere come OWLOntologyManagerloadOntologyFromOntologyDocument(OWLOntologyDocumentSource documentSource, OWLOntologyLoaderConfiguration config) funziona internamente. Ho utilizzato la classe OWLOntologyLoaderConfiguration per gestire il Missing Imports (voglio sapere quale importazione fallisce con l'aiuto della classe MissingImportListener).OWLAPI: come viene caricata l'ontologia con l'importazione?

Sono in grado di ascoltare le importazioni mancanti. Ma se uno qualsiasi dei miei file di ontologia ha un'importazione per la risorsa WEB, allora il metodo sopra lo recupera dalla sua posizione. Esiste un modo per limitare la chiamata alla risorsa WEB e chiedere di caricare la copia che ho nel mio sistema?

esempio in caso di metodo sportiva ontologia caricamento carichi BBC seguenti ontologie internamente:

  1. http://purl.org/NET/c4dm/event.owl
  2. FOAF (http://xmlns.com/foaf/0.1/)
  3. Tempo (http://www.w3.org/2006/time)

come aprire sportiva BBC ontologia all'interno di Protege.

risposta

1

È possibile utilizzare AutoIRIMapper - creare un riferimento alla cartella contenente copie locali e aggiungerlo al gestore prima di caricare l'ontologia che si sta cercando.

Per le ontologie che sono disponibili a un indirizzo diverso, utilizzare SimpleIRIMapper, che fungerà da reindirizzamento dall'indirizzo originale a un nuovo indirizzo.

+0

Attualmente diverse ontologie sono nel mio sistema operativo non sul disco rigido. Lo so, se qualcosa non è disponibile nel mio sistema di lavoro allora caricare API andrà per risorse WEB. Ma invece voglio innescare un trigger che non va per la risorsa WEB, ma chiedilo all'utente (anche se la risorsa WEB è disponibile). Voglio limitare il mio sistema alla ricerca di una risorsa WEB. – SuhasD

+0

Secondo il mio esperimento, il metodo di caricamento andrà per IRIMapper per primo, se non trovato andrà per la risorsa WEB. Se non è disponibile, getterà "UnloadableImportException" o eviterà "MissingImportListener" se presente. Ho ragione su questo? – SuhasD

+0

Per introdurre un trigger dell'interfaccia utente, è necessario scrivere la propria implementazione 'OWLOntologyIRIMapper'. Non c'è niente già disponibile che lo permetta. – Ignazio