Ragionamento del gufo di base con Jena
-
13-12-2019 - |
Domanda
Sono nuovo alle ontologie e avere una domanda fondamentale sul ragionamento del gufo.La domanda può sembrare lunga avvolta, mi dispiace per quello ..
Considera un'ontologia con i seguenti assiomi (Gufo: Classe C1) e (Gufo: Classe P), con una proprietà oggetto (RDFS: Dominio osserva C1) (RDFS: Gamma osserva P), insieme a un individuo (RDF: Type P P)
Io limitò la classe C1 creando una classe C2 (RDFS: Subclassof C2 C1) con la restrizione (osserva C2 P)
Ora quando creo un nuovo individuo (RDF: Type X Gufo: cosa) (osserva X P), quindi il ragionatore deduce che (RDF: Digitare x C1).Tuttavia, la definizione dell'individuo X sembra più vicina a C2, quindi il ragionatore non dovrebbe dedurre che x è di tipo c2?
Aiuto!
Sto sperimentando usando il quadro Jena.
Soluzione
Il motivo per cui ciò non accade è che tu abbia creato la restrizione utilizzando una sottoclasse, il che significa che hai creato una condizione necessaria (ma non sufficiente).Metti in altre parole, hai detto questo al registro:
"Se un individuo è di tipo C2, allora deve avere una proprietà 'osserva'"
Ma tu hai non ha detto che l'altro modo:
"Se un individuo ha una proprietà 'osserva', allora deve essere di tipo C2"
Affinché il ragionatore sia in grado di dedurre che il tuo individuo è di tipo C2, è necessario disporre della seconda regola (la condizione sufficiente).Puoi farlo in Gufo usando una relazione owl:equivalentClass
sulla restrizione (invece di una relazione rdfs:subClassOf
).