diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 923a09b..9d64bf3 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,37 +1,51 @@ - - - - - - - - - + + + + + + + + + + + + + - - + + - + - + + + + + + + + + + + - - + + - + - + + - - + + - - - - + + - - + + - + @@ -144,10 +157,10 @@ - - + + - + @@ -155,19 +168,21 @@ - - + + - - + + + + - - + + - + @@ -175,10 +190,10 @@ - - + + - + @@ -189,7 +204,7 @@ - + @@ -197,20 +212,22 @@ - - + + - + - - + + - - + + + + @@ -233,28 +250,28 @@ - @@ -501,6 +518,10 @@ - + + + + + + + + + + - + + - - + + + @@ -890,11 +972,15 @@ 1384277884069 1384277884069 - - + @@ -905,16 +991,16 @@ + - - + + - @@ -961,7 +1047,7 @@ @@ -991,126 +1078,137 @@ - + - + - + - - + + + + - + - - + + + + - + - - + + + + - + - - + + + + - + - + - + - - + + + + - + - + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + - + - + diff --git a/bakemono/src/main/java/com/ontology2/bakemono/Main.java b/bakemono/src/main/java/com/ontology2/bakemono/Main.java index fd8d5d4..aa19ce1 100644 --- a/bakemono/src/main/java/com/ontology2/bakemono/Main.java +++ b/bakemono/src/main/java/com/ontology2/bakemono/Main.java @@ -6,7 +6,7 @@ import java.util.Map; import java.util.Map.Entry; -import com.ontology2.bakemono.mapmap.UniqURIObjectTool; +import com.ontology2.bakemono.mapmap.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; @@ -60,6 +60,9 @@ public IncorrectUsageException(String message) { put("ranSample",RanSampleTool.class); put("fs",FsShell.class); // from Hadoop put("uniqURIObjects",UniqURIObjectTool.class); + put("uniqInternalURIObjects", UniqueInternalURIObjectTool.class); + put("uniqURISubjects", UniqueURISubjectTool.class); + put("uniqURIPredicates", UniqueURIPredicateTool.class); }}; Map myCommands=new HashMap() {{ diff --git a/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueInternalURIObjectMapper.java b/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueInternalURIObjectMapper.java new file mode 100644 index 0000000..7a5a279 --- /dev/null +++ b/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueInternalURIObjectMapper.java @@ -0,0 +1,18 @@ +package com.ontology2.bakemono.mapmap; + +import com.google.common.base.Function; +import com.ontology2.bakemono.primitiveTriples.PrimitiveTriple; +import com.ontology2.bakemono.primitiveTriples.ProjectInternalURIObject; +import com.ontology2.bakemono.primitiveTriples.ProjectURIObject; +import org.apache.hadoop.io.Text; + +public class UniqueInternalURIObjectMapper extends PTUniqueMapMapper { + + private final Function primitiveTriple = new ProjectInternalURIObject(); + + @Override + Function getKeyFunction() { + return primitiveTriple; + } + +} \ No newline at end of file diff --git a/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueInternalURIObjectTool.java b/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueInternalURIObjectTool.java new file mode 100644 index 0000000..f22eb49 --- /dev/null +++ b/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueInternalURIObjectTool.java @@ -0,0 +1,20 @@ +package com.ontology2.bakemono.mapmap; + +/** + * Created with IntelliJ IDEA. + * User: paul_000 + * Date: 11/12/13 + * Time: 1:45 PM + * To change this template use File | Settings | File Templates. + */ +public class UniqueInternalURIObjectTool extends UniqTool { + @Override + protected Class getMapperClass() { + return UniqueInternalURIObjectMapper.class; + } + + @Override + protected String getJobName() { + return "uniqInternalURIObjects"; + } +} diff --git a/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueURIPredicateMapper.java b/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueURIPredicateMapper.java new file mode 100644 index 0000000..78a8050 --- /dev/null +++ b/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueURIPredicateMapper.java @@ -0,0 +1,17 @@ +package com.ontology2.bakemono.mapmap; + +import com.google.common.base.Function; +import com.ontology2.bakemono.primitiveTriples.PrimitiveTriple; +import com.ontology2.bakemono.primitiveTriples.ProjectPredicate; +import com.ontology2.bakemono.primitiveTriples.ProjectURIObject; +import org.apache.hadoop.io.Text; + +public class UniqueURIPredicateMapper extends PTUniqueMapMapper { + + private final Function primitiveTriple = new ProjectPredicate(); + + @Override + Function getKeyFunction() { + return primitiveTriple; + } +} diff --git a/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueURIPredicateTool.java b/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueURIPredicateTool.java new file mode 100644 index 0000000..dbf0bbf --- /dev/null +++ b/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueURIPredicateTool.java @@ -0,0 +1,13 @@ +package com.ontology2.bakemono.mapmap; + +public class UniqueURIPredicateTool extends UniqTool { + + protected Class getMapperClass() { + return UniqueURIPredicateMapper.class; + } + + @Override + protected String getJobName() { + return "uniqueURIPredicateTool"; + } +} diff --git a/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueURISubjectMapper.java b/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueURISubjectMapper.java new file mode 100644 index 0000000..f0fea3a --- /dev/null +++ b/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueURISubjectMapper.java @@ -0,0 +1,24 @@ +package com.ontology2.bakemono.mapmap; + +import com.google.common.base.Function; +import com.ontology2.bakemono.primitiveTriples.PrimitiveTriple; +import com.ontology2.bakemono.primitiveTriples.ProjectPredicate; +import com.ontology2.bakemono.primitiveTriples.ProjectSubject; +import org.apache.hadoop.io.Text; + +/** + * Created with IntelliJ IDEA. + * User: paul_000 + * Date: 11/12/13 + * Time: 5:45 PM + * To change this template use File | Settings | File Templates. + */ +public class UniqueURISubjectMapper extends PTUniqueMapMapper { + +private final Function primitiveTriple = new ProjectSubject(); + +@Override + Function getKeyFunction() { + return primitiveTriple; + } +} diff --git a/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueURISubjectTool.java b/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueURISubjectTool.java new file mode 100644 index 0000000..990a129 --- /dev/null +++ b/bakemono/src/main/java/com/ontology2/bakemono/mapmap/UniqueURISubjectTool.java @@ -0,0 +1,13 @@ +package com.ontology2.bakemono.mapmap; + +public class UniqueURISubjectTool extends UniqTool { + @Override + protected Class getMapperClass() { + return UniqueURISubjectMapper.class; + } + + @Override + protected String getJobName() { + return "uniqURISubjectTool"; + } +} diff --git a/bakemono/src/main/java/com/ontology2/bakemono/primitiveTriples/ExtractInternalURIObject.java b/bakemono/src/main/java/com/ontology2/bakemono/primitiveTriples/ProjectInternalURIObject.java similarity index 63% rename from bakemono/src/main/java/com/ontology2/bakemono/primitiveTriples/ExtractInternalURIObject.java rename to bakemono/src/main/java/com/ontology2/bakemono/primitiveTriples/ProjectInternalURIObject.java index 5cbd08e..6e88ff4 100644 --- a/bakemono/src/main/java/com/ontology2/bakemono/primitiveTriples/ExtractInternalURIObject.java +++ b/bakemono/src/main/java/com/ontology2/bakemono/primitiveTriples/ProjectInternalURIObject.java @@ -3,14 +3,7 @@ import com.google.common.base.Function; import org.apache.hadoop.io.Text; -/** - * Created with IntelliJ IDEA. - * User: paul_000 - * Date: 11/12/13 - * Time: 1:15 PM - * To change this template use File | Settings | File Templates. - */ -public class ExtractInternalURIObject implements Function { +public class ProjectInternalURIObject implements Function { @Override public Text apply(PrimitiveTriple t) { String o=t.getObject(); diff --git a/bakemono/src/main/java/com/ontology2/bakemono/primitiveTriples/ProjectPredicate.java b/bakemono/src/main/java/com/ontology2/bakemono/primitiveTriples/ProjectPredicate.java index 431ca5c..acb931a 100644 --- a/bakemono/src/main/java/com/ontology2/bakemono/primitiveTriples/ProjectPredicate.java +++ b/bakemono/src/main/java/com/ontology2/bakemono/primitiveTriples/ProjectPredicate.java @@ -13,6 +13,6 @@ public class ProjectPredicate implements Function { @Override public Text apply(PrimitiveTriple t) { - return new Text(t.getSubject()); + return new Text(t.getPredicate()); } } diff --git a/bakemono/src/test/java/com/ontology2/bakemono/mapmap/UniqPredicateMapperTest.java b/bakemono/src/test/java/com/ontology2/bakemono/mapmap/UniqPredicateMapperTest.java new file mode 100644 index 0000000..f21812d --- /dev/null +++ b/bakemono/src/test/java/com/ontology2/bakemono/mapmap/UniqPredicateMapperTest.java @@ -0,0 +1,33 @@ +package com.ontology2.bakemono.mapmap; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; + +import org.apache.hadoop.io.LongWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Mapper; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.io.IOException; + +public class UniqPredicateMapperTest { + UniqueURIPredicateMapper mapper; + @Before + public void setup() { + mapper=new UniqueURIPredicateMapper(); + } + + @Test + public void testExternalURITriple() throws IOException, InterruptedException { + Text t=new Text("\t\t ."); + Mapper.Context c=mock(Mapper.Context.class); + mapper.map(new LongWritable(75),t,c); + verify(c).write(new Text(""),new LongWritable(1)); + verifyNoMoreInteractions(c); + } + +} diff --git a/bakemono/src/test/java/com/ontology2/bakemono/mapmap/UniqueInternalUriObjectMapperTest.java b/bakemono/src/test/java/com/ontology2/bakemono/mapmap/UniqueInternalUriObjectMapperTest.java new file mode 100644 index 0000000..8464ae1 --- /dev/null +++ b/bakemono/src/test/java/com/ontology2/bakemono/mapmap/UniqueInternalUriObjectMapperTest.java @@ -0,0 +1,50 @@ +package com.ontology2.bakemono.mapmap; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; + +import org.apache.hadoop.io.LongWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Mapper; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.io.IOException; + +public class UniqueInternalUriObjectMapperTest { + UniqueInternalURIObjectMapper mapper; + + @Before + public void setup() { + mapper=new UniqueInternalURIObjectMapper(); + } + + @Test + public void testExternalURITriple() throws IOException, InterruptedException { + Text t=new Text("\t\t ."); + Mapper.Context c=mock(Mapper.Context.class); + mapper.map(new LongWritable(75),t,c); + verifyNoMoreInteractions(c); + } + + @Test + public void testInternalURITriple() throws IOException, InterruptedException { + Text t=new Text("\t\t ."); + Mapper.Context c=mock(Mapper.Context.class); + mapper.map(new LongWritable(75),t,c); + verify(c).write(new Text(""),new LongWritable(1)); + verifyNoMoreInteractions(c); + } + + @Test + public void testLiteralTriple() throws IOException, InterruptedException { + Text t=new Text("\t\t\"even on the darkest night\"@en ."); + Mapper.Context c=mock(Mapper.Context.class); + mapper.map(new LongWritable(75),t,c); + verifyNoMoreInteractions(c); + } + +} diff --git a/bakemono/src/test/java/com/ontology2/bakemono/mapmap/UniqueSubjectMapperTest.java b/bakemono/src/test/java/com/ontology2/bakemono/mapmap/UniqueSubjectMapperTest.java new file mode 100644 index 0000000..c27c6ef --- /dev/null +++ b/bakemono/src/test/java/com/ontology2/bakemono/mapmap/UniqueSubjectMapperTest.java @@ -0,0 +1,30 @@ +package com.ontology2.bakemono.mapmap; + +import org.apache.hadoop.io.LongWritable; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.Mapper; +import org.junit.Before; +import org.junit.Test; + +import java.io.IOException; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; + +public class UniqueSubjectMapperTest { + UniqueURISubjectMapper mapper; + @Before + public void setup() { + mapper=new UniqueURISubjectMapper(); + } + + @Test + public void testExternalURITriple() throws IOException, InterruptedException { + Text t=new Text("\t\t ."); + Mapper.Context c=mock(Mapper.Context.class); + mapper.map(new LongWritable(75),t,c); + verify(c).write(new Text(""),new LongWritable(1)); + verifyNoMoreInteractions(c); + } +}