Disclamer
Please do not use this version of the ontology since it is a document in development and will be subject to constant changes!
OPO 0.4
If you would like to participate in shaping the new version of the Online Presence Ontology, you are more than welcome to join our discussion group and post your comments, suggestions or criticism regarding our work. On this page we present our initial ideas for the OPO 0.4 version and explain the motivation for changes being made. Please note that only initial changes relevant for the OPO 0.4 version are explained on this page. For details about previous versions you may refer to the OPO Specification, and for the ongoing changes please refer to the discussion group.
opo:customMessage - Attention : Important Change
We have decided to change the range of opo:customMessage property from a simple string, to a sico:Item, thus making it an object property. This step was necessary for supporting different lifestreaming use-cases where users can comment on other people’s statuses (e.g., on Twitter). However, a difference exist between those custom messages, and others that do not support comments (e.g., statuses in the domain of Instant Messaging). For the first type we recommend using sioc:Post to describe the custom message, since it supports replies through sioc:has_reply property. Therefore, sioc:Post (and its subclasses e.g., sioct:MicroblogPost) are meant to be used whenever a custom message is actually a post that can be replied to (examples include Twitter posts and Facebook status messages). For other uses where commenting a custom message is not a practice you may use our specific form of sioc:Item defined in OPO, called StatusMessage.

In the following example we show a typical custom message declared on Twitter and another custom message that is posted as a reply to it. To enable replies we use sioc:Post as a type for our custom message. For the purposes of this example we imagine an enhanced version of Star Wars, where main characters use Twitter for communication.
@base <http://ggg.milanstankovic.org/opo/examples#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix opo: <http://ggg.milanstankovic.org/opo/ns#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix sioc: <http://rdfs.org/sioc/ns#>.
:datrhVaderTwitterAccount rdf:type sioc:User;
foaf:accountServiceHomepage <http://www.twitter.com/>;
foaf:accountName "darthVader".
:datrhVaderStatus rdf:type sioc:Post;
sioc:content "Luke, I am your father.".
:datrhVaderPresence rdf:type opo:OnlinePresence;
opo:customMessage :datrhVaderStatus;
opo:startTime "2008-03-01T18:51:19";
opo:declaredOn :datrhVaderTwitterAccount.
<http://starwars.net/darthVader> opo:declaresOnlinePresence :datrhVaderPresence.
:lukeTwitterAccount rdf:type sioc:User;
foaf:accountServiceHomepage <http://www.twitter.com/>;
foaf:accountName "luke".
:lukeStatus rdf:type sioc:Post;
sioc:content "No... No! That's not true! That's impossible!";
sioc:reply_of :darthVaderStatus.
:lukePresence rdf:type opo:OnlinePresence;
opo:customMessage :lukeStatus;
opo:startTime "2008-03-01T18:51:49";
opo:declaredOn :lukeTwitterAccount.
<http://starwars.net/luke> opo:declaresOnlinePresence :lukePresence.
The example also featuers the opo:declaredOn property used to connect the OnlinePresence being published with an account on an online service that was used to declare the presence (in this case a Twitter account) represented as sioc:User.
For expressing custom messages in systems that do not support replies, using the StatusMessage class instead of sioc:Post would be more suitable. The use of this practice can be found in further examples.
opo:currentLocation
Being inspired by travel-blogging, travel-twitting and the constantly increasing usage of mobile devices for engaging in online social interactions, we have decided to include the location data in the Online Presence Ontology. When people are on the move, permanent locations specified in their user profiles do not help much to position a user in the time of writing a post. On the other hand there are more and more GPS enabled devices that can automatically generate location metadata. Thus, we found it useful to extend the concept of Online Presence with location data and then connect posts to instances of Online Presence.
Other potential use would be in enabling complex contact restrictions in Instant Messaging, like "the user can be contacted by anyone from the same town". If we want to enable those restrictions (in the form of rules or policies) at some point in the future, it would be useful to define the user's current location.
For specifying location data we use the SpatialThing concept from the WGS84 Ontology. Here is an example Online Presnce with a current location:
@base <http://ggg.milanstankovic.org/opo/examples#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix opo: <http://ggg.milanstankovic.org/opo/ns#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix wgs84_pos: <http://www.w3.org/2003/01/geo/wgs84_pos#>.
@prefix sioc: <http://rdfs.org/sioc/ns#>.
:MyFlat rdf:type wgs84_pos:SpatialThing;
wgs84_pos:lat 48.858323471538;
wgs84_pos:long 2.29451715946198.
:MyCurrentPresence rdf:type opo:OnlinePresence;
opo:customMessage [ rdf:type opo:StatusMessage;
sioc:content "hating SNCF"];
opo:startTime "2008-03-01T18:51:19";
opo:currentLocation :MyFlat.
<http://ggg.milanstankovic.org/foaf.rdf#milstan> opo:declaresOnlinePresence :MyCurrentPresence.
Apart from specifying your location using (lat/long) coordinates, you can also reuse some geographic locations already defined in Geonames or elsewhere. This is especially useful in cases when you want to relate your presence to a specific geographical entity (e.g., Paris, Eiffel Tower) rather than just any coordinates. Since Geonames data is largely used this practice would also make query answering easier (comparing if two URIs are the same rather than doing some coordinates / distance matching to determine if two people are in the same city).
We demonstrate this approach in the following example where the location is specified using Geonames URI for Paris.
@base <http://ggg.milanstankovic.org/opo/examples#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix opo: <http://ggg.milanstankovic.org/opo/ns#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
:MyCurrentPresence rdf:type opo:OnlinePresence;
opo:customMessage [ rdf:type opo:StatusMessage;
sioc:content "hating SNCF"];
opo:startTime "2008-03-01T18:51:19";
opo:currentLocation <http://sws.geonames.org/2988507/>.
<http://ggg.milanstankovic.org/foaf.rdf#milstan> opo:declaresOnlinePresence :MyCurrentPresence.
opo:Action
It became a common practice for users on IM platforms to disclose their current music track. We initially intended to enable representation of this practice, but we concluded that current music track is just one of numerous actions that can be performed by a user while he/she is online. A practice of disclosing details about other types of action could easily be established, so we decided to go with a general concept opo:Action and specialize it to describe listening, reading or working on a project. Suggestions for additional activities are welcome. For now, the idea is to separate the activities into an extension of the OPO, entitled opo-actions.
opo:Listening
Listening is the Activity for describing current music listened by a user. For this purpose we use the mo:Track concept from the widely accepted Music Ontology. Here is an example where user declares that he is listening to a song already defined in DBTune datasets.
@base <http://ggg.milanstankovic.org/opo/examples#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix opo: <http://ggg.milanstankovic.org/opo/ns#>.
@prefix opo-actions: <http://ggg.milanstankovic.org/opo-actions/ns#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
opo-actions:music <http://dbtune.org/magnatune/track/513>.
:MyCurrentPresence rdf:type opo:OnlinePresence;
opo:startTime "2008-03-01T18:51:19";
opo:currentAction :ListeningNow.
opo:Reading
We primarily wanted to enable descriptions of book(s) a user is currently reading. For this purpose we connect the Reading action with swrc:Document from the SWRC Ontology used for representing all types of publications.
opo:WorkingOnProject
For representing projects on which a user is currently working, we use the doap:Project class from the DOAP ontology. Here is an example where user declares that he is working on the Online Presence Project.
@base <http://ggg.milanstankovic.org/opo/examples#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix opo: <http://ggg.milanstankovic.org/opo/ns#>.
@prefix opo-actions: <http://ggg.milanstankovic.org/opo-actions/ns#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix doap: <http://usefulinc.com/ns/doap#>.
@prefix sioc: <http://rdfs.org/sioc/ns#>.
:OPOProject rdf:type doap:Project;
doap:homepage <http://www.milanstankovic.org/opo/>;
doap:name "Online Presence".
:WorkingOnOPO rdf:type opo-actions:WokringOnProject;
opo-actions:project :OPOProject.
:MyCurrentPresence rdf:type opo:OnlinePresence;
opo:customMessage [ rdf:type opo:StatusMessage; sioc:content "working"];
opo:startTime "2008-03-01T18:51:19";
opo:currentAction :WokringOnOPO.
opo:publishedFrom and opo:SourceOfPublishing
The opo:publishedFrom property serves to connect an instance of opo:OnlinePresence with the type of source where it is published. The idea of distinguishing different sources comes from services like Twitter and Facebook that take into account whether a custom message is published from the Web or from a mobile device. Different sources will be represented by different instances of opo:SourceOfPublishing. This part is still a work in progress as we are considering different implications of different solutions. We are open to your suggestions.
Acknowledgments
We would like to thank to all of you who gave useful comments and suggestions that helped build this version. Special thanks to Adrien Joly who gave the idea for modeling the Online Presence context and Yves Raymond for the help on connecting with the Music Ontology.
We are also very grateful to Alex Passant for the help on connecting with SIOC and his general support to the project.
|
|
| Subscribe to Online Presence |
Coordinators :
- Milan Stankovic
- Jelena Jovanovic
-
Contributors :
- Design by Minimalistic Design
- OPO Logo by Uros Krcadinac
- Copyright © 2008, Milan Stankovic
Change Log
- 20 nov 2008: opo:sutomMassage domain changed to sioc:Item
- 20 oct 2008: new version available for comments

