W3C home > Mailing lists > Public > semantic-web@w3.org > May 2014

Re: RDF Template

From: Stéphane Campinas <stephane.campinas@deri.org>
Date: Sat, 10 May 2014 16:01:49 +0100
Message-ID: <536E3F5D.9060308@deri.org>
To: semantic-web@w3.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

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:45:37 UTC