Es gibt eine Möglichkeit, alle benannten Unterklassen einer Klasse zu finden, ohne einen Reasoner zu verwenden for (OWLClass child : reasoner.getSubClasses(clazz, true).getFlattened())
und ohne Schlussfolgerung nur durch Verwendung von Axiomen? DankeUnterklassen einer Klasse erhalten OwlApi
2
A
Antwort
2
Mit Eulen-API kann die Ontologie abgefragt werden, um alle Unterklassen-Axiome zu erhalten. Dann filtern Sie das Ergebnis, um nur die benannten Klassen beizubehalten.
for (final OWLSubClassOfAxiom subClasse : ontology.getAxioms(AxiomType.SUBCLASS_OF))
{
if (subClasse.getSuperClass() instanceof OWLClass && subClasse.getSubClass() instanceof OWLClass)
{
System.out.println(subClasse.getSubClass() + " extends " + subClasse.getSuperClass());
}
}
Jena verwenden, können Sie Anweisung auflisten, hinzufügen Look für die "subClassOf" Prädikat, dann wie in owl-api Sie nur nicht-annoymous Objekte zu erhalten filtern, um.
final StmtIterator it = model.listStatements();
while (it.hasNext())
{
final Statement s = it.next();
if (s.getPredicate().equals(RDFS.subClassOf) && !s.getObject().isAnon())
System.out.println(s.getSubject() + " extends " + s.getObject());
}
Verwandte Themen
- 1. Ist es möglich, alle Unterklassen einer Klasse zu erhalten?
- 2. Eine Klasse in Unterklassen aufteilen
- 3. Importe in OWLAPI hinzufügen
- 4. Verfügbarmachen von WCF-Unterklassen basierend auf einer abstrakten Klasse
- 5. Unterklassen einer gegebenen Klasse in Obj-C entdecken
- 6. Iterate über Unterklassen einer gegebenen Klasse in einem gegebenen Modul
- 7. Entkopplung einer Klasse, die von den vielen Unterklassen verwendet wird
- 8. Unterklassen einer Klasse, die eine generische Schnittstelle implementiert
- 9. Welche Einschränkungen gibt es bei Unterklassen einer abstrakten Klasse?
- 10. Funktion Anmerkung für Unterklassen der abstrakten Klasse
- 11. Python 3 Unterklassen bei interner Klasse
- 12. Java - Binärkompatibilität der abstrakten Klasse und Unterklassen
- 13. OWLAPI ObjectPropertyChain Axiome
- 14. Java owlapi extrahieren
- 15. OWLAPI rekursive Axiome
- 16. Ontologievergleich in owlapi
- 17. OWLAPI: „ParserException“, während String Klasse Expression Umwandlung ManchesterOWLSyntaxParser mit
- 18. Wert einer Klasse erhalten
- 19. Java-Vererbung, zwei Unterklassen derselben Klasse
- 20. Erhalten Sie Beziehungen zwischen direkten und indirekten Instanzen einer Klasse?
- 21. Refactoring einer Hibernate-Entität in Unterklassen
- 22. Databinding Unterklassen
- 23. OWLAPI: Create new Reasoner (HermiT)
- 24. OWLAPI: Verwendung von 'Imports' enum
- 25. OWLAPI: Statistik über das Schließen Aufgabe
- 26. Kompilierzeitstempel einer Java-Klasse erhalten
- 27. Aliasnamen einer importierten Klasse erhalten
- 28. kann nicht zwei äquivalente OWLClasses in OWLAPI mit Reasoner
- 29. Variablenwerte in Unterklassen ändern?
- 30. Unterklassen in clojure
Vielen Dank für die Lösung. es berücksichtigt jedoch keine Beziehungen zwischen Klassen und der Klasse der ersten Ebene, die Sache ist. Ich verstehe, denn in der owl.file gibt es keinen Verweis darauf, dass diese Klassen Unterklassen von Thing sind, die vom Reasoner gemacht werden. Es gibt keine Möglichkeit, sie zu berücksichtigen, ohne einen Reasoner zu verwenden? Ich hoffe, dass ... – Nina
Machen Sie einen Satz (A) aller Unterklassen gesehen, die keine Unterklassen von Ding sind. Nimm die Menge (B) aller Klassen in die Signatur und entferne die Klassen von (A). Der Rest von B sollte ein zusätzlicher Satz von Klassen sein, die direkt Unterklassen von Thing sind. – Galigator