W3C home > Mailing lists > Public > public-media-annotation@w3.org > July 2010

Re: RE : [mawg] action-249: new OWL version (rev. 4) of the ontology available

From: Pierre-Antoine Champin <pierre-antoine.champin@liris.cnrs.fr>
Date: Fri, 30 Jul 2010 09:25:19 +0200
Message-ID: <4C527E5F.7010202@liris.cnrs.fr>
To: Tobias Bürger <tobias.buerger@salzburgresearch.at>
CC: "public-media-annotation@w3.org" <public-media-annotation@w3.org>
Hi Tobias,

I completely agree with your analysis below, except that I don't really
see how options 3 is more complex than option 2, regarding the
complexity of SPARQL queries... (besides the fact that you chose longer
names ;-)

Indeed, in option 3, you can omit the rdf:type of the intermediate
resource, as it will be implied by the domain of the properties; so you
end up with 3-triples in each example, with a one-to-one correspondence
regarding the conveyed information...

I acknowledge that the ontological commitment is not exactly the same in
both options, though. From the naming of the resources, in option 2 the
intermediate resource represents a *role*, while in option 3 it
represents an *event*. But as such, I don't see one to be more complex
than the other.


On 30/07/2010 06:38, Tobias Bürger wrote:
> Dear all,
> first of all thanks for the lively discussion around the ontology.
> Clearly there are some things to sort out, but I guess we are on the
> right way.
> I want to comment on the role issue in the ontology for which something
> has to be changed to make the modelling more understandable and clearer
> as current naming of the properties (isAuthor etc.) and the class
> hierary is still not totally clear as the comments by Werner, Veronique,
> and Pierre-Antoine show.
> To pick up Pierre-Antoine's comment, our ontology should, wrt. to roles
> a person/organisation can play, reflect the following: "the
> 'contributor' role as played by agent X for resource Y".
> Our ontology should further adher to the terminology defined in the
> Ontology for Media Resource 1.0 document and it should ideally reflect
> good modeling practices.
> Wrt. to persons/organisations and their "contribution" to a media
> resource we should imho reflect two things
> (a) that a person/organisation X has a specific role Y
> (b) that X plays that role wrt. to a media resource Z
> So wrt. to the Ontology for Media Resource 1.0 document, one modeling
> option is the solutions pointed out by Pierre-Antoine with the subproperties
> <a_movie>  ma-ont:hasActor<a_person>  .
> ma-ont:hasActor rdfs:subPropertyOf ma-ont:hasContributor .
> Here we do reflect that X plays a role wrt. to Z and that X is a person.
> If we define a symmetric property ma-ont:isContributorOf (Domain:
> ma-ont:Agent, Range: ma-ont:MediaResource) then the above solution
> reflects (a) and (b).
> With our current implementation we can do the following (second option
> discussed by Pierre-Antoine)
> <a_movie> ma-ont:hasContributor <a_contributor>.
> <a_contributor> rdf:type ma-ont:Actor.
> <a_contributor> ma-ont:isAgent <a_person>.
> which also reflects what is written in the Ontology for Media Resource
> 1.0 document (also (a) and (b)).
> With applying good ontology modelling practices we have a third option:
> <a_resourceContribtion> rdf:type ma-ont:ResourceContribution.
> <a_resourceContribution> ma-ont:hasContributor <a_person>.
> <a_resourceContribution> ma-ont:ContributosTo <a_movie>.
> <a_resourceContribution> ma-ont:ContributionType ma-ont:ActorRole.
> This option is also modeling what is written in the Ontology for Media
> Resource 1.0 document (also (a) and (b)). This option will lead to more
> complex SPARQL queries in the end.
> The following option clearly does not model everything we need:
> <a_person> ma-ont:hasRole ma-ont:ActorRole.
> <a_movie> ma-ont:hasContributor <a_person>.
> because it does not tell us that the person plays the actorRole wrt. to
> the movie!
> I actually like the simplicity of OPTION1 with the subproperties. What
> are the opinion's of others?
> Other things to discuss remain how the roles are put into the subclass
> hierarchy (creator under contributor, both seperate, the opposite way,
> etc.): Here I cleary am with Jean-Pierre that we should keep the names
> of both contributor and creator as they are defined in the document.
> I actually would also leave Agent in (same reasons as they ones
> mentioned by Pierre-Antoine).
> I have no strong opinion wrt. to postfixing the roles with Role at the
> moment as it depends on the modelling option we choose (OPTION 1-4).
> Thanks again for your comments and looking forward to more!
> Best regards,
> Tobias
> Am 28.07.2010 17:09, schrieb Pierre-Antoine Champin:
>> Hi all,
>> A very nice work indeed.
>> To answer one of Véronique's questions, first: if we use the role design
>> pattern, it is not a good solution to make roles (Creator, Publisher)
>> subclasses of Agent, because an agent is not *intrinsically* a Creator
>> or a Publisher... The same agent may play different roles *with respect
>> to* different media resources. e.g the director *of* a movie, and the
>> producer *of* another movie.
>> However, I wholeheartedly agree with you that it should be more apparent
>> in the class naming which ones are part of the Role hierarchy, and which
>> ones are part of the Agent hierarchy. "Contributor" is easily
>> mis-interpreted as "any agent that plays the 'contributor' role for some
>> resource", while it should be understood as "the 'contributor' role as
>> played by agent X for resource Y". I suggest to rename them to
>> ContributorRole, ActorRole, PubllisherRole, CreatorRole. A bit verbose,
>> but at least it is explicit.
>> Another remark to Jean-Pierre: if you hate so much blank nodes, why
>> chose the role design pattern rather than sub-properties ? Because it
>> appears to me that, instead of
>>      <a_movie>  ex:hasActor<a_person>  .
>>      ex:hasActor rdfs:subPropertyOf ma:hasContributor .
>> you will now have to write
>>      <a_movie>  ma:hasContributor [
>>          a ma:ActorRole ;
>>          ma:isAgent<a_person>
>>      ] .
>> or do I miss something?
>> NB: I'm not trying to argue about the choice of that design pattern -
>> just trying to put get the discussion going.
>> A last remark to Jean-Pierre: if you remove class Agent, how would you
>> specify the range of ma:isAgent ? For the same reason that the
>> superclass Contributor provides extensibility for roles, the class Agent
>> provides extensibility, as there may be situations where the creator of
>> a resource will be neither a person or an organization (an autonomous
>> robot? an animal?...).
>>    pa
>> On 26/07/2010 20:01, Evain, Jean-Pierre wrote:
>>> Veronique, all,
>>> When we worked on this Tobias suggested to have an agent to group the
>>> person and organisation class.  But I have been working on this and I
>>> am not certain we need an agent for this purpose.
>>> The discussion around agent/contributor/role is somehow a different
>>> topic. Actually MAWG has agreed to use Contributor, which a a role
>>> property, and under which some specialised categories have been
>>> defined (e.g. creator). This is just a choice of name but for
>>> instance if you change contributor in role then how will you call the
>>> property qualifying the the role of the role (unless you name the
>>> class with the role name which relates to anothe rof your comments,
>>> see next)? And all that sort of things. I would therefore suggest
>>> that we keep contributor with a role property. And we remove agent,
>>> which not absolutely needed to encapsulate person and organisation
>>> (the main didea was to be able to make a golbal on the relation
>>> between contributor and agent knowing that a contributor (and sub
>>> classes) can be either a person or an organisation. I am going to
>>> discuss this in more details with Tobias to better understand what he
>>> wanted to do there but apparently SPARQL queries do not seem to work
>>> on class inferences (although it may be a matter of tool).
>>> About the question on role under contributor. Do we know exhaustively
>>> what the roles will be? If yes why did we decide to use contributor
>>> on the first place. Anyway, having a role add flexibility for
>>> undefined concepts. Adding a role is a matter of adding a term to a
>>> list for interoperability pruposes, which is not the same as changing
>>> / updating / upgrading the ontology.  This has no direct connection
>>> to the fact that it can be a person or organisation (at least no
>>> intentionally).
>>> As for the use of a blank node for properties. If you generate
>>> instances you will see that this is purely factual and I personally
>>> don't like this so much (actually I hate blank nodes ;-). I did it in
>>> my first ontologies but realised  it is better to keep the hierarchy
>>> as flat as possible. The use of SKOS concept is there because it is
>>> often the case that such values come from classification schemes. In
>>> fact the option I discussed with Tobias is to have an object property
>>> linking to a SKOS concept and ALSO a data property allowing to
>>> provide a value such as a string or else.  This is something that I
>>> do in the EBUCore to cover all options. ->  a bit like what you seem
>>> to suggest for keyword with a string and a URI (I am typing as I read
>>> your mail ;-)
>>> I have been working on the ontology. I need to go through this with
>>> Tobias. As you say, we need to go thorugh the symmetric properties
>>> and some of them would deserve to be reversed.. Also different
>>> classes need to be disjoint to avoid funny SPARQL results, etc.
>>> Thanks for the detailed review and comments.
>>> Best regards,
>>> jean-Pierre
>>> ________________________________________ De :
>>> public-media-annotation-request@w3.org
>>> [public-media-annotation-request@w3.org] de la part de Veronique
>>> Malaise [vmalaise@few.vu.nl] Date d'envoi : lundi, 26. juillet 2010
>>> 16:26 À : Tobias Bürger Cc : public-media-annotation@w3.org Objet :
>>> Re: [mawg] action-249: new OWL version (rev. 4) of the ontology
>>> available
>>> Hi Tobias, all,
>>> I had a look at the new version of the ontology and I also have some
>>> comments and questions.
>>> - like Werner, I would suggest to rename isAgent into something like
>>> hasRole, if you want to have a generic Agent class that can have
>>> different roles like Actor, Creator and Publisher. I would then
>>> suggest to rename Contributor to Role, as it represents the head of
>>> the hierarchy of the possible roles attached to an Agent. An
>>> ontology containing the classes of Agent, Contributor and Actor can
>>> seem confusing for a non-expert user at a first glance :) The class
>>> of Actor should be described with a comment stating that it is one
>>> possible role for and Agent (although this is clear from the
>>> property browsing, it might not be extremely clear from an
>>> alphabetical list of classes, for example). Should I try to attach
>>> some comments to the classes and properties from the new version?
>>> This would show you what other people might interpret from the
>>> ontology as it is now and could be useful anyway? But yet another
>>> question about this design pattern: is it necessary to have the roles
>>> separated from the Agent? It would also be possible (and would look
>>> simpler to me) to have the different roles as subclasses of Agent...
>>> did you choose to have a parallel hierarchy because of the
>>> distinction that you want to make between Organization and Person? -
>>> I understand the necessity of a placeholder class as a range for
>>> properties such as compression, but would it not make sense to
>>> harmonize the range of other properties that should point to a URI
>>> to skos:Concepts? Would that be too restrictive? In a modeling
>>> perspective, what is the added value to have a skos:Concept instead
>>> of a classic blank node for the properties like compression (i.e.
>>> properties that point to an entity that has to have several
>>> properties attached to)? - about the range of some properties like
>>> keyword: the range type is set to string, would it not be nice to
>>> have possible ranges as string OR URI? Is that too messy for the
>>> APIs? - I did not check it out for all of the properties, but it
>>> seems that some symmetric properties are not specified as such,
>>> although the ontology is defined in OWL, it is probably on the todo
>>> list though, right? :)
>>> Otherwise, indeed, the ontology looks good! Thanks a lot Tobias and
>>> Jean-Pierre!
>>> Best, Véronique
>>> On Jul 15, 2010, at 7:35 AM, Tobias Bürger wrote:
>>>> Dear all,
>>>> Jean-Pierre and myself recently had some discussions in which we
>>>> changed some parts of the implementation of the ontology. You can
>>>> find the new version here:
>>>> http://www.salzburgresearch.at/~tbuerger/ma-ont-rev4.owl
>>>> Amongst others we introduced an Agent class having subclasses
>>>> Person/ Organization and introduced an attribute agentIs following
>>>> the role design pattern to assign roles to persons and
>>>> organizations wrt. to MediaResources. The possible roles
>>>> (Contributor, Author, etc.) are now organized in a subclass
>>>> hierarchy. Some properties were changed as well (amongst others the
>>>> qualifiers of the properties, i.e. being functional). I removed the
>>>> NamedFragment class and introduced a name property for the
>>>> MediaFragment class to replace it (this is a point to be
>>>> discussed).
>>>> I think we are getting more closely to a stable version.
>>>> Feedback is welcome at any time!
>>>> Best regards,
>>>> Tobia
>>>> --
>>>> ================================================================
>>>> Dr. Tobias Bürger         Knowledge and Media Technologies Group
>>>> Salzburg Research                           FON +43.662.2288-415
>>>> Forschungsgesellschaft                      FAX +43.662.2288-222
>>>> Jakob-Haringer-Straße 5/III   tobias.buerger@salzburgresearch.at
>>>> A-5020 Salzburg | AUSTRIA         http://www.salzburgresearch.at
>>> -----------------------------------------
>>> ************************************************** This email and any
>>> files transmitted with it are confidential and intended solely for
>>> the use of the individual or entity to whom they are addressed. If
>>> you have received this email in error, please notify the system
>>> manager. This footnote also confirms that this email message has been
>>> swept by the mailgateway
>>> **************************************************
> --
> ================================================================
> Dr. Tobias Bürger         Knowledge and Media Technologies Group
> Salzburg Research                           FON +43.662.2288-415
> Forschungsgesellschaft                      FAX +43.662.2288-222
> Jakob-Haringer-Straße 5/III   tobias.buerger@salzburgresearch.at
> A-5020 Salzburg | AUSTRIA         http://www.salzburgresearch.at
Received on Saturday, 31 July 2010 09:52:40 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 31 July 2010 09:52:41 GMT