Skip to content

Commit

Permalink
#70 get (ugly/repetitive/error-prone) implementations of projection o…
Browse files Browse the repository at this point in the history
…perators for subject, object and predicate ready for integration testing
  • Loading branch information
paulhoule committed Nov 12, 2013
1 parent 7ce483b commit 52e4677
Show file tree
Hide file tree
Showing 13 changed files with 444 additions and 132 deletions.
342 changes: 220 additions & 122 deletions .idea/workspace.xml

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion bakemono/src/main/java/com/ontology2/bakemono/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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<String, TopLevelCommand> myCommands=new HashMap<String,TopLevelCommand>() {{
Expand Down
Original file line number Diff line number Diff line change
@@ -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<Text> {

private final Function<PrimitiveTriple,Text> primitiveTriple = new ProjectInternalURIObject();

@Override
Function<PrimitiveTriple, Text> getKeyFunction() {
return primitiveTriple;
}

}
Original file line number Diff line number Diff line change
@@ -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";
}
}
Original file line number Diff line number Diff line change
@@ -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<Text> {

private final Function<PrimitiveTriple,Text> primitiveTriple = new ProjectPredicate();

@Override
Function<PrimitiveTriple, Text> getKeyFunction() {
return primitiveTriple;
}
}
Original file line number Diff line number Diff line change
@@ -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";
}
}
Original file line number Diff line number Diff line change
@@ -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<Text> {

private final Function<PrimitiveTriple,Text> primitiveTriple = new ProjectSubject();

@Override
Function<PrimitiveTriple, Text> getKeyFunction() {
return primitiveTriple;
}
}
Original file line number Diff line number Diff line change
@@ -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";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<PrimitiveTriple,Text> {
public class ProjectInternalURIObject implements Function<PrimitiveTriple,Text> {
@Override
public Text apply(PrimitiveTriple t) {
String o=t.getObject();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@
public class ProjectPredicate implements Function<PrimitiveTriple,Text> {
@Override
public Text apply(PrimitiveTriple t) {
return new Text(t.getSubject());
return new Text(t.getPredicate());
}
}
Original file line number Diff line number Diff line change
@@ -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("<http://a.example.com/>\t<http://b.example.com/>\t<http://c.example.com/> .");
Mapper.Context c=mock(Mapper.Context.class);
mapper.map(new LongWritable(75),t,c);
verify(c).write(new Text("<http://b.example.com/>"),new LongWritable(1));
verifyNoMoreInteractions(c);
}

}
Original file line number Diff line number Diff line change
@@ -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("<http://a.example.com/>\t<http://b.example.com/>\t<http://c.example.com/> .");
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("<http://a.example.com/>\t<http://b.example.com/>\t<http://rdf.basekb.com/ns/f00t> .");
Mapper.Context c=mock(Mapper.Context.class);
mapper.map(new LongWritable(75),t,c);
verify(c).write(new Text("<http://rdf.basekb.com/ns/f00t>"),new LongWritable(1));
verifyNoMoreInteractions(c);
}

@Test
public void testLiteralTriple() throws IOException, InterruptedException {
Text t=new Text("<http://a.example.com/>\t<http://b.example.com/>\t\"even on the darkest night\"@en .");
Mapper.Context c=mock(Mapper.Context.class);
mapper.map(new LongWritable(75),t,c);
verifyNoMoreInteractions(c);
}

}
Original file line number Diff line number Diff line change
@@ -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("<http://a.example.com/>\t<http://b.example.com/>\t<http://c.example.com/> .");
Mapper.Context c=mock(Mapper.Context.class);
mapper.map(new LongWritable(75),t,c);
verify(c).write(new Text("<http://a.example.com/>"),new LongWritable(1));
verifyNoMoreInteractions(c);
}
}

0 comments on commit 52e4677

Please sign in to comment.