Ranking queries

needs Update

Ordonner les factsheets en cherchant un concept

Image

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.

Ranking queries

Voici les concepts utilisés pour l'exemple:

  • C1:https://w3id.org/mica/ontology/MicaOntology/EnvironmentalLegislation
  • C2:https://w3id.org/mica/ontology/MicaOntology/UnConventions
  • C3:https://w3id.org/mica/ontology/MicaOntology/NationalEnvironmentalLegislation
  • C4:https://w3id.org/mica/ontology/MicaOntology/LocalCommunalByLaws
  • C5:https://w3id.org/mica/ontology/MicaOntology/BasleConvention
  • C6:https://w3id.org/mica/ontology/MicaOntology/NationalWaterLelgislation

    Voici les factSheets utilisés pour l'exemple:

  • F1:https://w3id.org/mica/resource/FactSheetF1
  • F2:https://w3id.org/mica/resource/FactSheetF2
  • F3:https://w3id.org/mica/resource/FactSheetF3
  • F4:https://w3id.org/mica/resource/FactSheetF4

Les hypothèses

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:

  • 1: F1
  • 2: F2 et F3
  • 3: F4

Les résultats de la requete sont :

  • 0: F1
  • 1: F2 et F3
  • 2: F4

Ordonner les factsheets en cherchant deux ou plusieurs concepts

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