matthiasluehr / VIVO-HSMW

2 stars 0 forks source link

Query für Data Distribution API (Typo3 Anbindung) #6

Open matthiasluehr opened 2 years ago

matthiasluehr commented 2 years ago

Query für Publikationen (V1)

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 foaf:     <http://xmlns.com/foaf/0.1/>
PREFIX hsmw:     <https://vivo.hs-mittweida.de/vivo/ontology/hsmw#>
PREFIX kdsf:     <http://kerndatensatz-forschung.de/owl/Basis#>
PREFIX vivo:     <http://vivoweb.org/ontology/core#>
PREFIX obo:      <http://purl.obolibrary.org/obo/>
PREFIX bibo:    <http://purl.org/ontology/bibo/>
PREFIX vivo-de: <http://vivoweb.org/ontology/core/de#>

                SELECT  DISTINCT
                        (SAMPLE(?pubtitle) AS ?label)
                        (GROUP_CONCAT(DISTINCT ?aName; separator = "; ") AS ?authorName)
                        (SAMPLE(?abs) AS ?abstract)
                        (SAMPLE(?pAt) AS ?presentedAt)
                        (SAMPLE(?pYear) AS ?publicationYear)
                        (SAMPLE(?pubIn) AS ?publishedIn)
                        (SAMPLE(?biboVolume) AS ?volume)
                        (SAMPLE(?biboIssue) AS ?issue)
                        (SAMPLE(?biboEdition) AS ?edition)
                        (SAMPLE(?pageStart) AS ?startPage)
                        (SAMPLE(?pageEnd) AS ?endPage)
                        (SAMPLE(?pN) AS ?numberOfPages)
                        (SAMPLE(?st) AS ?state)
                        (SAMPLE(?loc) AS ?placeOfPublication)
                        (SAMPLE(?_publisher) AS ?publisher)
                        (GROUP_CONCAT(DISTINCT ?_editor; separator = "; ") AS ?editor)
                        (SAMPLE(?_doi) AS ?doi)
                        (SAMPLE(?_issn) AS ?issn)
                        (SAMPLE(?_isbn10) AS ?isbn10)
                        (SAMPLE(?_isbn13) AS ?isbn13)
                        WHERE
                        {
                                ?s a bibo:Document .
                                ?s rdfs:label ?pubtitle .
                                OPTIONAL {
                                        ?s vivo:dateTimeValue ?dtv .
                                        ?dtv vivo:dateTime ?dt .
                                        BIND(xsd:dateTime(?dt) AS ?date)
                                        BIND(year(?date) AS ?pYear)
                                }
                                OPTIONAL {
                                    ?s bibo:pageStart ?pageStart . 
                                }
                                OPTIONAL {
                                    ?s bibo:pageEnd ?pageEnd . 
                                }
                                OPTIONAL {
                                    ?s bibo:pageNum ?pn .
                                }
                                OPTIONAL {
                                    ?s bibo:volume ?biboVolume . 
                                }
                                OPTIONAL {
                                    ?s bibo:issue ?biboIssue . 
                                }
                                OPTIONAL {
                                    ?s bibo:edition ?biboEdition . 
                                }
                                OPTIONAL {
                                    ?s bibo:abstract ?abs .
                                }
                                OPTIONAL {
                                    ?s bibo:status ?st .
                                }
                                OPTIONAL {
                                    ?s vivo:placeOfPublication ?loc .
                                }
                                OPTIONAL {
                                    ?s <http://purl.obolibrary.org/obo/BFO_0000050> ?event .
                                    ?event a <http://purl.org/NET/c4dm/event.owl#Event> .
                                    ?event rdfs:label ?pAt .
                                }
                                OPTIONAL {
                                        ?s vivo:hasPublicationVenue ?pubvenue .
                                        ?pubvenue rdfs:label ?pubIn .
                                        OPTIONAL {
                                            ?pubvenue vivo:publisher ?_pv_publishernode .
                                            ?_pv_publishernode a foaf:Organization .
                                            ?_pv_publishernode rdfs:label ?_pv_publisher .
                                        }
                                        OPTIONAL {
                                            ?pubvenue vivo:relatedBy ?_pv_editorrole_node .
                                            ?_pv_editorrole_node a vivo:Editorship .
                                            OPTIONAL {
                                                    ?_pv_editorrole_node vivo:relates ?_pv_editornode .
                                                    ?_pv_editornode a foaf:Person .
                                                    ?_pv_editornode rdfs:label ?_pv_editor .
                                            }
                                            OPTIONAL {
                                                    ?_pv_editorrole_node vivo:relates ?_pv_editornode .
                                                    ?_pv_editornode a foaf:Organization .
                                                    ?_pv_editornode rdfs:label ?_pv_editor .
                                            }
                                        }
                                        OPTIONAL {
                                            ?pubvenue bibo:isbn10 ?_pv_isbn10 .
                                        }
                                        OPTIONAL {
                                            ?pubvenue bibo:isbn13 ?_pv_isbn13 .
                                        }
                                        OPTIONAL {
                                            ?pubvenue bibo:issn ?_pv_issn .
                                        }
                                    }
                                OPTIONAL {
                                            ?s vivo:publisher ?_doc_publishernode .
                                            ?_doc_publishernode a foaf:Organization .
                                            ?_doc_publishernode rdfs:label ?_doc_publisher .
                                }
                                OPTIONAL {
                                            ?s vivo:relatedBy ?_doc_editorrole_node .
                                            ?_doc_editorrole_node a vivo:Editorship .
                                    OPTIONAL {
                                                ?_doc_editorrole_node vivo:relates ?_doc_editornode .
                                                ?_doc_editornode a foaf:Person .
                                                ?_doc_editornode rdfs:label ?_doc_editor .
                                    }
                                    OPTIONAL {
                                                ?_doc_editorrole_node vivo:relates ?_doc_editornode .
                                                ?_doc_editornode a foaf:Organization .
                                                ?_doc_editornode rdfs:label ?_doc_editor .
                                    }
                                }

                                OPTIONAL {
                                        ?s bibo:doi ?_doi .
                                }
                              OPTIONAL {
                                            ?s bibo:isbn10 ?_doc_isbn10 .
                              }
                             OPTIONAL {
                                            ?s bibo:isbn13 ?_doc_isbn13 .
                             }
                             OPTIONAL {
                                            ?s bibo:issn ?_doc_issn .
                                }
                                ?s vivo:relatedBy ?authorship .
                                ?authorship a vivo:Authorship .
                                ?authorship vivo:relates ?author .
                                ?author a foaf:Person .
                                ?author vivo:relatedBy ?position .
                                ?position a vivo:Position .
                                ?position vivo:relates <https://vivo.hs-mittweida.de/vivo/individual/org_0228> .                
                                BIND (COALESCE(?_pv_publisher, ?_doc_publisher) AS ?_publisher)
                                BIND (COALESCE(?_pv_editor, ?_doc_editor) AS ?_editor)
                                BIND (COALESCE(?_pv_issn, ?_doc_issn) AS ?_issn)
                                BIND (COALESCE(?_pv_isbn10, ?_doc_ibsn10) AS ?_isbn10)
                                BIND (COALESCE(?_pv_isbn13, ?_doc_isbn13) AS ?_isbn13)
                                OPTIONAL {
                                        ?s vivo:relatedBy ?aship.
                                        ?aship a vivo:Authorship .
                                        OPTIONAL {
                                            ?aship vivo:relates ?auth .
                                            ?auth a foaf:Person .
                                            ?auth rdfs:label ?aName .
                                         }
                                        OPTIONAL {
                                            ?aship vivo:relates ?auth .
                                            ?auth a <http://www.w3.org/2006/vcard/ns#Individual> .
                                            ?auth <http://www.w3.org/2006/vcard/ns#hasName> ?vcardname .
                                            ?vcardname <http://www.w3.org/2006/vcard/ns#givenName> ?firstname .
                                            ?vcardname <http://www.w3.org/2006/vcard/ns#familyName> ?familyname .
                                            BIND(CONCAT(?familyname, ", ", ?firstname) AS ?aName)
                                        }
                                }
                                FILTER(?pYear = 2019 || ?pYear = 2020) 
                            } GROUP BY ?fp ?s ?author
                        ORDER BY ?fsp DESC(?publicationYear)