Вы пытаетесь выяснить, включен ли класс в домен свойства объекта (классы не имеют свойств объекта в OWL), или этот класс является подклассом ограничения. Сигнатура объекта класса содержит свойства объекта, только когда выражение класса упоминает свойство, например квалифицированное ограничение мощности или экзистенциальное ограничение, как в вашем примере.
Чтобы увидеть, имеет ли класс суперкласс, который использует partOf
, вы можете создать выражение класса, представляющее правую часть вашей аксиомы подкласса, и запросить его подклассы.
OWLDataFactory df = ...
OWLClassExpression c = df.getOWLObjectSomeValuesFrom(partOf, car);
NodeSet subClasses = hermit.getSubClasses(c, false);
Для классов в домене partOf вы должны искать подклассы пересечения выражений домена:
OWLClassExpression domain = df.getOWLObjectIntersectionOf(ontology.objectPropertyDomainAxioms(partOf));
NodeSet subClassesInDomain = hermit.getSubClasses(domain, false);