Hi Paul,

You want this to make bnodes in the Fuseki server addressable?

I agree it would be nice for something in riot to do this.

What skolemization naming schemes are popular?


It's possible to convert using text processing on N-Triples. Regex for (^| )_: and replace with a <urn:uuid:...> or what every scheme you want.

Maybe <urn:bnode:...>


Jena also has a non-standard extension:

URI(bnode()) => <_:44f86b24-8556-44e0-89eb-27e3bf21c66e>

"_:" is illegal as a URI scheme and also as a relative URI so thjat's illegal as a URI, strictly but Jena allows it.

It can be in SPARQL results and queries.

When a Jena parser or result set reader sees "_:" it uses the rest as the bnode id.

Unlike skolemization, The data and results really do have a bnode in it so the data itself is unchanged.

    Andy

Related but different: : https://github.com/apache/jena/issues/2549
"More granular control over Blank node serialization"

On 6/27/24 22:57, Martynas Jusevičius wrote:
LinkedDataHub has a class that does that:
https://github.com/AtomGraph/LinkedDataHub/blob/develop/src/main/java/com/atomgraph/linkeddatahub/server/util/Skolemizer.java

On Thu, Jun 27, 2024 at 11:55 PM Paul Tyson <phty...@sbcglobal.net> wrote:

I searched the source and docs but didn't turn up any easy way to
skolemize an input graph before loading to fuseki. The skolemization
capabilities appear to be related to the reasoners, which I don't need.

I expect there's a good reason for this missing feature, but wanted to
ask if I've missed something. I probably don't need it badly enough to
build something for it. It would be better if the dataset came to me
with the necessary node ids, but am considering if it's worth putting in
a fixup routine.

Thanks
--Paul

Reply via email to