On 04/07/12 15:04, Atakan Kaya wrote:
Hi,
I would like to load some user defined XSD Data types to the TypeMapper.
I read here:
http://jena.sourceforge.net/how-to/typedLiterals.html
But, whenever I load those datatypes from a file on my computer (using
XSDDatatype.loadUserDefined method), their URI become something like this:
C:\Users\Asus\workspace\XSD2OWL\CDA\CDA.xsd#StreetName
Problem is that I want to change this datatype's URI to
http://www.hl7.org/v3#StreetNameDatatype
but I can't find how to do this using Jena.
The four argument form of loadUserDefined allows you to specify the base
URI separate from the actual source data. That is supposed to work, at
least there's a test case that uses that which passes.
Also, is there any other way to load User Defined Datatypes without
using XSDDatatype.loadUserDefined method? Because, it only looks for XSD
simple types and converts them to RDF Datatypes. However, I will convert
XSD global elements with simple type to a RDF Datatype too.
No, there's no support for this, you would have to roll your own.
Apart from all of above, actually what I want to do is to create this
triple;
<Ts rdf:ID="EX4_Ts_1">
<hasValue *rdf:datatype="TsDatatype"*>20000407130000+0500</value>
</Ts>
Is there any other way to add *rdf:datatype="TsDatatype"* to this triple? I
was using
Model.addProperty(Proporty, p, String lexicalForm, RDFDatatype datatype)
method to do that.
You can create typed literals using:
model.createTypedLiteral(value, typeURI)
and then use those in resource#appProperty calls. So you can use
arbitrary datatype URIs in your data without necessarily having an
RDFDatatype instance for it.
Internally that uses:
TypeMapper.getInstance().getSafeTypeByName(typeURI);
to manufacture a dummy datatype if needed.
Dave
[Sorry for the slow reply, been essentially off-grid for a week.]