// This isn't efficient, but then how many tags will you really be creating at once
for (Tag tag : tags) {
TagCriteria criteria = new TagCriteria();
criteria.addFilterNamespace(tag.getNamespace());
criteria.addFilterSemantic(tag.getSemantic());
criteria.addFilterName(tag.getName());
criteria.setStrict(true);
List<Tag> found = findTagsByCriteria(subject, criteria);
if (!found.isEmpty()) {