diff --git a/impl.sparql/src/main/java/org/apache/clerezza/commons/rdf/impl/sparql/SparqlClient.java b/impl.sparql/src/main/java/org/apache/clerezza/commons/rdf/impl/sparql/SparqlClient.java
index 4510907..90a2b96 100644
--- a/impl.sparql/src/main/java/org/apache/clerezza/commons/rdf/impl/sparql/SparqlClient.java
+++ b/impl.sparql/src/main/java/org/apache/clerezza/commons/rdf/impl/sparql/SparqlClient.java
@@ -98,6 +98,7 @@
         private String value;
         private Map<String, BlankNode> bNodeMap = new HashMap<>();
         private static final IRI XSD_STRING = new IRI("http://www.w3.org/2001/XMLSchema#string");
+        private static final IRI RDF_LANG_STRING = new IRI("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString");
 
         private RDFTerm getBNode(String value) {
             if (!bNodeMap.containsKey(value)) {
@@ -195,6 +196,9 @@
 
                                     @Override
                                     public IRI getDataType() {
+                                        if (language != null) {
+                                            return RDF_LANG_STRING;
+                                        }
                                         //TODO implement
                                         return XSD_STRING;
                                     }
diff --git a/impl.utils/src/main/java/org/apache/clerezza/commons/rdf/impl/utils/PlainLiteralImpl.java b/impl.utils/src/main/java/org/apache/clerezza/commons/rdf/impl/utils/PlainLiteralImpl.java
index 53bd93e..856cdf2 100644
--- a/impl.utils/src/main/java/org/apache/clerezza/commons/rdf/impl/utils/PlainLiteralImpl.java
+++ b/impl.utils/src/main/java/org/apache/clerezza/commons/rdf/impl/utils/PlainLiteralImpl.java
@@ -30,14 +30,11 @@
  */
 public class PlainLiteralImpl extends AbstractLiteral implements Literal, Serializable {
 
-    private String lexicalForm;
-    private Language language = null;
+    private final String lexicalForm;
+    private final Language language;
 
     public PlainLiteralImpl(String value) {
-        if (value == null) {
-            throw new IllegalArgumentException("The literal string cannot be null");
-        }
-        this.lexicalForm = value;
+        this(value, null);
     }
 
     public PlainLiteralImpl(String value, Language language) {
@@ -46,6 +43,11 @@
         }
         this.lexicalForm = value;
         this.language = language;
+        if (language == null) {
+            dataType = XSD_STRING;
+        } else {
+            dataType = RDF_LANG_STRING;
+        }
     }
 
     @Override
@@ -70,8 +72,10 @@
 
     @Override
     public IRI getDataType() {
-        return XSD_STRING;
+        return dataType;
     }
+    private final IRI dataType;
     private static final IRI XSD_STRING = new IRI("http://www.w3.org/2001/XMLSchema#string");
-    private static final int XSD_STRING_HASH = XSD_STRING.hashCode();
+    private static final IRI RDF_LANG_STRING = new IRI("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString");
+    //private static final int XSD_STRING_HASH = dataType.hashCode();
 }
