-
Notifications
You must be signed in to change notification settings - Fork 0
Concept Generation
In this section the algorithm for the concept generations will be explained
The generation of positive concepts starts at an allowed type and looks at rules where this type is either in Range (resp. Domain). Depending on the depth it will recursively look at other rules from the Domain (resp. Range).
This is done using DFS until either the maximum allowed concept length or the maximum depth is reached.
LPBenchGen creates all theoretically possible concepts even if they may make no semantically sense. However after the creation of all these concept it will check if there exists a solution for the concept using the ABox.
Start type is Band
Band
is domain of hasAlbum
and the range of hasAlbum is Album
.
LPBenchGen now checks if Album is an allowed type (or if set a directly inferred allowed type)
Hence we can create the following concept already:
Band and hasAlbum some Album
now we look a step deeper and the domain of hasAlbum has also MusicialArtist
so we can add the following concept
-
Band and (hasAlbum some Album) and MusicialArtist
hence a Band which is also a single Musician and has an Album.
This is done using DFS until either the maximum allowed concept length or the maxiumum depth is reached.
For a positive concept each component will be negated once. This means if a concept is an intersection of three concepts, each concept will be negated and added to the list of negative concepts.
positive concept: Band and (hasAlbum some (Album and hasAwards some Award))
So a Band which has an Album which has an Award.
This concept will yield all of the following negative concepts:
-
not Band and (hasAlbum some (Album and hasAwards some Award))
(f.e. a Musician who has an award winning album) -
Band and not((hasAlbum some (Album and hasAwards some Award)))
(hence a Band which has only Albums which are not award winning)