-
Notifications
You must be signed in to change notification settings - Fork 11
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
Add equivalent of reg:containedItemClass to Collections #23
Comments
@nicholascar this is a pretty important question. We use Just thinking aloud there, I think it would be useful to have an itemCount property on the Bag too. The total number of items in a register is known to pyLDAPI in order to do the paging calculations, so exposing that number in the Bag definition seems an easy additional step. |
@ashleysommer I think that an item count could be another QB dimension, but I'd like to work out how such a property could be a QUDT thing, sort of like the various |
instead of a blank node, you need to define which property of the container is the membership predicate.. so if you used rdfs:member then it would look like: rdfs:member a qb:CodedDimensionProperty ; and you could bind it to a particular set : qb:codelist <some concept scheme - i guess it could be self-referential if the subject was the collection which was also a Concept Scheme> Note that this is "graph closure sensitive" - two different collections might be saying different things about the property rdfs:member. (I would like to see an extension to QB to allow the dimension description to be decoupled from the element name - and reference the element name instead eg:mydim and support object notations something like: etc. |
@nicholascar an item count wouldn't be a dimension ... its just a property of the object. QB dimensions, measures and attributes relate to the instances described by data structure. It would be a measure property for a set of collections however. |
This information is effectively schema-level.
Else the equivalent in SHACL. This is stronger than a mere annotation to indicate the type of the contained item. |
@dr-shorthair
|
Looks like this can also be done with RDFS:range too, but with more triples:
|
Indeed. I'm trying not to add any new names (URIs) explicitly. This comes at a cost of having a few blank-nodes, which some people dislike. But it means that the SPARQL is consistent - you only need to use I'm trying to think whether this is all too cute by half. |
without making a strong statement about preference for solution, just noting that QB has a couple of extra things:
for a self-contained graph with a collection and members finding the source isnt an issue - it requires impiclit (magic) knowledge that the members are local - but its not a mechanism useful for describing other aspects. note you dont need to use QB with a full data structure definition - just declaring the component - so its fewer triples and least complicated in structure - modulo making statements about properties that are more general. using pure RDFS might be best - it seems for every semantic asset there needs to be some contract around the rules for graph closure and reasoning that is required. With things like large vocabularies (taxons, geographic areas, people, devices) that cannot reasonably be handle by graph closure there is an addition contract required about identifier dereferencing. So IMHO I'd lay out exactly what these expectations are, then choose the encoding that best supports that. |
For a deployment of pyLDAPI, it's true that the equivalent of So perhaps we just do two things for now:
For any pyLDAPI Container.
For Container dimensions in general: we might need a motivating scenario to solve this in general with something like QB. (Rob & i have ideas about this for DCAT profiling). |
@dr-shorthair, @ashleysommer, @rob-metalinkage, @jyucsiro: note this changed semantics for pyLDAPI use in LocI
Due to Issue #17, I’ve recoded pyLDAPI to deliver Containers (
rdf:Bag
), notreg:Registers
. See the GSQ FoI API Container of Orogens: https://gsq.cat/foi/orogen/.This is essentially the same except for one thing: where the Register Ontology has a property we used to express the type of object in the register,
reg:containedItemClass
,rdf:Container
(rdf:Bag
) doesn’t.I’d like to be able to indicate, at the container level, what the class(es) of members of the container is for it clients would like to find out if a Container contains things of interest to them without having to sample the classes of individuals within the container.
How best to model this? Should we be considering the Bag something with dimensions of member types and thus use Data Cube to express the equivalent of
reg:containedItemClass
, perhaps like this for the Container of Orogens:It's a bit of a fudge with the Orogen class being used where QB expects a
skos:Concept
.@dr-shorthair: is this useful for DCAT3? Should
dcat:Datasets
that contain feature members describe the types of members in this way?The text was updated successfully, but these errors were encountered: