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());