- From: Benjamin Nowack <bnowack@semsol.com>
- Date: Thu, 6 Sep 2007 14:19:06 +0200
- To: cr <_@whats-your.name>
- Cc: semantic-web@w3.org
On 06.09.2007 00:59:55, cr wrote:
>{bnodeid: {prop: [{type: 'literal',value:"v"}]}}
>vs
>{prop: 'v'}
Ah, that looks rather compact. Let's see if I fully understood
your format (didn't really want to download your platform, sorry):
a doc/graph (or other resource container) is a simple array?
[
{...},
{...},
{...}
]
a resource is a json object of the form
{
"uri": "http://...#alec",
"http://xmlns.com/foaf/0.1/name": "Alec Tronnick",
"http://xmlns.com/foaf/0.1/knows": {"uri": "http://...#john"}
}
or for multiple objects
{
"uri" : "http://...#alec",
"http://xmlns.com/foaf/0.1/name": "Alec Tronnick",
"http://xmlns.com/foaf/0.1/knows": [
{"uri": "http://...#john"},
{"uri": "http://...#bob"}
]
}
?
Yes, I can see some benefits.
I have two questions:
How do you define a bnodeID and re-use it, so that you can avoid
duplication? Do you set the "uri" key to "_:b1"? (In that case
the key name should prolly be changed to "id" or something similar)
How do you get the prop values of a known resource w/o
having to loop through the array? This is one of the
advantages I see in the RDF/JSON proposal, being able to do
name = resources["http://...#alec"]["http://.../name"][0]["value"]
without the need for FORs, IFs or structure checks.
Let's assume there's a way to combine the two approaches, e.g. by
keeping resource IDs as root keys for direct access, but to allow
the native object format (as I can see the utility of natively
typed objects):
var doc = {
"resources": {
"_:bn1": {
"http://xmlns.com/foaf/0.1/name": [
"Alec Tronnick"
],
"http://xmlns.com/foaf/0.1/knows": [
{"id": "_:john"},
{"id": "http://...#bob"}
]
},
"_:john": {
"http://xmlns.com/foaf/0.1/name": [
"John Doe"
]
}
}
}
(I kept "object(s) are always arrays" as I found
approaches with "object might be array or value" a bit
annoying to work with.) The approach above should work
fine for many resource descriptions. The problem,
however, are cases where literals have types that go
beyond JSON's built-ins, e.g. "foo"^^ex:someDatatype,
or have a language facet. This information could not
be expressed in a compact serialisation.
I plan to go for the proposed RDF/JSON in my toolkit as
I haven't seen a format that's easier to produce and/or
to consume while supporting any structures that might
come out of an RDF store. The previous version had
different output options for different use cases, and I
guess I'll keep it that way. But I'm happy to change
the default output to some agreed-on format, and
RDF/JSON is a nice candidate, I'd say.
Benjamin
--
Benjamin Nowack
http://bnode.org/
Received on Thursday, 6 September 2007 12:19:19 UTC