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

Graph and namespace organization #156

Open
13 tasks
jgonggrijp opened this issue Mar 8, 2024 · 1 comment
Open
13 tasks

Graph and namespace organization #156

jgonggrijp opened this issue Mar 8, 2024 · 1 comment
Labels

Comments

@jgonggrijp
Copy link
Member

This note is based on our discussions on February 21 and March 7 2024. It is not really a separate task, but rather an overview of the way we plan to organize the graphs in the triplestore, so that we can refer to it from other tickets. I took the liberty to fill in some details, but these can still be discussed. Names of the graphs are my own creative suggestions. edpop: is the common prefix of all of our IRI terms, likely something along the lines of https://edpop.hum.uu.nl/rdf/ in production. This should be a Django setting.

Graphs

  • edpop:catalogs describes our catalogs.
  • edpop:records contains the original versions of all records as we first extracted them from our catalogs.
  • edpop:record-updates contains automated annotations that are added when a later fetch of the same record returns slightly different data.
  • edpop:collections describes the collections that exists.
  • edpop:collection/<name> declares the records that are members of the collection and contains all user-created annotations that are shared with the research group.
  • edpop:user/<name> contains annotations that the corresponding user made for personal use, outside of the context of any particular collection. These annotations are visible but not editable for other users, similar to the option to see annotations that were made to the same record in the context of another collection.
  • edpop:user/<name>/private contains similarly personal annotations by the corresponding user, but without the option for other users to see them, if we decide to implement such functionality.

Namespaces

  • Catalogs in edpop:catalog#. Final part is a short name.
  • Collections in edpop:collection/. Final part is a short name. Note: collections-as-nodes go by the same IRI as the corresponding graphs that contain their declared records and annotations.
  • Records in edpop:record/. Final part is a serial number.
  • Record update annotations in edpop:record-update/. Final part is a serial number.
  • User-created annotations in edpop:annotation/. Final part is a serial number.
  • Users in edpop:staff#. Final part is the user's username. Users need not actually be stored in the triplestore, we can extract usernames from Django's regular PostgreSQL database and serialize to RDF on the fly.
@jgonggrijp
Copy link
Member Author

  • edpop:user/<name> contains annotations that the corresponding user made for personal use, outside of the context of any particular collection. These annotations are visible but not editable for other users, similar to the option to see annotations that were made to the same record in the context of another collection.

Possible variation to think about: if users can have private collections (mentioned as an option in #159), then there is probably no need to have annotations that are "outside" of any collection.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: No status
Development

No branches or pull requests

1 participant