Modelling social networking platforms

This page contains instructions on the exercise on knowledge representation. The goal is to provide a knowledge model to describe information related to social networking platforms. The goal is provide enough knowledge in sufficiently precise way that an autonomous intelligent agent can find how to participate in the social activities on its own.

The delivery consists in providing a formal specification (an ontology) in the form of a logical theory (first order logic or description logic). I recommend using the Web Ontology Language (OWL) if the ontology is in description logic. OWL files can be generated using Protégé, an ontology editor from Stanford University.

The scenario

We assume that an intelligent artificial agents has a goal to join social networks, connect to participants in the network based on certain criteria, read messages posted by certain participants (in particular, ones that the social agent is following), post messages in response to other messages based on certain criteria, etc.

In order to arrive and operate on an arbitrary new platform, it needs to have access to a structured description of what can be done on the platform, and then to how it can do it.

The goal of this homework is not to programme the agent, but rather to formally represent the knowledge that such an agent would need.

Knowledge Model

The knowledge model in this exercise corresponds to the ontology or ontologies that define the generic classes and properties that characterise the domain of social networking platforms. It is very unlikely that you need to introduce instances at the level of the knowledge model. In your homework, instances should only exist to exemplify how to instantiate the classes and properties of your knowledge model.

Modelling possible operations

On social networking platforms, there are categories of actions that are possible on almost any such platforms. Sometimes, there are more specialised actions on certain specific platforms. The generic knowledge model should have a hierarchy of possible operations.

To describe how the operations can be executed, we just assume that it is possible using the standard Web of Thing – Thing Description from the W3C. It is sufficient to introduce a property from a possible operation to an affordance described in terms of Web of Thing Description.

Classes of operations should be organised in a hierarchy and deeper, more organised hierarchies will be valued.

Modelling the network itself

A knowledge graph can also describe the network of people and things being social connected, as well as the artifacts that result from the social interactions. Especially, participants create messages, threads, and sometimes more (documents, groups, projects).

Design the general model that can describe these things and instanciate it with a few examples (e.g., take a conversation from an existing social networking platform, describe it and its participants and so on).

Normally, all content provided by the users should have been made by using one of the operations identified in previous module. You should have a similar hierarchy of network content as you have of platform operations.

Connection to existing ontologies

This is not a requirement but you may identify existing Web ontologies that cover some parts of what you want to model. Do not overdo it though: There are many ontologies online, some of which are good (even standardised), most of which are bad. An example of a good ontology that relates to the domain of this exercise is SIOC.

Instructions

Your work will be made in groups of 3 or 4 students. The knowledge model must reflect the consensus of the group on how to model the domain of social networks and social networking platforms. You will deliver 3 files: an ontology file in OWL (concrete syntax should be Turtle); the documentation that goes with it, preferably in HTML but possibly in PDF or (worse) MS Word or OpenOffice writer; and a separate Turtle file that shows a concrete example of data instantiating and illustrating all parts of your model. You can use any editor to edit the ontology file.

The ontology file

The OWL ontology should provide a class hierarchy of possible operations on social networks, and a class hierarchy about the main entities that the platform describes, such as messages and threads, users. Optionally, you can also describe the logs of execution of actions, in order to describe situations like this tweet was consulted at time YYYY-MM-DDThh:mm:ss from IP address NNN.NNN.NNN.NNN.

Competnecy questions

Using your ontology, it should be possible to answer the following competency questions:

Organise your ontology well

Separate concerns as much as possible. This can be apparent by documenting different aspects of your knowledge model in different sections. Some suggestions are: discuss the posting operations (operations that generate content on the platform) separately from networking operations (follow, make friend, connect, etc.). Also, separate the operations from the content descriptions.

Add rich axioms

The extensiveness of the coverage is not essential in this work. I will value much more a small ontology with few operations, content types, etc. but rich and complex axioms. Make use of the complex concept constructs. Identify interesting knowledge that constrain how your ontology terms could be interpreted.

The documentation

The documentation must contain natural language labels for all the terms defined in the ontology, and a textual description of what the terms mean (you can use Protégé annotations with rdfs:label and rdfs:comment). The documentation must contain examples of usage of the terms you introduce. Additionally, any amount of details about the design choices can be given in the introduction of the documentation.

The text of the documentation can be entirely embedded in the ontology file (better) and the documentation can be generated automatically from the ontology file, using tools such as WIDOCO. You can also use the online service LODE. Otherwise, you can write your documentation from scratch in a document (HTML preferred, possibly PDF, avoid word processor formats).

The instance file

A Turtle file with instances that illustrate all the things from your model must be provided.

The following Turtle code provides a possible example of how concepts and relations could be instantiated.

PREFIX myonto: <http://example.com/myontology/>
PREFIX mysn: <http://example.org/mysocial/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

# Here is an example of a possible description of a mini social network
# It assumes that there exists an ontology with terms in the namespace myonto:
# We assume the social networking platform that hosts this social network is using namespace mysn:
mysn:mysocialnetwork a myonto:SNPlatform;
  rdfs:label "SuperSocial!";
  myonto:hasOperation
    mysn:register,
    mysn:postMessage,
    mysn:readMessage .

mysn:register a myonto:RegistrationOperation .
mysn:postMessage a myonto:PostMessageOperation;
  myonto:hasAffordance mysn:postMessageAffordance .

# The notion of "affordance" is defined in the standard Thing Description.
# It is referring to a potential capability of a thing.
# You do not have to define this further because it is part of an existing standard.

mysn:Antoine_Zimmermann a myonto:OnlineAccount;
  myonto:postedMessage mysn:messageAZ42;
  myonto:hasSocialConnection mysn:Tim_Berners-Lee .
mysn:messageAZ42 a myonto:Message;
  myonto:dateOfCreation "2024-03-15T14:51:42+01:00"^^xsd:dateTime;
  myonto:messageContent "Hello World!"@en .

Delivery

Deadline for delivery: April 15th, 2024

The ideal way to deliver your work is by using a Git repository. It is also advisable to use Git to collaborate on the files, if you are familiar with it. Otherwise, use a file hosting service. Send me the link by email before the deadline. Make sure that files delivered by way of a link to the Web are kept available for long enough.

last modified 2024/03/27 10:42:42 by Antoine Zimmermann.