@@ -66,7 +66,7 @@ function levelgraphJSONLD(db, jsonldOpts) {
6666 } ) ;
6767 stream . end ( ) ;
6868 } ) ;
69- } ;
69+ }
7070
7171 graphdb . jsonld . put = function ( obj , options , callback ) {
7272 if ( typeof obj === 'string' ) {
@@ -141,8 +141,11 @@ function levelgraphJSONLD(db, jsonldOpts) {
141141 switch ( type ) {
142142 case TYPES . STRING :
143143 case TYPES . PLAIN :
144+ coerced [ '@value' ] = value ;
145+ break ;
144146 case RDFLANGSTRING :
145147 coerced [ '@value' ] = value ;
148+ coerced [ '@language' ] = N3Util . getLiteralLanguage ( object ) ;
146149 break ;
147150 case TYPES . INTEGER :
148151 coerced [ '@value' ] = parseInt ( value , 10 ) ;
@@ -163,7 +166,7 @@ function levelgraphJSONLD(db, jsonldOpts) {
163166 coerced = { '@value' : value , '@type' : type } ;
164167 }
165168 return coerced ;
166- } ;
169+ }
167170
168171 function fetchExpandedTriples ( iri , memo , callback ) {
169172 if ( typeof memo === 'function' ) {
@@ -195,12 +198,12 @@ function levelgraphJSONLD(db, jsonldOpts) {
195198 object [ '@id' ] = triple . object ;
196199 } else if ( N3Util . isLiteral ( triple . object ) ) {
197200 object = getCoercedObject ( triple . object ) ;
198- var language = N3Util . getLiteralLanguage ( triple . object ) ;
199- if ( language ) {
200- object [ '@language' ] = language ;
201- }
202201 }
203- acc [ triple . subject ] [ triple . predicate ] = object ;
202+ if ( acc [ triple . subject ] [ triple . predicate ] ) {
203+ acc [ triple . subject ] [ triple . predicate ] . push ( object ) ;
204+ } else {
205+ acc [ triple . subject ] [ triple . predicate ] = [ object ] ;
206+ }
204207 cb ( null , acc ) ;
205208 } else {
206209 fetchExpandedTriples ( triple . object , function ( err , expanded ) {
@@ -217,7 +220,7 @@ function levelgraphJSONLD(db, jsonldOpts) {
217220 }
218221 } , callback ) ;
219222 } ) ;
220- } ;
223+ }
221224
222225 graphdb . jsonld . get = function ( iri , context , options , callback ) {
223226
0 commit comments