SPARQL相当于SQL select查询?

时间:2017-06-07 04:20:06

标签: sql sparql rdf r2rml

如果我有一个可以像这样查询的SQL表:

Select empname from mytable
Where empid=1;

等效的SPARQL查询是什么?

1 个答案:

答案 0 :(得分:3)

正如这里提到的一些人以及之前类似的问题,您可能需要更多地了解RDF建模数据的性质。

对于Stack Overflow,你肯定需要养成显示输入数据的习惯,以及到目前为止所写的任何代码,即使它不能正常工作。在这种情况下,您需要在问题中包含错误消息。

这是一个自我包含的例子,我

  • 猜到你的桌子是什么样的
  • 将其建模为RDF
  • 编写了一个SPARQL查询来执行您所要求的内容

这个例子是用我最强的语言R写的。 要明确:你不需要了解任何关于R的知识就可以擅长RDF,SPARQL和其他语义技术。如果我更擅长Java或Python,我会编写这个例子用其中一种语言。

在使用RDF查询之前,必须将关系(SQL)数据转换为RDF。在下面的代码中,我已经手动完成了。有关螺母和螺栓,请参阅消息的末尾。

library(rrdf)
library(sqldf)

mytable.table.string <- 'empid,empname
1,Arthur
2,Kevin
3,Joey'

mytable <- read.csv(textConnection(mytable.table.string))

print(mytable)

>  empid empname
> 1     1  Arthur
> 2     2  Kevin
> 3     3  Joey

sqldf('select empname from mytable where empid = 1')

>   empname
> 1  Arthur

# R2RML conversion goes here
# I did it by hand

table.rdf.string <- 'prefix mytable: <http://mytable/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
mytable:1 a mytable:employee .
mytable:1 mytable:empid "1" .
mytable:1 rdfs:label "Arthur" .
mytable:2 a mytable:employee .
mytable:2 mytable:empid "2" .
mytable:2 rdfs:label "Kevin" .
mytable:3 a mytable:employee .
mytable:3 mytable:empid "3" .
mytable:3 rdfs:label "Joey" . '

mytable.rdf <- fromString.rdf(table.rdf.string, format = "TURTLE")

query.as.sparql <- 'prefix mytable: <http://mytable/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?empname
where
{?emp a mytable:employee .
?emp mytable:empid "1" .
?emp rdfs:label ?empname . }'

sparql.rdf(model = mytable.rdf, sparql = query.as.sparql)

>     empname 
> [1,] "Arthur"

要查看:上面的这个R代码演示了一个等同于OP的SQL查询的SAPRQL查询。 SQL查询通常针对SQL数据库运行,但我通过针对数据帧运行它来使其自包含。

SPARQL查询针对RDF数据运行,通常以triplestore数据库的形式运行。在我的示例中,包含RDF三元组的字符串将转换为内存中的RDF模型,并将SPARQL查询发送到该模型。

所以问题就变成了,如果你在SQL数据库中有数据,你如何使用SPARQL查询数据库的内容?截至2017年夏季,这是一个不断发展的话题。有许多商业和开源工具可以帮助解决这个问题,通常有以下两种方式之一:

  1. 通过创建似乎发送SPARQL查询的接口 直接到SQL数据库,实时
  2. 通过将SQL数据库内容转换并转储为静态 RDF文件,然后可以加载到一个天真的SPARQL兼容 triplestore
  3. 在任何一种情况下,有人都需要创建从SQL数据到RDF格式的映射。这是必需的,因为SQL表本身没有明确的语义。行通常模拟某些类别的个体,列通常表示个人的属性或关系。 RDF三元组必须具有明确的主语 - 动词 - 对象语义。

    以下是我建议使用Karma进行SQL-RDF映射的第一步,它具有漂亮的图形界面。使用其他R2RML映射器可以实现类似的结果,例如D2RQ(有效,但未维护3年),ontopR2RML parser

    1. 观看Karma videos并阅读user's guide, 特别是步骤1到5加7.
    2. 根据发布的指示安装Karma。
    3. 启动Karma。 Karma的Web界面应出现在您的Web浏览器中
    4. 将下面的本体粘贴到文本编辑器中并另存为 44403425.owl在Karma中打开附加的本体(import - &gt; from file
    5. 同样,保存&amp;导入mytable.csv,用于表示 来自SQL数据库的转储。如果你想现场工作 数据库,您将负责确保正确的数据库 驱动程序已安装。在这种情况下,请使用import - &gt; Database Table 代替。
    6. 再次,将模型保存为mytable-model.ttl。点击下拉菜单 在Karma网页顶部附近的灰色条的左侧。 选择Apply R2RML model - &gt; from file并加载mytable_model.ttl
    7. 再次点击下拉菜单,然后选择Publish - &gt; RDF。接受建议的设置。
    8. 在顶部黑条的右侧查找OpenRDF。右键点击 该链接在新的浏览器窗口/标签页中打开它。
    9. 在OpenRDF Workbench页面上,选择karma_data存储库。 您现在可以使用左侧的任意Explore个链接,包括 (SPARQL)Query链接
    10. 关闭时,OpenRDF Workbench页面将无法访问  噶。您可以从OpenRDF导出新的三元组  工作台,或者您可以从Karma的灰色栏中进行操作。您  如果您进行了任何更改,也可以导出建模文件  它。此时,RDF数据三元组可以加载到任何其他三元组中,或者使用Jena的ARQ等命令行工具进行探索。
    11. 最后,如果您想使用除Karma之外的R2RML映射器,则可以使用与mytable-model.ttl类似(但不相同)的映射文件。 Karma使用Python的片段进行一些数据操作,这些片段嵌入在JSON中。 JSON成为km-dev:hasWorksheetHistory三元组的巨大对象。我不相信所有R2RML解析器都能识别Python / JSON。

      <强> 44403425.owl

      <?xml version="1.0"?>
      <rdf:RDF xmlns="https://stackoverflow.com/questions/44403425.owl/"
           xml:base="https://stackoverflow.com/questions/44403425.owl/"
           xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
           xmlns:mytable="https://stackoverflow.com/questions/44403425.owl/"
           xmlns:owl="http://www.w3.org/2002/07/owl#"
           xmlns:xml="http://www.w3.org/XML/1998/namespace"
           xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
           xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
          <owl:Ontology rdf:about="https://stackoverflow.com/questions/44403425.owl"/>
      
          <owl:DatatypeProperty rdf:about="https://stackoverflow.com/questions/44403425.owl/empid">
              <rdfs:domain rdf:resource="https://stackoverflow.com/questions/44403425.owl/employee"/>
              <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
              <rdfs:label>employee identifier</rdfs:label>
          </owl:DatatypeProperty>
      
          <owl:Class rdf:about="https://stackoverflow.com/questions/44403425.owl/employee">
              <owl:equivalentClass>
                  <owl:Restriction>
                      <owl:onProperty rdf:resource="https://stackoverflow.com/questions/44403425.owl/empid"/>
                      <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality>
                  </owl:Restriction>
              </owl:equivalentClass>
              <rdfs:label>employee class</rdfs:label>
          </owl:Class>
      </rdf:RDF>
      

      <强> mytable.csv

      "empid","empname"
      1,"Arthur"
      2,"Kevin"
      3,"Joey"
      

      <强> MYTABLE-model.ttl

      @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
      @prefix pato: <http://purl.obolibrary.org/obo/pato#> .
      @prefix dc: <http://purl.org/dc/elements/1.1/> .
      @prefix obo: <http://purl.obolibrary.org/obo/> .
      @prefix owl: <http://www.w3.org/2002/07/owl#> .
      @prefix oboInOwl: <http://www.geneontology.org/formats/oboInOwl#> .
      @prefix protege: <http://protege.stanford.edu/plugins/owl/protege#> .
      @prefix turbo: <http://turbo.org/> .
      @prefix subsets: <http://purl.obolibrary.org/obo/ro/subsets#> .
      @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
      @prefix foaf: <http://xmlns.com/foaf/0.1/> .
      @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
      @prefix rr: <http://www.w3.org/ns/r2rml#> .
      @prefix km-dev: <http://isi.edu/integration/karma/dev#> .
      
      _:node1bi2073ftx1 a km-dev:R2RMLMapping ;
          km-dev:sourceName "mytable.csv" ;
          km-dev:modelPublicationTime "1496863444477"^^xsd:long ;
          km-dev:modelVersion "1.7" ;
          km-dev:hasInputColumns "[[{\"columnName\":\"empname\"}],[{\"columnName\":\"empid\"}]]" ;
          km-dev:hasOutputColumns "[[{\"columnName\":\"empname\"}],[{\"columnName\":\"empid\"}],[{\"columnName\":\"empid_val\"}]]" ;
          km-dev:hasModelLabel "mytable" ;
          km-dev:hasBaseURI "https://stackoverflow.com/questions/44403425.owl/" ;
          km-dev:hasWorksheetHistory """[
          {
              \"commandName\": \"SubmitPythonTransformationCommand\",
              \"model\": \"new\",
              \"inputParameters\": [
                  {
                      \"name\": \"hNodeId\",
                      \"type\": \"hNodeId\",
                      \"value\": [{\"columnName\": \"empid\"}]
                  },
                  {
                      \"name\": \"worksheetId\",
                      \"type\": \"worksheetId\",
                      \"value\": \"W\"
                  },
                  {
                      \"name\": \"selectionName\",
                      \"type\": \"other\",
                      \"value\": \"DEFAULT_TEST\"
                  },
                  {
                      \"name\": \"newColumnName\",
                      \"type\": \"other\",
                      \"value\": \"empid_val\"
                  },
                  {
                      \"name\": \"transformationCode\",
                      \"type\": \"other\",
                      \"value\": \"return getValue(\\\"empid\\\")\"
                  },
                  {
                      \"name\": \"errorDefaultValue\",
                      \"type\": \"other\",
                      \"value\": \"\"
                  },
                  {
                      \"name\": \"isJSONOutput\",
                      \"type\": \"other\",
                      \"value\": \"false\"
                  },
                  {
                      \"name\": \"inputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[{\\\"value\\\":[{\\\"columnName\\\":\\\"empid\\\"}]}]\"
                  },
                  {
                      \"name\": \"outputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[{\\\"value\\\":[{\\\"columnName\\\":\\\"empid_val\\\"}]}]\"
                  }
              ],
              \"tags\": [\"Transformation\"]
          },
          {
              \"commandName\": \"SetWorksheetPropertiesCommand\",
              \"model\": \"new\",
              \"inputParameters\": [
                  {
                      \"name\": \"worksheetId\",
                      \"type\": \"worksheetId\",
                      \"value\": \"W\"
                  },
                  {
                      \"name\": \"selectionName\",
                      \"type\": \"other\",
                      \"value\": \"DEFAULT_TEST\"
                  },
                  {
                      \"name\": \"properties\",
                      \"type\": \"other\",
                      \"value\": {
                          \"graphLabel\": \"\",
                          \"hasBaseURI\": false,
                          \"prefix\": \"mytable\",
                          \"hasPrefix\": true,
                          \"hasServiceProperties\": false
                      }
                  },
                  {
                      \"name\": \"inputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[]\"
                  },
                  {
                      \"name\": \"outputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[]\"
                  }
              ],
              \"tags\": [\"Transformation\"]
          },
          {
              \"commandName\": \"SetWorksheetPropertiesCommand\",
              \"model\": \"new\",
              \"inputParameters\": [
                  {
                      \"name\": \"worksheetId\",
                      \"type\": \"worksheetId\",
                      \"value\": \"W\"
                  },
                  {
                      \"name\": \"selectionName\",
                      \"type\": \"other\",
                      \"value\": \"DEFAULT_TEST\"
                  },
                  {
                      \"name\": \"properties\",
                      \"type\": \"other\",
                      \"value\": {
                          \"graphLabel\": \"\",
                          \"hasBaseURI\": true,
                          \"baseURI\": \"https://stackoverflow.com/questions/44403425.owl/\",
                          \"hasPrefix\": false,
                          \"hasServiceProperties\": false
                      }
                  },
                  {
                      \"name\": \"inputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[]\"
                  },
                  {
                      \"name\": \"outputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[]\"
                  }
              ],
              \"tags\": [\"Transformation\"]
          },
          {
              \"commandName\": \"SetWorksheetPropertiesCommand\",
              \"model\": \"new\",
              \"inputParameters\": [
                  {
                      \"name\": \"worksheetId\",
                      \"type\": \"worksheetId\",
                      \"value\": \"W\"
                  },
                  {
                      \"name\": \"selectionName\",
                      \"type\": \"other\",
                      \"value\": \"DEFAULT_TEST\"
                  },
                  {
                      \"name\": \"properties\",
                      \"type\": \"other\",
                      \"value\": {
                          \"graphLabel\": \"mytable\",
                          \"hasBaseURI\": false,
                          \"hasPrefix\": false,
                          \"hasServiceProperties\": false
                      }
                  },
                  {
                      \"name\": \"inputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[]\"
                  },
                  {
                      \"name\": \"outputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[]\"
                  }
              ],
              \"tags\": [\"Transformation\"]
          },
          {
              \"commandName\": \"SetMetaPropertyCommand\",
              \"model\": \"new\",
              \"inputParameters\": [
                  {
                      \"name\": \"hNodeId\",
                      \"type\": \"hNodeId\",
                      \"value\": [{\"columnName\": \"empid\"}]
                  },
                  {
                      \"name\": \"worksheetId\",
                      \"type\": \"worksheetId\",
                      \"value\": \"W\"
                  },
                  {
                      \"name\": \"selectionName\",
                      \"type\": \"other\",
                      \"value\": \"DEFAULT_TEST\"
                  },
                  {
                      \"name\": \"metaPropertyName\",
                      \"type\": \"other\",
                      \"value\": \"isUriOfClass\"
                  },
                  {
                      \"name\": \"metaPropertyUri\",
                      \"type\": \"other\",
                      \"value\": \"https://stackoverflow.com/questions/44403425.owl/employee\"
                  },
                  {
                      \"name\": \"metaPropertyId\",
                      \"type\": \"other\",
                      \"value\": \"https://stackoverflow.com/questions/44403425.owl/employee1\"
                  },
                  {
                      \"name\": \"SemanticTypesArray\",
                      \"type\": \"other\",
                      \"value\": [{
                          \"DomainUri\": \"https://stackoverflow.com/questions/44403425.owl/employee\",
                          \"DomainId\": \"https://stackoverflow.com/questions/44403425.owl/employee1\",
                          \"isPrimary\": true,
                          \"isProvenance\": false,
                          \"FullType\": \"http://isi.edu/integration/karma/dev#classLink\",
                          \"DomainLabel\": \"https://stackoverflow.com/questions/44403425.owl/employee/employee1 (add)\"
                      }]
                  },
                  {
                      \"name\": \"trainAndShowUpdates\",
                      \"type\": \"other\",
                      \"value\": true
                  },
                  {
                      \"name\": \"rdfLiteralType\",
                      \"type\": \"other\",
                      \"value\": \"\"
                  },
                  {
                      \"name\": \"language\",
                      \"type\": \"other\",
                      \"value\": \"\"
                  },
                  {
                      \"name\": \"inputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[{\\\"value\\\":[{\\\"columnName\\\":\\\"empid\\\"}]}]\"
                  },
                  {
                      \"name\": \"outputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[{\\\"value\\\":[{\\\"columnName\\\":\\\"empid\\\"}]}]\"
                  }
              ],
              \"tags\": [\"SemanticType\"]
          },
          {
              \"commandName\": \"SetSemanticTypeCommand\",
              \"model\": \"new\",
              \"inputParameters\": [
                  {
                      \"name\": \"hNodeId\",
                      \"type\": \"hNodeId\",
                      \"value\": [{\"columnName\": \"empid_val\"}]
                  },
                  {
                      \"name\": \"worksheetId\",
                      \"type\": \"worksheetId\",
                      \"value\": \"W\"
                  },
                  {
                      \"name\": \"selectionName\",
                      \"type\": \"other\",
                      \"value\": \"DEFAULT_TEST\"
                  },
                  {
                      \"name\": \"SemanticTypesArray\",
                      \"type\": \"other\",
                      \"value\": [{
                          \"DomainUri\": \"https://stackoverflow.com/questions/44403425.owl/employee\",
                          \"DomainId\": \"https://stackoverflow.com/questions/44403425.owl/employee1\",
                          \"isPrimary\": true,
                          \"isProvenance\": false,
                          \"FullType\": \"https://stackoverflow.com/questions/44403425.owl/empid\",
                          \"DomainLabel\": \"https://stackoverflow.com/questions/44403425.owl/employee/employee1\"
                      }]
                  },
                  {
                      \"name\": \"trainAndShowUpdates\",
                      \"type\": \"other\",
                      \"value\": true
                  },
                  {
                      \"name\": \"rdfLiteralType\",
                      \"type\": \"other\",
                      \"value\": \"\"
                  },
                  {
                      \"name\": \"language\",
                      \"type\": \"other\",
                      \"value\": \"\"
                  },
                  {
                      \"name\": \"inputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[{\\\"value\\\":[{\\\"columnName\\\":\\\"empid_val\\\"}]}]\"
                  },
                  {
                      \"name\": \"outputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[{\\\"value\\\":[{\\\"columnName\\\":\\\"empid_val\\\"}]}]\"
                  }
              ],
              \"tags\": [\"SemanticType\"]
          },
          {
              \"commandName\": \"SetSemanticTypeCommand\",
              \"model\": \"new\",
              \"inputParameters\": [
                  {
                      \"name\": \"hNodeId\",
                      \"type\": \"hNodeId\",
                      \"value\": [{\"columnName\": \"empname\"}]
                  },
                  {
                      \"name\": \"worksheetId\",
                      \"type\": \"worksheetId\",
                      \"value\": \"W\"
                  },
                  {
                      \"name\": \"selectionName\",
                      \"type\": \"other\",
                      \"value\": \"DEFAULT_TEST\"
                  },
                  {
                      \"name\": \"SemanticTypesArray\",
                      \"type\": \"other\",
                      \"value\": [{
                          \"DomainUri\": \"https://stackoverflow.com/questions/44403425.owl/employee\",
                          \"DomainId\": \"https://stackoverflow.com/questions/44403425.owl/employee1\",
                          \"isPrimary\": true,
                          \"isProvenance\": false,
                          \"FullType\": \"http://www.w3.org/2000/01/rdf-schema#label\",
                          \"DomainLabel\": \"https://stackoverflow.com/questions/44403425.owl/employee/employee1\"
                      }]
                  },
                  {
                      \"name\": \"trainAndShowUpdates\",
                      \"type\": \"other\",
                      \"value\": true
                  },
                  {
                      \"name\": \"rdfLiteralType\",
                      \"type\": \"other\",
                      \"value\": \"\"
                  },
                  {
                      \"name\": \"language\",
                      \"type\": \"other\",
                      \"value\": \"\"
                  },
                  {
                      \"name\": \"inputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[{\\\"value\\\":[{\\\"columnName\\\":\\\"empname\\\"}]}]\"
                  },
                  {
                      \"name\": \"outputColumns\",
                      \"type\": \"hNodeIdList\",
                      \"value\": \"[{\\\"value\\\":[{\\\"columnName\\\":\\\"empname\\\"}]}]\"
                  }
              ],
              \"tags\": [\"SemanticType\"]
          }
      ]""" .
      
      km-dev:TriplesMap_d397eb02-1069-4e93-a544-0f2c4d1f8970 a rr:TriplesMap .
      
      _:node1bi2073ftx1 km-dev:hasTriplesMap km-dev:TriplesMap_d397eb02-1069-4e93-a544-0f2c4d1f8970 .
      
      km-dev:TriplesMap_d397eb02-1069-4e93-a544-0f2c4d1f8970 km-dev:isPartOfMapping _:node1bi2073ftx1 .
      
      _:node1bi2073ftx2 rr:tableName "mytable.csv" ;
          a rr:LogicalTable ;
          km-dev:isPartOfMapping _:node1bi2073ftx1 .
      
      _:node1bi2073ftx1 km-dev:hasLogicalTable _:node1bi2073ftx2 .
      
      km-dev:TriplesMap_d397eb02-1069-4e93-a544-0f2c4d1f8970 rr:logicalTable _:node1bi2073ftx2 ;
          rr:subjectMap _:node1bi2073ftx3 .
      
      _:node1bi2073ftx1 km-dev:hasSubjectMap _:node1bi2073ftx3 .
      
      _:node1bi2073ftx3 km-dev:isPartOfMapping _:node1bi2073ftx1 ;
          a rr:SubjectMap ;
          km-dev:alignmentNodeId "https://stackoverflow.com/questions/44403425.owl/employee1" ;
          rr:class <https://stackoverflow.com/questions/44403425.owl/employee> ;
          rr:template "{empid}" ;
          a km-dev:steinerTreeRootNode .
      
      km-dev:PredicateObjectMap_5a63b356-1bbb-4b1f-b64a-514c19f83d28 rr:predicate <https://stackoverflow.com/questions/44403425.owl/empid> .
      
      _:node1bi2073ftx4 rr:column "empid" ;
          a rr:ObjectMap ;
          km-dev:isPartOfMapping _:node1bi2073ftx1 .
      
      _:node1bi2073ftx1 km-dev:hasObjectMap _:node1bi2073ftx4 .
      
      km-dev:PredicateObjectMap_5a63b356-1bbb-4b1f-b64a-514c19f83d28 rr:objectMap _:node1bi2073ftx4 .
      
      km-dev:TriplesMap_d397eb02-1069-4e93-a544-0f2c4d1f8970 rr:predicateObjectMap km-dev:PredicateObjectMap_5a63b356-1bbb-4b1f-b64a-514c19f83d28 .
      
      km-dev:PredicateObjectMap_5a63b356-1bbb-4b1f-b64a-514c19f83d28 a rr:PredicateObjectMap ;
          km-dev:isPartOfMapping _:node1bi2073ftx1 .
      
      _:node1bi2073ftx1 km-dev:hasPredicateObjectMap km-dev:PredicateObjectMap_5a63b356-1bbb-4b1f-b64a-514c19f83d28 .
      
      km-dev:PredicateObjectMap_028e84af-9ed2-406c-81d0-9add2ed2ca2b rr:predicate rdfs:label .
      
      _:node1bi2073ftx5 rr:column "empname" ;
          a rr:ObjectMap ;
          km-dev:isPartOfMapping _:node1bi2073ftx1 .
      
      _:node1bi2073ftx1 km-dev:hasObjectMap _:node1bi2073ftx5 .
      
      km-dev:PredicateObjectMap_028e84af-9ed2-406c-81d0-9add2ed2ca2b rr:objectMap _:node1bi2073ftx5 .
      
      km-dev:TriplesMap_d397eb02-1069-4e93-a544-0f2c4d1f8970 rr:predicateObjectMap km-dev:PredicateObjectMap_028e84af-9ed2-406c-81d0-9add2ed2ca2b .
      
      km-dev:PredicateObjectMap_028e84af-9ed2-406c-81d0-9add2ed2ca2b a rr:PredicateObjectMap ;
          km-dev:isPartOfMapping _:node1bi2073ftx1 .
      
      _:node1bi2073ftx1 km-dev:hasPredicateObjectMap km-dev:PredicateObjectMap_028e84af-9ed2-406c-81d0-9add2ed2ca2b .