Friday, July 18, 2014

Guidelines for using the W3C Time ontology


This post contains some guidelines in form of recipes that can help in using the W3C Time ontology to represent time instants and intervals. Even if the focus is on a single ontology, similar approaches could be followed to represent time entities using other ontologies.

The next figure shows the main classes and properties of the Time ontology. For every entity the namespace is http://www.w3.org/2006/time.




Recipe 1. Representing time instants



Time instants can be represented using the Instant class and the inXSDDateTime property. The figure below shows an example of representing the instant for the time 19:30:05 on July 18th 2014.






The ontology allows an alternative way of representing instants, by relating an instant with a certain interval description (DateTimeDescription) using the inDateTime property. However, this representation only allows to approximate the instant by confining it to an interval, so it is not advised to follow it in order to describe time instants.

Recipe 2. Representing time intervals


Time intervals can be represented using the Interval class and the hasBeginning and hasEnd properties, which refer to the instant in which the interval starts and ends, respectively. The figure below shows an example of representing the interval for June 2014.






Usually, we are only interested in representing proper intervals, which are intervals whose extremes are different. Among other things this allows using standard interval calculus and to define relations between intervals. We could have defined the interval in the previous figure using the ProperInterval class as follows, since it is a proper one.





The ontology also allows to represent intervals with a higher level of granularity by means of the DateTimeDescription class and its related properties. One advantage of this representation is that it allows to represent more information about the interval, i.e., the day of the week, the day of the year, or the week. The figure below shows an example of representing the interval for June 2014 using the DateTimeDescription class.






Recipe 3. Representing relations between time intervals


As mentioned above, we can define different relationships between proper intervals, such as if they are equal, if they overlap, and so on. As an example, the next figure represents two intervals and states that one comes before the other.




Recipe 4. Representing time interval durations


The way of modelling the duration of a proper interval (the duration of non-proper ones will be 0) is by using the DurationDescription class and its related properties. The figure below represents the duration of the interval for June 2014 in terms of months and days.


These recipes provide a fast way of getting to grips with the use of the W3C Time ontology in different frequent modelling needs. Clearly, time modelling may lead to things much more complicated than those presented here and that are out of the scope of this post. Time zones can be represented using the Time ontology with the Time Zone ontology (described in the same note as the Time ontology). Other characteristics can be represented by extending the Time ontology, such as convex and non-convex intervals or infinity (unbounded) intervals. Other potential particularities are not covered by the ontology, such as representing open and closed intervals or representing absolute and relative time.

Monday, April 15, 2013

The AMOR Manifesto

Introduction

Ontologies are becoming increasingly more important in many different domains. However, there are still plenty of barriers to the reuse of ontologies, being the main one the lack of open availability of existing ontologies.

Agreeing on a common set of ontological commitments is costly and all this effort is wasted when others are forced to develop a similar ontology from scratch or to re-engineer an ontology from other available artefacts (documentation, figures, etc.).

The goal for the AMOR Manifesto is to articulate the vision of an ecosystem of Accessible, Machine-readable, Open, and Reusable ontologies that facilitates the reuse of these ontologies or parts of them. To this end, a set of principles have been distilled, based on the 5 star scheme defined for Linked Open Data.

Principles

The ontology is available on the web (whatever format) but with an open licence
★★ All the above, plus: available as machine-readable structured data (e.g., CycL instead of image scan of a table)
★★★ All the above, plus: non-proprietary format (e.g., OBO instead of CycL)
★★★★ All the above, plus: use open standards from the W3C (RDF Schema and OWL)
★★★★★ All the above, plus: reuse other people’s ontologies in your ontology

These principles define a set of minimal restrictions to ensure that ontologies are accessible on the web using open standards. It is not in the scope of this Manifesto to impose further quality restrictions on ontologies (e.g., regarding the usability of Linked Data vocabularies).

Invitation

Everyone is invited to support the principles of the AMOR Manifesto and to find new ways to make this vision a reality.

If you support this manifesto and the principles included in it, please leave a comment below.

Friday, February 15, 2013

How to organize a successful VoCamp - Part 5: Potential risks at VoCamps

In the previous posts in this topic, I tried to provide information that can be useful during the process of organizing a VoCamp. In this last part of the series, I will deal with the fact that, in our human nature we are always under the effects of Murphy's law. However, we can still try to avoid as much as possible those things that can go wrong.

Here you have a list of some potential risks to avoid, suggesting possible actions to escape from them. Feel free to add your own.

Low attendance

The VoCamp results do not reflect the consensus of a representative number of people.

Solution:
Improve the dissemination of the VoCamp to attract more participants. If it is too late for doing so, share and discuss the VoCamp results.

Difficulty in travelling to the VoCamp

The chosen location may be far away from people interested in participating or, in these times of economic downturn, people just cannot afford to do so.

Solution:
Organize two simultaneous VoCamps. This will require doubling the organization roles and effort, so don't do it unless it is crucial. Besides, you will require having two parallel agendas with some common sessions (beware of time zones) and videoconference and chat facilities to ensure a fluid interaction.

VoCamp becomes a tutorial/technology show/flyting/<insert here>...

Unless the activity is planned, the risk here is that people does not work in the VoCamp objectives.

Solution:
It will depend on what you want to avoid: ensure that participants satisfy the VoCamp pre-requirements, leave a small slot for people to showcase their work, or don't invite sharp-tongued poets.

Teams do not work as good as they could

Teams are composed by persons and there may be multiple reasons that make a group of persons not to work as a charm.

Solution:
Be careful when defining teams and ensure that everyone understands and follows the rules of the game. Also, be flexible, allow people changing from team to team if they want to do so.

Low participation

The VoCamp is packed to the rafters but no one is opening their mouth.

Solution:
Change! Change the format of the VoCamp, change groups, change collaboration techniques (or come up with a new one), etc. If you are lucky, you still have one more day when you notice this problem.

Lack of continuity

Nothing moves once the VoCamp ends. People does not know if the VoCamp produced some useful outcome or not, or if there are some next steps.

Solution:
Have a clear list of tasks to be performed after the VoCamp and monitor them and their results. Don't disregard the potential commitment of people to these tasks or even their availability to carry them out. Also, support the VoCamp continuity through some initiative (e.g., association, consortium, standardization body) that ensures impulse, monitoring and resource availability.


Apart from these things that could directly affect the VoCamp goals, there are other things that influence the VoCamp as a personal experience and that should not be ignored. Some things can enrich the VoCamp personal experience, such as having free food and drinks or a nice gala dinner. And other things can spoil it, such as bad food, bad weather, or lack of Wi-Fi.

Finally, if you have withstood the five-part series on organizing a VoCamp, I would like to know your sincere opinion about it.

Please comment! 

 How to organize a successful VoCamp:

How to organize a successful VoCamp - Part 4: After the VoCamp

In this post we continue with one of the main messages of the last post: The VoCamp does not end with the VoCamp!

After having a good time, and once you thought everything had finished, there are still some things to do.

Review and complete results

Maybe in the VoCamp only a conceptualization was drafted on board and now you want to implement it as a ready-to-be-used ontology. Or you already implemented an ontology full of ontological commitments but you still have to improve its documentation.

In any case, review what you did. Don't trust what was done while ten people were talking at the same time in a room.

Document and disseminate results

I already mentioned properly documenting your ontology, either if you have implemented it or if you have just some drawings or photos. Other interesting things to document are the discussions or the rationale that led to taking some decisions instead of others; these can be collected in minutes. And don't forget to take note of those things about the VoCamp process itself that may help you or others in the future such as lessons learnt, best (and wrong) practices, etc.

Once you have finished, don't keep all that information for yourself! The VoCamp web page is the best place to publish this information or to provide links to where the information can be obtained.

Discuss results

Even if you have gathered the most brilliant minds in the area, inevitably they are not representative for the whole community around a topic. Therefore, try to discuss your results with others or to present them to other audiences. Surely you will gather some good feedback!

 How to organize a successful VoCamp:

Friday, January 25, 2013

How to organize a successful VoCamp - Part 3: At the VoCamp

The VoCamp day has come. By now, you should have some things clear for the next couple of days (which is the common duration of a VoCamp, since a one-day event can be too short).
And the most important thing that you must have clear is the goal of your VoCamp, because this goal is what should guide the whole event.

Having concrete goals and restricting the scope of the VoCamp is advisable in order to ensure that you will obtain the results that you want. This usually leads to cover a single domain (or subdomain) or a set of tightly-related domains. You can always organize a multi-domain VoCamp, dealing with several unrelated domains, but in this case interactions between participants can decrease ("Do you think that I can apply your protozoa digestion concepts to my ontology for kernel modules in operating systems?").

As a handy reference, here you have a checklist of the inputs and outputs of a VoCamp.
Inputs:
  • VoCamp goals
  • Domains covered
  • Reading list
  • Participant list
Outputs:
  • Models
  • Pictures (e.g., of sticky notes or boards)
  • Next steps
Take care not to disregard this last output. The VoCamp does not end with the VoCamp!

The VoCamp outcome

The added value of gathering people together in a VoCamp is the possibility of discussion and consensus-reaching.

Therefore, if your expected outcome is to develop a new ontology, take advantage of this added value and focus on activities such as specification or conceptualization, instead of trying to produce an OWL implementation.

Of course, you can have other outcomes in mind. In any case, prefer tasks that demand human interaction and leave other mechanical/technical tasks for another time.

Potential VoCamp outcomes:
  • Develop a new ontology
  • Analyse other ontologies/models
  • Specify ontology requirements (e.g., competency questions)
  • Extend an existing ontology
  • Define mappings between ontologies
  • Identify ontology design patterns
  • Evaluate or debug ontologies
  • Implement an ontology (yes, even this is a valid outcome)
  • Any other outcome that you can think of

Grouping participants

It may happen that you need to split participants into different groups. This may be required in circumstances such as when multiple domains (or subdomains) are being covered in the VoCamp, or when there are plenty of participants and certain tasks (e.g., discussion or consensus reaching) are not efficient. In this second case, avoid working in parallel unless you have a significant number of participants.

If you make groups, you will need group leaders, who will be in charge of leading the tasks to be performed in the group and taking them to a good end.

And if you expect having groups, it is better to identify in advance group leaders (as another input for the VoCamp). Try to find people with a motivation for leading the group (e.g., the creator of the ontology to be extended in the group).

VoCamp schedule

Which is the best way of reaching the VoCamp goals in a limited period of time? This is something yet to analyse; however, there are different sessions that should be part of your VoCamp schedule:
  • Participant presentation (including related work and interest in the VoCamp)
  • What is a VoCamp (how does it work and what is expected from participants)
  • VoCamp goals and scope
  • Working sessions (see next section)
  • Outcomes presentation
  • Discussion
If you plan to have different groups working in parallel, you will need to add sessions for
  • Group creation
  • Findings sharing
And don't forget about other types of sessions that do not directly lead to the VoCamp outcome but strongly support it, such as
  • Free time slots, so people can open their laptops and make things unrelated to the VoCamp (such as reading email) instead of doing them during the rest of the sessions. 
  • Breaks, for networking, informal discussions, resting, etc. 
  • Lunches and dinner, for more networking, having fun, drink some beers, etc.
Finally, there are certain sessions that are not recommended based on previous experiences; these are tutorial sessions, that is, those sessions where someone spends a significant amount of time presenting or educating the rest of the participants in a certain topic. This type of sessions should be kept to a minimum, since the important ones are working sessions that really take advantage of gathering people together.

Working sessions

Working sessions are the most important part of the VoCamp. However, there is not many information on how to carry them out successfully. While keeping the notion of an informal event, the rules of the game (e.g., participant roles, collaboration techniques) should be defined and clear for participants.

Make some research and find those collaboration techniques that are more suited to your task at hand and to your audience. Don't worry about making things more structured, but don't forget letting people have fun!

Different techniques will require different tools.  However, prefer non-digital tools (e.g., pens, boards, flip-chart pads, sticky notes, etc.) over digital ones (e.g., ontology editor, wiki, document processor).

Ask people to let their laptops closed (and their phones in the pocket (and their tablets in their cases (and ...)) to avoid distractions. The schedule already contains different free time slots, so sooner or later they can go back to their cyber-lifes.

 How to organize a successful VoCamp:

Friday, December 7, 2012

How to organize a successful VoCamp - Part 2: VoCamp participants

In this post I deal with some details regarding VoCamp participants and that could be of interest both to people organizing VoCamps and to those participating in them.

Contacting participants 

In the previous post I already mentioned the need for having an open list of all those people that could be interested in the VoCamp's goal (or in its outcomes) and for contacting participants well in advance. Now, the million-dollar question is: which is the best way to contact participants?

To answer this, first we have to enumerate the different possible ways of contacting participants. Any approach here is valid: use mailing lists, social networks, individual contacts, etc. Nothing new so, again, which is the best way?

You can assault everyone in the next conference you attend; this surely will make everyone know about the VoCamp but don't expect a direct increase in participation (you should learn to interpret the kindness of the waiter serving coffees).

Experience shows that sometimes indirect contact (mailing lists, social networks) works and sometimes it doesn't and that sometimes direct contact to individuals works and sometimes it doesn't.

My guess here it that a main factor to take into account is the social one, that is, the existence of a community of interest (or of several) that will benefit from the VoCamp outcomes. These communities should exist, independently of its size. They should be identified them while preparing the VoCamp, and taken into account when disseminating the call for participation.

Therefore, disseminate your VoCamp to mailing lists, social networks and events that are specific to those communities; contact those people that are relevant in these communities since they can serve as an attractor for the VoCamp; and make the community goals align with the VoCamp goals, even if you have to change your initial plans.

Number of participants

Regardless of your success in attracting participants for the VoCamp, sooner or later you have to estimate the number of participants that you expect to have in the VoCamp. You will need this number to plan for rooms, meals, etc.

You will spend your nights awake thinking: Maybe 4 participants are too few for a VoCamp? Maybe more than 20 participants are too much for the VoCamp?

For this, try to be realistic and don't worry about the numbers. Success will depend on: the VoCamp goal, the commitment of participants, and your ability to adapt the VoCamp to the actual number of participants.

Participant profile

The other side of the story are VoCamp participants. Don't be naive here, you don't want everyone at your VoCamp. As I just mentioned: size does not matter; and you should avoid having people that won't contribute to the VoCamp's goals.

Participants should also know what you expect from them. Maybe this is something that you still do not have clear at this stage of the process, but sooner or later you will have to tell them.

Furthermore, you should have clear the pre-requirements that VoCamp participants should satisfy, and communicate them to any potential participant. You may require people with expertise in a concrete domain, in ontology engineering, in some concrete standard or technology, and so on.

The clear thing is that, the more the pre-requisites covered by a participant, the most suitable he/she is for participation. Additionally, participants with previous experience in VoCamps are always a plus, since they are already introduced in The Way of the VoCamp.

Do not disregard the profile of your participants, it may happen that you need to take decisions based in it. For example, I have a room for 20 persons and I have 40 interested participants.

The Way of the VoCamp

This last part of the post is about you. Yes, I'm referring to you. Don't look away from the screen. You want to participate in a VoCamp, but you are not sure of whether you have what it takes to do so.

Take a look at your inner self and check whether you will let the following principles guide your Way through the VoCamp:
  • I have interest in the topics of the VoCamp.
  • I have a personal goal for the VoCamp, and it is aligned with the VoCamp goals.
  • I know what is expected from me and I will participate actively in the VoCamp.
  • I am aware of the VoCamp pre-requirements and I will make my best to satisfy them.  


 How to organize a successful VoCamp:

Thursday, November 15, 2012

How to organize a successful VoCamp - Part 1: Before the VoCamp


Tomorrow I will participate in the 1st VoCamp on Energy Efficiency Modelling in Buildings, organized by the Adapt4EE project.

If you think about it, there is not much information in the Web that supports people organizing VoCamps. When you check the vocamp.org wiki, the page devoted to how to run a VoCamp was created during the organization of the first VoCamp in 2008 and has not been further updated.

Because of this, I will write a series of blog posts devoted on how to successfully organize a VoCamp, collecting the experiences and lessons learnt from the people in the Ontology Engineering Group who have organized or participated in these type of events.

For starters, in this post I will talk about what you should do before the VoCamp. The checklist is the
following:

Define the goal of the VoCamp.
This is something that has to be clear from the beginning: what you want to achieve.

Define a potential participant list. 
This list should include everyone interested in achieving your goal (or in collaborating with you to achieve it). Don't stay just with the people that you know, try to find new friends!

Make a budget. 
Even if you count with having free rooms in your institution, organizing a VoCamp entails some other costs (e.g., meals or drinks).
Since people come to work voluntarily, try to avoid registration fees. If you need money, you can always look for an sponsor to support the VoCamp or some extra activity like a gala tapas dinner.

Choose the location.
Make it easy for people travelling from far away. This usually comes in contradiction with making things easy for you.
Try to minimize costs in the room, maybe your institution has some working space and, if not, you can try another places. Don't restrict yourself, a pub will work.
Also, check the opening hours of the place if you plan to extend your working sessions in certain days (e.g., Saturdays).
Choose one or more rooms with enough space and where you can move chairs and tables; flexibility here is a must.

Choose the date.
Be aware of relevant events for your audience.
Here you have the option of collocating the VoCamp with some event of interest for your potential participants. This will increase participation, but can easily decrease it or distract people. You don't want participants to leave the VoCamp because they need to train for a marathon next morning (what kind of events were you thinking of?).

Prepare a participant pack.
Important things to include are: a hotel list, how to reach the city and the room, contact person with phone number, and an initial reading list (if needed).

Create a web page.
You can do it at the vocamp.org wiki, in your own wiki, in your preferred social network, etc. Microblogging is not recommended to host this page (unless you are an absolute master of the 140 characters!).
Here the important thing is that the page is open and accessible by anyone.
For the content, check the template in vocamp.org.

Contact participants.
As soon as possible if you want to gather a significant number of people.
But not before having things clear; take into account that after being contacted, people has to take the decision of whether attending the VoCamp or not, so they need some key information: goals, location, costs, etc.

As mentioned above, tomorrow (it is already today after finishing this post) I'll be VoCamping.
When you organized your VoCamps, did you make these things? And, if you had to organize one in the near future, would you do them?
Would be nice to know.


 How to organize a successful VoCamp: