Institution: | Slovak University of Technology |
Technologies used: | Ruby on Rails, RDF |
Inputs: | concept map, concepts the programmer is familiar with |
Outputs: | newly identified concepts the programmer knows |
Addressed problem
The programmers may manually enter their knowledge in the form of known technologies used when developing software into a system which stores them and enables others to search among people. However, it is very likely that when a programmer enters the technologies he is familiar with he unintentionally omits some of them. E.g. he only selects the main platforms and libraries that come to his mind at the time of entering them into the system or he might think of some technology as unimportant. Nevertheless, we can presume, that when the programmer has knowledge of some library he can also write code in the language for which the library is intended. Therefore, we using the proposed method we automatically deduce new facts from the existing ones in order to add them to the knowledge model.
Description
We utilize the meta level of the knowledge model when reasoning about the current concepts the programmer is familiar with. The meta level is composed of concept types and relationships between them, e.g. library (type of concept) is written in (relationship) a programming language (another type of concept). We propose a rule based system using which we are able to deduce knowledge of further concepts from the input. In particular, we use these types of relationships:
- uses
- is written in
- is part of
E.g. the fact (manually entered) that the programmer knows how to work with JUnit (a testing framework for Java programming language) implies that he also knows Java, otherwise it would be impossible for him to know how to write a JUnit test.
We investigate every concept the user has in his knowledge model and the types of relationships it has with other concepts. Using IF...THEN rules we find additional concepts the programmer knows. This obviously yields more concepts the knowledge of which could be implied and possible infinite recursive loop. We deal with this problem utilizing the fact that the edges in the concept map are oriented. Therefore, we only follow the relationships in one direction. We also remember concepts we already processed and do not perform reasoning on them again.