You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2013/12/11 14:37:25 UTC
git commit: CLEREZZA-852: added test with languaged literals
Updated Branches:
refs/heads/master b4cf77a2f -> fd91fa3d8
CLEREZZA-852: added test with languaged literals
Project: http://git-wip-us.apache.org/repos/asf/clerezza/repo
Commit: http://git-wip-us.apache.org/repos/asf/clerezza/commit/fd91fa3d
Tree: http://git-wip-us.apache.org/repos/asf/clerezza/tree/fd91fa3d
Diff: http://git-wip-us.apache.org/repos/asf/clerezza/diff/fd91fa3d
Branch: refs/heads/master
Commit: fd91fa3d8db2d976eeef2fa8350617a59ee38a64
Parents: b4cf77a
Author: retobg <re...@apache.org>
Authored: Wed Dec 11 14:37:03 2013 +0100
Committer: retobg <re...@apache.org>
Committed: Wed Dec 11 14:37:03 2013 +0100
----------------------------------------------------------------------
.../clerezza/rdf/cris/GraphIndexerTest.java | 229 ++++++++++---------
1 file changed, 122 insertions(+), 107 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/clerezza/blob/fd91fa3d/rdf.cris/core/src/test/java/org/apache/clerezza/rdf/cris/GraphIndexerTest.java
----------------------------------------------------------------------
diff --git a/rdf.cris/core/src/test/java/org/apache/clerezza/rdf/cris/GraphIndexerTest.java b/rdf.cris/core/src/test/java/org/apache/clerezza/rdf/cris/GraphIndexerTest.java
index daa76a9..82cad69 100644
--- a/rdf.cris/core/src/test/java/org/apache/clerezza/rdf/cris/GraphIndexerTest.java
+++ b/rdf.cris/core/src/test/java/org/apache/clerezza/rdf/cris/GraphIndexerTest.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.clerezza.rdf.cris;
import java.util.ArrayList;
@@ -70,15 +69,15 @@ public class GraphIndexerTest {
definitions.clear();
dataGraph.clear();
-
-
+
+
List<UriRef> list = new ArrayList<UriRef>();
list.add(FOAF.firstName);
list.add(FOAF.lastName);
list.add(FOAF.homepage);
createDefinition(FOAF.Person, list);
service = new GraphIndexer(definitions, dataGraph);
-
+
GraphNode nodeB = new GraphNode(new UriRef(Util.createURN5()), dataGraph);
nodeB.addProperty(RDF.type, FOAF.Person);
nodeB.addProperty(FOAF.homepage, new UriRef("http://myhomepage/foo?query=bla&bla=test"));
@@ -90,35 +89,47 @@ public class GraphIndexerTest {
createPerson("Jane", "Bloggs");
createPerson("Harry", "Wotsit");
createPerson("Harry Joe", "Wotsit-Bloggs");
- //a person with two first-names
- GraphNode node = new GraphNode(new UriRef(Util.createURN5()), dataGraph);
- node.addProperty(RDF.type, FOAF.Person);
- node.addPropertyValue(FOAF.firstName, "John");
- node.addPropertyValue(FOAF.firstName, "William");
- node.addPropertyValue(FOAF.lastName, "Smith");
- node.addPropertyValue(RDFS.comment, "A person with two names");
- //and a pet
- BNode pet = new BNode();
- node.addProperty(ownsPetProperty, pet);
+ {
+ //a person with two first-names
+ GraphNode node = new GraphNode(new UriRef(Util.createURN5()), dataGraph);
+ node.addProperty(RDF.type, FOAF.Person);
+ node.addPropertyValue(FOAF.firstName, "John");
+ node.addPropertyValue(FOAF.firstName, "William");
+ node.addPropertyValue(FOAF.lastName, "Smith");
+ node.addPropertyValue(RDFS.comment, "A person with two names");
+ //and a pet
+ BNode pet = new BNode();
+ node.addProperty(ownsPetProperty, pet);
+
+ GraphNode petNode = new GraphNode(pet, dataGraph);
+ petNode.addPropertyValue(FOAF.name, "Silvio");
+ }
+
+ {
+ //a person with languages first names
+ GraphNode node = new GraphNode(new UriRef(Util.createURN5()), dataGraph);
+ node.addProperty(RDF.type, FOAF.Person);
+ node.addProperty(FOAF.firstName, new PlainLiteralImpl("Marc", new Language("en")));
+ node.addProperty(FOAF.firstName, new PlainLiteralImpl("Markus", new Language("de")));
+ node.addPropertyValue(FOAF.lastName, "Matter");
+ node.addPropertyValue(RDFS.comment, "A person with firstnames in two languages");
+ }
- GraphNode petNode = new GraphNode(pet, dataGraph);
- petNode.addPropertyValue(FOAF.name, "Silvio");
-
}
@Test
public void findResourcesViaUriRef() throws ParseException, InterruptedException {
List<NonLiteral> results;
Thread.sleep(1000);
-
+
results = service.findResources(FOAF.homepage, "*p://myhomepage/foo?query=bla&bla=te*");
Assert.assertEquals(1, results.size());
-
+
results = service.findResources(FOAF.homepage, "http://myhomepage/foo?query=bla&bla=test");
Assert.assertEquals(1, results.size());
-
-
+
+
}
@Test
@@ -126,19 +137,23 @@ public class GraphIndexerTest {
List<NonLiteral> results;
Thread.sleep(1000);
results = service.findResources(FOAF.firstName, "*Joe*");
-
-
Assert.assertEquals(2, results.size());
+ results = service.findResources(FOAF.firstName, "*William*");
+ Assert.assertEquals(1, results.size());
+ results = service.findResources(FOAF.firstName, "*Marc*");
+ Assert.assertEquals(1, results.size());
+ results = service.findResources(FOAF.firstName, "*Markus*");
+ Assert.assertEquals(1, results.size());
}
@Test
public void findMultiProperties() throws InterruptedException, ParseException {
- List<Condition> conditions = new ArrayList<Condition>();
- conditions.add(new WildcardCondition(FOAF.firstName, "*Joe*"));
- conditions.add(new WildcardCondition(FOAF.lastName, "*Wotsit*"));
- Thread.sleep(1000);
- List<NonLiteral> results = service.findResources(conditions);
- Assert.assertEquals(1, results.size());
+ List<Condition> conditions = new ArrayList<Condition>();
+ conditions.add(new WildcardCondition(FOAF.firstName, "*Joe*"));
+ conditions.add(new WildcardCondition(FOAF.lastName, "*Wotsit*"));
+ Thread.sleep(1000);
+ List<NonLiteral> results = service.findResources(conditions);
+ Assert.assertEquals(1, results.size());
}
@Test
@@ -170,16 +185,16 @@ public class GraphIndexerTest {
@Test
public void lateAdditionInverse() throws InterruptedException, ParseException {
- GraphNode node = new GraphNode(new UriRef(Util.createURN5()), dataGraph);
- node.addPropertyValue(FOAF.firstName, "Another Jane");
- node.addPropertyValue(FOAF.lastName, "Samsing");
- Thread.sleep(1000);
- List<NonLiteral> results = service.findResources(FOAF.firstName, "*Jane*");
- Assert.assertEquals(2, results.size());
- node.addProperty(RDF.type, FOAF.Person);
- Thread.sleep(1000);
- List<NonLiteral> results2 = service.findResources(FOAF.firstName, "*Jane*");
- Assert.assertEquals(3, results2.size());
+ GraphNode node = new GraphNode(new UriRef(Util.createURN5()), dataGraph);
+ node.addPropertyValue(FOAF.firstName, "Another Jane");
+ node.addPropertyValue(FOAF.lastName, "Samsing");
+ Thread.sleep(1000);
+ List<NonLiteral> results = service.findResources(FOAF.firstName, "*Jane*");
+ Assert.assertEquals(2, results.size());
+ node.addProperty(RDF.type, FOAF.Person);
+ Thread.sleep(1000);
+ List<NonLiteral> results2 = service.findResources(FOAF.firstName, "*Jane*");
+ Assert.assertEquals(3, results2.size());
}
@@ -220,7 +235,7 @@ public class GraphIndexerTest {
} catch (InterruptedException ex) {
}
}
-
+
@Test
public void clearGraph() {
try {
@@ -276,7 +291,7 @@ public class GraphIndexerTest {
try {
//the newly indexed property
List<NonLiteral> results = service.findResources(RDFS.comment, "*two*");
- Assert.assertEquals(1, results.size());
+ Assert.assertEquals(2, results.size());
} catch (ParseException ex) {
}
}
@@ -386,28 +401,28 @@ public class GraphIndexerTest {
final Set<Entry<String, Integer>> facets = facetCollector.getFacets(new PropertyHolder(ownsPetProperty));
//there are 7 distinct first names
-
+
Assert.assertEquals(1, facets.size());
/*//the firstname "Frank" appears once
- Assert.assertEquals(new Integer(1), facetCollector.getFacetValue(firstName, "Frank"));
- //the firstname "frank" never appears
- Assert.assertNull(facetCollector.getFacetValue(firstName, "frank"));
- //the firstname "Jane" appears twice
- Assert.assertEquals(new Integer(2), facetCollector.getFacetValue(firstName, "Jane"));
- //the firstname "Harry" appears once
- Assert.assertEquals(new Integer(1), facetCollector.getFacetValue(firstName, "Harry"));
- //the firstname "Harry Joe" appears once
- Assert.assertEquals(new Integer(1), facetCollector.getFacetValue(firstName, "Harry Joe"));
- //the firstname "William" appears once
- Assert.assertEquals(new Integer(1), facetCollector.getFacetValue(firstName, "William"));
- //the firstname "John" appears twice
- Assert.assertEquals(new Integer(2), facetCollector.getFacetValue(firstName, "John")); */
+ Assert.assertEquals(new Integer(1), facetCollector.getFacetValue(firstName, "Frank"));
+ //the firstname "frank" never appears
+ Assert.assertNull(facetCollector.getFacetValue(firstName, "frank"));
+ //the firstname "Jane" appears twice
+ Assert.assertEquals(new Integer(2), facetCollector.getFacetValue(firstName, "Jane"));
+ //the firstname "Harry" appears once
+ Assert.assertEquals(new Integer(1), facetCollector.getFacetValue(firstName, "Harry"));
+ //the firstname "Harry Joe" appears once
+ Assert.assertEquals(new Integer(1), facetCollector.getFacetValue(firstName, "Harry Joe"));
+ //the firstname "William" appears once
+ Assert.assertEquals(new Integer(1), facetCollector.getFacetValue(firstName, "William"));
+ //the firstname "John" appears twice
+ Assert.assertEquals(new Integer(2), facetCollector.getFacetValue(firstName, "John")); */
}
} catch (ParseException ex) {
} catch (InterruptedException ex) {
}
}
-
+
@Test
public void facetCollectorTest() throws InterruptedException, ParseException {
IndexDefinitionManager indexDefinitionManager = new IndexDefinitionManager(definitions);
@@ -417,18 +432,18 @@ public class GraphIndexerTest {
properties.add(new PropertyHolder(FOAF.lastName));
indexDefinitionManager.addDefinitionVirtual(FOAF.Person, properties);
service.reCreateIndex();
-
+
//count occurence of distinct firstnames
CountFacetCollector facetCollector = new CountFacetCollector();
facetCollector.addFacetProperty(firstName);
-
+
Thread.sleep(1000);
{
List<NonLiteral> results = service.findResources(firstName, "*", false, facetCollector);
Assert.assertTrue(results.size() > 0);
-
+
//there are 7 distinct first names
- Assert.assertEquals(7, facetCollector.getFacets(firstName).size());
+ Assert.assertEquals(9, facetCollector.getFacets(firstName).size());
//the firstname "Frank" appears once
Assert.assertEquals(new Integer(1), facetCollector.getFacetValue(firstName, "Frank"));
//the firstname "frank" never appears
@@ -445,7 +460,7 @@ public class GraphIndexerTest {
Assert.assertEquals(new Integer(2), facetCollector.getFacetValue(firstName, "John"));
}
}
-
+
@Test
public void sortedfacetCollectorTest() throws InterruptedException, ParseException {
IndexDefinitionManager indexDefinitionManager = new IndexDefinitionManager(definitions);
@@ -454,41 +469,41 @@ public class GraphIndexerTest {
properties.add(firstName);
properties.add(new PropertyHolder(FOAF.lastName));
indexDefinitionManager.addDefinitionVirtual(FOAF.Person, properties);
-
+
createPerson("Aaron", "Ignore");
createPerson("Aaron", "IgnoreMore");
createPerson("Alpha", "Ignore");
createPerson("Alpha", "IgnoreMore");
createPerson("Beta", "Ignore");
-
+
service.reCreateIndex();
-
+
CountFacetCollector facetCollector = new SortedCountFacetCollector(false, true);
facetCollector.addFacetProperty(firstName);
-
+
Thread.sleep(1000);
{
List<NonLiteral> results = service.findResources(firstName, "*", false, facetCollector);
Assert.assertTrue(results.size() > 0);
-
+
Set<Entry<String, Integer>> facets = facetCollector.getFacets(firstName);
Integer old = Integer.MAX_VALUE;
String oldKey = null;
- for(Entry<String, Integer> facet : facets) {
- if(old == facet.getValue() &&
- oldKey != null &&
- (facet.getKey().compareTo(oldKey) < 0)) {
-
+ for (Entry<String, Integer> facet : facets) {
+ if (old == facet.getValue()
+ && oldKey != null
+ && (facet.getKey().compareTo(oldKey) < 0)) {
+
Assert.fail("Facet keys are not ordered in ascending order.");
}
- if(facet.getValue() > old) {
+ if (facet.getValue() > old) {
Assert.fail("Facet values are not ordered in descending order.");
}
old = facet.getValue();
oldKey = facet.getKey();
}
}
-
+
facetCollector = new SortedCountFacetCollector(false, false);
facetCollector.addFacetProperty(firstName);
@@ -564,7 +579,7 @@ public class GraphIndexerTest {
}
}
}
-
+
@Test
public void sortResultsTest() throws InterruptedException, ParseException {
IndexDefinitionManager indexDefinitionManager = new IndexDefinitionManager(definitions);
@@ -573,16 +588,16 @@ public class GraphIndexerTest {
properties.add(firstName);
indexDefinitionManager.addDefinitionVirtual(FOAF.Person, properties);
service.reCreateIndex();
-
+
SortSpecification sortSpecification = new SortSpecification();
sortSpecification.add(firstName, SortSpecification.Type.STRING_VAL);
sortSpecification.add(SortSpecification.INDEX_ORDER);
-
+
Thread.sleep(1000);
{
List<NonLiteral> results = service.findResources(firstName, "*", false, sortSpecification);
Assert.assertTrue(results.size() > 0);
-
+
List<String> expected = new ArrayList<String>(7);
expected.add("Frank");
expected.add("Harry");
@@ -591,25 +606,25 @@ public class GraphIndexerTest {
expected.add("Jane");
expected.add("Joe");
expected.add("John");
-
-
-
+
+
+
List<String> actual = new ArrayList<String>(results.size());
- for(NonLiteral result : results) {
+ for (NonLiteral result : results) {
GraphNode node = new GraphNode(result, dataGraph);
Iterator<Literal> it = node.getLiterals(FOAF.firstName);
- while(it.hasNext()) {
+ while (it.hasNext()) {
actual.add(it.next().getLexicalForm());
}
}
-
+
//ignore "John William" because we can not make assumptions about
//the order of properties
- Assert.assertArrayEquals(expected.toArray(),
+ Assert.assertArrayEquals(expected.toArray(),
Arrays.copyOfRange(actual.toArray(), 0, 7));
}
}
-
+
@Test
public void paginationTest() throws InterruptedException, ParseException {
IndexDefinitionManager indexDefinitionManager = new IndexDefinitionManager(definitions);
@@ -618,60 +633,60 @@ public class GraphIndexerTest {
properties.add(firstName);
indexDefinitionManager.addDefinitionVirtual(FOAF.Person, properties);
service.reCreateIndex();
-
+
SortSpecification sortSpecification = new SortSpecification();
sortSpecification.add(firstName, SortSpecification.Type.STRING_VAL);
sortSpecification.add(SortSpecification.INDEX_ORDER);
-
+
Thread.sleep(1000);
{
List<Condition> fl = new ArrayList<Condition>();
fl.add(new WildcardCondition(firstName, "*"));
- List<NonLiteral> results = service.findResources(fl, sortSpecification,
+ List<NonLiteral> results = service.findResources(fl, sortSpecification,
Collections.EMPTY_LIST, 0, 2);
Assert.assertTrue(results.size() == 2);
-
+
List<String> expected = new ArrayList<String>(7);
expected.add("Frank");
expected.add("Harry");
-
+
List<String> actual = new ArrayList<String>(results.size());
- for(NonLiteral result : results) {
+ for (NonLiteral result : results) {
GraphNode node = new GraphNode(result, dataGraph);
Iterator<Literal> it = node.getLiterals(FOAF.firstName);
- while(it.hasNext()) {
+ while (it.hasNext()) {
actual.add(it.next().getLexicalForm());
}
}
-
+
Assert.assertArrayEquals(expected.toArray(), actual.toArray());
-
- results = service.findResources(fl, sortSpecification,
+
+ results = service.findResources(fl, sortSpecification,
Collections.EMPTY_LIST, 2, 5);
Assert.assertTrue(results.size() == 3);
-
+
expected = new ArrayList<String>(7);
expected.add("Harry Joe");
expected.add("Jane");
expected.add("Jane");
-
+
actual = new ArrayList<String>(results.size());
- for(NonLiteral result : results) {
+ for (NonLiteral result : results) {
GraphNode node = new GraphNode(result, dataGraph);
Iterator<Literal> it = node.getLiterals(FOAF.firstName);
- while(it.hasNext()) {
+ while (it.hasNext()) {
actual.add(it.next().getLexicalForm());
}
}
-
+
Assert.assertArrayEquals(expected.toArray(), actual.toArray());
-
- results = service.findResources(fl, sortSpecification,
+
+ results = service.findResources(fl, sortSpecification,
Collections.EMPTY_LIST, 2, 100000);
- Assert.assertTrue(results.size() == 6);
+ Assert.assertEquals(7, results.size());
}
}
-
+
@Test
public void genericConditionTest() throws InterruptedException, ParseException {
IndexDefinitionManager indexDefinitionManager = new IndexDefinitionManager(definitions);
@@ -680,8 +695,8 @@ public class GraphIndexerTest {
properties.add(firstName);
indexDefinitionManager.addDefinitionVirtual(FOAF.Person, properties);
service.reCreateIndex();
-
-
+
+
Thread.sleep(1000);
{
List<Condition> conditions = new ArrayList<Condition>(1);
@@ -726,6 +741,6 @@ public class GraphIndexerTest {
Assert.assertEquals(2, results.size());
conditions.clear();
}
-
+
}
}