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