Предполагая, что вы используете API онтологии Jena, это довольно просто. Обратите внимание, что в RDF данный экземпляр может иметь много типов, поэтому ваш вопрос действительно «Как я могу проверить, если два экземпляра имеют один или несколько общих типов?» .
Я бы сделал это следующим образом. Предположим, что два экземпляра, которые вы хотите протестировать, являются Individual
объектами (обратите внимание, что вы можете сделать это с OntResource
или даже Resource
с небольшим изменением кода):
Individual i0 = ....;
Individual i1 = ....;
Список значений rdf:type
для каждого и преобразование их в наборы
Set<Resource> types0 = i0.listRDFTypes( false ).toSet();
Set<Resource> types1 = i1.listRDFTypes( false ).toSet();
Они имеют общие типы, если пересечение не пустое:
types0.retainAll( types1 );
if (!types0.isEmpty()) {
// at least one type in common
// types0 contains the common type resources
}