Вы можете использовать хеш-функцию (например, MD5 или SHA1), но RDF / XML, а также другие форматы сериализации RDF могут быть сериализованы различными способами все они соответствуют одному и тому же графу RDF .
Более того, пустых узлов метки, если вы используете форматы Turtle или N-Triples, будут отличаться каждый раз. По этой причине хеш-функция может быть не лучшим вариантом.
Изоморфизм графов - «интересная» проблема. ;-)
Это не написано на C, но вы можете попытаться расшифровать действия Apache Jena в GraphMatcher.java .
В качестве альтернативы, как вы сказали, если у вас нет пустых узлов, вы можете сериализовать данные в N-триплетах, отсортировать и сравнить эти файлы или иметь собственную отсортированную структуру данных и использовать ее вместо этого, избегая шага сериализации.