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

Reply via email to