1

I know some websites with photographs that have missing metadata. For example it could be missing location, missing event (WW1, WW2, …).

If I have a source URL: http://example.org/imgwithoutlocation.png

And I know the image is located in Brussels:

I can also link it to WW2 (don't know which vocab to use here?).

1. If I want to create a list of "missing links" and make it available on my website as /missing.jsonld, would this be a good start?

[{
  "@context": "https://schema.org/",
  "@type": "Photograph",
  "image": "http://archive.org/imgwithoutlocation.png",
  "contentLocation": {
    "@type": "City",
    "sameAs": [
        "https://www.geonames.org/2800866/brussels.html",
        "http://vocab.getty.edu/page/tgn/7007868"
    ]
  }
},
{
  "@context": "https://schema.org/",
  "@type": "Photograph",
  "image": "http://archive.org/otherone.html",
  "contentLocation": {
    "@type": "City",
    "sameAs": [
        "https://www.geonames.org/2800866/brussels.html",
        "http://vocab.getty.edu/page/tgn/7007868"
    ]
  }
}]
0

1 Answer 1

1

If the source doesn’t provide a URI which represents the work/concept (in addition to the URI that represents the actual image file, and separate from a webpage about the photograph), I think it makes sense to provide a blank node representing the photograph (like you did).

Using the image property doesn’t seem to be appropriate, as it would be an image of (!) the Photograph. The encoding property (and/or its synonym, the associatedMedia property) could be used instead.

I can also link it to WW2 (don't know which vocab to use here?)

To convey that the photograph depicts a situation associated with World War II, you could use Schema.org’s recordedAt property, representing the war as an Event.


{
  "@context": "https://schema.org/",
  "@type": "Photograph",
  "encoding": {"@id": "http://example.org/photo42.png"},
  "contentLocation": {
    "@type": "City",
    "sameAs": [
        "https://www.geonames.org/2800866/brussels.html",
        "http://vocab.getty.edu/page/tgn/7007868"
    ]
  },
  "recordedAt": {
    "@type": "Event",
    "sameAs": "https://en.wikipedia.org/wiki/World_War_II"
  }
}

This means in natural language:

  • There exists a photograph (no URI).
  • This photograph is encoded in a file (http://example.org/photo42.png).
  • This photograph depicts a city (no URI), which is the same city as the one identified by the webpages https://www.geonames.org/2800866/brussels.html and http://vocab.getty.edu/page/tgn/7007868.
  • This photograph captures all or part of an event (no URI), which is the same event as the one identified by the webpage https://en.wikipedia.org/wiki/World_War_II.

What this structure doesn’t convey is that you are the author of some of these statements. The PROV ontology might be useful for that.

7
  • (1) you've lost me with (no URI - blank node) part. How would it work if I have an uri? Maybe I did it without knowing but where do you see my "blank node" vs "not a blank node"? (2) PROV onotology, do you mean in natural language "juFo provided metadata for this source?" or do you have any examples to share? First time I hear about PROV. (3) Can a thesaurus be used to link to World War II ? (btw: Thank you for the very detailed answer, learning a lot!)
    – juFo
    Aug 25, 2022 at 11:00
  • 1
    @juFo: (1) A blank node is any instance which doesn’t have a URI. So, in JSON-LD, every node is a blank node unless it has an @id. If you publish linked data, it’s a good practice to give each instance an URI (which others can then use to say something about it). But in your case, as you say something about entities someone else published, it might make sense not to come up with your own URI (would be possible, though) and keep it as blank nodes. However, if the source provides such URIs for use in RDF (i.e., not the webpage and not the image file), you should use them. Aug 25, 2022 at 13:03
  • 1
    @juFo: (2) I’m not very familiar with the PROV ontology, so not sure if it’s suitable. What you describe would be a possibly helpful minimal solution, yes. – One could go further and convey exactly which statements you authored. But unless you know that some source wants to integrate your data, being that expressive is probably not warranted. Aug 25, 2022 at 13:06
  • 1
    @juFo: (3) Schema.org’s sameAs property is pretty tolerant – it just needs to be a page that is primarily about the topic. So, if the thesaurus has a page, then that would be possible. – OWL’s sameAs property, on the other hand, is strict: it needs to be a URI that describes exactly the same thing. So the URI can’t be the URL of a webpage (as this URI would represent the HTML document, not the thing described in the document). Often URIs from DBpedia or Wikidata get used to refer to things/concepts like World War II. Aug 25, 2022 at 13:11
  • 1
    @juFo: Looks good. The Photograph nodes are still blank nodes (as they have no @id), but as the source doesn’t seem to provide Linked Data URIs, using Schema.org’s sameAs to link to the source page is the best you can do. Aug 29, 2022 at 11:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.