Added asterix project
git-svn-id: https://asterixdb.googlecode.com/svn/trunk@12 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix/asterix-app/src/test/resources/demo0216/01-load-dblp-large.aql b/asterix/asterix-app/src/test/resources/demo0216/01-load-dblp-large.aql
new file mode 100644
index 0000000..0cb6b21
--- /dev/null
+++ b/asterix/asterix-app/src/test/resources/demo0216/01-load-dblp-large.aql
@@ -0,0 +1,19 @@
+use dataverse fuzzy1;
+
+declare type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03,
+rainbow-04, rainbow-05;
+
+declare dataset DBLP(DBLPType)
+ partitioned by key id on group1;
+
+load dataset DBLP
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="rainbow-01:///home/hyracks/demo-data/dblp-id.txt"),("format"="delimited-text"),("delimiter"=":") pre-sorted;
diff --git a/asterix/asterix-app/src/test/resources/demo0216/02-fuzzy-select b/asterix/asterix-app/src/test/resources/demo0216/02-fuzzy-select
new file mode 100644
index 0000000..fefb24e
--- /dev/null
+++ b/asterix/asterix-app/src/test/resources/demo0216/02-fuzzy-select
@@ -0,0 +1,23 @@
+use dataverse fuzzy1;
+
+declare type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03,
+rainbow-04, rainbow-05;
+
+declare dataset DBLP(DBLPType)
+ partitioned by key id on group1;
+
+write output to rainbow-01:"/home/hyracks/out.txt";
+
+for $x in dataset('DBLP')
+let $ed := edit-distance($x.authors, "Michael Carey")
+where $ed <= 3
+order by $ed, $x.authors
+return { "edit-distance":$ed, "authors":$x.authors, "title":$x.title }
diff --git a/asterix/asterix-app/src/test/resources/demo0216/03-load-dblp-small.aql b/asterix/asterix-app/src/test/resources/demo0216/03-load-dblp-small.aql
new file mode 100644
index 0000000..f4d8ae0
--- /dev/null
+++ b/asterix/asterix-app/src/test/resources/demo0216/03-load-dblp-small.aql
@@ -0,0 +1,20 @@
+use dataverse fuzzy1;
+
+declare type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03,
+rainbow-04, rainbow-05;
+
+declare dataset DBLPSmall(DBLPType)
+ partitioned by key id on group1;
+
+load dataset DBLPSmall
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="rainbow-01:///home/hyracks/demo-data/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":") pre-sorted;
+
diff --git a/asterix/asterix-app/src/test/resources/demo0216/110-self-join-dblp.aql b/asterix/asterix-app/src/test/resources/demo0216/110-self-join-dblp.aql
new file mode 100644
index 0000000..9077f33
--- /dev/null
+++ b/asterix/asterix-app/src/test/resources/demo0216/110-self-join-dblp.aql
@@ -0,0 +1,88 @@
+use dataverse fuzzy1;
+
+declare type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03,
+rainbow-04, rainbow-05;
+
+declare dataset DBLP(DBLPType)
+ partitioned by key id on group1;
+
+write output to rainbow-01:"/home/hyracks/dblp-self-join.adm";
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperR in dataset('DBLP')
+ let $tokensR :=
+ for $word in counthashed-word-tokens($paperR.title)
+ for $token at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $word in counthashed-word-tokens($paper.title)
+ group by $item := $word with $paper
+ order by count($paper)
+ return $item
+ where $word = $token
+ order by $i
+ return $i
+ for $prefix_tokenR in subset-collection(
+ $tokensR,
+ 0,
+ prefix-len(
+ len($tokensR), 'Jaccard', .8))
+
+ for $paperS in dataset('DBLP')
+ let $tokensS :=
+ for $word in counthashed-word-tokens($paperS.title)
+ for $token at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLP')
+ for $word in counthashed-word-tokens($paper.title)
+ group by $item := $word with $paper
+ order by count($paper)
+ return $item
+ where $word = $token
+ order by $i
+ return $i
+ for $prefix_tokenS in subset-collection(
+ $tokensS,
+ 0,
+ prefix-len(
+ len($tokensS), 'Jaccard', .8))
+
+ where $prefix_tokenR = $prefix_tokenS
+
+ let $sim := similarity(
+ len(counthashed-word-tokens($paperR.title)),
+ $tokensR,
+ len(counthashed-word-tokens($paperS.title)),
+ $tokensS,
+ $prefix_tokenR,
+ 'Jaccard',
+ .8)
+ where $sim >= .8 // and $paperR.id != $paperS.id
+ group by $idR := $paperR.id, $idS := $paperS.id with $sim
+ where $idR < $idS
+ return {'idR': $idR, 'idS': $idS, 'sim': $sim[0]}
+
+for $paperR in dataset('DBLP')
+for $paperS in dataset('DBLP')
+where $ridpair.idR = $paperR.id and $ridpair.idS = $paperS.id
+return {'R': {'dblpid': $paperR.dblpid, 'title': $paperR.title},
+ 'S': {'dblpid': $paperS.dblpid, 'title': $paperS.title},
+ 'sim': $ridpair.sim}
diff --git a/asterix/asterix-app/src/test/resources/demo0216/120-self-join-dblp-small.aql b/asterix/asterix-app/src/test/resources/demo0216/120-self-join-dblp-small.aql
new file mode 100644
index 0000000..66ca6cb
--- /dev/null
+++ b/asterix/asterix-app/src/test/resources/demo0216/120-self-join-dblp-small.aql
@@ -0,0 +1,88 @@
+use dataverse fuzzy1;
+
+declare type DBLPType as open {
+ id: int32,
+ dblpid: string,
+ title: string,
+ authors: string,
+ misc: string
+}
+
+declare nodegroup group1 on rainbow-01, rainbow-02, rainbow-03,
+rainbow-04, rainbow-05;
+
+declare dataset DBLPSmall(DBLPType)
+ partitioned by key id on group1;
+
+write output to rainbow-01:"/home/hyracks/small-dblp-self-join.adm";
+
+//
+// -- - Stage 3 - --
+//
+for $ridpair in
+ //
+ // -- - Stage 2 - --
+ //
+ for $paperR in dataset('DBLPSmall')
+ let $tokensR :=
+ for $word in counthashed-word-tokens($paperR.title)
+ for $token at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLPSmall')
+ for $word in counthashed-word-tokens($paper.title)
+ group by $item := $word with $paper
+ order by count($paper)
+ return $item
+ where $word = $token
+ order by $i
+ return $i
+ for $prefix_tokenR in subset-collection(
+ $tokensR,
+ 0,
+ prefix-len(
+ len($tokensR), 'Jaccard', .8))
+
+ for $paperS in dataset('DBLPSmall')
+ let $tokensS :=
+ for $word in counthashed-word-tokens($paperS.title)
+ for $token at $i in
+ //
+ // -- - Stage 1 - --
+ //
+ for $paper in dataset('DBLPSmall')
+ for $word in counthashed-word-tokens($paper.title)
+ group by $item := $word with $paper
+ order by count($paper)
+ return $item
+ where $word = $token
+ order by $i
+ return $i
+ for $prefix_tokenS in subset-collection(
+ $tokensS,
+ 0,
+ prefix-len(
+ len($tokensS), 'Jaccard', .8))
+
+ where $prefix_tokenR = $prefix_tokenS
+
+ let $sim := similarity(
+ len(counthashed-word-tokens($paperR.title)),
+ $tokensR,
+ len(counthashed-word-tokens($paperS.title)),
+ $tokensS,
+ $prefix_tokenR,
+ 'Jaccard',
+ .8)
+ where $sim >= .8 // and $paperR.id != $paperS.id
+ group by $idR := $paperR.id, $idS := $paperS.id with $sim
+ where $idR < $idS
+ return {'idR': $idR, 'idS': $idS, 'sim': $sim[0]}
+
+for $paperR in dataset('DBLPSmall')
+for $paperS in dataset('DBLPSmall')
+where $ridpair.idR = $paperR.id and $ridpair.idS = $paperS.id
+return {'R': {'dblpid': $paperR.dblpid, 'title': $paperR.title},
+ 'S': {'dblpid': $paperS.dblpid, 'title': $paperS.title},
+ 'sim': $ridpair.sim}