Как получить доступ к таблице Colspan в SPARQL? - PullRequest
0 голосов
/ 13 октября 2019

[РЕДАКТИРОВАТЬ]

У меня есть этот RDF:

@prefix :      <http://www.x.com/ontology#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ontology: <http://www.x.com/ontology/> .

<http://www.x.com/ontology>
        a       owl:Ontology .

ontology:melalui_jalur
        a       owl:ObjectProperty .

ontology:memiliki_peminat
        a       owl:ObjectProperty .

ontology:alias  a  owl:DatatypeProperty .

ontology:jumlah  a  owl:DatatypeProperty .

ontology:nama  a  owl:DatatypeProperty .

ontology:tahun  a  owl:DatatypeProperty .

ontology:Jalur_Terima
        a                owl:Class ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     ontology:alias
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     ontology:nama
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     ontology:alias
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     ontology:nama
                         ] .

ontology:Peminat  a      owl:Class ;
        rdfs:subClassOf  ontology:Penerimaan ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:int ;
                           owl:onProperty     ontology:jumlah
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:int ;
                           owl:onProperty     ontology:tahun
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:int ;
                           owl:onProperty     ontology:jumlah
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:int ;
                           owl:onProperty     ontology:tahun
                         ] .

ontology:Penerimaan  a   owl:Class ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      ontology:melalui_jalur ;
                           owl:someValuesFrom  ontology:Jalur_Terima
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      ontology:melalui_jalur ;
                           owl:someValuesFrom  ontology:Jalur_Terima
                         ] .

ontology:Prodi  a        owl:Class ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      ontology:memiliki_peminat ;
                           owl:someValuesFrom  ontology:Peminat
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     ontology:alias
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     ontology:nama
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      ontology:memiliki_peminat ;
                           owl:someValuesFrom  ontology:Peminat
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     ontology:alias
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     ontology:nama
                         ] .

ontology:Non_Reguler  a  ontology:Jalur_Terima , owl:NamedIndividual .

ontology:Pem_Non_2017
        a                       ontology:Peminat , owl:NamedIndividual ;
        ontology:jumlah         0 ;
        ontology:melalui_jalur  ontology:Non_Reguler ;
        ontology:tahun          2017 .

ontology:Pem_Non_2018
        a                       ontology:Peminat , owl:NamedIndividual ;
        ontology:jumlah         0 ;
        ontology:melalui_jalur  ontology:Non_Reguler ;
        ontology:tahun          2018 .

ontology:Pem_SAP_2017
        a                       ontology:Peminat , owl:NamedIndividual ;
        ontology:jumlah         8 ;
        ontology:melalui_jalur  ontology:SAP ;
        ontology:tahun          2017 .

ontology:SAP  a  ontology:Jalur_Terima , owl:NamedIndividual .

ontology:Pem_SAP_2018
        a                       ontology:Peminat , owl:NamedIndividual ;
        ontology:jumlah         7 ;
        ontology:melalui_jalur  ontology:SAP ;
        ontology:tahun          2018 .

ontology:Pem_SBM_2017
        a                       ontology:Peminat , owl:NamedIndividual ;
        ontology:jumlah         6 ;
        ontology:melalui_jalur  ontology:SBMPTN ;
        ontology:tahun          2017 .

ontology:SBMPTN  a  ontology:Jalur_Terima , owl:NamedIndividual .

ontology:Pem_SBM_2018
        a                       ontology:Peminat , owl:NamedIndividual ;
        ontology:jumlah         5 ;
        ontology:melalui_jalur  ontology:SBMPTN ;
        ontology:tahun          2018 .

ontology:Pem_SNM_2017
        a                       ontology:Peminat , owl:NamedIndividual ;
        ontology:jumlah         4 ;
        ontology:melalui_jalur  ontology:SNMPTN ;
        ontology:tahun          2017 .

ontology:SNMPTN  a  ontology:Jalur_Terima , owl:NamedIndividual .

ontology:Pem_SNM_2018
        a                       ontology:Peminat , owl:NamedIndividual ;
        ontology:jumlah         3 ;
        ontology:melalui_jalur  ontology:SNMPTN ;
        ontology:tahun          2018 .

ontology:Pem_SPMK_2017
        a                       ontology:Peminat , owl:NamedIndividual ;
        ontology:jumlah         2 ;
        ontology:melalui_jalur  ontology:SPMK ;
        ontology:tahun          2017 .

ontology:SPMK  a  ontology:Jalur_Terima , owl:NamedIndividual .

ontology:Pem_SPMK_2018
        a                       ontology:Peminat , owl:NamedIndividual ;
        ontology:jumlah         1 ;
        ontology:melalui_jalur  ontology:SPMK ;
        ontology:tahun          2018 .

ontology:TIF  a                    ontology:Prodi , owl:NamedIndividual ;
        ontology:memiliki_peminat  ontology:Pem_Non_2017 , ontology:Pem_Non_2018 , ontology:Pem_SAP_2017 , ontology:Pem_SAP_2018 , ontology:Pem_SBM_2017 , ontology:Pem_SBM_2018 , ontology:Pem_SNM_2017 , ontology:Pem_SNM_2018 , ontology:Pem_SPMK_2017 , ontology:Pem_SPMK_2018 .

Ожидаемый результат: я хочу получить доступ к свойству (tahun и jumlah) -данных в Peminat на основе Jalur_Terima, чтобы данные моглипоказанный в этой таблице

сейчас я могу получить доступ к своей таблице, используя этот запрос

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#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX x: <http://www.x.com/ontology/>

SELECT ?tahun ?snm_pem ?sbm_pem ?spmk_pem ?sap_pem ?non_pem
WHERE {

  Bind(x:TIF as ?tif)

  ?tif x:memiliki_peminat ?pem1.
  ?pem1 x:tahun ?tahun;
        x:melalui_jalur x:SNMPTN;
        x:jumlah ?snm_pem.
  x:TIF x:memiliki_peminat ?pem2.
  ?pem2 x:tahun ?tahun;
        x:melalui_jalur x:SBMPTN;
        x:jumlah ?sbm_pem.
  x:TIF x:memiliki_peminat ?pem3.
  ?pem3 x:tahun ?tahun;
        x:melalui_jalur x:SPMK;
        x:jumlah ?spmk_pem.
  x:TIF x:memiliki_peminat ?pem4.
  ?pem4 x:tahun ?tahun;
        x:melalui_jalur x:SAP;
        x:jumlah ?sap_pem.
  x:TIF x:memiliki_peminat ?pem5.
  ?pem5 x:tahun ?tahun;
        x:melalui_jalur x:Non_Reguler;
        x:jumlah ?non_pem.
}
ORDER BY DESC(?tahun)

Я хотел бы спросить, как упростить этот запрос? или есть другой способ получить к нему доступ? спасибо

...