iodepo / odis-arch

Development of the Ocean Data and Information System (ODIS) architecture
https://book.odis.org/
28 stars 16 forks source link

examine OceanScape sitemap(s) to bring into graph #82

Open jmckenna opened 2 years ago

jmckenna commented 2 years ago

Sample JSON-LD: Screen Shot 2022-05-04 at 2 38 07 PM

fils commented 2 years ago

In looking at the indexing I did notice the template context is wrong.

In the snippet below the https://schema.org" should be https://schema.org/ with the trailing /

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://oceanscape.org/#organization",
      "name": "Oceanscape",
      "url": "https://oceanscape.org/",
      "sameAs": [],
      "logo": {
        "@type": "ImageObject",
        "@id": "https://oceanscape.org/#logo",
        "inLanguage": "en-US",
        "url": "https://oceanscape.org/wp-content/uploads/2019/06/Oceanscape-banner.png",
        "contentUrl": "https://oceanscape.org/wp-content/uploads/2019/06/Oceanscape-banner.png",
        "width": 1441,
        "height": 257,
        "caption": "Oceanscape"
      },
      "image": {
        "@id": "https://oceanscape.org/#logo"
      }
    },
fils commented 2 years ago

Overall the workflow is valid. We can harvest and index the resources from POGO fine. It's the placement of the metadata that is real work and would need to take place on the provider side.

It sounds like this is a well known path, perhaps just tedious if anything.

If we can identify one or more initial types we could review those today to ensure that they have the elements needed to represent your types and their existing metadata.

pbuttigieg commented 2 years ago

In this record, there's a graph which relates organisations to one another with a small controlled vocab, local to OceanScape.

@fils if we can include some way of relating one institution/organisation to another with relations like this in our pattern (e.g. with identifiers provided by the contributor), we could start building a graph to progressively make more interoperable.

image

@arnounesco this may be something to sync with the knowledge graph approach to ODISCat, especially with the data provision relations

jmckenna commented 2 years ago

@fils @JonDHo I've filed a Pull Request in the associated WP plugin repository, for the missing @context trailing slash

fils commented 2 years ago

@pbuttigieg

So the JSON-LD on that page isn't yet encoding those relations it seems.

{
    "@context": "https://schema.org/",
    "@type": "Project",
    "@id": "https://oceanscape.org/organisation/ocean-tracking-network/#Project",
    "url": "https://oceanscape.org/organisation/ocean-tracking-network/",
    "description": "",
    "name": "OceanScape Portal",
    "logo": "https://oceanscape.org/wp-content/uploads/2019/03/otn-logo-full-colour@4x.png",
    "knowsAbout": "Data management, interoperability, sharing, access, open data policies, 
                                        Technical coordination of ocean observing, Training scientists/technicians",
    "sameAs": ["http://oceantrackingnetwork.org"]
}

We can work up examples for the connection though. Trying to do a quick mapping from https://schema.org/Organization properties to these relations.

Collaboration maybe https://schema.org/participant ? (needs to come from type action, so need to explore that)

Observer/participant maybe https://schema.org/participant ? (needs to come from type action, so need to explore that) Sp https://schema.org/participant can be a person or an org so I am thinking it might be the best mapping I see on first pass for these first two items.

Parent/child maps easy via https://schema.org/parentOrganization and https://schema.org/subOrganization

sibling (in a graph this would really just be orgs that share a parent?)

endorsement Closest seems to be https://schema.org/EndorsementRating which doesn't require a rating of course and has https://schema.org/ratingExplanation for any text about the endorsement

sponsorship maps to https://schema.org/sponsor

data provision Not sure what this term means yet.. need more info on it.

We have properties like https://schema.org/member, https://schema.org/memberOf

fils commented 2 years ago

Just an FYI.. the JSON in the issue message above has incorrect knowsAbout. This should be a JSON array of string like:

"knowsAbout": ["Data management", "interoperability", "sharing, access", "open data policies", 
                                        "Technical coordination of ocean observing", "Training scientists/technicians"],
fils commented 1 year ago

Oceanscape / Pogo indexing is being held up by https://github.com/gleanerio/gleaner/issues/128