Skip to content

Add gleaner @ids for organizations and other blank nodes (#21) - #35

Merged
ywkim312 merged 3 commits into
masterfrom
fix/21-ai-atid-generation-for-organization-and-others
Oct 8, 2026
Merged

ywkim312 merged 3 commits into
masterfrom
fix/21-ai-atid-generation-for-organization-and-others

Conversation

@ywkim312

Copy link
Copy Markdown
Contributor

Summary

  • Give Organization, Person, Place, WebSite, Periodical, and Thing nodes a gleaner @id when they do not already have one: https://gleaner.io/xid/{type}/{host/path} from url, otherwise a name slug.
  • Use an existing DOI (sameAs) or url for Dataset, ScholarlyArticle, and CreativeWork. Point a one-dataset folder's WebPage about/mainEntity at that dataset file's @id.
  • Apply the same rule in scripts/generate_jsonld.py and document it in the JSON-LD prompt. Leave the ChatGPT sdPublisher node for AI: add (at)id to sdPublisher #20.

Test plan

  • Confirm CHELSA webpage.jsonld publisher @id is https://gleaner.io/xid/organization/www.wsl.ch/en/index.html
  • Confirm an existing @id (MRLC publisher https://www.mrlc.gov/#org) is unchanged
  • Confirm a one-dataset WebPage about/mainEntity matches that dataset file's @id (for example G-RUN)
  • Confirm a citation Dataset uses its DOI sameAs as @id
  • Confirm ChatGPT sdPublisher still has no @id

@ywkim312 ywkim312 linked an issue Sep 29, 2026 that may be closed by this pull request
@ywkim312 ywkim312 self-assigned this Sep 29, 2026

@fils fils left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, there is a best practice we should be following here..

https://example.org/.well-known/genid/

so for us

https://gleaner.io/.well-known/genid/

after genid/ we can do anything we want to something like

https://gleaner.io/.well-known/genid/xid/person/c-hari is fine, though xid seems redundant then.

ref: https://www.w3.org/TR/rdf12-concepts/#section-skolemization

@ywkim312
ywkim312 force-pushed the fix/21-ai-atid-generation-for-organization-and-others branch from c206049 to 5c20d00 Compare September 30, 2026 15:14
@ywkim312

Copy link
Copy Markdown
Contributor Author

Actually, there is a best practice we should be following here..

https://example.org/.well-known/genid/

so for us

https://gleaner.io/.well-known/genid/

after genid/ we can do anything we want to something like

https://gleaner.io/.well-known/genid/xid/person/c-hari is fine, though xid seems redundant then.

ref: https://www.w3.org/TR/rdf12-concepts/#section-skolemization

Good call. Updated the blank-node ids to Skolem IRIs and dropped the extra xid segment, so they look like:

https://gleaner.io/.well-known/genid/person/c-hari

https://gleaner.io/.well-known/genid/organization/www.wsl.ch/en/index.html

The WebPage and DataCatalog ids from #19 are still https://gleaner.io/xid/webpage/... and https://gleaner.io/xid/datacatalog/.... Those are real record ids, not skolemized blank nodes.

@valentinedwv

Copy link
Copy Markdown
Contributor

remembering xid was supposed to be a repository code so some future URL resolver could resolve a uri: aka eco or earthcube

The WebPage and DataCatalog ids from #19 are still https://gleaner.io/xid/webpage/... and https://gleaner.io/xid/datacatalog/.... Those are real record ids, not skolemized blank nodes.

@ywkim312

Copy link
Copy Markdown
Contributor Author

You're right. I treated xid as a fixed path, but that slot is the repository code a resolver would use later (eco, earthcube, and so on).

The CHELSA WebPage and DataCatalog ids still use the literal /xid/:

https://gleaner.io/xid/webpage/www.chelsa-climate.org/
https://gleaner.io/xid/datacatalog/www.chelsa-climate.org/datasets

Which repository code should this collection use in that slot, eco or earthcube? I'll switch those once that's set. The blank-node ids stay under https://gleaner.io/.well-known/genid/.

@valentinedwv

Copy link
Copy Markdown
Contributor

lets go with earthcube, no use using the EarthCube Office (eco)

You're right. I treated xid as a fixed path, but that slot is the repository code a resolver would use later (eco, earthcube, and so on).

The CHELSA WebPage and DataCatalog ids still use the literal /xid/:

https://gleaner.io/xid/webpage/www.chelsa-climate.org/ https://gleaner.io/xid/datacatalog/www.chelsa-climate.org/datasets

Which repository code should this collection use in that slot, eco or earthcube? I'll switch those once that's set. The blank-node ids stay under https://gleaner.io/.well-known/genid/.

@ywkim312

ywkim312 commented Oct 1, 2026

Copy link
Copy Markdown
Contributor Author

lets go with earthcube, no use using the EarthCube Office (eco)

You're right. I treated xid as a fixed path, but that slot is the repository code a resolver would use later (eco, earthcube, and so on).
The CHELSA WebPage and DataCatalog ids still use the literal /xid/:
https://gleaner.io/xid/webpage/www.chelsa-climate.org/ https://gleaner.io/xid/datacatalog/www.chelsa-climate.org/datasets
Which repository code should this collection use in that slot, eco or earthcube? I'll switch those once that's set. The blank-node ids stay under https://gleaner.io/.well-known/genid/.

Switched the CHELSA WebPage and DataCatalog ids to the earthcube repository code, not eco:

https://gleaner.io/earthcube/webpage/www.chelsa-climate.org/
https://gleaner.io/earthcube/datacatalog/www.chelsa-climate.org/datasets

The WebPage about and mainEntity point at that same DataCatalog id. Blank-node ids stay under https://gleaner.io/.well-known/genid/.

@valentinedwv valentinedwv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good.

@ywkim312
ywkim312 merged commit fe8ea0a into master Oct 8, 2026
7 checks passed
@ywkim312
ywkim312 deleted the fix/21-ai-atid-generation-for-organization-and-others branch October 8, 2026 14:14
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

Successfully merging this pull request may close these issues.

AI: (at)id generation for organization and others

3 participants