Skip to content
This repository has been archived by the owner on Mar 15, 2019. It is now read-only.

Latest commit

 

History

History

resource

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Resource

The object specification is based on talks with

  • Arne Oberlander
  • Nicco Kunzmann
  • the Bachelor Project team
  • the content crawler
  • Thomas Haubner from tutory, thanks for the input

Schema

The schema is defined in the resource.json file. The schema is generated from the specification.

Specification

This Resource Specification is the binding discussion place. All code and schemas are derived from this document.

A resource is a JSON object with the following attributes:

  • title (required)
    The title of the document.
  • url (required)
    The location of the content.
    It should be HTTP/HTTPS.
  • description (optional)
    This is a description of the resource. It can be any text.
  • licenses (required)
    An array of specified lincese strings. TODO: Ask tutory about their model for remix. #5
  • mimeType (required)
    The mime type as defined in RFC2046
  • contentCategory (required)
    As defined here. Values:
    • "a" for atomic
    • "l" for learning object
    • "rl" for lerning object conform to at least one Rahmenlehrplan
    • "t" tool
  • languages (required)
    A list of languages given by country code. This is specified in IEEE-LOM, Section 1.3 Examples: de, de-ch
  • tags (optional)
    Tags are strings given as a list. If two objects have the same tag, they belong together through thi tag. E.g. in Khan Academy, there is a tag for the topic and the course. Thus, if you search for all resources with the same topic in the tag, you find all resources which belong to the topic.
  • thumbnail (optional)
    A url to the preview image. This could be the first page of a PDF, a small version of an SVG or PNG image.
  • dimensions (optional)
    In case of pictures and movies, this is the resolution e.g. 640pxX480px. In case of a PDF, this could also be "A4" or "letter", ... TODO: speicify the dimensions.
  • duration (optional)
    Form movies and clips, things that take time, this is the duration it takes to go though the object in default time. The unit is seconds. The type is float.
    Reference: IEEE LOM, 4.7
  • contextUrl (optional)
    This is the url with more context about the url. The contenxt provides more information about the object like license, versions, ... The url best referes to a page using schema. Example:
  • providerName (optional)
    This is the provider of the resource. Examples are be "Wikipedia" or "Khan Academy" or a special channel on YouTube like "The Simple Club".

If you like to have a new attribute, change one, delete it or change this document, please see the how to section below.

Content Category

Content Categories are discussed in this blog post. The Content Category is related to the curriculum.

How To Specify

If you like to tell others about your implementation of resource attributes, this specification document might be the right place. The goal is for each attribute to be the form to describe the use-case. E.g. we do not want to have two title attributes.

How to Add a New Attribute

You created a new attribute which is useful for your search engine or crawler? Then, you can follow this process to add the attribute:

  1. Create a new issue describing your attibute. Cover the following:

    • Is there an implementation?
    • What is the purpose?
    • What does it look like?
    • Is it optional or required?

    This allows other people to comment and think about if they need something like it.

  2. Create a pull-request with your changes. If you do not know how to do that, you can get help.

    1. change this file to include a description of the form
      - **attribute name** (optional|required)  
        A description of what it is for and examples
      
    2. change the json schema file to include your attribute. This makes it testable for others if they use your attribute properly. Also it prevents others from using it in a wrong way, not having read the updated specification.
    3. Add valid and invalid exampes of resources using your atttribute.

    Once the pull-request is created, you can modify it and get feedback. It should be merged within a week.

How to Delete an Attribute

If an attribute is not used any more, you can delete it.

  1. create an issue to delete the attribute.
  2. Create a pull-request for this attribute with these parts deleted:

How to Change an Attribute

In general, please open an issue to change the specification for the way you want it to have. If it is just a misspelling or a minor change, you do not need to do that and can create a pull-request immidietly.