Re: Creating JSON from RDF

2009-12-17 Thread Mike Bergman

Hi Dave,

Dave Reynolds wrote:

Dave Reynolds wrote:


Jeni Tennison wrote:


I don't know where the best place is to work on this: I guess at some 
point it would be good to set up a Wiki page or something that we 
could use as a hub for discussion?


I'd suggest setting up a Google Code area and making anyone who is 
interested a committer. That gives us a Wiki but also hosting for 
associated code for generating/navigating the format. I'd be happy to 
set one up.


Now done. We've opened a Google Code area "linked-data-api" and 
summarized both the aims/assumptions [1] and the various design issues 
and suggestions that have come out of the list discussions so far [2].


Excellent work pulling this information together.

Please see my comments at [1].

Thanks, Mike



The wiki is public access for reading and commenting.
Anyone who is interested in joining in with working on this please ping 
either Jeni or myself and we'll add you as a committer.


Cheers,
Dave

[1] http://code.google.com/p/linked-data-api/wiki/AssumptionsAndGoals
[2] http://code.google.com/p/linked-data-api/wiki/DesignQuestions




Re: Creating JSON from RDF

2009-12-17 Thread Mark Birbeck
An excellent summary of the state of play so far, Dave...count me in. :)


On Thu, Dec 17, 2009 at 1:48 PM, Dave Reynolds
 wrote:
> Dave Reynolds wrote:
>
>> Jeni Tennison wrote:
>
>>> I don't know where the best place is to work on this: I guess at some
>>> point it would be good to set up a Wiki page or something that we could use
>>> as a hub for discussion?
>>
>> I'd suggest setting up a Google Code area and making anyone who is
>> interested a committer. That gives us a Wiki but also hosting for associated
>> code for generating/navigating the format. I'd be happy to set one up.
>
> Now done. We've opened a Google Code area "linked-data-api" and summarized
> both the aims/assumptions [1] and the various design issues and suggestions
> that have come out of the list discussions so far [2].
>
> The wiki is public access for reading and commenting.
> Anyone who is interested in joining in with working on this please ping
> either Jeni or myself and we'll add you as a committer.
>
> Cheers,
> Dave
>
> [1] http://code.google.com/p/linked-data-api/wiki/AssumptionsAndGoals
> [2] http://code.google.com/p/linked-data-api/wiki/DesignQuestions
>



Re: Creating JSON from RDF

2009-12-17 Thread Frederick Giasson

Hi Jeni!
Thanks, that looks interesting, and the idea of supporting similar 
mappings to XML and to CSV is very attractive.

I also find this attractive :)

But I couldn't actually work out how I would use it in the kind of 
situation we find ourselves in. We have, for example, RDF like this:


  http://education.data.gov.uk/doc/school/520965.rdf

which we want to make readily usable by people creating mash-ups. What 
are the (minimal) definitions that we have to create to use irON to 
create customised JSON/CSV/XML from this RDF?


Normally, it is the other way around: people do use such notations (irON 
with its different profiles) to "intuitively" (at least, more 
intuitively) create data. So, one of the first goal of irON was to help 
data publishers to publish data without knowing and understanding all 
the specificities of RDF and all its serialization, while keeping it 
quite flexible to be able to describe complex data models. However, one 
of the requirement of irON was to be able to easily map it to RDF (when 
reading the specification, you will notice some similar concepts, which 
is a consequence of this requirement).


But naturally, if you primary source of data is in RDF, and you want to 
describe it in irON (with let sa, the irJSON profile), then can easily 
do the transformations (since RDF is probably the most flexible 
description framework out there, it is not a big deal to transform it in 
any other notation).


To make it complete, what would be required are three things:

(1) the linkage schema which describe the transformation rules
(2) the "schema" itself which describe the usage of the type/attributes 
(this is the ontology)

(3) the record instances file (which is/are the dataset files)

Lets take that RDF from your example above:


==
 rdf:about="http://education.data.gov.uk/doc/school/520965";>

   http://xmlns.com/foaf/0.1/Document"/>
   http://purl.org/dc/dcmitype/Text"/>
   rdf:resource="http://education.data.gov.uk/id/school/520965"/>

   Linked Data for Stepping Stones Nursery Group
   rdf:resource="http://education.data.gov.uk/doc/school/520965.rdf"/>
   rdf:resource="http://education.data.gov.uk/doc/school/520965.html"/>


   rdf:resource="http://education.data.gov.uk/doc/school/520965.json"/>
   rdf:resource="http://education.data.gov.uk/doc/school/520965.ttl"/>

 
==


Lets start with the linkage schema that would link the irON 
attributes/types to the RDF properties/classes



==
{
   "linkage": {
   "version": "0.10",
  
   "linkedFormat": "application/rdf+xml",
  
   "prefixList": {

   "dcterms": "http://purl.org/dc/terms/";,
   "dctypes": "http://purl.org/dc/dcmitype/";,
   "foaf": "http://xmlns.com/foaf/0.1/";
   },
  
   "typeList": {

   "Document": {
   "mapTo": "foaf:Document"
   }
   "Text": {
   "mapTo": "dctypes:Text"
   }
   },
  
   "attributeList": {

   "primaryTopic": {
   "mapTo": "foaf:primaryTopic"
   },
   "title": {
   "mapTo": "dcterms:title"
   },
   "hasFormat": {
   "mapTo": "dcterms:hasFormat"
   }
   }
   }
}
==

Note 1: you can change the name of the attributes, I used the same as 
the one of the ontology to save some time...
Note 2: I would suggest you to take a look at the Bibliographic Ontology 
for some of the "documents" description in your dataset: 
http://bibliontology.com (check the group and the ontology description).




Then you can describe a "schema" to give more information about the 
usage of these properties to the data consumers


==
{
   "schema": {
   "version": "0.10",
   "date": "17 December, 2009",



   "attributeList": {
   "title": {
   "prefLabel": "title",
   "description": "Title of a document",
  
   "allowedType": ["Document", "Text"],

   "allowedValue": {"primitive": "String"}
   },
 
   ..


   }
   }
}

==

*** As I noted in another email I send, the specification section 
related to schemas as been greatly upgraded, but we yet have to update 
the online document.




Then you can describe your record, in a dataset file, like this:


==
{
   "dataset": {
   "id": "http://education.data.gov.uk/...";,
   "prefLabel": "Dataset name",
   "description": "...",
   "source": {
   "name": "UK Government Data Developers",
   "ref": "@abc"
   },
   "creationDate": "02/09/2009",
   "linkage": "linakge_file_above.json",
   "schema": "schema_file_above.json"
   },
   "recordList": [
   {
   "id": "id_1",
   "type": "Document",
   "type": "Text",
   "title": "Linked Data for Stepping Stones Nursery Group",
   "primaryTopic": {
 

Re: Creating JSON from RDF

2009-12-17 Thread Dave Reynolds

Dave Reynolds wrote:


Jeni Tennison wrote:


I don't know where the best place is to work on this: I guess at some 
point it would be good to set up a Wiki page or something that we 
could use as a hub for discussion?


I'd suggest setting up a Google Code area and making anyone who is 
interested a committer. That gives us a Wiki but also hosting for 
associated code for generating/navigating the format. I'd be happy to 
set one up.


Now done. We've opened a Google Code area "linked-data-api" and 
summarized both the aims/assumptions [1] and the various design issues 
and suggestions that have come out of the list discussions so far [2].


The wiki is public access for reading and commenting.
Anyone who is interested in joining in with working on this please ping 
either Jeni or myself and we'll add you as a committer.


Cheers,
Dave

[1] http://code.google.com/p/linked-data-api/wiki/AssumptionsAndGoals
[2] http://code.google.com/p/linked-data-api/wiki/DesignQuestions