private void handleSubpropertyOf(OntProperty p, OntProperty ancestor) { List<RDFNode> list = ancestor.listPropertyValues(RDFS.subPropertyOf).toList(); for (RDFNode node : list) { if (!node.canAs(OntProperty.class)) continue; OntProperty superProperty = node.as(OntProperty.class); if (superProperty.equals(ancestor)) continue; addFields(p, superProperty); handleSubpropertyOf(p, superProperty); } }