SPARQL如何在没有数据方案的情况下打印数据

时间:2017-03-13 03:05:01

标签: sparql semantic-web ontology protege

我有这个本体模型:

SensorOntology:MedicalCabinet-01 rdf:type owl:NamedIndividual ,
                               SensorOntology:MedicalCabinetSensor ;
                      SensorOntology:hasId "57"^^xsd:int ;
                      SensorOntology:hasValue "0"^^xsd:int .

我写了这个查询

SELECT ?sensor ?value
WHERE { ?sensor:hasId "51"^^xsd:int.
        ?sensor :hasValue ?value}

结果就是这个

    sensor            |  value
-------------------------------------------------------------------------
    MedicalCabinet-01 | "0"^^<http://www.w3.org/2001/XMLSchema#int>

是否可以打印这个:

    sensor            |  value
-------------------------------------------------------------------------
    MedicalCabinet-01 | 0

我不想打印^^<http://www.w3.org/2001/XMLSchema#int>

1 个答案:

答案 0 :(得分:1)

您的意思和想要省略的是RDF文字的数据类型IRI:

  

RDF图中的文字由两个或三个元素组成:

     
      
  • 一个词法形式,是一个Unicode [UNICODE]字符串,应该在   正常形式C [NFC],
  •   
  • 数据类型IRI ,是一个识别a的IRI   确定词法表单如何映射到文字值的数据类型,   和
  •   
  • ...
  •   

文字的词汇形式可以由函数STR返回(注意,它将是一个字符串):

SELECT ?sensor (STR(?val) as ?value)
WHERE { ?sensor:hasId "51"^^xsd:int.
        ?sensor :hasValue ?val}