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!

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top