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