Changeset: 8f0d4b4305c8 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8f0d4b4305c8
Added Files:
        monetdb5/extras/rdf/ontmetadata/createMonetdbOntologyTable.sql
Modified Files:
        monetdb5/extras/rdf/ontmetadata/loadOntologySAMPLE.sql
        monetdb5/extras/rdf/ontmetadata/loadOntologyToMonetDB.sh
        monetdb5/extras/rdf/rdfschema.c
        monetdb5/extras/rdf/rdfschema.h
Branch: rdf
Log Message:

Use labeling information in merging process.

Modify the scripts for loading ontologies into Monetdb


diffs (144 lines):

diff --git a/monetdb5/extras/rdf/ontmetadata/createMonetdbOntologyTable.sql 
b/monetdb5/extras/rdf/ontmetadata/createMonetdbOntologyTable.sql
new file mode 100644
--- /dev/null
+++ b/monetdb5/extras/rdf/ontmetadata/createMonetdbOntologyTable.sql
@@ -0,0 +1,11 @@
+create table OntMetadata(
+       mURI string,
+       mLabel string,
+       mSubClassOf string
+);
+
+
+create table OntAttributes(
+       mURI string, 
+       mAttr string
+);
diff --git a/monetdb5/extras/rdf/ontmetadata/loadOntologySAMPLE.sql 
b/monetdb5/extras/rdf/ontmetadata/loadOntologySAMPLE.sql
--- a/monetdb5/extras/rdf/ontmetadata/loadOntologySAMPLE.sql
+++ b/monetdb5/extras/rdf/ontmetadata/loadOntologySAMPLE.sql
@@ -1,2 +1,2 @@
-COPY NUMMETADATA RECORDS INTO ontmetadata  FROM 
'/export/scratch2/linnea/scripts/loadOntology/ontMetadata.csv'         USING 
DELIMITERS '|', '\n';
-COPY NUMATTRIBUTES RECORDS INTO ontattributes FROM 
'/export/scratch2/linnea/scripts/loadOntology/ontAttribute.csv'     USING 
DELIMITERS '|', '\n';
+COPY NUMMETADATA RECORDS INTO ontmetadata  FROM 'MetaFile'         USING 
DELIMITERS '|', '\n';
+COPY NUMATTRIBUTES RECORDS INTO ontattributes FROM 'AttFile'     USING 
DELIMITERS '|', '\n';
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
@@ -4,8 +4,13 @@ NUMATTRIBUTES=`cat ontAttribute.dbpedia.
 cp 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.dbpedia.csv:g" loadtmp.sql
+sed -i "s:AttFile:${PWD}/ontMetadata.dbpedia.csv:g" loadtmp.sql
 
-mclient -d dbpedia --port=50000 < loadtmp.sql
+
+
+
+mclient < loadtmp.sql
 
 
 
@@ -15,5 +20,8 @@ NUMATTRIBUTES=`cat ontAttribute.gr.csv |
 cp 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.gr.csv:g" loadtmp.sql
+sed -i "s:AttFile:${PWD}/ontMetadata.gr.csv:g" loadtmp.sql
 
-mclient -d dbpedia --port=50000 < loadtmp.sql
+
+mclient < loadtmp.sql
diff --git a/monetdb5/extras/rdf/rdfschema.c b/monetdb5/extras/rdf/rdfschema.c
--- a/monetdb5/extras/rdf/rdfschema.c
+++ b/monetdb5/extras/rdf/rdfschema.c
@@ -31,6 +31,7 @@
 #include <math.h>
 #include <time.h>
 #include <trie/trie.h>
+#include <string.h>
 
 #define SHOWPROPERTYNAME 1
 
@@ -1843,7 +1844,7 @@ void printCS(CS cs){
  * Here maximum frequent CS is a CS that there exist no other CS which 
contains that CS
  * */
 static 
-void getMaximumFreqCSs(CSset *freqCSset, BAT* coverageBat, BAT* freqBat, int 
numCS, int *nMaxCSs){
+void getMaximumFreqCSs(CSset *freqCSset, Labels* labels, BAT* coverageBat, 
BAT* freqBat, int numCS, int *nMaxCSs){
 
        int     numFreqCS = freqCSset->numCSadded; 
        int     i, j; 
@@ -1853,6 +1854,8 @@ void getMaximumFreqCSs(CSset *freqCSset,
        int*    coverage; 
        int*    freq; 
 
+       (void) labels; 
+
        printf("Retrieving maximum frequent CSs: \n");
 
        for (i = 0; i < numFreqCS; i++){
@@ -2210,7 +2213,7 @@ void freePropStat(PropStat *propStat){
 
 
 static
-void mergeMaximumFreqCSsAll(CSset *freqCSset, oid* superCSFreqCSMap, oid* 
superCSMergeMaxCSMap, int numMaxCSs, oid maxCSoid){
+void mergeMaximumFreqCSsAll(CSset *freqCSset, Labels* labels, oid* 
superCSFreqCSMap, oid* superCSMergeMaxCSMap, int numMaxCSs, oid maxCSoid){
        int             i, j, k; 
        int             maxCSid = 0; 
        int             freqId1, freqId2; 
@@ -2224,7 +2227,8 @@ void mergeMaximumFreqCSsAll(CSset *freqC
 
        PropStat        *propStat;      /* Store statistics about properties */
        int             nummergedCSs = 0;
-
+       
+       (void) labels;
 
        for (i = 0; i < freqCSset->numCSadded; i++){
                if (freqCSset->items[i].parentFreqIdx == -1){
@@ -2262,6 +2266,13 @@ void mergeMaximumFreqCSsAll(CSset *freqC
                                
                        }
                        
+                       #if     USE_LABEL_FOR_MERGING
+                       if (strcmp(labels[freqId1].name, labels[freqId2].name) 
== 0){
+                               //printf("Same labels between freqCS %d and 
freqCS %d \n", freqId1, freqId2);
+                               simscore = 1; 
+                       }
+                       #endif
+                       
                        //simscore = 0.0;
                        #if     USINGTFIDF      
                        if (simscore > SIM_TFIDF_THRESHOLD){
@@ -3156,7 +3167,7 @@ RDFextractCSwithTypes(int *ret, bat *sba
 
 
 
-       getMaximumFreqCSs(freqCSset, csBats->coverageBat,  csBats->freqBat, 
*maxCSoid + 1, &numMaxCSs); 
+       getMaximumFreqCSs(freqCSset, labels, csBats->coverageBat,  
csBats->freqBat, *maxCSoid + 1, &numMaxCSs); 
 
        curT = clock(); 
        printf (" ----- Get maximum frequent CSs took   %f seconds.\n", 
((float)(curT - tmpLastT))/CLOCKS_PER_SEC);
@@ -3182,7 +3193,7 @@ RDFextractCSwithTypes(int *ret, bat *sba
 
        //mergeMaximumFreqCSs(freqCSset, superCSFreqCSMap, 
superCSMergeMaxCSMap, mergecsSet, numMaxCSs);
 
-       mergeMaximumFreqCSsAll(freqCSset, superCSFreqCSMap, 
superCSMergeMaxCSMap, numMaxCSs, *maxCSoid);
+       mergeMaximumFreqCSsAll(freqCSset, labels, superCSFreqCSMap, 
superCSMergeMaxCSMap, numMaxCSs, *maxCSoid);
 
        curT = clock(); 
        printf (" ----- Merging Frequent CSs took  %f seconds.\n", 
((float)(curT - tmpLastT))/CLOCKS_PER_SEC);
diff --git a/monetdb5/extras/rdf/rdfschema.h b/monetdb5/extras/rdf/rdfschema.h
--- a/monetdb5/extras/rdf/rdfschema.h
+++ b/monetdb5/extras/rdf/rdfschema.h
@@ -88,6 +88,8 @@ typedef struct PropStat {
 
 #define FULL_PROP_STAT 1       // Only use for showing the statistic on all 
properties / all CSs. (Default should be 0)
 
+#define USE_LABEL_FOR_MERGING  1       // Use the labels received from 
labeling process for finding maxCS and mergeCS
+
 typedef struct CS
 {
        oid     csId;           //Id of the CS
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to