Re: Test implementation

Hi Chris,

very nice work. A few comments :

* I agree that the metadata-source should be present, however, I think
  the URI of that source is more valueable that a label describing its
  type (or is this just a matter of presentation?)

* in MediaRDF2, strictly speaking, the URI of the creator should be
   http://multimedialab.elis.ugent.be/users/chpoppe/JohnDoeFoaf.rdf#JD
  (#JD is missing in your example) and the RDF file should use
  rdf:about="#JD" instead of rdf:nodeID="JD"

* in MediaRDF2, why keep the URI for the unstructured value rather than
  "John Doe", which you can extract or build from the FOAF profile,
  since you fetch it anyway?

* about "First name" and "Family name", is this something that we
  intend to normalize at the API level? What if the creator is an
  organization instead? Although I think this information can be
  useful and is often present, isn't it a little too ad-hoc?

* why do the return values for "Identifier" not contain a "URI" field?
  I note that the Ontology and API documents disagree on that property:
  Ontology says it *is* a URI, while API says it only SHOULD be.
  Either way, let's be explicit about it being a URI.


 pa

Le 25/11/2009 13:42, Chris Poppe a écrit :
> Dear all,
> 
>  
> 
> The last days I spent some time on an implementation of the API,
> basically the main reason why I did not actively participated in the
> discussions on the subproperties.
> 
>  
> 
> You can find my “raw” WIP test-implementation (tested with IE 8 and
> Firefox 3.5.5) at:
> 
> http://multimedialab.elis.ugent.be/users/chpoppe/MediaAnnotations.html
> 
>  
> 
> This page uses JavaScript (note that currently only JavaScript or Java
> bindings are defined for the WebIDL language!).
> 
> A javascript library holds the implementation of the method:
> getProperty(propertyName, sourceFormat, subType, language, fragment).
>  This library currently (tries to) parse XML, RDF and EXIF.
> 
>  
> 
> To test it, first a mediaresource needs to be selected (there is only
> one: the image in the page). Then you can choose getProperty for a
> specific property. If a sourceformat is selected it is  passed as the
> optional parameter ‘sourceFormat’.
> 
> The result is an array of objects.
> 
> Each object holds:
> 
> ·          an unstructured value (string) which is a textual label
> holding the values.
> 
> ·         a sourceFormat (to denote from which sourceformat this
> information is extracted). Note that this is not part of the API for now
> but I think it might be valuable.
> 
> ·         An URI if this is available in the sourceFormat (Currently
> only MediaRDF holds URI’s but even in this case you cannot be sure that
> it is actually an URI …)
> 
> ·         More properties (which could be called sub-properties),
> depending on the requested property
> 
> o   For example if you request for the creator you get back:
> 
> sourceFormat: MPEG-7
> Unstructured value: John Doe
> First Name: John
> Family Name: Doe
> URI: undefined
> 
> The unstructured value gives no information at all! Meaning you can *not
> * assume that John is the firstname. Since many metadata formats allow
> to define the first and family name I added these to the returned object
> of getProperty(“creator”)
> 
>  
> 
> o   For the MediaRDF you get back 2 objects (corresponding to the two
> metadata files):  
> 
>  
> 
> sourceFormat: MEDIARDF
> Unstructured value: John Doe
> First Name: undefined
> Family Name: undefined
> URI: undefined
> 
> sourceFormat: MEDIARDF
> Unstructured value:
> http://multimedialab.elis.ugent.be/users/chpoppe/JohnDoeFoaf.rdf
> First Name: John
> Family Name: Doe
> URI: http://multimedialab.elis.ugent.be/users/chpoppe/JohnDoeFoaf.rdf
> 
>  
> 
> In this case, my implementation actually parses the Foaf description of
> the creator to retrieve the relevant information like first name and
> family name
> 
>  
> 
>  
> 
> o   When you request for contributor you get back:
> 
> sourceFormat: MPEG-7
> Unstructured value: John Doe
> First Name: John
> Family Name: Doe
> role: creator
> URI: undefined
> 
>  
> 
> sourceFormat: DC
> Unstructured value: Doe, Jane
> First Name: undefined
> Family Name: undefined
> role: publisher
> URI: undefined
> 
>  
> 
> Here you can see that a “role” property is added which denotes what kind
> of contributor we are talking about. This is related to the proposition
> by Pierre-Antoine, he suggested:
> 
> md.getValues("contributor")
> 
>  
> 
> returning
> 
>    [ { "value": "John Doe", "subproperty": "id3:composer" },
> 
>      { "value": "Jane Doe", "subproperty": "id3:lyricist" };
> 
>    ]
> 
>  
> 
> The terms ‘creator’ and ‘publisher’ that I return are currently chosen
> by me.
> 
>  
> 
> Kind regards,
> 
> Chris
> 
>  
> 
> Ghent University - IBBT
> Faculty of Engineering
> Department of Electronics and Information Systems (ELIS)
> Multimedia Lab Gaston Crommenlaan 8 bus 201
> B-9050 Ledeberg-Ghent
> Belgium
> 
>  
> t: +32 9 33 14959
> f: +32 9 33 14896
> t secr: +32 9 33 14911
> e: chris.poppe@ugent.be <mailto:chris.poppe@ugent.be>
> 
>  
> 
> URL: http://multimedialab.elis.ugent.be
> 
>  
> 

Received on Thursday, 26 November 2009 09:37:59 UTC