-(defun filter-urels-by-rel (urels rel)
- (remove-if-not (lambda (urel) (string-equal rel (rel urel))) urels))
+(defun filter-urels-by-rel (urels rel &key (remove-duplicate-pfstr2 t) (sort :pfstr2))
+ (let ((f (remove-if-not (lambda (urel) (string-equal rel (rel urel))) urels)))
+ (when remove-duplicate-pfstr2
+ (setq f (remove-duplicates f :test 'equal :key 'u::pfstr2)))
+ (if sort
+ (sort (copy-seq f) 'string-lessp :key 'u::pfstr2)
+ f)))
+
+#+mrcoc
+(defun filter-ucocs (ucocs &key (remove-duplicate-pfstr2 t) (sort :pfstr2))
+ (when remove-duplicate-pfstr2
+ (setq ucocs (remove-duplicates ucocs :test 'equal :key 'u::pfstr2)))
+ (if sort
+ (sort (copy-seq ucocs) 'string-lessp :key 'u::pfstr2)
+ ucocs))