Skip to content

Commit 86cdfed

Browse files
committed
added property mapping in ttl
1 parent 7f0d8d2 commit 86cdfed

File tree

5 files changed

+18
-7
lines changed

5 files changed

+18
-7
lines changed

modules/x-gsn/src/main/java/org/openiot/gsn/metadata/rdf/SensorMetadata.java

+10-2
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,19 @@
2424
import java.io.FileNotFoundException;
2525
import java.io.InputStream;
2626
import java.io.StringWriter;
27-
import java.net.URI;
2827

2928
import org.openiot.gsn.metadata.LSM.LSMFieldMetaData;
3029
import org.openiot.gsn.metadata.LSM.LSMSensorMetaData;
3130

3231
import com.hp.hpl.jena.n3.turtle.TurtleParseException;
32+
import com.hp.hpl.jena.rdf.model.Literal;
3333
import com.hp.hpl.jena.rdf.model.Model;
3434
import com.hp.hpl.jena.rdf.model.ModelFactory;
3535
import com.hp.hpl.jena.rdf.model.NodeIterator;
3636
import com.hp.hpl.jena.rdf.model.Property;
3737
import com.hp.hpl.jena.rdf.model.ResIterator;
3838
import com.hp.hpl.jena.rdf.model.Resource;
3939
import com.hp.hpl.jena.rdf.model.ResourceFactory;
40-
import com.hp.hpl.jena.vocabulary.RDF;
4140
import com.hp.hpl.jena.vocabulary.RDFS;
4241

4342
public class SensorMetadata {
@@ -68,6 +67,7 @@ public class SensorMetadata {
6867
Property dulHasLocation=ResourceFactory.createProperty(dul+"hasLocation");
6968
Property wgs84Lat=ResourceFactory.createProperty(wgs84+"lat");
7069
Property wgs84Long=ResourceFactory.createProperty(wgs84+"long");
70+
Property lsmFieldName=ResourceFactory.createProperty(lsm+"fieldName");
7171

7272

7373
public void loadFromFile(String rdfFile) throws FileNotFoundException,TurtleParseException{
@@ -90,6 +90,7 @@ public void createMetadata(LSMSensorMetaData meta){
9090
Resource prop=model.createResource(f.getLsmPropertyName());
9191
model.add(sensorUri,ssnObserves,prop);
9292
model.add(prop,quUnit,f.getLsmUnit());
93+
model.add(prop,lsmFieldName,f.getGsnFieldName());
9394
}
9495
Resource location=model.createResource(sensorUri.getURI()+"_location");
9596
model.add(location,rdfType,dulPlace);
@@ -131,6 +132,13 @@ public LSMSensorMetaData fillSensorMetadata(){
131132
throw new IllegalArgumentException("The property "+prop+" has no unit");
132133
Resource unit=prop.getPropertyResourceValue(quUnit);
133134
//String column=prop.listProperties(rrColumnName).next().getObject().toString();
135+
NodeIterator fnames=model.listObjectsOfProperty(prop, lsmFieldName);
136+
if (!fnames.hasNext())
137+
throw new IllegalArgumentException("The property "+prop+" has no associated GSN field name");
138+
Literal fn=fnames.next().asLiteral();
139+
lsmField.setGsnFieldName(fn.getString());
140+
141+
134142
lsmField.setLsmPropertyName(prop.getURI());
135143
lsmField.setLsmUnit(unit.getURI());
136144
md.getFields().put(prop.getURI(), lsmField);

modules/x-gsn/src/main/java/org/openiot/gsn/vsensor/LSMExporter.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,16 @@ public boolean initialize() {
6666
sensorName = vsensor.getName();
6767

6868
for (DataField df:vsensor.getOutputStructure()){
69-
logger.info("Property:"+ df.getName()+"--"+df.getProperty());
69+
/*logger.info("Property:"+ df.getName()+"--"+df.getProperty());
7070
if (df.getProperty()!=null)
7171
fieldUris.put(df.getName().toUpperCase(), df.getProperty());
72-
else {
72+
else {*/
7373
for (LSMFieldMetaData md:metadata.getFields().values()){
74+
logger.debug("The GSN fieldName: "+md.getGsnFieldName());
7475
if (md.getGsnFieldName().equals(df.getName()))
7576
fieldUris.put(df.getName().toUpperCase(), md.getLsmPropertyName());
7677
}
77-
}
78+
//}
7879
}
7980

8081
String allow_nulls_str = params.get("allow-nulls");

modules/x-gsn/src/test/java/org/openiot/gsn/metadata/rdf/RdfMetadataTest.java

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public static void main(String[] args){
1818
LSMFieldMetaData f=new LSMFieldMetaData();
1919
f.setLsmPropertyName("http://example.org/propTemp");
2020
f.setLsmUnit("celsius");
21+
f.setGsnFieldName("temp");
2122
meta.getFields().put("temp", f);
2223

2324
sm.createMetadata(meta );

modules/x-gsn/virtual-sensors/LSM/opensense_1.ttl

+2-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@
4545
qu:numericalValue "0.3"^^xsd:double ;
4646
DUL:hasParameter phenonet:degreeCelsius .
4747

48-
aws:air_temperature qu:unit phenonet:degreeCelsius.
48+
aws:air_temperature qu:unit phenonet:degreeCelsius;
49+
lsm:fieldName "noise" .
4950

5051
<place/location1> rdf:type DUL:Place;
5152
wgs84:lat 52.3;

modules/x-gsn/virtual-sensors/LSM/opensense_1.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<param name="publish-to-lsm">true</param>
88
</init-params>
99
<output-structure>
10-
<field name="temperature" type="double" property="http://purl.oclc.org/NET/ssnx/meteo/aws#air_temperature" />
10+
<field name="temperature" type="double" />
1111
<field name="humidity" type="double" />
1212
</output-structure>
1313
</processing-class>

0 commit comments

Comments
 (0)