@Override public void visitLiteral(Literal<?> literal) { append(literal(literal.get())); } @Override
private void marshallProperty(Resource<?> subject, URIRef predicate, Object value) { Node object=null; PropertyType propertyType=null; if(TypeSupport.isLiteral(value.getClass())) { propertyType=PropertyType.LITERAL; object=RDFModelDSL.literal(value); } else { propertyType=PropertyType.OBJECT; object=resolve(value); } log("Adding %s property '%s' to object '%s'...",propertyType,predicate,source); logTriple(source,predicate,object); session.addTriple(subject,predicate,object); }
@Override public void visitLanguageLiteral(LanguageLiteral literal) { append(literal(literal.get(),literal.language())); } }
public Literal<?> parseLiteral(org.openrdf.model.Literal literal) { org.openrdf.model.URI datatype = literal.getDatatype(); Literal<?> result; String label = literal.getLabel(); if(datatype==null) { String language = literal.getLanguage(); if(language!=null) { result=RDFModelDSL.literal(label,language); } else { result=RDFModelDSL.literal(label); } } else { String dataType = datatype.stringValue(); Datatype type=Datatype.fromString(dataType); if(type!=null) { result=RDFModelDSL.typedLiteral(boxTypedLiteral(type, label), dataType); } else { result=RDFModelDSL.typedLiteral(label,URI.create(dataType)); } } return result; }
@Test public void testJSON() throws Exception { Iterable<Triple> content= tripleSet( triple( uriRef("example"), uriRef("http://www.example.org/vocab#size"), literal(3)), triple( uriRef("example"), uriRef("http://www.example.org/vocab#property"), uriRef("example/test")), triple( uriRef("example/test"), uriRef("http://www.example.org/vocab#propertyInverse"), uriRef("example")), triple( uriRef("example"), uriRef("http://www.example.org/vocab#otherProperty"), literal("27")) ); RDFContext rdfContext = RDFContext.createContext(URI.create("http://www.example.org/")); StringWriter writer = new StringWriter(); rdfContext.serialize(content, Format.JSON_LD, writer); System.out.println(writer.toString()); }