SimplePhotoAnnotation

From W3C Wiki

Contents

  • Background
  • Model summary
  • Properties and classes used
  • Conclusions
  • RDF Examples
  • Definitions

Background

Morten Frederiksen, Greg Williams and Libby Miller did some work at Foaf Galway on how we might simplify our models of photo annotation without making them simplistic and losing information. Our current models are complex and can be slow to query - for example a query: 'find me pictures of Morten at FOAF Galway' takes four clauses on an RDQL-like system to query on our ideal model.

The approach we sketched is simple, being almost Dublin-Core-like in structure, although the properties mostly have resources as objects rather than literals, in contrast to much DC data.

The main modelling idiom we used is to reuse property names where the meaning is sufficiently close. This means that the difference between the two triples

foaf:Image foaf:depicts foaf:Person

foaf:Image foaf:depicts cyc:SpatialThing-Localized

is in the type of the node not in the property name. This is in contrast to the InterpretationProperties modelling approach where the distinction is made in the property name. This decision was made principally for ease of querying - you can get everything depicted using a single query.

Model Summary

Here's the model:


foaf:Image
  foaf:depicts a wordnet:Something
  foaf:depicts a foaf:Person
                                [some Inverse functional Property e.g. foaf:homepage, foaf:mbox_sha1sum etc]
  foaf:depicts a cyc:SpatialThing-Localized
                                geo:lat
                                geo:long
                                foaf:name
  dcterms:spatial a cyc:SpatialThing-Localized
                                geo:lat
                                geo:long
                                foaf:name
  dc:coverage a cyc:Event
                                [some IFP e.g. foaf:homepage]
  dc:date "some date"


For Inverse Functional Properties (IFPs) of events, see notes on events and space.

The model is very flat, almost Dublin Core-like, except for in most cases having resources rather than literals as objects. We think that this (relative) simplicity is vital for developers to create tools using it. (We may want to add to this by using an XML profile later).

Properties and classes used

cyc:Event

Note from Greg: This is more of an Events issue, but I'm still a bit wary of the described use of cyc:Event. It works very nicely for conferences and the like, but I'm not sure practically how it would work for things without such an  obvious IFP. Any thoughts on this, or is this just a matter of being the best solution for immediate needs? I get the 
impression that nobody wants to touch this one (including me), because here be dragons.


note from Morten: (Should we add the other stuff from the event session, to show that e.g. a depicted person is an 
attendee of the event, or leave that separate, in which case rdf-calendar needn't be on the list?)


cyc:SpacialThing-Localized

SpatialThing-Localized in this context are distinguished from things like foaf:Person and wordnet:Cat in that they that have a mostly stable physical location (the distinction is not particularly precise - as it's with respect to some timeframe, but nevertheless it's fairly obvious to most people, we think).


Morten: Hmm, isn't a person also a SpatialThing-Localized, per the example re Frodo?


dcterms:spatial

The distinction between dcterms:spatial and foaf:depicts SpacialThing-Localized is the distinction we wanted to make between the location where the photo was taken and a location it depicts. These could be close together or very far apart (e.g a picture of a mountain). The former is most useful when people use GPS to detect where the camera was when the photo was taken. spacial things will often be identified only by some textual name or in another vague way such as by nearestAirport.

dc:coverage

dc:coverage seemed like an appropriate term to use for an event at which a photo was taken.


note from Morten: I still have a problem with the dc:coverage part, I think, as dcterms:spatial is a sub property of 
dc:coverage, meaning that you'd end up with two dc:coverage relations, and an Event can have a location. While this is 
not wrong, it makes it hard to query (without negation). I'd much prefer another property, which can also be a sub 
property of dc:coverage, to make it possible to do the "wide" query as well as a more specific one like "find me
pictures of <this location> taken at <that event>". I don't have a good  suggestion for the property name though...

Hmm, me thinks again, not sure it's a problem, location of the event is likely to be separated by at least one node, 
but still, negation, hmmm...


note from libby: dcterms:temporal perhaps better? or did we discuss this? http://dublincore.org/documents/dcmi-terms/


Issues

We weren't sure about several aspects:

  • whether not using interpretation properties is the right way to go
  • whether we should have an intermediate node, for example cyc:near between SpatialThing-Localized and lat/long to represent the imprecision of this type of measurement.
  • how we distinguish between Person and SpatialThing-Localized
  • use of dc:coverage (dcterms:temporal?)
  • identifying Events where they have no inverse functional property

Conclusions

We'd appeciate any thoughts about this model. It would be really good to decide on a set of useful properties like these, and we are fairly sure that these would work reasonably well and capture a basic set of (non-exif) data that we'd like to see for informal photo cataloging (there are a much wider set of possibilities and useful things we could add for more sophisticated image annotation - see ImageDescriptionFaq for a list of questions we came up with at Foaf Galway).

Examples

Here's an example piece of XML/RDF


<rdf:RDF
 xmlns:dc="http://purl.org/dc/elements/1.1"
 xmlns:dcterms="http://purl.org/dc/terms/"
 xmlns:foaf="http://xmlns.com/foaf/0.1/"
 xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos"
 xmlns:cyc="http://www.cyc.com/2004/06/04/cyc#"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 xmlns:wn="http://xmlns.com/wordnet/1.6/"
 xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#"
>

<foaf:Image rdf:about="http://swordfish.rdfweb.org/photos/2004/09/02/2004-09-02-Images/41.jpg">
 <foaf:thumbnail rdf:resource="http://swordfish.rdfweb.org/photos/2004/09/02/2004-09-02-Thumbnails/41.jpg"/>

 <foaf:depicts>
  <cyc:SpatialThing-Localized>
   <geo:lat>53.272190094</geo:lat>
   <geo:long>-9.15348539352</geo:long>
   <foaf:name>Galway</foaf:name>
   <contact:nearestAirport rdf:resource="http://www.daml.org/cgi-bin/airport?GWY"/>
  </cyc:SpatialThing-Localized>
 </foaf:depicts>

 <dcterms:spatial>
  <cyc:SpatialThing-Localized>
   <geo:lat>53.272190094</geo:lat>
   <geo:long>-9.05348539352</geo:long>
   <foaf:name>Galway</foaf:name>
   <contact:nearestAirport rdf:resource="http://www.daml.org/cgi-bin/airport?GWY"/>
  </cyc:SpatialThing-Localized>
 </dcterms:spatial>

 <dc:coverage>
  <cyc:Event>
   <foaf:homepage rdf:resource="http://www.w3.org/2001/sw/Europe/events/foaf-galway/"/>
  </cyc:Event>
 </dc:coverage>

 <foaf:depicts>
  <foaf:Person>
   <foaf:name>Morten Frederiksen</foaf:name>
   <foaf:mbox_sha1sum>461179310021b2185ad7f67f14e5d4deb2107c47</foaf:mbox_sha1sum>
  </foaf:Person>
 </foaf:depicts>
 
 <foaf:depicts>
  <foaf:Person>
   <foaf:name>Greg Williams</foaf:name>
   <foaf:mbox_sha1sum>f80a0f19d2a0897b89f48647b2fb5ca1f0bc1cb8</foaf:mbox_sha1sum>
  </foaf:Person>
 </foaf:depicts>
 
 <foaf:depicts>
  <wn:Beer />
 </foaf:depicts>

</foaf:Image>  
</rdf:RDF>


An experimental shorter version for the case where depicts and spatial are the same:


   
<rdf:RDF
 xmlns="http://xmlns.com/foaf/0.1/"
 xmlns:dc="http://purl.org/dc/elements/1.1"
 xmlns:dcterms="http://purl.org/dc/terms/"
 xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos"
 xmlns:cyc="http://www.cyc.com/2004/06/04/cyc#"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 xmlns:wn="http://xmlns.com/wordnet/1.6/"
 xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#"
>
 
<cyc:SpatialThing-Localized rdf:nodeID="#galway">
  <geo:lat>53.272190094</geo:lat>
  <geo:long>-9.05348539352</geo:long>
  <foaf:name>Galway</foaf:name >
  <contact:nearestAirport rdf:resource="http://www.daml.org/cgi-bin/airport?GWY"/>
</cyc:SpatialThing-Localized>
  
<Image rdf:about="http://swordfish.rdfweb.org/photos/2004/09/02/2004-09-02-Images/41.jpg">
 <thumbnail rdf:resource="http://swordfish.rdfweb.org/photos/2004/09/02/2004-09-02-Thumbnails/41.jpg"/>
 <depicts rdf:nodeID="galway"/>
 <dcterms:spatial rdf:nodeID="galway"/>
 <dc:coverage rdf:parseType="Resource">
   <homepage rdf:resource="http://www.w3.org/2001/sw/Europe/events/foaf-galway/"/>
 </dc:coverage>
 <depicts>
  <Person>
   <name>Morten Frederiksen</name>
   <mbox_sha1sum>461179310021b2185ad7f67f14e5d4deb2107c47</mbox_sha1sum>
  </Person>
 </depicts>
 <depicts>   
  <Person>
   <name>Greg Williams</name>
   <mbox_sha1sum>f80a0f19d2a0897b89f48647b2fb5ca1f0bc1cb8</mbox_sha1sum>
  </Person>
 </depicts>
 <depicts>
  <wn:Beer />
 </depicts>
</Image>
</rdf:RDF>


Definitions

SpatialThing-Localized


            A specialization of both #$SpatialThing and
            #$TemporalThing; the collection of all spatial things,
            tangible or intangible, that can be meaningfully said to
            have location or position in the empirically observable
            universe of the context in question.   This includes all
            #$PartiallyTangible things, such as pyramids and ships, as
            well as certain #$Intangible spatial things, like the
            #$Equator.  Also included are all #$Events that can be
            pinned down to specific places (see #$Event-Localized), and
            thus all #$PhysicalEvents.  But note that many events are
            non-examples, such as the event of a certain law coming into
            effect and (presumably) purely mental events as well, at
            least in most contexts.  Also excluded are #$SpatialThings
            that are _not_ localized, such as purely abstract
            geometrical figures (e.g. a Platonic sphere). All instances
            of #$SpatialThing-Localized are temporal things, and thus
            have finite lifespans (the upper bound of which is the
            lifespan of the universe itself).  Finally, note that
            imaginary entities like Frodo, Captain Queeg, and
            #$HAL9000-TheComputer may be localized within the
            (imaginary) universes attaching to the fictitious contexts
            in which they are defined, and so would be instances of
            #$SpatialThing-Localized within those microtheoretic contexts.


cyc:Event


            An important specialization of #$Situation and
            thus also of #$IntangibleIndividual and
            #$TemporallyExistingThing (qq.v).  Each instance of #$Event
            is a dynamic situation in which the state of the world
            changes; each instance is something one would say  happens .
            Events are intangible because they are changes per se, not
            tangible objects that effect and undergo changes.    Notable
            specializations of #$Event include #$Event-Localized,
            #$PhysicalEvent, #$Action, and #$GeneralizedTransfer.
            #$Events should not be confused with #$TimeIntervals (q.v.).
            The temporal bounds of events are delineated by time
            intervals, but in contrast to many events time intervals
            have no spatial location or extent.


dc:coverage

Coverage will typically include spatial location (a place name or  
geographic coordinates), temporal period (a period label, date, or date
range) or jurisdiction (such as a named administrative entity).
Recommended best practice is to select a value from a controlled 
vocabulary (for example, the Thesaurus of Geographic Names [TGN]) and
that, where appropriate, named places or time periods be used in
preference to numeric identifiers such as sets of coordinates or date
ranges.


dcterms:spatial

Spatial characteristics of the intellectual content of the resource. 


foaf:depicts

The foaf:depicts property is a relationship between a foaf:Image and
something that the image depicts.


References

  • photo rss?