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

Feature: Include a profile in another profile #15

Open
ptsefton opened this issue Oct 30, 2023 · 2 comments
Open

Feature: Include a profile in another profile #15

ptsefton opened this issue Oct 30, 2023 · 2 comments

Comments

@ptsefton
Copy link
Contributor

ptsefton commented Oct 30, 2023

For the Language data commons profile we need two entry points -- describing Collections and describing Objects. These have different top-level elements: RepositoryCollection vs RepositoryObject but share a lot.

We could have Collection mode import an Object mode which would add its class definitions (exact merging behaviour would have to be worked-through)

OR we could allow a single profile to have more than one root, with an associated conformsTo)

SO this:

 "conformsToUri": [
   "https://purl.archive.org/language-data-commons/profile#Collection"
 ],
  "rootDataset": {
    "type": ["Dataset", "RepositoryCollection"]
  },

Would become something like:

  "rootDataEntity": [
   {
        "type": ["Dataset", "RepositoryCollection"],
        "conformsToUri": ["https://purl.archive.org/language-data-commons/profile#Collection"]
    },
   {
        "type": ["Dataset", "RepositoryObject"],
        "conformsToUri": ["https://purl.archive.org/language-data-commons/profile#Object"]
    }
  ],
@ptsefton
Copy link
Contributor Author

I am preferring the second approach, but it would mean changing our existing profiles (no big deal at this point) and updating Crate-O's validation behaviour -- giving more options for adding missing root types / conformsTo URIs

@ptsefton
Copy link
Contributor Author

ptsefton commented Oct 31, 2023

Maintenance is probably the biggest concern (as pointed out by @mraadgev), so I think the best way to do this is to work with a single all-inclusive profile for each domain (eg Language Data Commons) -- this can have multiple entry points as described above so you can use it describe a Collection or an Object for example. We can then use some kind of filtering process to generate cut-down sub profiles that have the same help text etc. This could be done by example, eg input an example document and generate a sub profile that only has the stuff in it used by that example. We'll need an additional way to link these sub-profiles to the documents when we get around to this.

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

When branches are created from issues, their pull requests are automatically linked.

1 participant