// ------------------------------------------ // // PREDICATES // ------------------------------------------ // Token(token,position,bib) FollowBy(bib,position,token) // tkn[.|,] ... Next(position,position) // Next(j,i): j is next to i: j=i+1 LessThan(position,position) // LessThan(j,i): jInField(c,Ftitle,i) !Token(w,P00,c) v IsDigit(w) v InField(c,+f,P00) InField(c,+f,P01) // ------------------------------------------ // // ER // ------------------------------------------ // SameBib(c,c) SameBib(c1,c2) SimilarTitle(c1,i1,j1,c2,i2,j2) ^ SimilarVenue(c1,c2) => SameBib(c1,c2) // ------------------------------------------ // // Consecutive rules: Jnt-Seg // ------------------------------------------ // // => Next(j,i) ^ !HasPunc(c,i) ^ InField(c,+f,i) ^ !(Exist c2 JntInfCandidate(c,i,c2)) => InField(c,+f,j) Next(j,i) ^ HasComma(c,i) ^ InField(c,+f,i) ^ !(Exist c2 JntInfCandidate(c,i,c2)) => InField(c,+f,j) // <= Next(j,i) ^ !HasPunc(c,i) ^ InField(c,+f,j) ^ !(Exist c2 JntInfCandidate(c,i,c2)) => InField(c,+f,i) Next(j,i) ^ HasComma(c,i) ^ InField(c,+f,j) ^ !(Exist c2 JntInfCandidate(c,i,c2)) => InField(c,+f,i)