Open tfrancart opened 1 year ago
@tfrancart can you please provide an example given as Turtle? Maybe you can also give more context based on that example. I think that would be useful for further discussions.
Here is an example given as Turtle of how things currently look like:
xxx:PersonShape a sh:NodeShape
rdfs:label "Person"@en ;
sh:property [
sh:path dct:subject ;
sh:name "category (tree)";
config-datasource:treeRootsDatasource [
a config-datasource:tSPARQLDatasource ;
config-datasource:queryString """A SPARQL query selecting the roots of the tree to display"""";
] ;
config-datasource:treeChildrenDatasource [
a config-datasource:tSPARQLDatasource ;
config-datasource:queryString """A SPARQL query selecting the children of a node being unfolded"""";
] ;
]
Maybe this could be generalized as a TreeSelector ? Something like
xxx:PersonShape a sh:NodeShape
rdfs:label "Painter"@en ;
sh:property [
sh:path dct:subject ;
sh:name "category (tree)";
sh:node [
# this represents our tree structure
sh:property [
sh:path [ sh:alternativePath(skos:narrower [sh:inversePath skos:broader])] ;
# flagging this path as the one to use to fetch chidren
xxxxx:propertyRole xxxxx:HierarchyChildrenRole ;
] ;
# need to find something similar to say "dct:subject values are connected to a tree in which the roots are indicated by this path expression" - that's a bit difficult :-) and requires more thinking
]
]
See #16 for the full story.
I have tree selectors. They rely on:
having the ability to indicate with property roles which properties are used for tree navigation could automate tree selectors.