Changeset: 649b864b6c04 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=649b864b6c04
Modified Files:
        monetdb5/extras/rdf/ontmetadata/loadOntologyToMonetDB.sh
        monetdb5/extras/rdf/rdfontologyload.c
Branch: rdf
Log Message:

More fixing after merging with default branch.

-Handle the case when the ontology attribute is null.

-Handle the case of COPY 0 RECORDS ...


diffs (89 lines):

diff --git a/monetdb5/extras/rdf/ontmetadata/loadOntologyToMonetDB.sh 
b/monetdb5/extras/rdf/ontmetadata/loadOntologyToMonetDB.sh
--- a/monetdb5/extras/rdf/ontmetadata/loadOntologyToMonetDB.sh
+++ b/monetdb5/extras/rdf/ontmetadata/loadOntologyToMonetDB.sh
@@ -10,7 +10,7 @@ sed -i "s:AttFile:${PWD}/ontAttribute.db
 
 mclient < loadtmp.sql
 
-
+#goodrelations
 NUMMETADATA=`cat ontMetadata.gr.csv | wc -l`
 NUMATTRIBUTES=`cat ontAttribute.gr.csv | wc -l`
 
@@ -159,12 +159,18 @@ mclient < loadtmp.sql
 NUMMETADATA=`cat ontMetadata.dbpediaUmbel.csv | wc -l`
 NUMATTRIBUTES=`cat ontAttribute.dbpediaUmbel.csv | wc -l`
 
-cp loadOntologySAMPLE.sql loadtmp.sql
+head -n 1 loadOntologySAMPLE.sql > loadtmp.sql
 sed -i "s:NUMMETADATA:$NUMMETADATA:g" loadtmp.sql
-sed -i "s:NUMATTRIBUTES:$NUMATTRIBUTES:g" loadtmp.sql
 sed -i "s:MetaFile:${PWD}/ontMetadata.dbpediaUmbel.csv:g" loadtmp.sql
-sed -i "s:AttFile:${PWD}/ontAttribute.dbpediaUmbel.csv:g" loadtmp.sql
 
+if [ "$NUMATTRIBUTES" -gt 0 ]
+then
+       tail -n 1 loadOntologySAMPLE.sql >> loadtmp.sql
+       sed -i "s:NUMATTRIBUTES:$NUMATTRIBUTES:g" loadtmp.sql
+       sed -i "s:AttFile:${PWD}/ontAttribute.dbpediaUmbel.csv:g" loadtmp.sql
+else   
+       echo "Zero attributes"
+fi
 
 mclient < loadtmp.sql
 
diff --git a/monetdb5/extras/rdf/rdfontologyload.c 
b/monetdb5/extras/rdf/rdfontologyload.c
--- a/monetdb5/extras/rdf/rdfontologyload.c
+++ b/monetdb5/extras/rdf/rdfontologyload.c
@@ -528,20 +528,30 @@ RDFloadsqlontologies(int *ret, bat *auri
                str aattrstr = (str) BUNtail(aattri, bun2 + i);
 
                oid aurioid, aattroid;
+               str auristr2; 
+               str aattrstr2;
 
                // add <...> around strings
-               str auristr2 = (str) GDKmalloc(strlen(auristr) + 3);
-               str aattrstr2 = (str) GDKmalloc(strlen(aattrstr) + 3);
-               if (!auristr2 || !aattrstr2) fprintf(stderr, "ERROR: Couldn't 
malloc memory!\n");
+
+               auristr2 = (str) GDKmalloc(strlen(auristr) + 3);
 
                auristr2[0] = '<';
                strcpy(&(auristr2[1]), auristr);
                auristr2[strlen(auristr) + 1] = '>';
                auristr2[strlen(auristr) + 2] = '\0';
-               aattrstr2[0] = '<';
-               strcpy(&(aattrstr2[1]), aattrstr);
-               aattrstr2[strlen(aattrstr) + 1] = '>';
-               aattrstr2[strlen(aattrstr) + 2] = '\0';
+
+
+               if (strcmp(aattrstr, "\x80") == 0) {    //Handle Null value
+                       aattrstr2 = (str) GDKstrdup("<NULL>");
+               }
+               else{
+                       aattrstr2 = (str) GDKmalloc(strlen(aattrstr) + 3);
+
+                       aattrstr2[0] = '<';
+                       strcpy(&(aattrstr2[1]), aattrstr);
+                       aattrstr2[strlen(aattrstr) + 1] = '>';
+                       aattrstr2[strlen(aattrstr) + 2] = '\0';
+               }
 
                TKNZRappend(&aurioid, &auristr2);
                TKNZRappend(&aattroid, &aattrstr2);
@@ -594,12 +604,12 @@ RDFloadsqlontologies(int *ret, bat *auri
                msuperstr2[strlen(msuperstr) + 2] = '\0';
 
                TKNZRappend(&murioid, &muristr2);
-               TKNZRappend(&msuperoid, &msuperstr2);
 
                ontmetadata[0][ontmetadataCount] = murioid;
                if (strcmp(msuperstr, "\x80") == 0) {
                        ontmetadata[1][ontmetadataCount] = BUN_NONE;
                } else {
+                       TKNZRappend(&msuperoid, &msuperstr2);
                        ontmetadata[1][ontmetadataCount] = msuperoid;
                }
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to