Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to handle blank nodes & items that do not have names? #101

Open
moisbo opened this issue Oct 27, 2023 · 3 comments
Open

How to handle blank nodes & items that do not have names? #101

moisbo opened this issue Oct 27, 2023 · 3 comments
Assignees
Milestone

Comments

@moisbo
Copy link
Member

moisbo commented Oct 27, 2023

How do you join blank nodes?

TODO: @ptsefton to add some detail to this ticket please.

Example from IDN Screenshot 2023-10-27 at 1 01 44 pm

@moisbo moisbo added this to the Version 1.0 milestone Oct 27, 2023
@ptsefton
Copy link
Contributor

This is about Embedding - see the JSON-LD spec

Where we have stuff entities like Geometry which is used to locate Place, there is currently a requirement to have an extra stand-alone entity to contain the actual geometry, but the UI makes a special case out of this and embeds the Geometry entity in the Place:

image

In his example the ID of the coordinates is not really important, it's just there to embed this in the place, we could use a Blank Node for this.

We could generalise this for other kinds of embedding (eg PropertyValue) or Roles as used by the IDN so Properties could have values where the profile says "embed": true -- the embedded entity need not have a name.

Here's an example from the spec -- this uses a # id for the property value but this could be a _: instead:

https://www.researchobject.org/ro-crate/1.1/contextual-entities.html#extra-metadata-such-as-exif

{
      "@id": "pics/2017-06-11%2012.56.14.jpg",
      "@type": ["File", "ImageObject"],
      "contentSize": "5114778",
      "author": {
        "@id": "https://orcid.org/0000-0002-3545-944X"
      },
      "description": "Depicts a fence at a disused motor racing venue with the front part of a slightly out of focus black dog in the foreground.",
      "encodingFormat": "image/jpeg",
      "exifData": [
        {
          "@id": "#2eb90b09-a8b8-4946-805b-8cba077a7137"
        },
        {
          "@id": "#c2521494-9b94-4b23-a713-6b281f540823"
        },
      ]
},
{
      "@id": "#c2521494-9b94-4b23-a713-6b281f540823",
      "@type": "PropertyValue",
      "name": "InternalSerialNumber",
      "value": "4102011002108002"
},

@ptsefton
Copy link
Contributor

So for things marked as embed -- they don't turn into a clickable link, they would be displayed inline like Geometry, and whatever inputs are defined in the profile would show as they do here:

image

@ptsefton ptsefton changed the title How to handle items that do not have names? How to handle blank nodes & items that do not have names? Oct 31, 2023
@ptsefton
Copy link
Contributor

ptsefton commented Oct 31, 2023

AND, we can use this to handle this kind of structure as well. (This is another IDN example)

{
   "@id": "https://data.idnau.org/pid/AAC",
    "@type": [
      "http://www.w3.org/ns/dcat#Resource"
    ],
...
    "http://purl.org/dc/terms/identifier": [
      {
        "@type": "http://www.w3.org/2001/XMLSchema#token",
        "@value": "AAC"
      },
      {
        "@type": "https://data.idnau.org/pid/adaId",
        "@value": "au.edu.anu.ada.ddi.20002-aus"
      }
    ],

We could make the RO-Crate library turn these structures into a flattened structure with blank-node @ids for the embeddings. These would then show up inline in the Crate-O for editing and these TYPES could be included in an IDN profile.

{
   "@id": "https://data.idnau.org/pid/AAC",
    "@type": [
      "http://www.w3.org/ns/dcat#Resource"
    ],
...
    "http://purl.org/dc/terms/identifier": [ { "@id":  "_:1"},  { "@id":  "_:2"}],
    }
      { 
       "@id":  "_:1",
        "@type": "http://www.w3.org/2001/XMLSchema#token",
        "@value": "AAC"
      },
      { 
        "@id":  "_:2",
        "@type": "https://data.idnau.org/pid/adaId",
        "@value": "au.edu.anu.ada.ddi.20002-aus"
      }
    ],

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants