GSoC Final Project Deadlines

Hi all,

This concerns the final project push for Vikash, our GSoC student
assigned to the JSON-LD project. The final date of the program is
September 23rd, 2013. Vikash and I discussed what he needs to get done
before that date, and these are the major items:

1. Finish the LinkedIn App so that it generates at least 20 different
   property types in JSON-LD. The mappings to schema.org don't have to
   be perfect, but they should be largely compatible with People and
   Organizations. For anything that doesn't map cleanly, create a new
   LinkedIn vocabulary URL term: http://linkedin.com/vocab#
2. Generalize the Creator Tool so that it is easy for other developers
   to add new types to the Creator Tool. Ideally, a developer should
   be able to add a JSON-based template that will then be used in the
   Creator tool to dynamically create the UI.
3. Using the GreenTurtle RDFa processor, write a JavaScript tool that
   can take the schema.org vocabulary at
   http://schema.org/docs/schema_org_rdfa.html and
   translate it into a usable JSON-LD Context.

You must accomplish tasks #1, #2, and #3 to pass GSoC.

-----------------------------------------------------------------------

Here are some suggestions on how you could accomplish each task:

Finish the LinkedIn App
-----------------------

You now have my LinkedIn data:

https://gist.github.com/msporny/841a0243e8a26031da89

It has around 31 different types of properties, so extracting 20 out of
it shouldn't be that difficult to do. Try to map most of the properties
to schema.org properties. For the ones that don't map, like
volunteerExperiences, just map them to something like
http://linkedin.com/vocab#volunteerExperiences

Generalize the Creator Tool
---------------------------

You did a first pass of the JSON-LD Creator tool. In order to make it
very useful to the community, you need to generalize it so that the hard
coded forms, like the one for Person:

https://github.com/ivikash/json-ld.org/blob/creator/creator/index.html#L105

are dynamically generated from a JSON-LD file. For example, this could
be a JSON-LD file that generates the form based on the type of object
being created:

{
  "@context": "http://json-ld.org/creator/context.jsonld",
  "@type": "http://json-ld.org/creator/vocab#Template",
  "label": "Person",
  "fields": [{
    "label": "Name",
    "jsonldProperty": "name",
    "inputType": "text",
    "inputHint": "Full Name of the person"
  }, {
  ... other fields go here ...
  }]
}

The creator tool would then take the structure above and generate the
input form for the data. It would also then be capable of serializing
the input data to JSON-LD with the click of a button. Transitioning to
this more generic way of doing the input form will allow other
developers to just focus on creating the JSON documents, greatly
enhancing the types of JSON-LD markup that can be created using the tool.

Generate a useful schema.org JSON-LD Context
--------------------------------------------

We still need a useful schema.org JSON-LD Context for developers. In
order to keep pace with new schema.org developments, we will have to
automate the process of translating the schema.org vocabulary to a
JSON-LD Context. In order to make sure that other developers can work on
this tool, it would be best to make it online and write it in
JavaScript. To accomplish this task, you could do the following:

Download the following file and store it in the json-ld.org repository:

http://schema.org/docs/schema_org_rdfa.html

Then use the Green Turtle RDFa processor parse the document and extract
the schema.org data out of it:

https://code.google.com/p/green-turtle/

Specifically, you will only need the processor:

https://code.google.com/p/green-turtle/downloads/detail?name=RDFaProcessor.1.2.0.js

Iterate over the data and translate each Class and property into a
JSON-LD term with the appropriate term definition. At the very minimum,
the term definition should either be this (if one of the Range entries
for the property is "Text" or "Number"):

"PROPERTY_NAME": "http://schema.org/PROPERTY_NAME"

or this (if there is only one Range, and it is not Text, Number, etc.):

"PROPERTY_NAME": {
  "@id": "http://schema.org/PROPERTY_NAME",
  "@type": "@id"
}

Bonus points for specifying "Date" Ranges correctly.

------------------------------------------------------------------------

Please let us know if you will be able to complete these tasks in the
next 20 days. If any of these goals are not clear, please let us know.
Know that whatever tasks that you agree to complete will be used as your
final evaluation criteria, so it's important that we all agree on what
the expectations are for the 23rd.

-- manu

-- 
Manu Sporny (skype: msporny, twitter: manusporny, G+: +Manu Sporny)
Founder/CEO - Digital Bazaar, Inc.
blog: Meritora - Web payments commercial launch
http://blog.meritora.com/launch/

Received on Tuesday, 3 September 2013 16:34:41 UTC