If any of the %magics is modified in the intermediate code, then set it again when it needed
In this version, most sparqls ignore on purpose works not in a family!
If any of the %magics is modified in the intermediate code, then set it again when it needed
%endpoint http://libdata.tab.ionio.gr:8890/sparql
%graph http://dbis.ionio.gr/bf2rdadrv
%prefix rdac: <http://rdaregistry.info/Elements/c/>
%prefix rdax: <http://rdaregistry.info/Elements/x/>
%prefix rdaxo: <http://rdaregistry.info/Elements/x/object/>
%prefix rdaw: <http://rdaregistry.info/Elements/w/>
%prefix rdawo: <http://rdaregistry.info/Elements/w/object/>
%prefix rdawd: <http://rdaregistry.info/Elements/w/datatype/>
%prefix rdae: <http://rdaregistry.info/Elements/e/>
%prefix rdaeo: <http://rdaregistry.info/Elements/e/object/>
%prefix rdamo: <http://rdaregistry.info/Elements/m/object/>
%prefix rdamd: <http://rdaregistry.info/Elements/m/datatype/>
%prefix dbis: <http://dbis.ionio.gr/Resources/library#>
# %lang en
# %display table withtypes
%show all
%display table
SELECT COUNT(?w) AS ?NoWorks COUNT(?e) AS ?NoExpressions COUNT(?m) AS ?NoManifestations
WHERE {
{
?w a rdac:C10001
}
UNION
{
?e a rdac:C10006
}
UNION
{
?m a rdac:C10007
}
}
Note that in this version, statement for the family label is optional!!! </br>Therefore, it counts also works not belonging in a family (if any)!
%display table
SELECT ?familyLabel COUNT(?w) AS ?NoWorks
WHERE {
?w a rdac:C10001.
OPTIONAL{
?w rdfs:comment ?familyLabel.
}
}
ORDER BY ?familyLabel
%display table
SELECT ?familyLabel Count(?w) AS ?WorkWithExpr
WHERE {
?w rdawo:P10078 ?e.
?w rdfs:comment ?familyLabel.
}
ORDER BY ?familyLabel
Note that in this version, statement for the family label is not optional!!! </br>Therefore, it counts ONLY works belonging to a family!
%display table
SELECT (fn:replace(str(?p), "^.*[/#]", "") as ?property) (str(?pl) as ?label) COUNT(?p) AS ?Occurrences
WHERE {
?s ?p ?o;
a rdac:C10001.
?o a rdac:C10001.
?s rdfs:comment ?familyLabel.
?o rdfs:comment ?ofamilyLabel.
OPTIONAL {?p rdfs:label ?pl.
FILTER (lang(?pl) = 'en')
}
}
ORDER BY ?p
%display table
SELECT (?familyLabel as ?Family) (fn:replace(str(?p), "^.*[/#]", "") as ?property) (str(?pl) as ?label) COUNT(?p) AS ?Occurrences
WHERE {
?s ?p ?o;
a rdac:C10001.
?o a rdac:C10001.
?s rdfs:comment ?familyLabel.
?o rdfs:comment ?ofamilyLabel.
# OPTIONAL {?s rdfs:comment ?familyLabel}
OPTIONAL {?p rdfs:label ?pl.
FILTER (lang(?pl) = 'en')
}
}
ORDER BY ?familyLabel ?p
%display table
SELECT (fn:replace(str(?p), "^.*[/#]", "") as ?property) (str(?pl) as ?label) COUNT(?p) AS ?Occurrences
WHERE {
?s ?p ?o;
a rdac:C10001.
?o a rdac:C10006.
?s rdfs:comment ?familyLabel.
OPTIONAL {?p rdfs:label ?pl}
FILTER (lang(?pl) = 'en')
}
ORDER BY ?p
%display table
SELECT (fn:replace(str(?p), "^.*[/#]", "") as ?property) (str(?pl) as ?label) COUNT(?p) AS ?Occurrences
WHERE {
?s ?p ?o;
a rdac:C10006.
?o a rdac:C10001.
?o rdfs:comment ?ofamilyLabel.
OPTIONAL {?p rdfs:label ?pl}
FILTER (lang(?pl) = 'en')
}
ORDER BY ?p
%display table
SELECT (fn:replace(str(?p), "^.*[/#]", "") as ?property) (str(?pl) as ?label) COUNT(?p) AS ?Occurrences
WHERE {
?s ?p ?o;
a rdac:C10006.
?o a rdac:C10006.
?s rdaeo:P20231 ?sw.
?sw rdfs:comment ?sfamilyLabel.
?o rdaeo:P20231 ?ow.
?ow rdfs:comment ?ofamilyLabel.
OPTIONAL {?p rdfs:label ?pl}
FILTER (lang(?pl) = 'en')
}
ORDER BY ?p
Note the existence of the statements for the family labels for the Works being realized by the Expressions!!! </br>Therefore, it counts ONLY works belonging to a family!
%display table
SELECT (?sfamilyLabel as ?Family) (fn:replace(str(?p), "^.*[/#]", "") as ?property) (str(?pl) as ?label) COUNT(?p) AS ?Occurrences
WHERE {
?s ?p ?o;
a rdac:C10006.
?o a rdac:C10006.
?s rdaeo:P20231 ?sw.
?sw rdfs:comment ?sfamilyLabel.
?o rdaeo:P20231 ?ow.
?ow rdfs:comment ?ofamilyLabel.
OPTIONAL {?p rdfs:label ?pl}
FILTER (lang(?pl) = 'en')
}
ORDER BY ?familyLabel ?p
%display table
SELECT (fn:replace(str(?p), "^.*[/#]", "") as ?property) (str(?pl) as ?label) COUNT(?p) AS ?Occurrences
WHERE {
?s ?p ?o;
a rdac:C10006.
?o a rdac:C10007.
?s rdaeo:P20231 ?sw.
?sw rdfs:comment ?sfamilyLabel.
?o rdamo:P30139 ?oe.
?oe rdaeo:P20231 ?ow.
?ow rdfs:comment ?ofamilyLabel.
OPTIONAL {?p rdfs:label ?pl}
FILTER (lang(?pl) = 'en')
}
ORDER BY ?p
%display table
SELECT (fn:replace(str(?p), "^.*[/#]", "") as ?property) (str(?pl) as ?label) COUNT(?p) AS ?Occurrences
WHERE {
?s ?p ?o;
a rdac:C10007.
?o a rdac:C10006.
?s rdamo:P30139 ?se.
?se rdaeo:P20231 ?sw.
?sw rdfs:comment ?sfamilyLabel.
?o rdaeo:P20231 ?ow.
?ow rdfs:comment ?ofamilyLabel.
OPTIONAL {?p rdfs:label ?pl}
FILTER (lang(?pl) = 'en')
}
ORDER BY ?p
%display table
SELECT (fn:replace(str(?p), "^.*[/#]", "") as ?property) (str(?pl) as ?label) COUNT(?p) AS ?Occurrences
WHERE {
?s ?p ?o;
a rdac:C10007.
?o a rdac:C10007.
?s rdamo:P30139 ?se.
?se rdaeo:P20231 ?sw.
?sw rdfs:comment ?sfamilyLabel.
?o rdamo:P30139 ?oe.
?oe rdaeo:P20231 ?ow.
?ow rdfs:comment ?ofamilyLabel.
OPTIONAL {?p rdfs:label ?pl}
FILTER (lang(?pl) = 'en')
}
ORDER BY ?p
%display table
SELECT ?p as ?property str(?pl) AS ?label COUNT(?p) AS ?Occurrences
WHERE {
{?s ?p ?o;
a rdac:C10001.
?o a rdac:C10001.
}
UNION
{?s ?p ?o;
a rdac:C10001.
?o a rdac:C10006.
}
UNION
{?s ?p ?o;
a rdac:C10006.
?o a rdac:C10001.
}
UNION
{?s ?p ?o;
a rdac:C10006.
?o a rdac:C10006.
}
UNION
{?s ?p ?o;
a rdac:C10006.
?o a rdac:C10007.
}
UNION
{?s ?p ?o;
a rdac:C10007.
?o a rdac:C10006.
}
UNION
{?s ?p ?o;
a rdac:C10007.
?o a rdac:C10007.
}
OPTIONAL {?p rdfs:label ?pl}
FILTER (lang(?pl) = 'en')
}
ORDER BY ?p
Note the existence of the statements for the family labels for the Works being realize the expressions!!! </br>Therefore, it counts ONLY works belonging to a family! </br></br> to see all family names run the sparql Enumerate families
Due to the origin of dataset as data mapped from the RDA vocabulary, family exploration has to be accomplished from expression level properties.
It is worth mentioning that mapping rules map Bibframe Work Level properties to RDA Expression level properties!
Therefore, exploration in families on RDA data mapped from BIBFRAME is accomplished, at the moment, only via RDA Expressions!
%display diagram
CONSTRUCT{
?s ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s ?p ?o;
a rdac:C10006.
?o a rdac:C10006.
?s rdaeo:P20231 ?sw.
?sw rdfs:comment ?sfamilyLabel.
?o rdaeo:P20231 ?ow.
?ow rdfs:comment ?ofamilyLabel.
# ?w rdfs:comment ?sfamilyLabel.
# ?o rdfs:comment ?ofamilyLabel.
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w ?p ?o;
a rdac:C10001.
?o a rdac:C10001.
?w rdfs:comment ?sfamilyLabel.
?o rdfs:comment ?ofamilyLabel.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
Note:</br>
to see all family names run the sparql Enumerate families
Summary for properties used in filter statement
property | pLabel |
---|---|
P10016 | is dramatized as (work) |
P10099 | is freely translated as (work) |
P10113 | is adapted as libretto (work) |
P10147 | is container of (work) |
P10155 | is adapted as (work) |
P10170 | is succeeded by (work) |
P10236 | is adapted as opera (work) |
P10257 | has subject (work) |
P10291 | is inspiration for |
%display diagram
# %lang en
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "CienAnosSoledadFamily"@en).
?w ?p ?o.
?o a rdac:C10001.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "CrimePunishmentFamily"@en).
?w ?p ?o.
?o a rdac:C10001.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "DonQuijoteFamily"@en).
?w ?p ?o.
?o a rdac:C10001.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "FaustFamily"@en).
?w ?p ?o.
?o a rdac:C10001.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "IliadFamily"@en).
?w ?p ?o.
?o a rdac:C10001.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "KaramazovBrothersFamily"@en).
?w ?p ?o.
?o a rdac:C10001.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "MadameBovaryFamily"@en).
?w ?p ?o.
?o a rdac:C10001.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "OdysseyFamily"@en).
?w ?p ?o.
?o a rdac:C10001.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "ScarletLetterFamily"@en).
?w ?p ?o.
?o a rdac:C10001.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "TomSawyerFamily"@en).
?w ?p ?o.
?o a rdac:C10001.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "TomSawyerFamily"@en).
?w ?p ?o.
?o a rdac:C10001.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "WutheringHeightsFamily"@en).
?w ?p ?o.
?o a rdac:C10001.
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291).
}
property | pLabel |
---|---|
P20076 | is replaced by (expression) |
P20110 | is adapted as libretto (expression) |
P20145 | is container of (expression) |
P20153 | is adapted as (expression) |
P20166 | is abridged as (expression) |
P20171 | is translated as |
P20203 | is derivative (expression) |
P20211 | is revised as |
TODO
Extend statements for labels in order to better validate the inclusion of only Works in family.
%display diagram
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s ?p ?o;
a rdac:C10001.
?s rdfs:comment ?sfamilyLabel.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
}
}
To include also properties to the opposite direction (inverse properties) remove respective property filters.
Moreover, to exclude Expressions -2- Expressions properties remove OPTIONAL statements.
To specify a family, set its name in statement:</br>
FILTER (?familyLabel = "CienAnosSoledadFamily")
Note:</br> to see all family names run the sparql Enumerate families
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "CrimePunishmentFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "ScarletLetterFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "MadameBovaryFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "WutheringHeightsFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "DonQuijoteFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "CienAnosSoledadFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
?s rdfs:label ?workID.
?o rdfs:label ?workExpID.
?o1 rdfs:label ?expID.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "CienAnosSoledadFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
# get instances' label
OPTIONAL { # when debug, use it as optional to find also works without a Work matching key
?o1 rdfs:label ?expID.
}
}
# get instances' label
OPTIONAL { # when debug, use it as optional to find also works without a Work matching key
?s rdfs:label ?workID
}
OPTIONAL { # when debug, use it as optional to find also works without a Work matching key
?o rdfs:label ?workExpID
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "TomSawyerFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
?s rdfs:label ?workID.
?o rdfs:label ?workExpID.
?o1 rdfs:label ?expID.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "TomSawyerFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
OPTIONAL { # when debug, use it as optional to find also works without a Work matching key
?o1 rdfs:label ?expID.
}
}
OPTIONAL { # when debug, use it as optional to find also works without a Work matching key
?s rdfs:label ?workID
}
OPTIONAL { # when debug, use it as optional to find also works without a Work matching key
?o rdfs:label ?workExpID
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "IliadFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
?s rdfs:label ?workID.
?o rdfs:label ?workExpID.
?o1 rdfs:label ?expID.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "IliadFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
OPTIONAL { # when debug, use it as optional to find also works without a Work matching key
?o1 rdfs:label ?expID.
}
}
OPTIONAL { # when debug, use it as optional to find also works without a Work matching key
?s rdfs:label ?workID
}
OPTIONAL { # when debug, use it as optional to find also works without a Work matching key
?o rdfs:label ?workExpID
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "KaramazovBrothersFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "FaustFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
}
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
?s ?p ?o.
?o ?p1 ?o1.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?s a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "OdysseyFamily"@en).
?s ?p ?o.
FILTER EXISTS {{?o a rdac:C10001} UNION {?o a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?o ?p1 ?o1.
FILTER EXISTS {?o1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211).
}
}
To include also properties to the opposite direction (inverse properties) remove respective property filters.
To specify a family, set its name in statement:</br>
FILTER (?familyLabel = "TomSawyerFamily")
Note:</br>
to see all family names run the sparql Enumerate families
%display diagram svg withliterals
#%lang en
CONSTRUCT{
?w ?p ?we.
?we ?p1 ?e1.
?e rdaeo:P20059 ?m.
?m ?p2 ?m1.
?w rdfs:label ?workID.
?we rdfs:label ?workExpID.
?e1 rdfs:label ?exp1ID.
?e rdfs:label ?expID.
?m rdfs:label ?mID.
?m1 rdfs:label ?m1ID.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
?w a rdac:C10001;
rdfs:comment ?familyLabel.
FILTER (?familyLabel = "TomSawyerFamily"@en).
?w ?p ?we.
FILTER EXISTS {{?we a rdac:C10001} UNION {?we a rdac:C10006} } # W -2- W, W -2- E
FILTER (?p = rdawo:P10016 or ?p = rdawo:P10099 or ?p = rdawo:P10113 or
?p = rdawo:P10147 or ?p = rdawo:P10155 or ?p = rdawo:P10170 or
?p = rdawo:P10236 or ?p = rdawo:P10257 or ?p = rdawo:P10291 or
?p = rdawo:P10078).
OPTIONAL{
?we ?p1 ?e1.
FILTER EXISTS {?e1 a rdac:C10006 } # E -2- E
FILTER (?p1 = rdaeo:P20076 or ?p1 = rdaeo:P20110 or ?p1 = rdaeo:P20145 or
?p1 = rdaeo:P20153 or ?p1 = rdaeo:P20166 or ?p1 = rdaeo:P20171 or
?p1 = rdaeo:P20203 or ?p1 = rdaeo:P20211)
OPTIONAL { ?e1 rdfs:label ?exp1ID }
OPTIONAL{
?e rdaeo:P20059 ?m # E -2- M
#FILTER EXISTS {?m a rdac:C10007 }
FILTER(?e = ?we or ?e = ?e1)
OPTIONAL { ?e rdfs:label ?expID }
OPTIONAL { ?m rdfs:label ?mID }
OPTIONAL{
?m ?p2 ?m1
FILTER EXISTS {?m1 a rdac:C10007 } # Μ -2- M
FILTER (?p2 = rdamo:P30046 or ?p2 = rdamo:P30210)
#FILTER (?p2 != rdf:type)
OPTIONAL { ?m1 rdfs:label ?m1ID }
}
}
}
OPTIONAL { ?w rdfs:label ?workID }
OPTIONAL { ?we rdfs:label ?workExpID }
}
%display diagram svg withliterals
%lang en
CONSTRUCT{
<http://dbis.ionio.gr/Resources/library#dbis_1000000001> ?p ?o.
?o ?p1 ?o1.
?o1 ?p2 ?o2.
?o2 ?p3 ?o3.
}
FROM <http://dbis.ionio.gr/bf2rdadrv>
WHERE {
<http://dlib.mappings.BF22RDA.org#Work_dbis_W_hExpS_0000000017> ?p ?o.
FILTER (?p != rdf:type)
OPTIONAL{
?o ?p1 ?o1.
FILTER (?p1 != rdf:type)
OPTIONAL{
?o1 ?p2 ?o2.
FILTER (?p2 != rdf:type)
OPTIONAL{
?o2 ?p3 ?o3
FILTER (?p3 != rdf:type)
}
}
}
# FILTER (?p = rdf:type or ?p = skos:note or ?p = rdfs:label or ?p = rdfs:comment or
# ?p = rdawo:P10061 or ?p = rdawo:P10078 or ?p = rdawo:P10127 or
# ?p = rdawd:P10002 or ?p = rdawd:P10088).
}
%endpoint http://libdata.tab.ionio.gr:8890/sparql
%display table
prefix bf: <http://id.loc.gov/ontologies/bibframe/>
Select str(?familyLabel)as ?family ?w ?t
FROM <http://dbis.ionio.gr/gBF2drv>
WHERE {
{ ?w a ?t.
FILTER (?t = bf:Work or ?t = bf:Text or
?t = bf:Cartography or ?t = bf:Audio or
?t = bf:NotatedMusic or ?t = bf:NotatedMovement or
?t = bf:Dataset or ?t = bf:StillImage or
?t = bf:MovingImage or ?t = bf:Object or
?t = bf:Multimedia or ?t = bf:MixedMaterial
)
}
MINUS
{# Work to Work Relatinships
{?w a bf:Work} UNION {?w a bf:Text}
UNION
{?w a bf:Cartography} UNION {?w a bf:Audio}
UNION
{?w a bf:NotatedMusic} UNION {?w a bf:NotatedMovement}
UNION
{?w a bf:Dataset} UNION {?w a bf:StillImage}
UNION
{?w a bf:MovingImage} UNION {?w a bf:Object}
UNION
{?w a bf:Multimedia} UNION {?w a bf:MixedMaterial}
?w ?p ?o.
FILTER EXISTS {
{?o a bf:Work} UNION {?o a bf:Text}
UNION
{?o a bf:Cartography} UNION {?o a bf:Audio}
UNION
{?o a bf:NotatedMusic} UNION {?o a bf:NotatedMovement}
UNION
{?o a bf:Dataset} UNION {?o a bf:StillImage}
UNION
{?o a bf:MovingImage} UNION {?o a bf:Object}
UNION
{?o a bf:Multimedia} UNION {?o a bf:MixedMaterial}
}
}
?w bf:note ?wf.
?wf bf:noteType ?ntype;
rdfs:label ?familyLabel.
FILTER (?ntype = "BibFamily")
}
ORDER BY ?familyLabel