2015-06-04 2 views
-2

У меня есть ontology и я заинтересован в классах, показанных на рисунке ниже:меньше число людей возвращается с помощью SPARQL запроса

enter image description here

я создал два человека, класса по наблюдению (т.е. НАБЛЮДЕНИЮ1 и observation2) и, следовательно, соответственно, два человека из других классов (sensoroutput, observationvalue), как показано на ниже:

<!-- http://www.iiitd.edu.in/~haroonr/ontologies/DGO#Observation1 --> 
     <owl:NamedIndividual rdf:about="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#Observation1"> 
     <rdf:type rdf:resource="&j.3;Observation"/> 
     <j.3:observationResult rdf:resource="&j.3;SensorOutput1"/> 
     <j.3:observedBy rdf:resource="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#Co2Sensor_Diningroom"/> 
     <j.3:observationSamplingTime rdf:resource="&j.2;Instant1"/> 
    </owl:NamedIndividual> 

    <!-- http://www.iiitd.edu.in/~haroonr/ontologies/DGO#Observation2 --> 
     <owl:NamedIndividual rdf:about="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#Observation2"> 
     <rdf:type rdf:resource="&j.3;Observation"/> 
     <j.3:observationResult rdf:resource="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#SensorOutput2"/> 
    </owl:NamedIndividual> 

    <!-- http://www.iiitd.edu.in/~haroonr/ontologies/DGO#ObservationValue1 --> 
    <owl:NamedIndividual rdf:about="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#ObservationValue1"> 
     <rdf:type rdf:resource="&j.3;ObservationValue"/> 
     <j.1:hasRegionDataValue rdf:datatype="&xsd;decimal">216.56</j.1:hasRegionDataValue> 
    </owl:NamedIndividual> 

    <!-- http://www.iiitd.edu.in/~haroonr/ontologies/DGO#ObservationValue2 --> 
    <Owl: NamedIndividual rdf:about="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#ObservationValue2"> 
     <rdf:type rdf:resource="&j.3;ObservationValue"/> 
     <j.1:hasRegionDataValue rdf:datatype="&xsd;string">121212</j.1:hasRegionDataValue> 
    </owl:NamedIndividual> 

    <!-- http://www.iiitd.edu.in/~haroonr/ontologies/DGO#SensorOutput1 --> 
    <owl:NamedIndividual rdf:about="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#SensorOutput1"> 
     <rdf:type rdf:resource="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#Co2SensorOutput"/> 
     <j.3:hasValue rdf:resource="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#ObservationValue1"/> 
    </owl:NamedIndividual> 

    <!-- http://www.iiitd.edu.in/~haroonr/ontologies/DGO#SensorOutput2 --> 
     <owl:NamedIndividual rdf:about="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#SensorOutput2"> 
     <rdf:type rdf:resource="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#Co2SensorOutput"/> 
     <j.3:hasValue rdf:resource="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#ObservationValue2"/> 
    </owl:NamedIndividual> 

Теперь, когда я использую SPARQL получить observationValues, связанные с двумя observati Я использовал только значения, связанные с наблюдением2, и ничего не получено о наблюдении1. SPARQL запрос:

PREFIX ssn: <http://purl.oclc.org/NET/ssnx/ssn#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX dul: <http://www.loa-cnr.it/ontologies/DUL.owl#> 
     SELECT ?x ?r ?val 
     WHERE 
     { ?x rdf:type ssn:Observation. 
      ?x ssn:observationResult ?d. 
      ?d ssn:hasValue ?r. 
      ?r dul:hasRegionDataValue ?val. 
     } 

Я хочу знать, где я делаю неправильно и почему только один (то есть, observation2 и не НАБЛЮДЕНИЮ1.) Индивид возвращается?

+2

Ваш образец данных является неполным (отсутствуют корневые элементы и декларации пространства имен), что затрудняет попытку воспроизвести проблему. Пожалуйста, убедитесь, что при задании таких вопросов вы предоставляете [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). –

+0

@JeenBroekstra Я показал только соответствующую часть онтологии. В начале вопроса я дал ссылку на мою полную онтологию. Здесь снова я доказываю ссылку на полную онтологию как [link] (https://www.dropbox.com/s/wndo58dgj7n6glw/demoontCreate.owl?dl=0) –

+2

Прошу прощения, но ссылка на вашу полную онтологию действительно недостаточно хорош для такого рода вещей. Это требование, чтобы вся необходимая информация присутствовала _ в самом вопросе_ здесь, на SO. Посмотрите на эту ссылку на раздел справки, который я предоставил, в нем подробно объясняется, почему вы всегда должны пытаться создать MCVE. –

ответ

2

У вас есть ошибка в вашем файле. Ваши экземпляры каким-то образом названы по-разному в разных местах. Чтобы получить запрос, переименуйте личность &j.3;SensorOutput1 на линию с полным uri: http://www.iiitd.edu.in/~haroonr/ontologies/DGO#SensorOutput1. Чтобы быть более конкретным:

Line 1581

Изменить это:

<j.3:observationResult rdf:resource="&j.3;SensorOutput1"/> 

Для этого:

<j.3:observationResult rdf:resource="http://www.iiitd.edu.in/~haroonr/ontologies/DGO#SensorOutput1"/> 

Учитывая вышеуказанные изменения, то запрос возвращает:

x | r | val 

<http://www.iiitd.edu.in/~haroonr/ontologies/DGO#Observation2> <http://www.iiitd.edu.in/~haroonr/ontologies/DGO#ObservationValue2> "121212"^^<http://www.w3.org/2001/XMLSchema#string> 

<http://www.iiitd.edu.in/~haroonr/ontologies/DGO#Observation1> <http://www.iiitd.edu.in/~haroonr/ontologies/DGO#ObservationValue1> 216.56 

Не забудьте правильно ввести примитивные значения в данном т.е. 216.56 набираются в виде десятичных чисел, в то время как 121212 набираются, как String.

2

Observation1 не соответствует вашему запросу, поскольку его значение для ssn:observationResult, (ssn:SensorOutput1) не имеет собственности ssn:hasValue. Следовательно, в результате возвращается только Observation2.

Смежные вопросы