dave
(David Lutz)
July 9, 2019, 6:05pm
1
Given a database table like
id name uri
1 bob http://myontology/job/baker
2 steve http://myontology/job/pilot
3 bill http://myontology/job/cab_driver
where the uri indicates the class of individual,what is the correct SMS2 syntax to assert that individual is of class uri?
Using the value directly
...
TO {
?subject rdfs:label ?name
?subject a ?uri
}
wraps the uri in quotes (string literal?) producing
http://myontology/person/person1 a "http://myontology/job/baker "
Adding a template
...
TO {
?subject rdfs:label ?name
?subject a ?cls
}
BIND(template("{uri}") AS ?cls)
}
concatenates the default prefix to the uri:
http://myontology/person/person1 a :http://myontology/job/baker
Any ideas?
thanks
EDIT:
I just found a report of similar issue using CSV and the original SMS:
https://community.stardog.com/t/creating-virtual-graph-when-csv-contains-legitimate-uris/1599/10
Hi Dave,
There's currently no way to do this in SMS2. The example ( in the comment on the post you linked to has an example of how to do this R2RML using rr:termType rr:IRI
. I'll add your feedback to our internal issue tracking this enhancement.
Simon (Stardog PM)
dave
(David Lutz)
July 18, 2019, 1:51pm
3
Siimon;
Thanks. Is the current restriction, that to form a IRI, the template must start with "http://" e.g.
template("http://example.org {whatever}")
or is some other restriction?
We have some freedom over the database design, for instance would
either
template("{prefix}:{body}) or
template("http://{iri_body})
work? Any other database and template pattern which can be used to form a fully scope IRI?
thanks
stephen
(stephen)
July 19, 2019, 12:01pm
4
Yes, there's no reason why template("http://{?iri_body}")
shouldn't work.
system
(system)
Closed
August 2, 2019, 12:01pm
5
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.