You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by wi...@apache.org on 2016/05/02 11:50:09 UTC
[32/50] [abbrv] marmotta git commit: MARMOTTA-625: merged pr,
closes #16
MARMOTTA-625: merged pr, closes #16
Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/528b3412
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/528b3412
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/528b3412
Branch: refs/heads/MARMOTTA-584
Commit: 528b341299e7f4db79e820839f979c070cd40dc1
Parents: a165b8e
Author: Sergio Fern�ndez <wi...@apache.org>
Authored: Mon Feb 15 15:05:53 2016 +0100
Committer: Sergio Fern�ndez <wi...@apache.org>
Committed: Mon Feb 15 15:05:53 2016 +0100
----------------------------------------------------------------------
.../kiwi/reasoner/parser/KWRLProgramParser.jj | 26 ++++++++-----
.../test/parser/KWRLRuleParserTest.java | 41 ++++++++++++++++++--
.../persistence/KWRLProgramPersistenceTest.java | 2 -
3 files changed, 54 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/marmotta/blob/528b3412/libraries/kiwi/kiwi-reasoner/src/main/javacc/org/apache/marmotta/kiwi/reasoner/parser/KWRLProgramParser.jj
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-reasoner/src/main/javacc/org/apache/marmotta/kiwi/reasoner/parser/KWRLProgramParser.jj b/libraries/kiwi/kiwi-reasoner/src/main/javacc/org/apache/marmotta/kiwi/reasoner/parser/KWRLProgramParser.jj
index 67e502f..6044558 100644
--- a/libraries/kiwi/kiwi-reasoner/src/main/javacc/org/apache/marmotta/kiwi/reasoner/parser/KWRLProgramParser.jj
+++ b/libraries/kiwi/kiwi-reasoner/src/main/javacc/org/apache/marmotta/kiwi/reasoner/parser/KWRLProgramParser.jj
@@ -148,6 +148,12 @@ TOKEN : /* OPERATORS */
< TYPE: "^^" >
}
+
+TOKEN : /* JIRA MARMOTTA-625 */
+{
+ < LANG: "@"["a"-"z"]["a"-"z"] >
+}
+
TOKEN :
{
< LEFTP: "(" > |
@@ -351,19 +357,21 @@ VariableField Variable() : {Token t;}
}
}
-//TODO language tags
-LiteralField Literal() : {Token literal = null; Token type = null;}
+
+// Modified for MARMOTTA-625
+LiteralField Literal() : {Token literal = null; Token type = null; Token language = null;}
{
(
- literal = <STRLIT> (<TYPE> type = <URI>)? | "\"\""
-){ //have to remove the leading " character first
+ literal = <STRLIT> (language = <LANG>)? (<TYPE> type = <URI>)? | "\"\""
+){ // have to remove the surrounding quotes ane leading @ characters
+ if (language != null) {
+ return new LiteralField(resolveLiteral(literal.image.substring(1, literal.image.length()-1),
+ new Locale(language.image.substring(1)), null));
+ }
if (type != null) {
- return new LiteralField(resolveLiteral(literal.image.substring(1, literal.image.length()-1), Locale.getDefault(), type.image));
+ return new LiteralField(resolveLiteral(literal.image.substring(1, literal.image.length()-1), null , type.image));
}
- return new LiteralField(resolveLiteral(literal.image.substring(1, literal.image.length()-1), Locale.getDefault(), null));
+ return new LiteralField(resolveLiteral(literal.image.substring(1, literal.image.length()-1), null, null));
}
-
}
-
-
http://git-wip-us.apache.org/repos/asf/marmotta/blob/528b3412/libraries/kiwi/kiwi-reasoner/src/test/java/org/apache/marmotta/kiwi/reasoner/test/parser/KWRLRuleParserTest.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-reasoner/src/test/java/org/apache/marmotta/kiwi/reasoner/test/parser/KWRLRuleParserTest.java b/libraries/kiwi/kiwi-reasoner/src/test/java/org/apache/marmotta/kiwi/reasoner/test/parser/KWRLRuleParserTest.java
index 187021e..2f1651c 100644
--- a/libraries/kiwi/kiwi-reasoner/src/test/java/org/apache/marmotta/kiwi/reasoner/test/parser/KWRLRuleParserTest.java
+++ b/libraries/kiwi/kiwi-reasoner/src/test/java/org/apache/marmotta/kiwi/reasoner/test/parser/KWRLRuleParserTest.java
@@ -18,9 +18,9 @@
package org.apache.marmotta.kiwi.reasoner.test.parser;
import com.google.common.collect.ImmutableMap;
+import org.apache.marmotta.kiwi.reasoner.model.program.LiteralField;
import org.apache.marmotta.kiwi.reasoner.model.program.Rule;
import org.apache.marmotta.kiwi.reasoner.parser.KWRLProgramParser;
-import org.apache.marmotta.kiwi.test.RepositoryTest;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -35,8 +35,8 @@ import org.slf4j.LoggerFactory;
/**
* Test parsing of individual rules
- * <p/>
- * Author: Sebastian Schaffert (sschaffert@apache.org)
+ *
+ * @author Sebastian Schaffert (sschaffert@apache.org)
*/
public class KWRLRuleParserTest {
@@ -48,7 +48,6 @@ public class KWRLRuleParserTest {
repository.initialize();
}
-
@After
public void shutdown() throws Exception {
repository.shutDown();
@@ -92,4 +91,38 @@ public class KWRLRuleParserTest {
Assert.assertTrue(r.getHead().getObject().isVariableField());
}
+ @Test
+ public void testRule3() throws Exception {
+ String rule = "($1 $2 $3) -> ($1 $2 \"Hello\"@en)";
+ Rule r = KWRLProgramParser.parseRule(rule, ImmutableMap.of("rdfs", "http://www.w3.org/2000/01/rdf-schema#"), repository.getValueFactory());
+
+ Assert.assertNotNull(r);
+ Assert.assertEquals(1, r.getBody().size());
+ Assert.assertTrue(r.getBody().get(0).getSubject().isVariableField());
+ Assert.assertTrue(r.getBody().get(0).getObject().isVariableField());
+ Assert.assertTrue(r.getBody().get(0).getProperty().isVariableField());
+ Assert.assertTrue(r.getHead().getSubject().isVariableField());
+ Assert.assertTrue(r.getHead().getProperty().isVariableField());
+ Assert.assertTrue(r.getHead().getObject().isLiteralField());
+ Assert.assertEquals("Hello", ((LiteralField) r.getHead().getObject()).getLiteral().getLabel());
+ Assert.assertEquals("en", ((LiteralField) r.getHead().getObject()).getLiteral().getLanguage());
+ }
+
+ @Test
+ public void testRule4() throws Exception {
+ String rule = "($1 $2 $3) -> ($1 $2 \"Bonjour\"@fr)";
+ Rule r = KWRLProgramParser.parseRule(rule, ImmutableMap.of("rdfs", "http://www.w3.org/2000/01/rdf-schema#"), repository.getValueFactory());
+
+ Assert.assertNotNull(r);
+ Assert.assertEquals(1, r.getBody().size());
+ Assert.assertTrue(r.getBody().get(0).getSubject().isVariableField());
+ Assert.assertTrue(r.getBody().get(0).getObject().isVariableField());
+ Assert.assertTrue(r.getBody().get(0).getProperty().isVariableField());
+ Assert.assertTrue(r.getHead().getSubject().isVariableField());
+ Assert.assertTrue(r.getHead().getProperty().isVariableField());
+ Assert.assertTrue(r.getHead().getObject().isLiteralField());
+ Assert.assertEquals("Bonjour", ((LiteralField)r.getHead().getObject()).getLiteral().getLabel());
+ Assert.assertEquals("fr", ((LiteralField) r.getHead().getObject()).getLiteral().getLanguage());
+ }
+
}
http://git-wip-us.apache.org/repos/asf/marmotta/blob/528b3412/libraries/kiwi/kiwi-reasoner/src/test/java/org/apache/marmotta/kiwi/reasoner/test/persistence/KWRLProgramPersistenceTest.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-reasoner/src/test/java/org/apache/marmotta/kiwi/reasoner/test/persistence/KWRLProgramPersistenceTest.java b/libraries/kiwi/kiwi-reasoner/src/test/java/org/apache/marmotta/kiwi/reasoner/test/persistence/KWRLProgramPersistenceTest.java
index a24fa5e..773bed7 100644
--- a/libraries/kiwi/kiwi-reasoner/src/test/java/org/apache/marmotta/kiwi/reasoner/test/persistence/KWRLProgramPersistenceTest.java
+++ b/libraries/kiwi/kiwi-reasoner/src/test/java/org/apache/marmotta/kiwi/reasoner/test/persistence/KWRLProgramPersistenceTest.java
@@ -63,13 +63,11 @@ public class KWRLProgramPersistenceTest {
private Repository repository;
private final KiWiConfiguration config;
-
public KWRLProgramPersistenceTest(KiWiConfiguration config) {
this.config = config;
}
-
@Before
public void initDatabase() throws Exception {
repository = new SailRepository(new MemoryStore());