- From: carmen rocco <_@whats-your.name>
- Date: Wed, 20 Feb 2008 16:42:55 -0500
- To: public-rdf-ruby@w3.org
> structure defined in http://n2.talis.com/wiki/RDF_JSON_Specification
>
> I know you weren't that keen on the proposal cdr
right. thanks for your awareness!
any stuff like 'type' and 'value' spelled out over and over in a serialization (and this necessitating the same thing in consuming/producing code) i know something's amok and refuse to go there
plus the whole 'lang' and 'datatype' are special attributes thing. these are properties of a literal resource/node, specialcasing them in your JSON schema and API ignores this fact. theres URIs for the datatype predicates in XSD. Redland uses them. i turn them into ruby native values as so:
class E
W3='http://www.w3.org/'
XSD =W3+'2001/XMLSchema#'
XSDs = { XSD+'string'=>:to_s,
XSD+'nonNegativeInteger'=>:to_i,
XSD+'integer'=>:to_i,
XSD+'float'=>:to_f
}
end
class Redland::Literal
def to_type
dt=Redland.librdf_node_get_literal_value_datatype_uri(node); dt=dt && Redland.librdf_uri_to_string(dt)
value.send(E::XSDs[dt]||:to_s)
end
end
(submitted a patch to dajobe a couple months ago)
fwiw, this is how i typically throw a stream of triple into a hash:
r={}
produce do |s,p,o|
r[s] ||= {uri: s}
r[s][p] ||= []
r[s][p].push o
end
ditto on the pure parsers. although Redland compiles and works fine with ruby 1.9, and is testable/fast, im a fan..
also nice is the 'special sauce' it does to fish out triples, eg conneg, surfing doctypes, xml headers, mime content-types and what not, useful as a discrete lib. in pure ruby/python/php. perhaps even a working note should be written up..Virtuoso has its 'sponger' as well. i know Content-Type has some kind of weight value but theres more to it than just contenttypes, especially if the doc is some variant of HTML (link rel=alternate, etc). how to 'find' linked data? i know theres a how to publish doc floating about..
Received on Thursday, 21 February 2008 01:50:01 UTC