# Read in the feature values *all(id, id, csd, time, cld, scd)<~db~ dedup/global *share_keyframes(id, id)<~db~ dedup/share_keyframe # What the MLN will return is the video tuples that it thinks are duplicates dup(id, id) # By default 2 videos are not duplicates 0.9 !dup(id1,id2) # The following 3 rules say that if 2 videos have almost the same length and cld of their thumb image is almost the same and they share keyframes, then they are likely duplicates. 5 all(id1, id2, csd, time, cld, scd) share_keyframes(id1, id2) [time = “H” AND cld = “H”] => dup(id1, id2) 5 all(id1, id2, csd, time, cld, scd) share_keyframes(id1, id2) [time = “H” AND cld = “M”] => dup(id1, id2) 3.5 all(id1, id2, csd, time, cld, scd) share_keyframes(id1, id2) [time = “M” AND cld = “M”] => dup(id1, id2) # if 2 videos do not share keyframes then they are not duplicates. 2.5 !share_keyframes(id1, id2)=> !dup(id1, id2)