You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Jindřich Mynarz <my...@gmail.com> on 2016/06/25 09:54:15 UTC
Support for non-string plain literals?
Hi,
can I use Jena to create non-string plain literals, such as integers?
ResourceFactory.createLiteral() (
https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/ResourceFactory.html#createPlainLiteral-java.lang.String-)
is available only for strings.
- Jindřich
--
Jindřich Mynarz
http://mynarz.net/#jindrich
Re: Support for non-string plain literals?
Posted by Jindřich Mynarz <my...@gmail.com>.
The serialization context I'm interest in is
org.apache.jena.query.ParameterizedSparqlString (toString():
https://github.com/apache/jena/blob/master/jena-arq/src/main/java/org/apache/jena/query/ParameterizedSparqlString.java#L1291-L1377).
I probably should have clarified that before.
However, I just noticed that if the xsd:integer datatype is provided
explicitly, then it is serialized as a plain literal:
ResourceFactory.createTypedLiteral(1000) => "1000"^^<
http://www.w3.org/2001/XMLSchema#long>
ResourceFactory.createTypedLiteral(1000, XSDDatatype.XSDinteger) => 1000
This solves my issue. Thanks for your comments!
- Jindřich
--
Jindřich Mynarz
http://mynarz.net/#jindrich
On Sat, Jun 25, 2016 at 4:12 PM, Andy Seaborne <an...@apache.org> wrote:
> On 25/06/16 11:42, Jean-Marc Vanel wrote:
>
>> Sorry, now it's clear.
>>
>> AFAIK internally
>> 1000
>> and
>> "1000"^^xsd:integer
>> are the same.
>> What you ask is a feature of the Turtle Writer.
>> You should look for settings of the Turtle Writer, if any.
>>
>
> It does that. N-triples does not, nor does RDF/XML.
>
>
>> If Jena does not do it,
>> look for another tool like rapper, Euler/EYE, etc.
>>
>
> Yes - it's a syntax feature of Turtle that xsd:integer can be written that
> way. Same with xsd:decimal (if there is a dot)
>
> xsd:int and other derived types can't - it would loose the detailed type
> information.
>
> Jindřich - do you have a detailed example?
>
> Andy
>
>
>
>>
>>
>>
>> 2016-06-25 12:34 GMT+02:00 Jindřich Mynarz <my...@gmail.com>:
>>
>> Hi Jean-Marc,
>>>
>>> I'm aware of createTypedLiteral, but I don't want to generate typed
>>> literal, but a plain one instead, as I have indicated in my question.
>>>
>>> For example, 1000 instead of "1000"^^xsd:integer.
>>>
>>> - Jindřich
>>>
>>> --
>>> Jindřich Mynarz
>>> http://mynarz.net/#jindrich
>>>
>>> On Sat, Jun 25, 2016 at 12:32 PM, Jean-Marc Vanel <
>>> jeanmarc.vanel@gmail.com>
>>> wrote:
>>>
>>> Jindrich you had to read further on the javadoc:
>>>>
>>>>
>>>> - createTypedLiteral
>>>>
>>>> public static Literal
>>>> <
>>>>
>>>>
>>> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Literal.html
>>>
>>>>
>>>>> createTypedLiteral(String
>>>> <
>>>>
>>>>
>>> http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true
>>>
>>>>
>>>>> string,
>>>> RDFDatatype
>>>> <
>>>>
>>>>
>>> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/datatypes/RDFDatatype.html
>>>
>>>>
>>>>> dType)
>>>>
>>>> Answer a typed literal.
>>>> Parameters:string - the string which forms the value of the
>>>>
>>> literaldType
>>>
>>>> - RDFDatatype of the type literalReturns:a Literal node with that
>>>>
>>> string
>>>
>>>> as value
>>>>
>>>>
>>>> - createTypedLiteral
>>>>
>>>> public static Literal
>>>> <
>>>>
>>>>
>>> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Literal.html
>>>
>>>>
>>>>> createTypedLiteral(Object
>>>> <
>>>>
>>>>
>>> http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true
>>>
>>>>
>>>>> value)
>>>>
>>>> Answer a typed literal.
>>>> Parameters:value - a java Object, the default RDFDatatype for that
>>>> object will be usedReturns:a Literal node with that value
>>>>
>>>>
>>>>
>>>> 2016-06-25 11:54 GMT+02:00 Jindřich Mynarz <my...@gmail.com>:
>>>>
>>>> Hi,
>>>>>
>>>>> can I use Jena to create non-string plain literals, such as integers?
>>>>>
>>>>> ResourceFactory.createLiteral() (
>>>>>
>>>>>
>>>>>
>>>>
>>> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/ResourceFactory.html#createPlainLiteral-java.lang.String-
>>>
>>>> )
>>>>> is available only for strings.
>>>>>
>>>>> - Jindřich
>>>>>
>>>>> --
>>>>> Jindřich Mynarz
>>>>> http://mynarz.net/#jindrich
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> 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
>>>>
>>>>
>>>
>>
>>
>>
>
Re: Support for non-string plain literals?
Posted by Andy Seaborne <an...@apache.org>.
On 25/06/16 11:42, Jean-Marc Vanel wrote:
> Sorry, now it's clear.
>
> AFAIK internally
> 1000
> and
> "1000"^^xsd:integer
> are the same.
> What you ask is a feature of the Turtle Writer.
> You should look for settings of the Turtle Writer, if any.
It does that. N-triples does not, nor does RDF/XML.
>
> If Jena does not do it,
> look for another tool like rapper, Euler/EYE, etc.
Yes - it's a syntax feature of Turtle that xsd:integer can be written
that way. Same with xsd:decimal (if there is a dot)
xsd:int and other derived types can't - it would loose the detailed type
information.
Jind\u0159ich - do you have a detailed example?
Andy
>
>
>
>
> 2016-06-25 12:34 GMT+02:00 Jind\u0159ich Mynarz <my...@gmail.com>:
>
>> Hi Jean-Marc,
>>
>> I'm aware of createTypedLiteral, but I don't want to generate typed
>> literal, but a plain one instead, as I have indicated in my question.
>>
>> For example, 1000 instead of "1000"^^xsd:integer.
>>
>> - Jind\u0159ich
>>
>> --
>> Jind\u0159ich Mynarz
>> http://mynarz.net/#jindrich
>>
>> On Sat, Jun 25, 2016 at 12:32 PM, Jean-Marc Vanel <
>> jeanmarc.vanel@gmail.com>
>> wrote:
>>
>>> Jindrich you had to read further on the javadoc:
>>>
>>>
>>> - createTypedLiteral
>>>
>>> public static Literal
>>> <
>>>
>> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Literal.html
>>>>
>>> createTypedLiteral(String
>>> <
>>>
>> http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true
>>>>
>>> string,
>>> RDFDatatype
>>> <
>>>
>> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/datatypes/RDFDatatype.html
>>>>
>>> dType)
>>>
>>> Answer a typed literal.
>>> Parameters:string - the string which forms the value of the
>> literaldType
>>> - RDFDatatype of the type literalReturns:a Literal node with that
>> string
>>> as value
>>>
>>>
>>> - createTypedLiteral
>>>
>>> public static Literal
>>> <
>>>
>> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Literal.html
>>>>
>>> createTypedLiteral(Object
>>> <
>>>
>> http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true
>>>>
>>> value)
>>>
>>> Answer a typed literal.
>>> Parameters:value - a java Object, the default RDFDatatype for that
>>> object will be usedReturns:a Literal node with that value
>>>
>>>
>>>
>>> 2016-06-25 11:54 GMT+02:00 Jind\u0159ich Mynarz <my...@gmail.com>:
>>>
>>>> Hi,
>>>>
>>>> can I use Jena to create non-string plain literals, such as integers?
>>>>
>>>> ResourceFactory.createLiteral() (
>>>>
>>>>
>>>
>> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/ResourceFactory.html#createPlainLiteral-java.lang.String-
>>>> )
>>>> is available only for strings.
>>>>
>>>> - Jind\u0159ich
>>>>
>>>> --
>>>> Jind\u0159ich Mynarz
>>>> http://mynarz.net/#jindrich
>>>>
>>>
>>>
>>>
>>> --
>>> 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
>>>
>>
>
>
>
Re: Support for non-string plain literals?
Posted by Jean-Marc Vanel <je...@gmail.com>.
Sorry, now it's clear.
AFAIK internally
1000
and
"1000"^^xsd:integer
are the same.
What you ask is a feature of the Turtle Writer.
You should look for settings of the Turtle Writer, if any.
If Jena does not do it,
look for another tool like rapper, Euler/EYE, etc.
2016-06-25 12:34 GMT+02:00 Jindřich Mynarz <my...@gmail.com>:
> Hi Jean-Marc,
>
> I'm aware of createTypedLiteral, but I don't want to generate typed
> literal, but a plain one instead, as I have indicated in my question.
>
> For example, 1000 instead of "1000"^^xsd:integer.
>
> - Jindřich
>
> --
> Jindřich Mynarz
> http://mynarz.net/#jindrich
>
> On Sat, Jun 25, 2016 at 12:32 PM, Jean-Marc Vanel <
> jeanmarc.vanel@gmail.com>
> wrote:
>
> > Jindrich you had to read further on the javadoc:
> >
> >
> > - createTypedLiteral
> >
> > public static Literal
> > <
> >
> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Literal.html
> > >
> > createTypedLiteral(String
> > <
> >
> http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true
> > >
> > string,
> > RDFDatatype
> > <
> >
> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/datatypes/RDFDatatype.html
> > >
> > dType)
> >
> > Answer a typed literal.
> > Parameters:string - the string which forms the value of the
> literaldType
> > - RDFDatatype of the type literalReturns:a Literal node with that
> string
> > as value
> >
> >
> > - createTypedLiteral
> >
> > public static Literal
> > <
> >
> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Literal.html
> > >
> > createTypedLiteral(Object
> > <
> >
> http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true
> > >
> > value)
> >
> > Answer a typed literal.
> > Parameters:value - a java Object, the default RDFDatatype for that
> > object will be usedReturns:a Literal node with that value
> >
> >
> >
> > 2016-06-25 11:54 GMT+02:00 Jindřich Mynarz <my...@gmail.com>:
> >
> > > Hi,
> > >
> > > can I use Jena to create non-string plain literals, such as integers?
> > >
> > > ResourceFactory.createLiteral() (
> > >
> > >
> >
> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/ResourceFactory.html#createPlainLiteral-java.lang.String-
> > > )
> > > is available only for strings.
> > >
> > > - Jindřich
> > >
> > > --
> > > Jindřich Mynarz
> > > http://mynarz.net/#jindrich
> > >
> >
> >
> >
> > --
> > 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
Re: Support for non-string plain literals?
Posted by Jindřich Mynarz <my...@gmail.com>.
Hi Jean-Marc,
I'm aware of createTypedLiteral, but I don't want to generate typed
literal, but a plain one instead, as I have indicated in my question.
For example, 1000 instead of "1000"^^xsd:integer.
- Jindřich
--
Jindřich Mynarz
http://mynarz.net/#jindrich
On Sat, Jun 25, 2016 at 12:32 PM, Jean-Marc Vanel <je...@gmail.com>
wrote:
> Jindrich you had to read further on the javadoc:
>
>
> - createTypedLiteral
>
> public static Literal
> <
> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Literal.html
> >
> createTypedLiteral(String
> <
> http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true
> >
> string,
> RDFDatatype
> <
> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/datatypes/RDFDatatype.html
> >
> dType)
>
> Answer a typed literal.
> Parameters:string - the string which forms the value of the literaldType
> - RDFDatatype of the type literalReturns:a Literal node with that string
> as value
>
>
> - createTypedLiteral
>
> public static Literal
> <
> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Literal.html
> >
> createTypedLiteral(Object
> <
> http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true
> >
> value)
>
> Answer a typed literal.
> Parameters:value - a java Object, the default RDFDatatype for that
> object will be usedReturns:a Literal node with that value
>
>
>
> 2016-06-25 11:54 GMT+02:00 Jindřich Mynarz <my...@gmail.com>:
>
> > Hi,
> >
> > can I use Jena to create non-string plain literals, such as integers?
> >
> > ResourceFactory.createLiteral() (
> >
> >
> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/ResourceFactory.html#createPlainLiteral-java.lang.String-
> > )
> > is available only for strings.
> >
> > - Jindřich
> >
> > --
> > Jindřich Mynarz
> > http://mynarz.net/#jindrich
> >
>
>
>
> --
> 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
>
Re: Support for non-string plain literals?
Posted by Jean-Marc Vanel <je...@gmail.com>.
Jindrich you had to read further on the javadoc:
- createTypedLiteral
public static Literal
<https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Literal.html>
createTypedLiteral(String
<http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true>
string,
RDFDatatype
<https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/datatypes/RDFDatatype.html>
dType)
Answer a typed literal.
Parameters:string - the string which forms the value of the literaldType
- RDFDatatype of the type literalReturns:a Literal node with that string
as value
- createTypedLiteral
public static Literal
<https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Literal.html>
createTypedLiteral(Object
<http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true>
value)
Answer a typed literal.
Parameters:value - a java Object, the default RDFDatatype for that
object will be usedReturns:a Literal node with that value
2016-06-25 11:54 GMT+02:00 Jindřich Mynarz <my...@gmail.com>:
> Hi,
>
> can I use Jena to create non-string plain literals, such as integers?
>
> ResourceFactory.createLiteral() (
>
> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/ResourceFactory.html#createPlainLiteral-java.lang.String-
> )
> is available only for strings.
>
> - Jindřich
>
> --
> Jindřich Mynarz
> http://mynarz.net/#jindrich
>
--
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