Changeset: 121f9fd5d239 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=121f9fd5d239 Modified Files: monetdb5/extras/rdf/rdflabels.c Branch: rdf Log Message:
add support for printing ontology tree diffs (65 lines): diff --git a/monetdb5/extras/rdf/rdflabels.c b/monetdb5/extras/rdf/rdflabels.c --- a/monetdb5/extras/rdf/rdflabels.c +++ b/monetdb5/extras/rdf/rdflabels.c @@ -2621,18 +2621,45 @@ void addToOntoUsageTree(OntoUsageNode* t } static -void printTree(OntoUsageNode* tree, int level) { +void printTreePrivate(OntoUsageNode* tree, int level, FILE* fout) { int i; - str uriStr; - - takeOid(tree->uri, &uriStr); - printf("Level %d URI %s Count %d Sum %d Percent %.1f\n", level, uriStr, tree->numOccurances, tree->numOccurancesSum, tree->percentage * 100); - + str uriStr, uriStrShort; + + if (tree->parent) { + takeOid(tree->uri, &uriStr); + getPropNameShort(&uriStrShort, uriStr); + fprintf(fout, BUNFMT" [label = \"%s (%.1f%%)\"];\n", tree->uri, uriStrShort, tree->percentage * 100); + fprintf(fout, BUNFMT"--"BUNFMT";\n", tree->uri, tree->parent->uri); + GDKfree(uriStrShort); + GDKfree(uriStr); + } else { + // artifical root, has no name + fprintf(fout, BUNFMT" [label = \"ROOT (%.1f%%)\"];\n", tree->uri, tree->percentage * 100); + } for (i = 0; i < tree->numChildren; ++i) { - printTree(tree->lstChildren[i], level+1); + printTreePrivate(tree->lstChildren[i], level+1, fout); } } +/* + * Print ontology tree to file, dot code + */ +static +void printTree(OntoUsageNode* tree) { + FILE *fout = fopen("ontoUsageTree.txt", "wt"); + + // header + fprintf(fout, "graph g {\n"); + fprintf(fout, "graph [ratio = \"compress\", rankdir = \"RL\"];\n"); + fprintf(fout, "node [shape = \"box\"];\n\n"); + // body + printTreePrivate(tree, 0, fout); + // footer + + fprintf(fout, "}\n"); + fclose(fout); +} + static void createOntoUsageTree(OntoUsageNode** tree, CSset* freqCSset, oid** ontmetadata, int ontmetadataCount, BAT *ontmetaBat,CSlabel* labels) { int i; @@ -2679,7 +2706,7 @@ void createOntoUsageTree(OntoUsageNode** // print if(0){ printf("Ontology tree:\n"); - printTree(*tree, 0); + printTree(*tree); } } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list