Object sparql查询有关对象以查找另一个对象

Object sparql查询有关对象以查找另一个对象,object,rdf,sparql,triples,Object,Rdf,Sparql,Triples,鉴于此RDF: <?xml version="1.0" encoding="utf-8"?><!DOCTYPE rdf:RDF [<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'> <!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'> <!ENTITY xsd 'http://www.w3.org/2001/XMLSchema

鉴于此RDF:

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE rdf:RDF [<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
<!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
<!ENTITY xsd 'http://www.w3.org/2001/XMLSchema#'>]>
<rdf:RDF xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
         xml:base="http://www.example.org/" 
         xmlns:dnr="http://www.dotnetrdf.org/configuration#" 
         xmlns:nss="http://www.example.org/startTime" 
         xmlns:nse="http://www.example.org/endTime#" 
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 >
  <rdf:Description rdf:about="Fadi">
    <ns2914:be xmlns:ns2914="http://example.org/">May</ns2914:be>
    <nss:startTime>00:00:13</nss:startTime>
    <nse:endTime>00:00:16</nse:endTime>
  </rdf:Description>
  <rdf:Description rdf:about="Fadi">
    <ns194:not xmlns:ns194="http://example.org/">Good</ns194:not>
    <nss:startTime>00:00:19</nss:startTime>
    <nse:endTime>00:00:21</nse:endTime>
  </rdf:Description>
  <rdf:Description rdf:about="She">
    <ns195:be xmlns:ns195="http://example.org/">Good</ns195:be>
    <nss:startTime>00:00:21</nss:startTime>
    <nse:endTime>00:00:24</nse:endTime>
   </rdf:Description>
</rdf:RDF>

您的查询没有选择该数据,为什么您会对它没有返回感到惊讶?正如我在评论中建议的那样,去读一本好的SPARQL教程,比如,或者从O'Reilly那里买一本优秀的书

您编写的查询选择对象与正则表达式匹配的三元组,并且仅选择这些三元组。如果您还想选择开始和结束时间,则需要向查询中添加其他模式,例如

PREFIX nss: <http://www.example.org/startTime>
PREFIX nse: <http://www.example.org/endTime#>
SELECT *
WHERE
{
  ?s ?p ?o .
  FILTER(REGEX(?o, "May", "i"))
  ?s nss:startTime ?startTime ;
     nse:endTime ?endTime .
}
前缀nss:
前缀nse:
挑选*
哪里
{
?s?p?o。
过滤器(REGEX(?o,“May”,“i”))
?s nss:开始时间?开始时间;
nse:结束时间?结束时间。
}

@Hassan Sarraj显然,您是SPARQL新手,还没有真正理解它,我建议您阅读一本优秀的SPARQL教程,例如您的文档包含一个具有三个不同数据属性的资源的描述。这里的三元组是:
It'May'
It startTime'00:00:13'
It endTime'00:00:16'
。按照查询和筛选它们的方式,第一个必然是唯一的结果。这就是您想要的:
选择?s?p?o WHERE{s ns2914:be?month.?s?p?o.FILTER(regex(?month,'May,'i'))}
?不,我需要查询关于May的信息。。从这个查询中,我需要得到开始时间和结束时间。我编辑了这个问题,希望你现在能理解我@Tom@Joshua“泰勒,你能帮我吗?”HasanSarraj说,如果不试图解释到底是什么原因让它失败了,那么它就不起作用。你的期望值很难算作有用。你得详细说明一下。
?s,?p,?o,?startTime,?endTime
Fadi,not,Good,00:00:19,00:00:21
She,be,Good,00:00:21,00:00:24
PREFIX nss: <http://www.example.org/startTime>
PREFIX nse: <http://www.example.org/endTime#>
SELECT *
WHERE
{
  ?s ?p ?o .
  FILTER(REGEX(?o, "May", "i"))
  ?s nss:startTime ?startTime ;
     nse:endTime ?endTime .
}