невозможно получить результаты при выполнении запроса sparql - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь запросить sparql для получения экземпляра tracking_note, свойств объекта и значения свойств типа данных.

<Tracking_Note rdf:about="#tracking_note1">
  <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#NamedIndividual"/>
  <rdf:type>
    <owl:Restriction>
      <owl:onProperty 
rdf:resource="#Tracking_NotedependsonFailure_Snippet"/>
      <owl:hasValue rdf:resource="#failure_snippet1"/>
    </owl:Restriction>
  </rdf:type>
  <rdf:type>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#Tracking_NotedependsonModule"/>
      <owl:hasValue rdf:resource="#module1"/>
    </owl:Restriction>
  </rdf:type>
  <rdf:type>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#Tracking_NoteBelongsToModule"/>
      <owl:hasValue rdf:resource="#module1"/>
    </owl:Restriction>
  </rdf:type>
  <hasTracking_Note 
    rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Rerun 
    candidate</hasTracking_Note>
</Tracking_Note>

Запрошенный Sparql запрос:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX log: <D:/Spyder_Workspace/Generic_Implementation/project1.owl#>
PREFIX rlog: <http://persistence.uni-leipzig.org/nlp2rdf/ontologies/rlog#>

SELECT ?tn ?fs ?value
WHERE {
?tn log:hasTracking_Note ?value ;
owl:onProperty log:Tracking_NotedependsonFailure_Snippet ;
 owl:hasValue ?fs  

}   

но я не получаю никаких значений.

1 Ответ

1 голос
/ 12 марта 2019

Значения, которые вы хотите, заключены в конструкцию ограничения свойств, поэтому вам нужно сделать еще один шаг в запросе SPARQL.

Запрос должен выглядеть примерно так (непроверенный из-за отсутствия данных Turtle):

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX log: <D:/Spyder_Workspace/Generic_Implementation/project1.owl#>

SELECT ?tn ?fs ?value
WHERE {
?tn log:hasTracking_Note ?value ;
    a [owl:onProperty log:Tracking_NotedependsonFailure_Snippet ;
       owl:hasValue ?fs
      ]  
}  

Незначительный комментарий: посмотрите на ваши данные в синтаксисе N-Triples или Turtle. Это намного ближе к синтаксису тройного шаблона запроса SPARQL. RDF / XML более или менее сделан для инструментов, но не для людей.

...