Come controllare che due grafici RDF abbiano lo stesso contenuto?
-
12-12-2019 - |
Domanda
Sto scrivendo una libreria C che analizza e serializza i dati specifici del dominio come RDF / XML.Dopo aver analizzato un file e lo scrivi di nuovo, vorrei essere in grado di verificare che il contenuto non sia cambiato.
Potrei analizzare di nuovo tutto, scriverlo come Ntriples e confronta i due file delle ntriples line-by-line ma ci deve essere un modo migliore giusto?
Grazie!
Soluzione
È possibile utilizzare una funzione HASH (come MD5 o SHA1) ma RDF / XML e altri formati di serializzazione RDF possono essere serializzati in diversi modi tutto corrispondente al stesso grafico RDF .
Inoltre, Nodi vuoti Etichette Se si utilizzano i formati Turtle o N-Triples saranno diversi ogni volta. Per questi motivi, una funzione hash potrebbe non essere l'opzione migliore.
grafico isomorfismo è un problema "interessante". ;-)
Non è scritto in c, ma potresti provare a decifrare ciò che Apache Jena fa in graphmatcher.java .
Come alternativa, come hai detto, se non si dispone di nodi vuoti, è possibile serializzare i dati in n-triple, ordinare e confrontare quei file o avere la propria struttura dei dati ordinata e utilizzare invece, evitando la fase di serializzazione.
Altri suggerimenti
È possibile calcolare un forte hash (ad esempio e.g., MD5 o SHA1) di entrambi i file.Gli hash corrispondono se i file sono uguali byte per byte.