Для большей ясности, допустим, у вас есть Class1
и свойство объекта property1
. Далее мы предполагаем, что для Class1
единственными явно указанными экземплярами являются c1
, c2
и c3
. Далее у нас есть это: property1(c1, val1)
property1(c2, val1)
property1(c3, val1)
Теперь, поскольку ваши известные экземпляры c1...c3
связаны через property1
с val1
, вы хотите сделать вывод, что когда property1(x,y)
где x
имеет тип Class1
, из него должно следовать y = val1
.
Из-за предположения об открытом мире существует вероятность того, что может существовать другой экземпляр, скажем c4
, который имеет тип Class1
, который связан через property1
с val2
. Следовательно, рассуждающий не сможет сделать этот вывод.
Вы можете использовать правила, чтобы сделать это. С SWRL вы можете указать Class1(?x) => property1(?x, ?val1)
. Это означает, что всякий раз, когда у вас есть экземпляр Class1
, он связан с val1
через property1
.