- From: Martynas Jusevičius <martynas@graphity.org>
- Date: Sat, 10 May 2014 16:21:26 +0200
- To: Jean-Marc Vanel <jeanmarc.vanel@gmail.com>
- Cc: semantic-web <semantic-web@w3.org>
Jean-Marc, I would warn against using string manipulation to construct RDF. There are so many things where it can go wrong -- URI escaping, literal escaping, Turtle (or other) syntax etc. -- because generic string routines have no knowledge of RDF concepts. A better idea (even if it results in longer/more complex code) is to use standard RDF libraries, both to construct RDF and to serialize it into desired syntax. They exist for most programming languages, e.g. Jena or Sesame for Java. And the same goes for other data models, such as XML. In case the input data is in XML form, using XSLT to transform it is a viable option. I do that a lot. Martynas graphityhq.com On Sat, May 10, 2014 at 3:56 PM, Jean-Marc Vanel <jeanmarc.vanel@gmail.com> wrote: > And some languages like Scala hava a bult-in template capabilty : > > val id = "e1" > val something = """"blabla"""" > val person = "john" > > val ttlString = s""" > > <http://acme.org/${id}> <http://acme.org/predicate1> ${something} . > <http://acme.org/${id}> <http://acme.org/predicate2> > <http://acme.org/${person}> . > """ > > ( for simple expressions like here the {} are facultative ) > > NOTE 1 : you have to manage yourself the fact that something represents a > literal , > and person and id are relative URI. > > NOTE 2 : the Banana RDF Scala library has a nice DSL for RDF : > https://github.com/w3c/banana-rdf > > > > 2014-05-10 15:13 GMT+02:00 Jean-Marc Vanel <jeanmarc.vanel@gmail.com>: > >> Bonjour Stéphane >> >> Depending on on your software environment, >> you can choose one of the so called "template engines" ; >> in Java there is freemarker and others : >> http://java-source.net/open-source/template-engines >> >> >> 2014-05-10 14:54 GMT+02:00 Stéphane Campinas <stephane.campinas@deri.org>: >> >>> Hi, >>> >>> Do you know of any tool that creates RDF statements based on some >>> template ? >>> >>> For example, let's imagine I have the following template: >>> >>> <http://acme.org/${id}> <http://acme.org/predicate1> "${something}" . >>> <http://acme.org/${id}> <http://acme.org/predicate2> >>> <http://acme.org/${person}> . >>> >>> >>> where ${...} are variables. Then, by providing values for these >>> variables, the following statements would be created: >>> >>> ${id} = e1 ${something} = blabla ${person} = john >>> >>> <http://acme.org/e1> <http://acme.org/predicate1> "blabla" . >>> <http://acme.org/e1> <http://acme.org/predicate2> <http://acme.org/john> >>> . >>> >>> Have you seen any such tool ? >>> >>> Thanks >>> >>> -- >>> Stephane Campinas >> >> >> >> >> -- >> Jean-Marc Vanel >> Déductions SARL - Consulting, services, training, >> Rule-based programming, Semantic Web >> http://deductions-software.com/ >> +33 (0)6 89 16 29 52 >> Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui >> >> >> >> -- >> Jean-Marc Vanel >> Déductions SARL - Consulting, services, training, >> Rule-based programming, Semantic Web >> http://deductions-software.com/ >> +33 (0)6 89 16 29 52 >> Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui > > > > > -- > Jean-Marc Vanel > Déductions SARL - Consulting, services, training, > Rule-based programming, Semantic Web > http://deductions-software.com/ > +33 (0)6 89 16 29 52 > Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui
Received on Saturday, 10 May 2014 14:21:54 UTC