- From: Stéphane Campinas <stephane.campinas@deri.org>
- Date: Sat, 10 May 2014 16:01:49 +0100
- To: semantic-web@w3.org
- Message-ID: <536E3F5D.9060308@deri.org>
Jean-Marc, see my answer to Martynas, I gave more details. Sorry for the
lack of details in my question.
On 10/05/14 15:24, Jean-Marc Vanel wrote:
> Martynas ,
>
> I agree ,
> it's just that I tried to answer the original question.
>
> If Stéphane would tell us more about how the input data are ,
> we could give a better answer.
>
>
>
>
> 2014-05-10 16:21 GMT+02:00 Martynas Jusevičius <martynas@graphity.org
> <mailto:martynas@graphity.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 <http://graphityhq.com>
>
> On Sat, May 10, 2014 at 3:56 PM, Jean-Marc Vanel
> <jeanmarc.vanel@gmail.com <mailto: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/$%7Bid%7D>>
> <http://acme.org/predicate1> ${something} .
> > <http://acme.org/${id} <http://acme.org/$%7Bid%7D>>
> <http://acme.org/predicate2>
> > <http://acme.org/${person} <http://acme.org/$%7Bperson%7D>> .
> > """
> >
> > ( 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 <mailto: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 <mailto: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/$%7Bid%7D>>
> <http://acme.org/predicate1> "${something}" .
> >>> <http://acme.org/${id} <http://acme.org/$%7Bid%7D>>
> <http://acme.org/predicate2>
> >>> <http://acme.org/${person} <http://acme.org/$%7Bperson%7D>> .
> >>>
> >>>
> >>> 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 <tel:%2B33%20%280%296%2089%2016%2029%2052>
> >> Twitter: @jmvanel , @jmvanel_fr ; chat:
> irc://irc.freenode.net#eulergui <http://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 <tel:%2B33%20%280%296%2089%2016%2029%2052>
> >> Twitter: @jmvanel , @jmvanel_fr ; chat:
> irc://irc.freenode.net#eulergui <http://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 <tel:%2B33%20%280%296%2089%2016%2029%2052>
> > Twitter: @jmvanel , @jmvanel_fr ; chat:
> irc://irc.freenode.net#eulergui <http://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 <http://irc.freenode.net#eulergui>
--
Stephane Campinas
Received on Saturday, 10 May 2014 15:00:13 UTC