sub:assertion {
sub:get-nanopubs-for-paper dct:description "This query returns all the nanopublications that refer to (e.g. annotate) a given paper." ;
dct:license <
http://www.apache.org/licenses/LICENSE-2.0> ;
a <
https://w3id.org/kpxl/grlc/grlc-query> ;
rdfs:label "Get nanopublications refering to a given paper" ;
<
https://w3id.org/kpxl/grlc/endpoint> <
https://w3id.org/np/l/nanopub-query-1.1/repo/full> ;
<
https://w3id.org/kpxl/grlc/sparql> """prefix np: <http://www.nanopub.org/nschema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix dct: <http://purl.org/dc/terms/>
prefix oa: <http://www.w3.org/ns/oa#>
select distinct ?np ?user ?type ?subj ?subjLabel ?rel ?relLabel ?text ?selection ?date where {
graph npa:graph {
?np np:hasAssertion ?a .
?np np:hasPublicationInfo ?i.
?np dct:created ?date .
?np dct:creator ?user .
?np npa:hasValidSignatureForPublicKey ?pubkey .
filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . }
}
graph ?a {
?subj ?rel ?_paper_iri .
}
optional { ?a rdfs:comment ?textPre . bind(str(?textPre) as ?text) }
optional { graph <http://purl.org/np/RA6d0qLmlRdXd-ubre83LxP22auJdJjXGzaW3W3qH4Neo#assertion> {
?rel rdfs:label ?relLabelPre .
bind(\"cito\" as ?typePre)
} }
optional { graph ?a {
?annotation oa:hasTarget ?annotationtarget ;
oa:hasBody ?annotationbody .
?annotationbody rdf:value ?annotationtext .
?annotationtarget oa:hasSource ?_paper_iri ;
oa:hasSelector ?annotationSelector .
optional { ?annotationSelector oa:prefix ?annotatedprefix . }
?annotationSelector oa:exact ?annotatedtext .
optional { ?annotationSelector oa:suffix ?annotatedsuffix . }
bind(\"oa\" as ?typePre)
bind(str(?annotationtext) as ?text)
bind(concat(?annotatedprefix, \"<h>\", ?annotatedtext, \"</h>\", ?annotatedsuffix) as ?selection)
} }
bind(replace(str(?subj), '^.*?([a-zA-Z0-9\\\\-\\\\_]+)$', '$1') as ?subjLabel).
bind(coalesce(str(?relLabelPre), replace(str(?rel), '^.*?([a-zA-Z0-9\\\\-\\\\_]+)$', '$1')) as ?relLabel).
bind(coalesce(?typePre, \"other\") as ?type).
}
order by desc(?date)""" .
}