1. Ontology proposal: Image regions
1.1. What for
Currently we don't have a way to describe a link between certain parts of an image, and another concept. We have at best nie:relatedTo, which is very generic. Associating a concept would be useful in several situations :
- Alice takes a photo of Bob. The camera software detects a face, and pops up a list of contacts. Alice picks Bob in her list of contacts, and that association is stored in Tracker
- Alice takes a panorama from the top of Monmartre in Paris. She then draws on the picture various frames, and adds a label to each frame: "Tour Eiffel", "Townhall"...
This concept is already present at least on Facebook and Flickr, so the miners synchronizing data with these sites could take advantage of such an ontology.
1.2. Proposed solution
I want to create a new ontology for image region. I assign for now the prefix mir to this ontology.
1.2.1. Proposed classes
mir:Region a rdfs:Class
rdfs:subClassOf rdfs:Resource
rdfs:label "Image region"
rdfs:comment "A region in an image"
mir:Boundary a rdfs:Class
rdfs:subClassOf rdfs:Resource
rdfs:label "Boundary"
rdfs:comment "A boundary for an image region"
mir:Rectangle a rdfs:Class
rdfs:subClassOf mir:Boundary
rdfs:label "Rectangle"
rdfs:comment "A rectangular boundary"
mir:Polygon a rdfs:Class
rdfs:subClassOf mir:Boudary
rdfs:label "Polygon"
rdfs:comment "A polygonal boundary"
mir:Circle a rdfs:Class
rdfs:subClassOf mir:Boundary
rdfs:label "Circle"
rdfs:comment "A circular boundary"
mir:Point a rdfs:Class
rdfs:subClassOf rdfs:Resource
rdfs:label "Point"
rdfs:comment "A point in an image"
1.2.2. Proposed properties
# We use rdfs:label for labelling regions, or maybe nie:title
mir:describes a rdf:Property
rdfs:label "Describes"
rdfs:comment "The concept described by the region"
rdfs:range rdfs:Resource
rdfs:domain mir:Region
mir:boundary a rdf:Property
rdfs:label "Boundary"
rdfs:comment "The boundary of the region"
rdfs:range mir:Boundary
rdfs:domain mir:Region
mir:topLeft a rdf:Property
rdfs:label "Top left"
rdfs:comment "Top left corner of a rectangle"
rdfs:range mir:Point
rdfs:domain mir:Rectangle
mir:width a rdf:Property
rdfs:label "Width"
rdfs:comment "The width of a rectangle, in pixels"
rdfs:range xsd:integer
rdfs:domain mir:Rectangle
mir:height a rdf:Property
rdfs:label "Height"
rdfs:comment "The height of a rectangle, in pixels"
rdfs:range xsd:integer
rdfs:domain mir:Rectangle
# This is not very RDFish... But RDF lists are a pain
# Or we could make the predicate multi valued with range mir:Point, and compute the convex envelope or all the mir:Point ?
mir:points a rdf:Property
rdfs:label "Points"
rdfs:comment "The points of a polygon, under the form (x1,y1),(x2,y2),...,(xn,yn)"
rdfs:range xsd:string
rdfs:domain mir:Polygon
mir:center a rdf:Property
rdfs:label "Center"
rdfs:comment "The center of a circle"
rdfs:range mir:Point
rdfs:domain mir:Circle
mir:radius a rdf:Property
rdfs:label "Radius"
rdfs:comment "The radius of a circle"
rdfs:range xsd:double
rdfs:domain mir:Circle
mir:left a rdf:Property
rdfs:label "Left"
rdfs:comment "The number of pixels from the left border of the image to the point"
rdfs:range xsd:integer
rdfs:domain mir:Point
mir:top a rdf:Property
rdfs:label "Top"
rdfs:comment "The number of pixels from the top border of the image to the point"
rdfs:range xsd:integer
rdfs:domain mir:Point