We use the StreamRDF with RDFDataMgr from Apache Jena ARQ 3.13.1 and read the RDF data from a file into an Apache Jena Dataset.
To determine the types of the literals we use a map to store the information which datatype is to chose for the given triple. We use the following RDFS entailment pattern:
?s ?p ?o.
?p rdf:type rdfs:Property;
rdfs:domain ?t.
=> ?o rdf:type ?t.
A small utility with which the map can be generated from a RDFS file may be added soon