4-дневная поездка в Осло в середине октября была очень необычна, потому что в ней смешалось всё сразу.
Тут была и моментальная смена окружающих декораций: утром еще испанские пальмы вокруг, а вечером идешь уже по первому снегу. Также это было и первое открытие направления северо-западной Европы, где все строго, безальтернативно и по правилам. Несмотря на это, нашлось место и любимому стилю путешествий - бесцельно навернуть по улицам города, зайти в неведомый парк тысячи скульптур, перелезть через забор дорогого музея, отыскать городской водопад, отведать какой-то бесплатной раздачи тортика на улице. Сюда добавились и неторопливые беседы про компьютеры и людей на фоне прогулки на яхте с товарищем
cyberbob37, в гостях у которого я остановился.
А еще в разговорах вспомниал, что ведь когда-то полтора года назад была актуальна тема про онтологии и формулы, диссертацию и искусственный интеллект. Именно тогда во мне грелась мысль, что в случае эпического провала процедуры защиты работы по-украински, я бы пошел вперед и представил бы свои идеи международной общественности на какой-нибудь цивилизованной встрече в Европе. Но как-то не вышло, т.к. буквально за час до этой самой защиты конъюктура конфликта между дядьками из министерства и университета сложилась в мою пользу.
Короче говоря, будучи довольным от средненького результата проведения презентации на конференции в Барселоне днём ранее, в Осло появилась идея встретиться с одним товарищем в теме Semantic Web'а. Чтобы хоть часик пообщаться на знакомые темы, которые где-то в глубине бумажных отчетов называются научными интересами. Такое хорошее расположение духа привело к описанию своей работы на английском языке с формулировкой на 1 листе А4. Удивительным для меня было, насколько легко пошло повествование простой человеческой речью, то есть буками в Ворде. И это был первый опыт в написании сколько-нибудь содержательных англоязычных текстов без прямого перевода.
Не знаю, прочтет ли кто-то аннотацию ниже, но я все-таки опубликую ее здесь. Раз уж так получилось, может быть стоит вернуться к теме коммуникации с сообществом по нашим искусственно-интеллектуальным проблемам?
Way to make ontologies more powerful…
Ontology model doesn’t have possibilities to declare relations between concepts as the result of numerical calculations. It’s a design where only logical facilities do matter. With OWL ontology we’re talking about concepts from the human world and properties with the obvious constraints to connect them together.
Basically we can’t specify predicate LARGER_THAN as inequality X > Y. Of course, there are some ways to put this mathematical KNOWLEGDE into the model.
First way: we can declare classes/props of the X, Y and sign “>”, link it properly to each other and relate to the predicate LARGER. Second way: we can use power of SWRL and set rules that say “when X > Y then LARGER is set”. As I know, several years ago third way become available using OWL2 - N-ary datatype declaration with combinations. This provides describing knowledge about properties in form of the linear equations. But why only equations and only linear?
Anyway, in both 3 cases we are mixing mathematical data with conceptual modeling. As an onthologist I want to explore concepts’ world, describe the numeric properties and object relations. Also I certainly know that some concepts are represented by strong mathematical definitions. Like a length of circle and radius. Like a geometrical rectangle is a square when lengths of it 4 parts are equal.
What the solution? I think this data should be declared somewhere outside the model. And it should be done as simple expression “l = 2×Π×r” as well as a method of complex computations with inputs/outputs. So, we have to extend the ontology adding the reference to this declaration and to specify correspondence between objects (circle, radius), properties (length) and relations (is-a, part-of or any others). Sure, it’s important to refer directly to the variables of formula (l, r).
Ontological knowledge should remain about concepts and some other model should describe formulas. We can call the second part of the knowledge as formula’s semantic annotation. It provides definition of the methods HOW the variables CAN be calculated. It’s a mathematical expression or a reference to the external service which do the calculations. No matter.
But how can we link the model of concepts with this annotation? I propose to use some rules that look like (CONDITIONS) → (ASSIGNMENTS). Conditions are set in model and assignments are intended for variables in the related formulas. Linking between parts of this rule is given by intermediate variables, just like as SWRL rules done.
For example,
(?x is-a Circle)(?y is-a Line)(?x has_radius ?y) →
(?x has_length ?l)(?y has_length ?r)
First part matches objects and relations, second part links data properties to variables. Description of the formula must have the list of variables that it contains (?l, ?r). Due to this it is possible to find matching formula and perform calculations with the substituted parameters.
The interpretation of this rule:
- if LEFT and RIGHT parts are defined in instance data THEN computation of the FORMULA gives answer that data is consistent or not
- if ONE any ATOM of parts is missing THEN it can be inferred by computation of the FORMULA
About experience…
I’ve used translations to SPIN rules with linked mathematical solver to make this rules works automatically. And they showed me good results on complex domains in validating/calculating new instance data. It’s turned out a kind of solver of equations system based on the ontology model.