Аннотирующие данные датчика, но без rdf: тип - PullRequest
1 голос
/ 03 декабря 2010

Я аннотирую наблюдения сенсоров, используя JENA, RDF и сенсорную онтологию W3C SSNXG.

Я создал индивидуума SensingDevice SSNXG, используя для этого локальное пространство имен. Когда я использую URI индивидуума для создания RDF-ресурса, все, что я получаю, это описание. Однако метаданные rdf: type не создаются. Должно ли это быть сделано явно в коде?

Я пытался добавить эту информацию следующим образом:

OntClass sensingDevice = ssn.getOntClass(NS + "SensingDevice");
Individual ard = ssn.createIndividual(DTPNS + arduino, sensingDevice);
Property type = incomingData.createProperty(RDFNS, "type");
Statement stmt0 = incomingData.createStatement(ardu, type, NS + "SensingDevice");
incomingData.add(stmt0);

Однако это приводит к ...

<rdf:Description rdf:about="http://dtp-126.sncs.abdn.ac.uk#CD7514">
    <rdf:type>http://purl.oclc.org/NET/ssnx/ssn#SensingDevice</rdf:type
</rdf:Description>

Похоже, что это не видно SPARQL. Как правильно добавить метаданные типа?

1 Ответ

2 голосов
/ 03 декабря 2010

Вы были близки:

Statement stmt0 = incomingData.createStatement(ardu, type, sensingDevice);

Используемый вами вызов установил rdf: type в строку "http://purl.oclc.org/NET/..." вместо ресурса с этим URL.

Однако вы можете упростить этодвумя способами. Во-первых, Property type уже существует в jena как RDF.type. Во-вторых, вам не нужно создавать оператор, просто добавьте в модель напрямую:

incomingData.add(ard, RDF.type, sendingDevice);

(Вы можете создатьjava-константы из онтологий, использующие схему jena , кстати)

...