Role distribution for Person Entities (ok)
SELECT ?roleType COUNT (distinct ?pm )
WHERE
{
?pm a grz-owl:Person .
?pm grz-owl:role/grz-owl:value ?roleType .
}
GROUP BY ?roleType
Role distribution for Person Entities for year Y / for time window
SELECT ?roleType COUNT (distinct ?pm )
WHERE
{
?pm a grz-owl:Person .
?pm grz-owl:role ?roleStatement .
?roleStatement grz-owl:value ?roleType .
?roleStatement sem:hasTimeStamp ?date .
FILTER (year(?date ) = 1583 )
[for time window: FILTER (year(?date ) > 1583 AND year(?date ) < 1599 )]
}
GROUP BY ?roleType
Role distribution per gender (ok)
SELECT ?roleType COUNT (distinct ?p )
WHERE
{
?p a grz-owl:Person .
?p grz-owl:role ?roleStmt .
?p grz-owl:gender " F" ^^<http://www.w3.org/2001/XMLSchema#string> .
?roleStmt grz-owl:value/grz-owl:roleType ?roleType .
}
GROUP BY ?roleType
Give me all person entities who appear as Master AND Apprentice
SELECT ?pe
WHERE
{
SELECT ?pe ?roleType
WHERE
{
{
?pe grz-owl:role ?roleStatement .
?roleStatement grz-owl:value ?role .
?role grz-owl:roleType ?roleType .
}
{
SELECT ?pe
WHERE
{
?pe a grz-owl:Person .
?pe grz-owl:role ?roleStatement1 .
?pe grz-owl:role ?roleStatement2 .
?roleStatement1 grz-owl:value ?value1 .
?roleStatement2 grz-owl:value ?value2 .
?value1 grz-owl:roleType grz-owl:master.
?value2 grz-owl:roleType grz-owl:apprentice .
}
GROUP BY ?pe
}
}
GROUP BY ?roleType
}
GROUP BY ?pe
HAVING (COUNT (distinct ?roleType ) > 1)
Break-down PERSON/ROLE/DATE for person entities having both Apprentice and Master roles
SELECT ?pe ?roleType ?year
WHERE
{
{
?pe grz-owl:role ?roleStatement .
?roleStatement grz-owl:value ?role .
?role grz-owl:roleType ?roleType .
?roleStatement sem:hasTimeStamp ?date .
BIND (year(?date ) AS ?year )
}
{
SELECT ?pe
WHERE {?pe a grz-owl:Person .
?pe grz-owl:role ?roleStatement1 .
?pe grz-owl:role ?roleStatement2 .
?roleStatement1 grz-owl:value ?value1 .
?roleStatement2 grz-owl:value ?value2 .
?value1 grz-owl:roleType grz-owl:master.
?value2 grz-owl:roleType grz-owl:apprentice .
}
GROUP BY ?pe
}
}
GROUP BY ?roleType
ORDER BY AS C ( UCASE (str(?pe )))
Give me the persons who appear as Master AND Apprentice AND Guarantor:
SELECT ?pe
WHERE
{
SELECT ?pe ?roleType
WHERE
{
{
?pe grz-owl:role ?roleStatement .
?roleStatement grz-owl:value ?role .
?role grz-owl:roleType ?roleType .
}
{
SELECT ?pe
WHERE
{
?pe a grz-owl:Person .
?pe grz-owl:role ?roleStatement1 .
?pe grz-owl:role ?roleStatement2 .
?pe grz-owl:role ?roleStatement3 .
?roleStatement1 grz-owl:value ?value1 .
?roleStatement2 grz-owl:value ?value2 .
?roleStatement3 grz-owl:value ?value3 .
?value1 grz-owl:roleType grz-owl:master.
?value2 grz-owl:roleType grz-owl:apprentice .
?value3 grz-owl:roleType grz-owl:guarantor .
}
GROUP BY ?pe
}
}
GROUP BY ?roleType
}
GROUP BY ?pe
HAVING (COUNT (distinct ?roleType ) > 2)
Number of guarantor per contract given a profession
SELECT ?numberOfGuar COUNT (distinct ?app )
WHERE
{
SELECT ?app COUNT (distinct ?guar ) AS ?numberOfGuar
WHERE
{
?guar a grz-owl:Person .
?app a grz-owl:Person .
?master a grz-owl:Person .
?guar grz-owl:role/grz-owl:value/grz-owl:roleType grz-owl:guarantor .
?master grz-owl:role/grz-owl:value/grz-owl:roleType grz-owl:master .
?app grz-owl:role/grz-owl:value/grz-owl:roleType grz-owl:apprentice .
?app grz-owl:has_master/grz-owl:value ?master .
?app grz-owl:has_guarantor/grz-owl:value ?guar .
?master grz-owl:profession/grz-owl:value/grz-owl:professionCategory "stampa" .
}
GROUP BY ?app
}
GROUP BY ?numberOfGuar
ORDER BY AS C (?numberOfGuar )
Give me apprentices who have the same guarantor in 2 different contracts
SELECT ?app ?guar COUNT (distinct ?contract ) AS ?cnb
WHERE
{
?guar a grz-owl:Person .
?app a grz-owl:Person .
?guar grz-owl:role/grz-owl:value/grz-owl:roleType grz-owl:guarantor .
?app grz-owl:role/grz-owl:value/grz-owl:roleType grz-owl:apprentice .
?app grz-owl:has_guarantor/grz-owl:value ?guar .
?guar grz-owl:has_mention/grz-owl:is_entityLink_of/grz-owl:introduced_in ?contract .
?app grz-owl:has_mention/grz-owl:is_entityLink_of/grz-owl:introduced_in ?contract .
}
GROUP BY ?app ?guar
HAVING (COUNT (distinct ?contract ) > 1)