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

same property in shape #76

Open
kcoyle opened this issue Aug 2, 2022 · 3 comments
Open

same property in shape #76

kcoyle opened this issue Aug 2, 2022 · 3 comments

Comments

@kcoyle
Copy link
Collaborator

kcoyle commented Aug 2, 2022

An early example that we were given was the situation in which a profile specifies that a property can be either a literal or an IRI. This could be done by making the valueNodeType "IRI LITERAL" for either. However, this does not allow one to place different constraints on IRIs and LITERALs in that row. I suggested something like:

shapeID shapeLabel propertyID propertyLabel mandatory repeatable valueNodeType valueDataType valueConstraint valueConstraintType valueShape
bookShape Book dct:subject Subject TRUE TRUE subjectShape
subjectShape Subjects dct:subject Subject FALSE TRUE literal xsd:string
subjectShape Subjects dct:subject Subject FALSE TRUE IRI http://id.loc.gov/ IRIstem

This was immediately noted as problematic as it has the property dct:subject having as its object a shape that itself has dct:subject as a property. I can imagine similar situations with dct:creator -- although in that case we have created examples using foaf:name.

Is the use of properties in this kind of arc chain a problem? If so, 1) what is the problem? and 2) what is a better solution?

@philbarker
Copy link
Collaborator

philbarker commented Aug 3, 2022 via email

@kcoyle
Copy link
Collaborator Author

kcoyle commented Aug 3, 2022

@philbarker Thank you. A very interesting solution.

This is a very important point and one that we have not actually discussed:

describe the arcs that you would expect to see around a node in the graph

In our examples we have used shapes that are what I would call "logic shapes" - and this is an example of that. Another one is the use of ((foaf:name) OR (foaf:givenName AND foaf:familyName)). You have shown a different (and perhaps better) way to express this logic, although it may be harder to explain. The questions that I see are:

  1. Does TAP define the structure of the metadata? OR
  2. Does TAP define the concepts in the metadata?

For the first one, I wonder if we can reasonably expect the profile developers to know the underlying structure. For the second, do we expect that the concepts and the structure will be compatible? Let's discuss this in a meeting.

@kcoyle
Copy link
Collaborator Author

kcoyle commented Aug 17, 2022

Close, as per discussion of Aug 4, 2022. Minutes

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

No branches or pull requests

2 participants