Re: RDF Template

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