Prefixes
PREFIX ecrm: <http://erlangen-crm.org/150929/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
A. Queries based on the RDF formalism
List of concepts.
SELECT Distinct ?concept
WHERE
{
[] rdf:type ?concept .
}
Order By ?concept
Number of concepts.
SELECT Distinct (Count(Distinct ?concept) As ?numberOfConcepts)
WHERE
{
[] rdf:type ?concept .
}
List of predicates.
SELECT Distinct ?predicate
WHERE
{
?subject ?predicate ?object .
}
Order By ?predicate
Number of predicates.
SELECT Distinct (Count(Distinct ?predicate) As ?numberOfPredicates)
WHERE
{
?subject ?predicate ?object .
}
List of terminal triples where the terminal node is non-empty.
SELECT Distinct ?subject ?predicate ?object
WHERE
{
?subject ?predicate ?object .
Filter ( isLiteral(?object) && ?object != "" )
}
List of terminal predicates where the terminal node is non-empty.
SELECT Distinct ?predicate
WHERE
{
?subject ?predicate ?object .
Filter ( isLiteral(?object) && ?object != "" )
}
Extracts of paths leading to non-empty terminal nodes.
SELECT ?object0 ?predicate0 ?subject0 ?predicate1 ?subject1 ?predicate2 ?subject2
WHERE
{
?subject0 ?predicate0 ?object0 .
Optional {
?subject1 ?predicate1 ?subject0 .
Optional {
?subject2 ?predicate2 ?subject1 .
}
}
Filter ( isLiteral(?object0) && ?object0 != "" )
}
List of triples that have as subject a given node
(examples: http://erlangen-crm.org/150929/E39_Actor,
http://dbpedia.org/resource/Venus_de_Milo,
http://dbpedia.org/resource/Peter_Jackson).
SELECT ?subject ?predicate ?object
WHERE
{
?subject ?predicate ?object .
Filter ( ?subject = <http://erlangen-crm.org/150929/E39_Actor> )
}
B. Queries based on the CIDOC-CRM norm
List of non-empty labels of specific entities by using generic classes:
type (E55_Type), title (E35_Title), dimension (E54_Dimension),
material (E57_Material), place (E53_Place), etc.
SELECT Distinct ?type
WHERE
{
?type_uri rdf:type ecrm:E55_Type .
?type_uri rdfs:label ?type .
Filter ( ?type != "" )
}
SELECT Distinct ?material
WHERE
{
?material_uri rdf:type ecrm:E57_Material .
?material_uri rdfs:label ?material .
Filter ( ?material != "" )
}
List of non-empty labels of specific entities by using properties:
type (P2_has_type), title (P102_has_title), dimension (P43_has_dimension),
material (P45_consists_of), place (P87_is_identified_by), etc.
SELECT Distinct ?subject ?title
WHERE
{
?subject ecrm:P102_has_title ?title_uri .
?title_uri rdfs:label ?title .
Filter ( ?title != "" )
}
SELECT Distinct ?subject ?place
WHERE
{
?subject ecrm:P87_is_identified_by ?place_uri .
?place_uri rdfs:label ?place .
Filter ( ?place != "" )
}
List of characteristics (identifier, type, note, etc.) that come from the root entity "E1 CRM Entity".
SELECT Distinct ?id1 ?id2 ?type ?description
WHERE
{
?e1_obj ecrm:P48_has_preferred_identifier ?id1_uri .
?id1_uri rdfs:label ?id1 .
?e1_obj ecrm:P1_is_identified_by ?id2_uri .
?id2_uri rdfs:label ?id2 .
?e1_obj ecrm:P2_has_type ?type_uri .
?type_uri rdfs:label ?type .
?e1_obj ecrm:P3_has_note ?description .
}
List of characteristics (dimension, title, material) that come from persistent entities (different from the root entity "E1 CRM Entity").
SELECT Distinct ?id1 ?dimensions ?title ?material
WHERE
{
?obj ecrm:P48_has_preferred_identifier ?id1_uri .
?id1_uri rdfs:label ?id1 .
?obj ecrm:P43_has_dimension ?dimensions_uri .
?dimensions_uri rdfs:label ?dimensions .
?obj ecrm:P102_has_title ?title_uri .
?title_uri rdfs:label ?title .
?obj ecrm:P45_consists_of ?material_uri .
?material_uri rdfs:label ?material .
}
Datation (date) of origin of objects.
SELECT Distinct ?id1 ?time_span_uri ?dateOrigin
WHERE
{
?obj ecrm:P48_has_preferred_identifier ?id1_uri .
?id1_uri rdfs:label ?id1 .
?obj ecrm:P92i_was_brought_into_existence_by ?e63_beginning_of_existence .
?e63_beginning_of_existence ecrm:P4_has_time-span ?time_span_uri .
?time_span_uri ecrm:P78_is_identified_by ?time_appellation_uri .
?time_appellation_uri rdfs:label ?dateOrigin .
Filter ( ?dateOrigin != "" )
}
Origin of objects (date, place, participants).
SELECT Distinct ?id1 ?dateOrigin ?placeOrigin ?actorOrigin
WHERE
{
?obj ecrm:P48_has_preferred_identifier ?id1_uri .
?id1_uri rdfs:label ?id1 .
?obj ecrm:P92i_was_brought_into_existence_by ?e63_beginning_of_existence .
?e63_beginning_of_existence ecrm:P4_has_time-span ?time_span_uri .
?time_span_uri ecrm:P78_is_identified_by ?time_appellation_uri .
?time_appellation_uri rdfs:label ?dateOrigin .
?e63_beginning_of_existence ecrm:P7_took_place_at ?place_uri .
?place_uri ecrm:P87_is_identified_by ?place_appellation_uri .
?place_appellation_uri rdfs:label ?placeOrigin .
?e63_beginning_of_existence ecrm:P11_had_participant ?actor_uri .
?actor_uri rdfs:label ?actorOrigin .
}
Localisation (place) of custody of objects.
SELECT Distinct ?place_custody_uri ?placeCustody
WHERE
{
?obj ecrm:P30i_custody_transferred_through ?e10_transfer_of_custody .
?e10_transfer_of_custody ecrm:P7_took_place_at ?place_custody_uri .
?place_custody_uri ecrm:P87_is_identified_by ?place_appellation_custody_uri .
?place_appellation_custody_uri rdfs:label ?placeCustody .
Filter ( ?placeCustody != "" )
}
Transfer of Custody of objects (date, place, participants).
SELECT Distinct ?id1 ?dateCustody ?placeCustody ?actorCustody
WHERE
{
?obj ecrm:P48_has_preferred_identifier ?id1_uri .
?id1_uri rdfs:label ?id1 .
?obj ecrm:P30i_custody_transferred_through ?e10_transfer_of_custody .
?e10_transfer_of_custody ecrm:P4_has_time-span ?time_span_custody_uri .
?time_span_custody_uri ecrm:P78_is_identified_by ?time_appellation_custody_uri .
?time_appellation_custody_uri rdfs:label ?dateCustody .
?e10_transfer_of_custody ecrm:P7_took_place_at ?place_custody_uri .
?place_custody_uri ecrm:P87_is_identified_by ?place_custody_appellation_uri .
?place_custody_appellation_uri rdfs:label ?placeCustody .
?e10_transfer_of_custody ecrm:P11_had_participant ?actor_custody_uri .
?actor_custody_uri rdfs:label ?actorCustody .
}