Uploaded image for project: 'Rya'
  1. Rya
  2. RYA-492

Add language support to Literals

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 4.0.0
    • 4.0.0
    • dao
    • None

    Description

      Processing a file with a language tag fails when trying to creating a Literal.  RDF4J is stricter about creating Literals with type "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" and fails.

      The following RDF/JSON file fails to process when it tries to create a triple containing a "en" language Literal.

      {
        "http://rya.apache.org/ns/" : {
            "http://rya.apache.org/ns/title/" : [ { "value" : "Bob's Homepage", 
                                                   "type" : "literal", 
                                                   "lang" : "en" } ] 
        }
      }
      

      This is likely happening when converting to/from Statements/RyaStatements.

      2018-04-24 16:26:47,728 ERROR [pool-4-thread-1] mongodb.AbstractMongoIndexer (AbstractMongoIndexer.java:prepareStatementForStorage(178)) - Unable to parse the statement: RyaStatement{subject=RyaType{dataType=http://www.w3.org/2001/XMLSchema#anyURI, data='http://rya.apache.org/ns/'}, predicate=RyaType{dataType=http://www.w3.org/2001/XMLSchema#anyURI, data='http://rya.apache.org/ns/title/'}, object=RyaType{dataType=http://www.w3.org/1999/02/22-rdf-syntax-ns#langString, data='Bob's Homepage'}, context=null, qualifier=null, columnVisibility=U, value=null, timestamp=1524601607671}
      java.lang.IllegalArgumentException: datatype rdf:langString requires a language tag
      	at org.eclipse.rdf4j.model.impl.SimpleLiteral.<init>(SimpleLiteral.java:99)
      	at org.eclipse.rdf4j.model.impl.AbstractValueFactory.createLiteral(AbstractValueFactory.java:118)
      	at org.apache.rya.api.resolver.RyaToRdfConversions.convertLiteral(RyaToRdfConversions.java:52)
      	at org.apache.rya.api.resolver.RyaToRdfConversions.convertValue(RyaToRdfConversions.java:59)
      	at org.apache.rya.api.resolver.RyaToRdfConversions.convertStatement(RyaToRdfConversions.java:72)
      	at org.apache.rya.indexing.mongodb.AbstractMongoIndexer.prepareStatementForStorage(AbstractMongoIndexer.java:171)
      	at org.apache.rya.indexing.mongodb.AbstractMongoIndexer.storeStatement(AbstractMongoIndexer.java:158)
      	at org.apache.rya.indexing.mongodb.AbstractMongoIndexer.storeStatement(AbstractMongoIndexer.java:154)
      	at org.apache.rya.mongodb.MongoDBRyaDAO.add(MongoDBRyaDAO.java:201)
      	at org.apache.rya.rdftriplestore.RdfCloudTripleStoreConnection.addStatementInternal(RdfCloudTripleStoreConnection.java:177)
      	at org.eclipse.rdf4j.sail.helpers.AbstractSailConnection.endUpdateInternal(AbstractSailConnection.java:632)
      	at org.eclipse.rdf4j.sail.helpers.AbstractSailConnection.endUpdate(AbstractSailConnection.java:593)
      	at org.eclipse.rdf4j.sail.helpers.AbstractSailConnection.flush(AbstractSailConnection.java:386)
      	at org.eclipse.rdf4j.repository.sail.SailRepositoryConnection.commit(SailRepositoryConnection.java:167)
      

      Attachments

        Issue Links

          Activity

            People

              ejwhite922 Eric White
              ejwhite922 Eric White
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: