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

Reply via email to