I’ve inserted a bunch of triples using code similar to this below.
import module namespace sem = "http://marklogic.com/semantics"
at "/MarkLogic/semantics.xqy”;
sem:rdf-insert(
(
sem:triple(
sem:iri("http://example.com/ns/blue/154397"),
sem:iri("http://example.com/ns/rankset/1443192107"),
sem:iri("http://example.com/ns/rank/141")
)
I change the document and the rank.
Now, I want to retrieve it using SPARQL
PREFIX rankset: <http://example.com/ns/rankset/ (http://example/ns/timestamp/)>
SELECT ?doc ?rank
WHERE { ?doc rankset:1443192107 ?rank }
ORDER BY ASC(?rank)
LIMIT 250
And I get back things like this:
1
{"doc":"<http://example.com/ns/document/blue/134215>","rank":"<http://example.com/ns/rank/1>"},
2
{"doc":"<http://example.com/ns/document/blue/144461>","rank":"<http://example.com/ns/rank/10>"},
3
{"doc":"<http://example.com/ns/document/blue/140087>","rank":"<http://example.com/ns/rank/100>"},
4
{"doc":"<http://example.com/ns/document/blue/150452>","rank":"<http://example.com/ns/rank/10000>"},
5
{"doc":"<http://example.com/ns/document/blue/136182>","rank":"<http://example.com/ns/rank/101>"},
6
{"doc":"<http://example.com/ns/document/blue/144417>","rank":"<http://example.com/ns/rank/102>”}…
This is almost right. My value for rank is being treated like a string so I’m
getting a string sort on the value. You can see this in line 5 and line 6
coming after line 4 above.
Is there a way to coerce in SPARQL or should I correct the triple with some ata
type declaration? How would that change my XQuery example above? I can’t find
any examples of data types using the sem:triple. I have seen some in pure
inline XML.
Thank you
bek
_______________________________________________
General mailing list
[email protected]
Manage your subscription at:
http://developer.marklogic.com/mailman/listinfo/general