If any of the %magics is modified in the intermediate code, then set it again when it needed
%endpoint http://83.212.171.43:8890/sparql
%graph http://dbis.ionio.gr/grdadrv
%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/>
# %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 not optional!!! </br>Therefore, it counts ONLY works belonging to a family!
%display table
SELECT ?familyLabel COUNT(?w) AS ?NoWorks
WHERE {
?w a rdac:C10001.
?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
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/grdadrv>
WHERE {
?w ?p ?o;
a rdac:C10001.
?o a rdac:C10001.
?w rdfs:comment ?sfamilyLabel.
?o rdfs:comment ?ofamilyLabel.
}
%display diagram
CONSTRUCT{
?w ?p ?o.
}
FROM <http://dbis.ionio.gr/grdadrv>
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/grdadrv>
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/grdadrv>
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/grdadrv>
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/grdadrv>
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/grdadrv>
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/grdadrv>
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/grdadrv>
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/grdadrv>
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/grdadrv>
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/grdadrv>
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/grdadrv>
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/grdadrv>
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.
?s rdfs:label ?workID.
?o rdfs:label ?workExpID.
?o1 rdfs:label ?expID.
}
FROM <http://dbis.ionio.gr/grdadrv>
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.
?s rdfs:label ?workID.
?o rdfs:label ?workExpID.
?o1 rdfs:label ?expID.
}
FROM <http://dbis.ionio.gr/grdadrv>
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
}
}
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/grdadrv>
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/grdadrv>
WHERE {
<http://dbis.ionio.gr/Resources/library#dbis_1000000001> ?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).
}