What about
{
@context:
'https://github.com/unhosted/website/wiki/Categories#sandwiches',
@id: 'mailto:mic...@unhosted.org,
favSandwich : ingredients: ['bacon', 'cheese']
Yes!
+1
Kingsley
>> and whoever receives this data object will be able to
>> 1) if they already support
>> https://github.com/unhosted/website/wiki/Categories#sandwiches process this
>> as a favourite sandwich
>> 2) if not, make a developer read
>> https://github.com/unhosted/website/wiki/Categories#sandwiches and implement
>> support for it
>>
>> but, and this is what i finally came to understand today thanks to Melvin's
>> and everybody else's tireless attempts to explain this to me, /without/
>> referring to the source code of the original myfavouritesandwich
>> application. we have separated data documentation from code documentation.
>> so that's another useful step in separating applications from data i think.
>>
>> i was going to cross-post this to both the unhosted and the rww mailing
>> lists, because the term 'read-write web' refers principally to that
>> community group, but cross-posts are always so awkward so instead i'll post
>> it to unhosted and post a link to the thread on the rww one. if they feel
>> that this would be a confusing use of the abbreviation 'rww' then we will
>> pick one of the other options. but i do think it is what read-write web is
>> about, and that it would be the best, most accurate choice. so we'll see
>> what they say. :)
>>
>>
>> Cheers!
>> Michiel
--
Regards,
Kingsley Idehen
Founder& CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca handle: @kidehen
Google+ Profile: https://plus.google.com/112399767740508618350/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen
i think the assumption that a key-value pair has a subject is too strong, and the assumption that the data owner, as a person, is the subject of the data, is even stronger, and will mostly be inaccurate. maybe i asked the wrong question.
so for @context, it seems clear that we want to point to our wiki from inside each key-value pair. it's a bit of a waste of bytes - it would be nicer if we could do this only once per category, and have it apply to all key-value pairs contained therein, but for now i think it's good enough.
let's leave the topic of @id and instead look at pointers, first. For instance in Libre Docs we have a documents list, which is a list of documents. Some of these will be on your own storage, while others will be on the public storage of other people. maybe you even have documents in there that point to a normal http resource (e.g. an image that you hotlink in a text doc). So for these i would then use:
* #hash for documents on the same category of the same user.
* /category#hash for documents on other categories of the same user.
* //user@host/public#hash for documents that other users shared with you
* http://host/path for external http resources.
here, we haven't had to name our protocol, since we're only referencing resources that are local to it.
about things like SPARQL, i don't think we need it. I think easy-to-achieve and big steps forward here are:
1) add a comment with a link to documentation inside your data, just like you do in your source code. this is the @context field.
2) whenever you point to another key-value pair, use the standard URL format. Just like in C it's best practice to use proper pointers and not integers or other self-invented schemes, whenever your data is pointing to other data. that way the references you make can be resolved even without referring to your documentation.
I'll try to apply this to the 'sandwiches' and 'documents' categories. Does that make sense?