L'image ci-dessous represente un exemple de factsheets annoté avec les concepts
Les concepts sont representé par les symboles circulaires . De bas en haut les concepts sont descrit d'un façon hiérarchique.
Les factsheets sont representé par les symboles rectangulaires.
Voici les concepts utilisés pour l'exemple:
Voici les factSheets utilisés pour l'exemple:
L'objectif est de chercher les factsheets annotés avec un concept donné ou ses sous concepts.
Ensuite ordonner les factsheets, pour ce faire on compte le nombre des parents du concept demandé,
ou nombre des parents de sous concepts( qui sont annoté avec le factsheet).
Le factsheet qui a un rang inférieur, est celle annoté par un concept le plus proche du concept demandé.
Si deux factsheets ont le même nombre des parents, ils sont à ex aequo.
Si un factsheet est annoté par deux concepts, on prend que le concept le plus proche du concept demandé.
PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX micavocab: <https://w3id.org/mica/ontology/MicaOntology/> PREFIX model: <https://w3id.org/mica/ontology/MicaModel#> SELECT ?sheetURI (group_concat( ?concept; separator =";" ) as ?concepts)(min(?nbParentB-?nbParentRef) as ?nbParent) WHERE { SELECT ?sheetURI ?concept (COUNT(distinct ?parentURI) as ?nbParentB) (COUNT( distinct ?parentRef) as ?nbParentRef) WHERE { ?sheetURI a model:FactSheet; model:hasDomainConcept ?concept. ?concept skos:broaderTransitive micavocab:EnvironmentalLegislation ; skos:broaderTransitive ?parentURI. micavocab:EnvironmentalLegislation skos:broaderTransitive ?parentRef. } GROUP BY ?sheetURI ?concept } GROUP BY ?sheetURI ORDER BY ?nbParent
D'après l'image et les hypothèses, on ordonne les factsheets de cette façon:
Les résultats de la requete sont :
Si on cherche les factSheets qui contiennent les deux concepts et leurs descensants
PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX micavocab: <https://w3id.org/mica/ontology/MicaOntology/> PREFIX model: <https://w3id.org/mica/ontology/MicaModel#> PREFIX dcterms: <http://purl.org/dc/terms/> SELECT ?sheetURI (group_concat( distinct ?concept; separator =";" ) as ?concepts)(min(?nbParentURI-?nbParentc) as ?nbParent) (group_concat( distinct ?concept1; separator =";" ) as ?concepts1)(min(?nbParentURI1-?nbParentc1) as ?nbParent1) WHERE { SELECT ?sheetURI ?concept ?concept1 (COUNT( distinct ?parentURI) as ?nbParentURI) (COUNT( distinct ?parentc) as ?nbParentc) (COUNT( distinct ?parentURI1) as ?nbParentURI1) (COUNT( distinct ?parentc1) as ?nbParentc1) WHERE { ?sheetURI a model:FactSheet; model:hasDomainConcept ?concept; model:hasDomainConcept ?concept1. ?concept skos:broaderTransitive micavocab:D1PrimaryResources; skos:broaderTransitive ?parentURI. ?concept1 skos:broaderTransitive micavocab:D2SecondaryResources; skos:broaderTransitive ?parentURI1. micavocab:D2SecondaryResources skos:broaderTransitive ?parentc1. micavocab:D1PrimaryResources skos:broaderTransitive ?parentc. } group by ?sheetURI ?concept ?concept1 } group by ?sheetURI order by ?nbParent ?nbParent1