SPARQL如何获取个人的类型

SPARQL如何获取个人的类型,sparql,jena,semantic-web,ontology,protege,Sparql,Jena,Semantic Web,Ontology,Protege,我做了这个本体论: SensorOntology:MedicalCabinet-01 rdf:type owl:NamedIndividual , SensorOntology:MedicalCabinetSensor ; SensorOntology:hasId "57"^^xsd:int ; SensorOntology

我做了这个本体论:

SensorOntology:MedicalCabinet-01 rdf:type owl:NamedIndividual ,
                                   SensorOntology:MedicalCabinetSensor ;
                          SensorOntology:hasId "57"^^xsd:int ;
                          SensorOntology:hasValue "0"^^xsd:int .
我正在尝试编写一个查询,以通过给定的id编号获取MedicalCabinet-01的类型,即MedicalCabinetSensor。但是,我正在打印owl:namedinDivious和SensorOntology:MedicalCapinetSensor。不管怎样,我只打印了传感器本体:MedicalCapinetSensor。这是我的疑问:

SELECT DISTINCT  ?sensor ?sensorclass
       WHERE {?sensor :hasId  "100"^^xsd:int.
              ?sensor rdf:type ?sensorclass}

有多种方法可以忽略结果,因此不清楚您要使用哪种方法,特别是因为有些方法非常明显。这里有两个选项:

  • 当您用Jena标记它时,请使用Java并忽略URI与owl:NamedIndividual匹配的资源
  • 在SPARQL中使用
    过滤器
    ,即将
    过滤器(?sensorclass!=owl:NamedIndividual)
    添加到SPARQL查询的图形模式中

  • 有多种方法可以忽略结果,因此不清楚您要使用哪种方法,特别是因为有些方法非常明显。这里有两个选项:

  • 当您用Jena标记它时,请使用Java并忽略URI与owl:NamedIndividual匹配的资源
  • 在SPARQL中使用
    过滤器
    ,即将
    过滤器(?sensorclass!=owl:NamedIndividual)
    添加到SPARQL查询的图形模式中

  • 事实上,有多种方法。还有一个:

    SELECT DISTINCT  ?sensor ?sensorclass
    WHERE {?sensor :hasId  "100"^^xsd:int.
                  ?sensor rdf:type ?sensorclass
    
    FILTER ( strstarts(str(?sensorclass), "[sensor ontology URI]") )
    
    }
    

    事实上,有多种方法。还有一个:

    SELECT DISTINCT  ?sensor ?sensorclass
    WHERE {?sensor :hasId  "100"^^xsd:int.
                  ?sensor rdf:type ?sensorclass
    
    FILTER ( strstarts(str(?sensorclass), "[sensor ontology URI]") )
    
    }
    

    查询是正确的,必须为个人
    SensorOntology:medicalcapinet-01
    返回两个结果-一个是类
    SensorOntology:medicalcapinetsensor
    ,另一个是类
    owl:NamedIndividual
    。如何运行查询和处理结果集?请显示代码片段。对不起,我编辑了我的问题。是否可以只打印SensorOntology:MedicalCapinetSensor查询是正确的,必须为个人返回两个结果
    SensorOntology:MedicalCapinet-01
    ——一个带有类
    SensorOntology:MedicalCapinetSensor
    ,另一个用于
    owl:NamedIndividual
    。如何运行查询和处理结果集?请显示代码片段。对不起,我编辑了我的问题。是否可以打印SensorOntology:MedicalCapinetSensor