Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SPARQL获取数据类型属性值_Sparql - Fatal编程技术网

如何使用SPARQL获取数据类型属性值

如何使用SPARQL获取数据类型属性值,sparql,Sparql,我在protege中创建了一些示例本体。根据我的本体,有一个名为person的类,其子类名为Student。有一些学生个体(john、paul、Mary等)。 我定义了一些称为“email”的数据属性,并分配了它们的电子邮件地址 下面的查询是本体中所有个体的结果。但我想得到每个个体及其电子邮件地址 String queryStr = "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "+ "PREFIX rdf

我在protege中创建了一些示例本体。根据我的本体,有一个名为person的类,其子类名为Student。有一些学生个体(john、paul、Mary等)。 我定义了一些称为“email”的数据属性,并分配了它们的电子邮件地址

下面的查询是本体中所有个体的结果。但我想得到每个个体及其电子邮件地址

String queryStr =
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "+
    "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>  "+
    "select   ?ind "+
    "where { "+
    "?ind  rdf:type <http://www.semanticweb.org/ontologies/2010/5/Ontology1275975684120.owl#Student> ;"+

"}\n ";
字符串查询器=
“前缀rdfs:”+
“前缀rdf:”+
“选择?索引”+
“其中{”+
“?ind rdf:类型;”+
“}\n”;
上述查询在EclipseIDE中的jena上进行了测试

有什么想法吗


提前感谢

要获取电子邮件地址,您需要1)在选择行中为其添加一个变量,2)在WHERE模式中绑定该变量。您可能需要为自己的本体添加前缀,因为您现在需要引用它两次。比如:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX my: <http://www.semanticweb.org/ontologies/2010/5/Ontology1275975684120.owl#>

SELECT ?ind ?email
WHERE {
  ?ind rdf:type my:Student .
  ?ind my:Email ?email
}
前缀rdfs:
前缀rdf:
前缀“我的”:
选择?ind?email
在哪里{
?ind rdf:键入my:Student。
?输入我的:电子邮件?电子邮件
}

更紧凑的方法如下:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX my: <http://www.semanticweb.org/ontologies/2010/5/Ontology1275975684120.owl#>

SELECT ?ind ?email 
WHERE { 
       ?ind rdf:type my:Student ;
            my:Email ?email .
     }
前缀rdfs:
前缀rdf:
前缀“我的”:
选择?ind?email
何处{
?ind-rdf:输入my:Student;
我的:电子邮件?电子邮件。
}

::我根据你的答案得到了结果!祝你有美好的一天!非常感谢你!