Мне нужно семантически сопоставить две концепции онтологии, используя SML library . Здесь - предоставленный ими пример кода, который сравнивает только два понятия одной и той же онтологии.
Я также пробовал загрузить две онтологии в программу, создав еще одну GraphMemory
.Но мы не можем получить результат, так как он имеет метод compare
в классе SM_Engine, который сравнивает два понятия в одной и той же онтологии, и мы не можем использовать понятия разных онтологий в этом методе для сравнения.
SM_Engine engine = new SM_Engine(g);
double sim = engine.compare(sMconf, threatURI, cropURI);
System.out.println("Similarity : " + sim);
Это дает меру подобия в виде двойного значения.Но это между двумя понятиями одной и той же онтологии.
Следующее исключение выдается, когда URI разных онтологий добавляются в метод compare
в качестве параметров.
Exception in thread "main" java.lang.IllegalArgumentException: The given URI <the URI of the other ontology concept> cannot be associated to a class
at slib.sml.sm.core.engine.SM_Engine.throwErrorIfNotClass(SM_Engine.java:1185)
at slib.sml.sm.core.engine.SM_Engine.compare(SM_Engine.java:698)
at com.ontoger.core.main.SMComputationOWL.main(SMComputationOWL.java:76)
Я хочу получить семантическую меру сходства двух понятий в двух разных онтологиях.Есть ли способ сделать это с помощью SML?