marklogic / marklogic-jena

Adapter for using MarkLogic with the Jena RDF Framework
Other
5 stars 11 forks source link

"No enum constant com.marklogic.client.semantics.RDFTypes.LANGSTRING" #73

Closed AlexTo closed 6 years ago

AlexTo commented 6 years ago

Hi I have a problem creating LangLiteral in MarkLogic. Not sure if MarkLogic Jena supports creating language tagged strings.

Model statementsToAdd = ModelFactory.createDefaultModel();
statementsToAdd.add(
    stmt.getSubject(),
    stmt.getPredicate(),
    ResourceFactory.createLangLiteral(
                                    langString.getObject().asLiteral().getLexicalForm(),
                                    langString.getPredicate().getLocalName()));

The above line of code throws error.

Exception in thread "Timer-3" java.lang.IllegalArgumentException: No enum constant com.marklogic.client.semantics.RDFTypes.LANGSTRING
    at java.lang.Enum.valueOf(Enum.java:238)
    at com.marklogic.client.semantics.RDFTypes.valueOf(RDFTypes.java:22)
    at com.marklogic.semantics.jena.MarkLogicDatasetGraph.bindObject(MarkLogicDatasetGraph.java:165)
    at com.marklogic.semantics.jena.client.TriplesWriteBuffer.flush(TriplesWriteBuffer.java:65)
    at com.marklogic.semantics.jena.client.TripleBuffer.run(TripleBuffer.java:75)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)
No enum constant com.marklogic.client.semantics.RDFTypes.LANGSTRING

langString.getObject().asLiteral().getLexicalForm() returns a string and langString.getPredicate().getLocalName() returns en-us, en-gb or en etc...

If I use the exact same code but with Virtuoso Jena API instead then it works, I will be able to create language tagged string like so in Virtuoso

untitled

Thanks

AlexTo commented 6 years ago

Sorry, false alarm. I think it is not the above line of code that throws such error. Will investigate further.