Dave,
you can define things like domain/range for triple stores in plain
RDFS too and when the client has a definition of predicates then a
library can take any standard JSON response and turn it into a more
"natural" equivalent:
"name": {"value": "George", "type": "literal"} ---------->
"name": "George" where the client knows that predicate "name" is a
string and not say a date or number or other kind of literal.
But in the most general case the client discovers as it goes, finding
new predicates and needs to be told - at least - that the value's
range is a Literal, typed-literal or URI. Hence the "type" field. Of
course, the powers that be could have defined predicate ranges in a
header section and avoided restating them for every assertion but ...
Also inline ranges are easier for simple "show me" clients (in
browser).
BTW in FMQL, I do serialize the JSON based on FileMan types -
http://repository.caregraf.org/fmql/file/tip/MUMPS/FMQLJSON.m . See
the "typed-literal" ref which catches date etc. Also "WORD PROCESSING"
fields are typed as "XML Literal" and not plain "Literal". I followed
SPARQL in "inlining the range" and not defining the scheme in a
header.
> > The problem with optimizing for the precise is it doesn't allow for the
> > general or sort-of-general.
>
> > The ontology community has some solutions for this. Both Cyc (
>
>
http://www.cyc.com) and SUMO (http://
http://www.ontologyportal.org/) have