Hi Martynas,

On 18/09/15 09:25, Martynas Jusevičius wrote:
I'm on SPIN API 1.3.1 = Jena 2.11.0.

Ah, so patching Jena, even Jena2, won't help anyway unless you can upgrade.

There is no other way of serializing Rules to String though? It would make
sense for toString() to do this, but for now I guess I'll need to work
around this with my own printer.

No there's no separate serializer. It would make sense for the toString to be round trippable and if it's just the URIs that are broken then as I say that's easy to fix.

I could put a fix in the Jena2 branch if that would help but if you are stuck on 2.11.0 then I guess it doesn't actually solve your immediate problem.

Dave

On Fri 18 Sep 2015 at 09:58 Dave Reynolds <dave.e.reyno...@gmail.com> wrote:

Hi Martynas,

On 17/09/15 23:37, Martynas Jusevičius wrote:
Hit send too soon!

When the list is serialized back to String again, I get

[[ inheritance: (?template rdf:type http://graphity.org/gp#Template)
(?template ?p ?o) (?p rdf:type owl:AnnotationProperty) (?p
rdfs:isDefinedBy http://graphity.org/gp#) (?subClass rdfs:subClassOf
?template) noValue(?subClass ?p) -> (?subClass ?p ?o) ]]

Notice the missing < > brackets on URIs. Reparsing the string gives an
exception:

com.hp.hpl.jena.reasoner.rulesys.Rule$ParserException: Malformed rule
At 'http://graphity.org/gp# ) ( ?subClass rdfs:subClassOf ?template )
noValue ( ?subClass ?p ) -> ( ?subClass ?p ?o ) ] ] '

Can you confirm this is a bug? I need to roundtrip Rules from Strings
to objects and back.

There's no guarantee that Rule.toString will round trip, it's just there
for debugging, that's why the javadoc says "Printable string describing
the rule".

However, it ought to be easy to put <> round the absolute URIs and if
that's enough to give you round tripping then great.

Can't do this myself at present - I don't have a working built of Jena3,
still on Jena2. Are you on Jena2 or Jena3?

Dave



Reply via email to