Tell a story #117

Closed
literarymachine opened this Issue Mar 27, 2015 · 29 comments

Projects

None yet

7 participants

@literarymachine
Contributor

As an OER practitioner, I want to share the story of how I created or used OER to accomplish my goals.

@literarymachine literarymachine added this to the Contribute milestone Mar 27, 2015
@literarymachine
Contributor

During an unconference session at The Hewlett Foundation's Grantees Meeting that @drrobertfarrow and I held, this user story came up and was prioritized quite highly. The idea is to collect stories of how OER is used all around the world, simply geo-tagged semi-structured descriptions of "initiatives".

I really like the idea, because it directly engages the community and brings "human" content to the platform. Also, we can then analyze those stories and identify common grounds (e.g. tools that were used) to guide us through the process of identifying which data is most useful and thus important to be added next.

The proposed workflow is quite simple: let people send in their stories by email.

@literarymachine
Contributor

Acceptance criteria:

  • Title
  • Description
  • Image
  • Location
  • Time
  • Language
  • Contact
@literarymachine literarymachine changed the title from Add story to Tell a story Mar 27, 2015
@literarymachine
Contributor

Thinking about this some more, I believe that the closest match for "story" in our original data model is "project" (aka "initiative" in previous discussions), with a strong focus on high quality descriptions of these.
data-model

@literarymachine
Contributor

The five Ws:

  • Who did that?
  • What happened?
  • Where did it take place?
  • When did it take place?
  • Why did that happen?
@drrobertfarrow
Contributor

I think the 5 w model is great for describing projects/initiatives and the impact they have. But some stories might not fit. For example a user might want to tell the world about a project that is just starting and wrote about plans and aspirations.

@literarymachine
Contributor

True, @drrobertfarrow. But then again, you can also write about who is planning what to happen where and when. Why are they planning to do so? To this list we should also add the question of how things were or are planned to be done (e.g. which OER services are used).

@trugwaldsaenger
Contributor

I really do like the idea to collect "stories", because "stories" are a very natural way of communication. Stories can be used to communicate information on different levels at one time, which makes them much more attractive than pure metadata. "Storytelling" has become an rather innovative approach in the consultancy-business and just recently there was a Mooc on the "The future of Storytelling" which also includes a chapter on "Location Based Storytelling", which might be interesting in our context.

The interesting question for us is how "stories" could be matched to our datamodel. I agree with @literarymachine that (if we do not want to add the entity "story") the closest would be "projects". We always subsumed "initiatives" (the term frequently used in the RFP) under "projects". In our actual model "projects" develop "services", which might reflect that we (the project team) are looking at the OER world primarily from a technical infrastructure point of view.

But "Stories" (=projects/initiatives) probably will include more than pure technical aspects. I`m thinking here especially of "Open Educational Practices" (OEP). In my opinion "OEP" should be included in our data model as a new entity. I guess it would make sense to connect "OEP" to "projects" ("used in"/"developed in").

To summarize: "stories" could be collected as "projects". If they are differentiated by time, they can be connected to "services" and "OEP`s". Makes sense to me, though we certainly need to discuss this issue in detail. @acka47: Do we have a description of the entities used in our data model? If not we should start generating them...

@literarymachine
Contributor

Interestingly, I could not find a vocabulary to describe projects at first glance. While people, organizations and services easily map to schema.org, it provides no notion of a project.

FOAF provides a very general project class, but no properties or guidance on how to describe these. There is the Description Of A Project (DOAP) ontology, but that is geared towards describing open source software projects. The only other trace I could find is a link here, but that appears to be dead.

I definitely don't want to over-model, but if I did not miss something, we will have to define a data structure to capture what we want to be described. I believe this should be very simple for a start, basically capturing the five Ws mentioned above:

  • participant: people and organizations involved, can be a string in the first iteration but should be linked to Person and Organization entities eventually
  • description: this is an editorial text describing the what, the why and the how; the latter should eventually be analyzed and used to link to OEPs, services etc.
  • homepage: some sort of web page about the project
  • depiction: an image somehow depicting the project or its participants
  • location: location of the project, can probably be multiple
  • startDate: optional (but encouraged, useful for some sort of timeline features)
  • endDate: dito

This is something we could ask people to hand in by email immediately. Publishing it could be done by using a first version of an input template internally or in the extreme case by directly creating a JSON description.

PS: The above properties of a project are basically shared with those of an event, but I would argue that a participant is not an attendee amongst some other quibbles.

@literarymachine
Contributor

On a side note, it occurred to me that this "story" based approach could perhaps also be used to judge the relevance of an Organization (and maybe also a Service) in the context of the OER World Map.

In #29 it says:

As a OER activist I want to add an institution [i.e. organization, FO] that is somehow involved with OER to the OER World Map.

"Somehow involved with OER" is a pretty broad definition. "Involved in a project that is documented on the OER World Map" would clear this up a lot.

@philboeselager
Contributor

When modelling projects and especially when modelling stories as a kind of projects, a kind of "status" would be useful. While this status would semantically overlap with the information given by startDate and endDate, it could further qualify the story, as there could be options like: "gathering participants", "searching for partners", "conceptualisation", "in progress" etc. Providing this information would ease to get in contact for those who are searching for initiatives to connect themselves to. The idea is to gain community interaction this way.

@acka47
Contributor
acka47 commented Apr 1, 2015

Re. describing projects with schema.org or other vocabularies we should probably add our use case the discussion on @danja's project "proposal" for schema.org which is based in the project vocabulary mentioned in #117 (comment). See this thread on the W3C's public-vocabs list: https://lists.w3.org/Archives/Public/public-vocabs/2012Feb/0108.html. We might get the needed properties into schema.org if we try...

@literarymachine
Contributor

story_timeline

@philboeselager
Contributor

Where is the Like-Button?

@literarymachine
Contributor

Where is the Like-Button?

Do you mean a Facebook-Like for individual stories? Or for the whole OER World Map?

@philboeselager
Contributor

I mean the stories column.

@acka47
Contributor
acka47 commented Apr 2, 2015

We should probably best use schema:Action and the associated properties to describe an initiative. I guess we will have covered most use cases with this.

@literarymachine
Contributor

We should probably best use schema:Action and the associated properties to describe an initiative. I guess we will have covered most use cases with this.

What we would like the stories to describe is what is happening or has happened, so a big +1 from me!

@acka47
Contributor
acka47 commented Apr 2, 2015

I went ahead trying out the schema:Action class and its associated properties to write down a "story" in JSON-LD I would actually submit to the worldmap. I looks quite good to me and I think we can express a lot of things with schema.org (some of which we shouldn't add to a web form from the beginning on – e.g. different typs of contact points).

Benefit:
We can express nearly everything we want to with schema.org:

  • Name (name)
  • Description (description)
  • Image (image)
  • Location (location)
  • Time (startDate/endDate or startTime/endTime)
  • Language (This is indicated 1. via the language tag for name, description etc. and 2. via the available language of contact points.)
  • Contact (contactPoint, see possible problems below)
  • Participants (participant)
  • Tools/Services used (instrument)
  • linking to resulting services, tools, policies or else (result)

Possible problems:

  • I don't know how to best link an action to a contact person. In the example I made double use of schema:contactPoint (1. to link an Action to a person and 2. to link the person to her contact points (email, telephone). This doesn't feel alright, though.
  • Persons/Agents might have different descriptions/roles with regard to different Actions/Services etc. We will have to find an easy and not over-modeled way to express these e.g. by stating the role of a person in the entry of the specific Action/Service.
  • As indicated in http://schema.org/Action ("Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.") it is irritating why schema:startTime/schema:endTime are used with schema:Action. I'd prefer schema:startDate/schema:endDate as with schema:Event.
  • There is no way to express that someone is a moderator or chair of an action (similar to schema:organizer for a schema:Event.
  • [Edit] contactPoint is not intended to be used with schema:Action. What is an alternative?

Example:

{
    "@context": "http://schema.org/",
    "@type": "http://schema.org/Action",
    "@id": "http://oerworldmap.org/resource/0815",
    "name": {
        "@language": "de",
        "@value": "Gruppe OER-Metadaten"
    },
        "name": {
        "@language": "en",
        "@value": "OER Metadata group"
    },
    "description": {
        "@language": "de",
        "@value": "Die OER-Metadatengruppe dient dem Austausch von Interessierten und Fachleuten im deutschsprachigen Raum, die mit Metadaten im Bereich Open Educational Resources (OER) zu tun haben. Dabei sind sämtliche Themen relevant, die bei der Arbeit mit Metadaten eine Rolle spielen, wie z. B. Metadatenstandards (LOM, LRMI etc.) und Mappings, Kontrollierte Vokabulare, Konvertierungssoftware, Austauschprotokolle, verschiedene Arten der Exponierung von Metadaten (APIs, Linked Open Data,...). Das erste Ziele dieser Gruppe ist es, eine Harmonisierung der OER-Metadaten im deutschsprachigen Raum zu erreichen und hierzu eine Empfehlung zu erarbeiten."
    },
    "url": "https://wiki.dnb.de/display/DINIAGKIM/OER-Metadaten-Gruppe",
    "startDate": "2013-10-08",
    "actionStatus": "idle",
    "participant": "http://oerworldmap.org/resource/123adrian",
    "contactPoint": {
        "@type": "http://schema.org/ContactPoint",
        "availableLanguage": "de",
        "contactType": "listserv",
        "url": "http://lists.dnb.de/mailman/listinfo/dini-ag-kim-oer",
        "name": {
            "@language": "de",
            "@value": "Mailingliste der OER-Metadaten-Gruppe"
        }
    },
    "contactPoint": {
        "@id": "http://oerworldmap.org/resource/123adrian",
        "@type": "http://schema.org/ContactPoint",
        "name": "Adrian Pohl",
        "contactType": "person",
        "availableLanguage": [ "de", "en" ],
        "contactPoint": {
            "email": "pohl@hbz-nrw.de"
        },
        "description": {
            "@language": "de",
            "@value": "Moderator der OER-Metadaten-Gruppe"
        }
    },
    "object": {
        "@id": "http://oerworldmap.org/resource/12345",
        "@type": "http://schema.org/Answer(?)",
        "name": {
            "@language": "de",
            "@value": "Empfehlungen zur Publikation von OER-Metadaten (Entwurf)"
    },
        "name": {
            "@language": "en",
            "@value": "Recommendations for publishing OER metadata (Draft)"
    },
        "url": "https://wiki.dnb.de/x/hq_kBQ",
        "description": {
            "@language": "de",
            "@value": "Entwurf von Empfehlungen zur Publikation von OER-Metadaten. Eine Auflistung von Kern-Metadatenfeldern (Properties) und kontrollierten Vokabularen zur Beschreibung offener Bildungsressourcen. ..."
        }
    }
}
@literarymachine
Contributor

There is no way to express that someone is a moderator or chair of an action

I believe agent is close enough for this.

I don't know how to best link an action to a contact person.

Again, we could use agent as "The direct performer or driver of the action" to assume that this is the main contact, and participant as "Other co-agents that participated in the action" to assume these are secondary contacts. Also, I would leave out the object for now, but maybe add instrument to provide a means to answer the how. Finally, since we want to publish these stories on a geographic map, we should include location(s).

On a side note, it makes a whole lot of sense to denormalize the data in elasticsearch, i.e. not only referencing by URI but also including the data (see e.g. agent and participant below).

Thus, I would express (as I dare not say simplify) the example as follows:

{
  "@context": "http://schema.org/",
  "@type": "Action",
  "@id": "http://oerworldmap.org/resource/0815",
  "name": {
    "@language": "en",
    "@value": "OER Metadata group"
  },
  "description": {
    "@language": "de",
    "@value": "Die OER-Metadatengruppe dient dem Austausch von Interessierten und Fachleuten im deutschsprachigen Raum, die mit Metadaten im Bereich Open Educational Resources (OER) zu tun haben. Dabei sind sämtliche Themen relevant, die bei der Arbeit mit Metadaten eine Rolle spielen, wie z. B. Metadatenstandards (LOM, LRMI etc.) und Mappings, Kontrollierte Vokabulare, Konvertierungssoftware, Austauschprotokolle, verschiedene Arten der Exponierung von Metadaten (APIs, Linked Open Data,...). Das erste Ziele dieser Gruppe ist es, eine Harmonisierung der OER-Metadaten im deutschsprachigen Raum zu erreichen und hierzu eine Empfehlung zu erarbeiten."
  },
  "url": "https://wiki.dnb.de/display/DINIAGKIM/OER-Metadaten-Gruppe",
  "startDate": "2013-10-08",
  "actionStatus": {
    "name": "idle"
  },
  "agent": [
    {
      "@id": "http://oerworldmap.org/resource/adrian",
      "@type": "Person",
      "givenName": "Adrian"
    }
  ],
  "participant": [
    {
      "@id": "http://oerworldmap.org/resource/felix",
      "@type": "Person",
      "givenName": "Felix"
    },
    {
      "@id": "http://oerworldmap.org/resource/philipp",
      "@type": "Person",
      "givenName": "Philipp"
    }
  ],
  "instrument": [
    {
      "@type": "Service",
      "serviceChannel": {
        "serviceUrl": "http://lists.dnb.de/mailman/listinfo/dini-ag-kim-oer"
      }
    },
    {
      "@type": "Service",
      "serviceChannel": {
        "serviceUrl": "https://wiki.dnb.de/display/DINIAGKIM/OER-Metadaten-Gruppe"
      }
    }
  ],
  "location": [
    {
      "@type": "Place",
      "address": {
        "@type": "PostalAddress",
        "addressCountry": "DE",
        "addressLocality": {
          "@language": "de",
          "@value": "Frankfurt"
        }
      }
    },
    {
      "@type": "Place",
      "address": {
        "@type": "PostalAddress",
        "addressCountry": "DE",
        "addressLocality": {
          "@language": "de",
          "@value": "Köln"
        }
      }
    }
  ]
}
@literarymachine
Contributor

It should be clear that this data model is relevant for storage and presentation and guidance as to what to ask for. When actually asking people to share their stories via email, we should stick to a very clear language, simply asking for (some of) the 5Ws. Once implemented, the data model will be hidden behind a nice editing UI.

@literarymachine
Contributor

oerwm_story

@literarymachine
Contributor

Here is a slight modification of the draft in #117 (comment). If we always expand the most recent story, we can start using this layout from the very first story on. What do you think, @buschfeld and @j0hj0h?

oerwm_story

@buschfeld

As for the concept I definitely like the idea of marking the latest entries in the map and maybe add a slight animation to the local representation of the most recent one. Having this one being expanded to i.e. 300-500 signs would also add to the impression "hey there is something going on". But I am not sure, if we should use a permanently visible column layout here. In a way it would be consistent to the representations we want to suggest for further aggregations and item details – on the other hand layers (or kind of speech bubbles on top triggered by mouseover or mouseclick) might be more logical in this case. We will have to check this ...

@literarymachine
Contributor

What I like about the column vs. mouse-over behavior is the fact that current content is presented right away, without forcing the user to any further interaction. And that, like you said, it is sort of a reduced version of what is planned anyways. @j0hj0h and I will give this a shot on Wednesday.

@literarymachine literarymachine added a commit that referenced this issue Apr 16, 2015
@literarymachine literarymachine Merge branch 'master' into story/#117
Conflicts:
	conf/MessagesBundle.properties
db76c4d
@trugwaldsaenger
Contributor

Two questions:

  1. There is no pin or other mark on the map, but the country is displayed in another colour as soon as "initiatives" are included. So its either people or initiatives are displayed by the colour scheme?
  2. If you click on the contributer of a story an e-mail template opens. Is this a temporary solution till we have profile pages for people?
@literarymachine
Contributor
  1. There is no pin or other mark on the map, but the country is displayed in another colour as soon as "initiatives" are included. So its either people or initiatives are displayed by the colour scheme?

There is no pin because I didn't have an exact location, only the country. Using a different heat map color for countries with initiatives is currently just an experiment, pins will be used when we have locations. If you could provide an example story that would be very helpful.

  1. If you click on the contributer of a story an e-mail template opens. Is this a temporary solution till we have profile pages for people?

I don't know. Since I don't have any acceptance criteria here, I just did what I thought is reasonable. Feel free to define what you expect.

@literarymachine
Contributor

If you click on the contributer of a story an e-mail template opens.

What is an email template? This is a simple mailto-Link; depending on your computer's settings, it will most likely bring up your email client.

@literarymachine
Contributor

After a chat with @trugwaldsaenger, the following acceptance criteria were added:

  • If no location(s) are directly attached to an action/story, the location(s) of the related agent will be pinned on the map
  • A view of a single action/story should contain info boxes about related entities (most importantly agent and participant, but also instrument when applicable)
This was referenced Apr 29, 2015
@j0hj0h j0hj0h added a commit that referenced this issue Apr 30, 2015
@j0hj0h j0hj0h Merge branch 'story/#117' of github.com:hbz/oerworldmap into story/#117
Conflicts:
	app/assets/stylesheets/main.less
	app/mustache/LandingPage/index.mustache
	app/mustache/StaticPage/index.mustache
	public/javascripts/main.js

+: integration of the new map - half way ... forgot to commit after resoluting merge conflicts
9c6264c
@j0hj0h j0hj0h added a commit that referenced this issue Apr 30, 2015
@j0hj0h j0hj0h Merge remote-tracking branch 'origin/story/#117' into story/#117
Conflicts:
	conf/application.conf
a869804
@literarymachine literarymachine added a commit that referenced this issue May 6, 2015
@literarymachine literarymachine Merge branch 'master' into story/#117
Conflicts:
	public/javascripts/main.js
9fad20a
@literarymachine literarymachine added a commit that referenced this issue May 13, 2015
@literarymachine literarymachine Merge branch 'sidechain/#117_amendRequest' into story/#117
Conflicts:
	app/controllers/ResourceIndex.java
a46aa38
@j0hj0h j0hj0h added a commit that referenced this issue Jun 13, 2015
@j0hj0h j0hj0h Merge branch 'story/#117' of github.com:hbz/oerworldmap into story/#117
Conflicts:
	app/assets/stylesheets/main.less
	app/views/main.scala.html
	public/javascripts/behaviours/map.js
36eb202
@j0hj0h j0hj0h added a commit that referenced this issue Jun 13, 2015
@j0hj0h j0hj0h Merge branch 'story/#117' of github.com:hbz/oerworldmap into story/#117
Conflicts:
	public/javascripts/behaviours/map.js
e21234b
@literarymachine literarymachine added 6 - Done and removed 1 - Ready labels Jul 13, 2015
@danja
danja commented Oct 4, 2015

I like "tell a story". feel a tweet coming on :)

@acka47 acka47 removed the 6 - Done label Mar 18, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment