> I guess this question has already been asked several times but I
> couldn't find the answer...
> I want to express that a certain resource (e.g., an image) has a
> certain mime-type (image/jpeg). I want to use dcterms:format instead of
> the legacy dc:formats element. Since the range of dcterms:format is
> MediaTypeOrExtent I assume that the mime-type information should be
> expressed in terms of a resource.
> However, mime-types are typically plain strings and not resources, so I
> would express the mime-type by using a simple string literal. Is this
> semantically valid?
I think it would be hard to argue it's not "semantically valid", because - AFAIK - there's nothing that says formally that the dcterms:MediaTypeOrExtent class excludes literals.
But I think the intent is that the property is not used with literals.
> What is the correct way of using dcterms:format?
There are URIs for media types in the http://purl.org/NET/mediatypes/ "namespace"
So I think you could say (using the example there)
<http://www.w3.org/Icons/WWW/w3c_home_nb> dcterms:format <http://purl.org/NET/mediatypes/image/png> .
<http://purl.org/NET/mediatypes/image/png> rdfs:label "image/png" .