Browse Source

Initial commit

Nicolas Seydoux 5 years ago
parent
commit
da754ffdd1

+ 1
- 0
.gitignore View File

@@ -0,0 +1 @@
1
+target/*

+ 3450
- 0
ontologies/DUL.owl
File diff suppressed because it is too large
View File


+ 1090
- 0
ontologies/ssn.owl
File diff suppressed because it is too large
View File


+ 58
- 0
pom.xml View File

@@ -0,0 +1,58 @@
1
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
+	<modelVersion>4.0.0</modelVersion>
4
+	<groupId>fr.insa.iss</groupId>
5
+	<artifactId>semantic</artifactId>
6
+	<version>0.0.1-SNAPSHOT</version>
7
+	<build>
8
+		<plugins>
9
+			<plugin>
10
+				<groupId>org.apache.maven.plugins</groupId>
11
+				<artifactId>maven-compiler-plugin</artifactId>
12
+				<version>3.3</version>
13
+				<configuration>
14
+					<source>1.8</source>
15
+					<target>1.8</target>
16
+				</configuration>
17
+			</plugin>
18
+		</plugins>
19
+	</build>
20
+	<dependencies>
21
+		<dependency>
22
+			<groupId>org.apache.jena</groupId>
23
+			<artifactId>jena-tdb</artifactId>
24
+			<version>3.0.1</version>
25
+		</dependency>
26
+		<dependency>
27
+			<groupId>org.apache.jena</groupId>
28
+			<artifactId>jena-core</artifactId>
29
+			<version>3.0.1</version>
30
+		</dependency>
31
+		<dependency>
32
+			<groupId>org.apache.jena</groupId>
33
+			<artifactId>jena-base</artifactId>
34
+			<version>3.0.1</version>
35
+		</dependency>
36
+		<dependency>
37
+			<groupId>org.apache.jena</groupId>
38
+			<artifactId>jena-arq</artifactId>
39
+			<version>3.0.1</version>
40
+		</dependency>
41
+		<dependency>
42
+			<groupId>org.glassfish</groupId>
43
+			<artifactId>javax.json</artifactId>
44
+			<version>1.0.4</version>
45
+		</dependency>
46
+		<dependency>
47
+			<groupId>junit</groupId>
48
+			<artifactId>junit</artifactId>
49
+			<version>4.12</version>
50
+			<scope>test</scope>
51
+		</dependency>
52
+		<dependency>
53
+			<groupId>fr.irit.melodi.semantic-web</groupId>
54
+			<artifactId>sparql-lib</artifactId>
55
+			<version>1.0.0</version>
56
+		</dependency>
57
+	</dependencies>
58
+</project>

+ 73
- 0
src/main/java/semantic/controler/Controler.java View File

@@ -0,0 +1,73 @@
1
+package semantic.controler;
2
+
3
+import java.io.IOException;
4
+import java.util.List;
5
+
6
+import semantic.model.DoItYourselfModel;
7
+import semantic.model.IModelFunctions;
8
+import semantic.model.ObservationEntity;
9
+import semantic.model.SemanticModel;
10
+import semantic.view.JSONEndpoint;
11
+
12
+public class Controler
13
+{
14
+	private SemanticModel model;
15
+	private IModelFunctions customModel;
16
+	private IControlFunctions customControl;
17
+	
18
+	public Controler()
19
+	{
20
+		// TODO : Change the path to the one to your own ontology
21
+		this.model = new SemanticModel("tp-iss.ttl");
22
+		this.customModel = new DoItYourselfModel(this.model);
23
+		this.customControl = new DoItYourselfControl(this.model, this.customModel);
24
+		this.initializeContext();
25
+	}
26
+	
27
+	private void initializeContext()
28
+	{
29
+		this.customModel.createPlace("Aarhus");
30
+	}
31
+	
32
+	public void exportModel(String path)
33
+	{
34
+		this.model.exportModel(path);
35
+	}
36
+	
37
+	public SemanticModel getModel()
38
+	{
39
+		return this.model;
40
+	}
41
+	
42
+	public IModelFunctions getCustomModel()
43
+	{
44
+		return this.customModel;
45
+	}
46
+	
47
+	public IControlFunctions getCustomControl()
48
+	{
49
+		return this.customControl;
50
+	}
51
+	
52
+	public static void main(String[] args) 
53
+	{
54
+		Controler c = new Controler();
55
+		try
56
+		{
57
+			// TODO : Change the path to the one of the file you downloaded
58
+			List<ObservationEntity> obsList = JSONEndpoint.parseObservations("tempm.txt");
59
+			String tempURI = c.model.getEntityURI("Température").get(0);
60
+			c.getCustomControl().instantiateObservations(obsList, tempURI);
61
+			// TODO : Same thing, for humidity
62
+			obsList = JSONEndpoint.parseObservations("tempm.txt");
63
+			String humidityURI = c.model.getEntityURI("Température").get(0);
64
+			c.getCustomControl().instantiateObservations(obsList, humidityURI);
65
+			// TODO : Change the path so that it points where you want the export to be done
66
+			c.exportModel("export.ttl");
67
+		}
68
+		catch (IOException e)
69
+		{
70
+			e.printStackTrace();
71
+		}
72
+	}
73
+}

+ 25
- 0
src/main/java/semantic/controler/DoItYourselfControl.java View File

@@ -0,0 +1,25 @@
1
+package semantic.controler;
2
+
3
+import java.util.List;
4
+
5
+import semantic.model.IConvenienceInterface;
6
+import semantic.model.IModelFunctions;
7
+import semantic.model.ObservationEntity;
8
+
9
+public class DoItYourselfControl implements IControlFunctions
10
+{
11
+	private IConvenienceInterface model;
12
+	private IModelFunctions cusotmModel;
13
+	
14
+	public DoItYourselfControl(IConvenienceInterface model, IModelFunctions customModel)
15
+	{
16
+		this.model = model;
17
+		this.cusotmModel = customModel;
18
+	}
19
+	
20
+	@Override
21
+	public void instantiateObservations(List<ObservationEntity> obsList,
22
+			String paramURI) {
23
+		// TODO Auto-generated method stub
24
+	}
25
+}

+ 16
- 0
src/main/java/semantic/controler/IControlFunctions.java View File

@@ -0,0 +1,16 @@
1
+package semantic.controler;
2
+
3
+import java.util.List;
4
+
5
+import semantic.model.ObservationEntity;
6
+
7
+public interface IControlFunctions 
8
+{
9
+	/**
10
+	 * This function parses the list of observations extracted from the dataset, 
11
+	 * and instanciates them in the knowledge base. 
12
+	 * @param obsList
13
+	 * @param phenomenonURI
14
+	 */
15
+	public void instantiateObservations(List<ObservationEntity> obsList, String phenomenonURI);
16
+}

+ 41
- 0
src/main/java/semantic/model/DoItYourselfModel.java View File

@@ -0,0 +1,41 @@
1
+package semantic.model;
2
+
3
+public class DoItYourselfModel implements IModelFunctions
4
+{
5
+	IConvenienceInterface model;
6
+	
7
+	public DoItYourselfModel(IConvenienceInterface m) {
8
+		this.model = m;
9
+	}
10
+
11
+	@Override
12
+	public String createPlace(String name) {
13
+		// TODO Auto-generated method stub
14
+		return null;
15
+	}
16
+
17
+	@Override
18
+	public String createInstant(TimestampEntity instant) {
19
+		// TODO Auto-generated method stub
20
+		return null;
21
+	}
22
+
23
+	@Override
24
+	public String getInstantURI(TimestampEntity instant) {
25
+		// TODO Auto-generated method stub
26
+		return null;
27
+	}
28
+
29
+	@Override
30
+	public String getInstantTimestamp(String instantURI)
31
+	{
32
+		// TODO Auto-generated method stub
33
+		return null;
34
+	}
35
+
36
+	@Override
37
+	public String createObs(String value, String paramURI, String instantURI) {
38
+		// TODO Auto-generated method stub
39
+		return null;
40
+	}
41
+}

+ 106
- 0
src/main/java/semantic/model/IConvenienceInterface.java View File

@@ -0,0 +1,106 @@
1
+package semantic.model;
2
+
3
+import java.util.List;
4
+
5
+/**
6
+ * Provides all the functions you should need in the scope of this lab
7
+ */
8
+public interface IConvenienceInterface
9
+{
10
+	/**
11
+	 * There are multiple temperature sensors on the platform. This method indicates
12
+	 * which one performed a measure based on its timestamp.
13
+	 * @param obs, useful to get the timestamp
14
+	 * @param paramURI, the URI of the observed parameter
15
+	 * @return the URI of the sensor having performed the measure.
16
+	 */
17
+	public String whichSensorDidIt(String timestamp, String paramURI);
18
+	/**
19
+	 * Specify, for a given observation, that it came from the provided sensor.
20
+	 * @param obsURI
21
+	 * @param sensorURI
22
+	 */
23
+	public void addObservationToSensor(String obsURI, String sensorURI);
24
+	
25
+	/**
26
+	 * @param obsURI
27
+	 * @param sensorURI
28
+	 * @return true if the observation is linked to the sensor. Useful for test purpose mainly.
29
+	 */
30
+	public boolean hasSensorDoneIt(String obsURI, String sensorURI);
31
+	
32
+	/**
33
+	 * @param label
34
+	 * @return all the URIs of instances of the class of concepts associated to this label.
35
+	 */
36
+	public List<String> getInstancesURI(String classURI);
37
+	
38
+	/**
39
+	 * @param label
40
+	 * @return the URI of the classes associated to this label
41
+	 */
42
+	public List<String> getEntityURI(String label);
43
+	/**
44
+	 * Tests whether the provided instance is a subclass (recursively) of the provided type. 
45
+	 * It means that this function will always return true if the type is owl:Thing.
46
+	 * @param instanceURI
47
+	 * @param typeURI
48
+	 * @return
49
+	 */
50
+	public boolean isOfType(String instanceURI, String typeURI);
51
+	/**
52
+	 * Creates an instance of the provided type, with the provided label.
53
+	 * @param label
54
+	 * @param the URI of the type
55
+	 * @return the URI of the created individual
56
+	 */
57
+	public String createInstance(String label, String type);
58
+	/**
59
+	 * Adds a triple in the knowledge base <subject, property, object>
60
+	 * @param subjectURI
61
+	 * @param propertyURI
62
+	 * @param objectURI
63
+	 */
64
+	public void addObjectPropertyToIndividual(String subjectURI, String propertyURI, String objectURI);
65
+	/**
66
+	 * Adds a triple in the knowledge base <subject, property, data>
67
+	 * @param subjectURI
68
+	 * @param propertyURI
69
+	 * @param data
70
+	 */
71
+	public void addDataPropertyToIndividual(String subjectURI, String propertyURI, String data);
72
+	
73
+	/**
74
+	 * Generates a .ttl file containing a serialization of the model.
75
+	 * @param path
76
+	 */
77
+	public void exportModel(String path);
78
+	
79
+	/**
80
+	 * @param subjectURI
81
+	 * @param dataPropertyURI
82
+	 * @param dataValue
83
+	 * @return if provided subject has a certain value for provided property
84
+	 */
85
+	public boolean hasDataPropertyValue(String subjectURI, String dataPropertyURI, String dataValue);
86
+	
87
+	/**
88
+	 * @param subjectURI
89
+	 * @param propertyURI
90
+	 * @param objectURI
91
+	 * @return if provided subject has a certain relationship with another entity
92
+	 */
93
+	public boolean hasObjectProperty(String subjectURI, String propertyURI, String objectURI);
94
+	
95
+	/**
96
+	 * @param entityURI
97
+	 * @return a list of the labels of the entity
98
+	 */
99
+	public List<String> listLabels(String entityURI);
100
+	
101
+	/**
102
+	 * @param entityURI
103
+	 * @return A list of couples <property, object>
104
+	 */
105
+	public List<List<String>> listProperties(String entityURI);
106
+}

+ 47
- 0
src/main/java/semantic/model/IModelFunctions.java View File

@@ -0,0 +1,47 @@
1
+package semantic.model;
2
+
3
+/**
4
+ * This is the list of functions you have to implement.
5
+ */
6
+public interface IModelFunctions
7
+{
8
+	/**
9
+	 * Creates an instance of the class "Lieu" of your ontology
10
+	 * @param name
11
+	 * @return the URI of the instance
12
+	 */
13
+	public String createPlace(String name);
14
+	
15
+	/**
16
+	 * Creates an instance of the "Instant" class of your ontology. You'll have to link it to 
17
+	 * a data property that represents the timestamp, serialized as it is in the original data file.
18
+	 * Only one instance should be created for each actual timestamp. 
19
+	 * @param instant
20
+	 * @return the URI of the created instant, null if it already existed
21
+	 */
22
+	public String createInstant(TimestampEntity instant);
23
+	
24
+	/**
25
+	 * Returns the instant with the provided timestamp if it exists.
26
+	 * @param instant
27
+	 * @return the URI of the representation of the instant, null otherwise.
28
+	 */
29
+	public String getInstantURI(TimestampEntity instant);
30
+	
31
+	/**
32
+	 * @param instantURI
33
+	 * @return the value of the timestamp associated to the instant individual, null if the individual doesn't exist
34
+	 */
35
+	public String getInstantTimestamp(String instantURI);
36
+	
37
+	/**
38
+	 * Creates an Observation of the provided value for the provided parameter
39
+	 * at the provided time. It uses both object and data properties from the ontology 
40
+	 * to link the observation to its value, instant, and parameter.
41
+	 * @param value
42
+	 * @param param
43
+	 * @param instantURI
44
+	 * @return the URI of the created observation
45
+	 */
46
+	public String createObs(String value, String paramURI, String instantURI);
47
+}

+ 37
- 0
src/main/java/semantic/model/ObservationEntity.java View File

@@ -0,0 +1,37 @@
1
+package semantic.model;
2
+
3
+public class ObservationEntity
4
+{
5
+	private Float value;
6
+	private TimestampEntity timestamp;
7
+	
8
+	public ObservationEntity(Float value, TimestampEntity timestamp)
9
+	{
10
+		this.value = value;
11
+		this.timestamp = timestamp;
12
+	}
13
+	
14
+	public Float getValue()
15
+	{
16
+		return value;
17
+	}
18
+	public void setValue(Float value)
19
+	{
20
+		this.value = value;
21
+	}
22
+	public TimestampEntity getTimestamp()
23
+	{
24
+		return timestamp;
25
+	}
26
+	public void setTimestamp(TimestampEntity timestamp)
27
+	{
28
+		this.timestamp = timestamp;
29
+	}
30
+	
31
+	public String toString()
32
+	{
33
+		return "Observation entity : "+value+" at "+timestamp.getTimeStamp();
34
+	}
35
+	
36
+	
37
+}

+ 557
- 0
src/main/java/semantic/model/SemanticModel.java View File

@@ -0,0 +1,557 @@
1
+package semantic.model;
2
+
3
+import java.io.File;
4
+import java.io.FileNotFoundException;
5
+import java.io.FileReader;
6
+import java.io.FileWriter;
7
+import java.io.IOException;
8
+import java.util.AbstractMap;
9
+import java.util.ArrayList;
10
+import java.util.Collections;
11
+import java.util.HashMap;
12
+import java.util.HashSet;
13
+import java.util.Iterator;
14
+import java.util.List;
15
+import java.util.Map;
16
+import java.util.Random;
17
+import java.util.Set;
18
+import java.util.Map.Entry;
19
+
20
+import org.apache.jena.query.Dataset;
21
+import org.apache.jena.query.DatasetFactory;
22
+import org.apache.jena.query.Query;
23
+import org.apache.jena.query.QueryExecution;
24
+import org.apache.jena.query.QueryExecutionFactory;
25
+import org.apache.jena.query.QueryFactory;
26
+import org.apache.jena.query.QuerySolution;
27
+import org.apache.jena.query.ReadWrite;
28
+import org.apache.jena.query.ResultSet;
29
+import org.apache.jena.rdf.model.Model;
30
+import org.apache.jena.rdf.model.ModelFactory;
31
+import org.apache.jena.rdf.model.RDFNode;
32
+import org.apache.jena.rdf.model.Statement;
33
+import org.apache.jena.rdf.model.StmtIterator;
34
+import org.apache.jena.sparql.core.DatasetGraph;
35
+import org.apache.jena.sparql.core.DatasetGraphFactory;
36
+import org.apache.jena.update.UpdateAction;
37
+
38
+import fr.irit.melodi.sparql.query.ask.SparqlAsk;
39
+import fr.irit.melodi.sparql.query.dataquery.insert.SparqlInsertData;
40
+import fr.irit.melodi.sparql.query.dataquery.insert.SparqlInsertWhere;
41
+import fr.irit.melodi.sparql.query.select.SparqlSelect;
42
+
43
+public class SemanticModel implements IConvenienceInterface
44
+{
45
+	
46
+	public final static String SSN = "http://purl.oclc.org/NET/ssnx/ssn#";
47
+	public final static String SAREF = "http://ontology.tno.nl/saref#";
48
+	public final static String SAN = "http://www.irit.fr/recherches/MELODI/ontologies/SAN.owl#";
49
+	public final static String IOT_O = "http://www.irit.fr/recherches/MELODI/ontologies/IoT-O.owl#";
50
+	public final static String ADREAM = "http://pelican/adreamdata#";
51
+	public final static String BASE = "http://tp.5iss.fr#";
52
+	
53
+	// Separating prefixes into several lists lightens requests
54
+	public static Set<Entry<String, String>> IOT_PREFIXES;
55
+	public static Set<Entry<String, String>> SERVICES_PREFIXES;
56
+	public static Set<Entry<String, String>> ALL_PREFIXES;
57
+	public static Map<String, String> FEATURES;
58
+	
59
+	static
60
+	{
61
+		Set<Entry<String, String>> tmp1 = new HashSet<Map.Entry<String,String>>();
62
+		tmp1.add(new AbstractMap.SimpleEntry<String, String>( "iot-o","<"+IOT_O+">"));
63
+		tmp1.add(new AbstractMap.SimpleEntry<String, String>("ssn","<"+SSN+">"));
64
+		tmp1.add(new AbstractMap.SimpleEntry<String, String>("DUL",
65
+				"<http://www.loa-cnr.it/ontologies/DUL.owl#>"));
66
+		tmp1.add(new AbstractMap.SimpleEntry<String, String>("san",
67
+				"<http://www.irit.fr/recherches/MELODI/ontologies/SAN.owl#>"));
68
+		tmp1.add(new AbstractMap.SimpleEntry<String, String>("lifecycle",
69
+				"<http://purl.org/vocab/lifecycle/schema#>"));
70
+		tmp1.add(new AbstractMap.SimpleEntry<String, String>("adream",	"<"+ADREAM+">"));
71
+		IOT_PREFIXES = Collections.unmodifiableSet(tmp1);
72
+		
73
+		Set<Entry<String, String>> tmp2 = new HashSet<Map.Entry<String,String>>();
74
+		tmp2.add(new AbstractMap.SimpleEntry<String, String>("wsmo-lite",
75
+				"<http://www.wsmo.org/ns/wsmo-lite#>"));
76
+		tmp2.add(new AbstractMap.SimpleEntry<String, String>("msm",
77
+				"<http://iserve.kmi.open.ac.uk/ns/msm#>"));
78
+		tmp2.add(new AbstractMap.SimpleEntry<String, String>("hrests",
79
+				"<http://www.wsmo.org/ns/hrests#>"));
80
+		SERVICES_PREFIXES = Collections.unmodifiableSet(tmp2);
81
+		
82
+		Set<Entry<String, String>> tmp3 = new HashSet<Map.Entry<String,String>>();
83
+		tmp3.addAll(tmp1);
84
+		tmp3.addAll(tmp2);
85
+		ALL_PREFIXES = Collections.unmodifiableSet(tmp3);
86
+		Map<String, String> tmp4 = new HashMap<String, String>();
87
+		tmp4.put("Temperature","http://qudt.org/vocab/quantity#ThermodynamicTemperature");
88
+		tmp4.put("Light","http://qudt.org/vocab/quantity#LuminousIntensity");
89
+		FEATURES = Collections.unmodifiableMap(tmp4);
90
+	}
91
+	
92
+	private Model model;
93
+	private Dataset dataset;
94
+	private DatasetGraph dsg;
95
+	private String temperatureSensor1URI;
96
+	private String temperatureSensor2URI;
97
+	private String temperatureSensor3URI;
98
+	private String humiditySensor1URI;
99
+	private String temperatureURI;
100
+	private String humidityURI;
101
+
102
+	/**
103
+	 * Creates an empty model (for test purpose mainly)
104
+	 */
105
+	public SemanticModel()
106
+	{
107
+		this.dsg = DatasetGraphFactory.create();
108
+		this.dataset = DatasetFactory.wrap(dsg);
109
+		this.model = this.dataset.getDefaultModel();
110
+	}
111
+	
112
+	/**
113
+	 * Creates a model already loaded with triples issued from
114
+	 * the provided ontology, as well as another knowledge base
115
+	 * describing sensors and their ranges.
116
+	 * @param ontologyPath
117
+	 */
118
+	public SemanticModel(String ontologyPath)
119
+	{
120
+		this.dsg = DatasetGraphFactory.create();
121
+		this.dataset = DatasetFactory.wrap(dsg);
122
+		this.model = this.dataset.getDefaultModel();
123
+		this.loadFromFile("./tp2_sensors.rdf", "", "RDF/XML", true);
124
+		this.loadFromFile(ontologyPath, "", "TURTLE", true);
125
+		// Computation of URI that will be needed often, to limit frequent requests
126
+		this.temperatureSensor1URI = this.getEntityURI("TemperatureSensor_1").get(0);
127
+		this.temperatureSensor2URI = this.getEntityURI("TemperatureSensor_2").get(0);
128
+		this.temperatureSensor3URI = this.getEntityURI("TemperatureSensor_3").get(0);
129
+		this.temperatureURI = this.getEntityURI("Température").get(0);
130
+		this.humidityURI = this.getEntityURI("Hygrométrie").get(0);
131
+	}
132
+	
133
+	public void beginWriteTransaction()
134
+	{
135
+		this.dataset.begin(ReadWrite.WRITE);
136
+	}
137
+	
138
+	public void endTransaction()
139
+	{
140
+		this.dataset.end();
141
+		this.dataset.begin(ReadWrite.READ);
142
+		this.model = this.dataset.getDefaultModel();
143
+		this.dataset.end();
144
+	}
145
+	
146
+	void updateDataset(String queryString)
147
+	{	
148
+		UpdateAction.parseExecute(queryString, this.dsg);
149
+	}
150
+	
151
+	public void commitDataset()
152
+	{
153
+		this.dataset.commit();
154
+	}
155
+	
156
+	public void updateModel()
157
+	{
158
+		this.dataset.begin(ReadWrite.READ);
159
+		this.model = this.dataset.getDefaultModel();
160
+		this.dataset.end();
161
+	}
162
+	
163
+	public Model getModel()
164
+	{
165
+		return this.model;
166
+	}
167
+	
168
+	public static String formatURIForSparql(String uri)
169
+	{
170
+		if(uri.startsWith("http"))
171
+		{
172
+			return "<"+uri+">";
173
+		}
174
+		return uri;
175
+	}
176
+	
177
+	public static List<Map<String, String>> queryModel(String queryString, Model m)
178
+	{
179
+		List<Map<String, String>> resultList = new ArrayList<Map<String, String>>();
180
+		Query query = QueryFactory.create(queryString) ;
181
+		try (QueryExecution qexec = QueryExecutionFactory.create(query, m))
182
+		{
183
+			ResultSet results = qexec.execSelect();
184
+			while (results.hasNext())
185
+			{
186
+				QuerySolution soln = results.next();
187
+				resultList.add(new HashMap<String, String>());
188
+				List<String> varNameTestList = new ArrayList<String>();
189
+				Iterator<String> querySolutionVariables = soln.varNames();
190
+				while(querySolutionVariables.hasNext())
191
+				{
192
+					varNameTestList.add(querySolutionVariables.next());
193
+				}
194
+				// On va ajouter pour chaque résultat une map contenant les noms de variables et leurs valeurs
195
+				for(String varName : varNameTestList)
196
+				{
197
+					RDFNode x = soln.get(varName); // Get a result variable by name.
198
+					resultList.get(resultList.size()-1).put(varName, x.toString());
199
+				}
200
+			}
201
+			return resultList;
202
+		}
203
+		catch (Exception e) 
204
+		{
205
+			e.printStackTrace();
206
+			return null;
207
+		}
208
+	}
209
+	
210
+	public List<Map<String, String>> processReadQuery(String queryString)
211
+	{
212
+		return queryModel(queryString, this.model);
213
+	}
214
+	
215
+	public boolean processWriteQuery(String query)
216
+	{
217
+		try
218
+		{
219
+//			this.beginWriteTransaction();
220
+			this.updateDataset(query);
221
+//			this.commitDataset();
222
+//			this.endTransaction();
223
+			return true;
224
+		}
225
+		catch(Exception e)
226
+		{
227
+			e.printStackTrace();
228
+//			this.endTransaction();
229
+			return false;
230
+		}
231
+	}
232
+	
233
+	public boolean askDataset(String queryString)
234
+	{
235
+		Query query = QueryFactory.create(queryString) ;
236
+		QueryExecution qexec = QueryExecutionFactory.create(query, model) ;
237
+		boolean result = qexec.execAsk() ;
238
+		qexec.close() ;
239
+		return result;
240
+	}
241
+	
242
+	private String createSparqlDataFromStatement(Statement s, boolean acceptObjectProperties)
243
+	{
244
+		String subject = null;
245
+		String predicate = null;
246
+		String object = null;
247
+		if(s.getSubject().toString().startsWith("http"))
248
+		{
249
+			subject = "<"+s.getSubject().toString()+">";
250
+		}
251
+		if(s.getPredicate().toString().startsWith("http"))
252
+		{
253
+			predicate = "<"+s.getPredicate().toString()+">";
254
+		}
255
+		if((s.getObject().toString().startsWith("http") && !s.getObject().toString().contains("skos")))
256
+		{
257
+			object = "<"+s.getObject().toString()+">";
258
+		}
259
+		// FIXME find why object properties mess it up -> temporary fix, can be activated for safe files
260
+		else if (acceptObjectProperties)
261
+		{
262
+			// In this case, object is a data and not a resource
263
+			object = "\""+s.getObject().toString()+"\"";
264
+		}
265
+		if(subject != null && predicate != null && object != null)
266
+		{
267
+			return subject+" "+predicate+" "+object+".\n";
268
+		}
269
+		else
270
+		{
271
+			return null;
272
+		}
273
+	}
274
+	
275
+	void writeFromModel(Model m, boolean acceptObjectProperties)
276
+	{
277
+		StmtIterator i = m.listStatements();
278
+		String data = "";
279
+		while(i.hasNext())
280
+		{
281
+			Statement s = i.next();
282
+			String dataInstance = this.createSparqlDataFromStatement(s, acceptObjectProperties);
283
+			if(dataInstance != null)
284
+			{
285
+				data+=dataInstance;
286
+			}
287
+		}
288
+		// No need for prefixes, they are resolved in the model
289
+		SparqlInsertData s = new SparqlInsertData(null, data);
290
+		if(!this.processWriteQuery(s.toString()))
291
+		{
292
+			System.out.println("writeFomModel failed for model "+m);
293
+		}
294
+	}
295
+	
296
+	void loadFromFile(String path, String base, String lang, boolean supportObjectProperties)
297
+	{
298
+		Model tmpModel = ModelFactory.createDefaultModel();
299
+		FileReader f = null;
300
+		try
301
+		{
302
+			f = new FileReader(new File(path));
303
+		}
304
+		catch (FileNotFoundException e)
305
+		{
306
+			e.printStackTrace();
307
+		}
308
+		tmpModel.read(f, base, lang);
309
+		this.writeFromModel(tmpModel, supportObjectProperties);
310
+	}
311
+	
312
+	@Override
313
+	public String whichSensorDidIt(String timestamp, String paramURI)
314
+	{
315
+		TimestampEntity t = new TimestampEntity(timestamp);
316
+		if(paramURI.equals(this.temperatureURI))
317
+		{
318
+			// Pour une raison qui leur est propre, les capteurs de température de
319
+			// la station font les 3*8. Le taylorisme est passé par là.
320
+			if(t.getHour()>=5 && t.getHour()<13)
321
+			{
322
+				return this.temperatureSensor1URI;
323
+			}
324
+			else if(t.getHour()>=13 && t.getHour()<21)
325
+			{
326
+				return this.temperatureSensor2URI;
327
+			}
328
+			else
329
+			{
330
+				return this.temperatureSensor3URI;
331
+			}
332
+		}
333
+		else if(paramURI.equals(this.humidityURI))
334
+		{
335
+			return this.humiditySensor1URI;
336
+		}
337
+		else
338
+		{
339
+			return null;
340
+		}
341
+	}
342
+	
343
+	public boolean URIExists(String URI)
344
+	{
345
+		URI = SemanticModel.formatURIForSparql(URI);
346
+		SparqlAsk q = new SparqlAsk(SemanticModel.IOT_PREFIXES, URI+" ?p ?o");
347
+		return this.askDataset(q.toString());
348
+	}
349
+
350
+	@Override
351
+	public void addObservationToSensor(String obsURI, String sensorURI)
352
+	{
353
+		obsURI = SemanticModel.formatURIForSparql(obsURI);
354
+		sensorURI = SemanticModel.formatURIForSparql(sensorURI);
355
+		String insert = "?output ssn:hasValue "+obsURI;
356
+		String where = "?output ssn:isProducedBy "+sensorURI;
357
+		SparqlInsertWhere q = new SparqlInsertWhere(SemanticModel.IOT_PREFIXES, insert, where);
358
+		this.processWriteQuery(q.toString());
359
+	}
360
+
361
+	@Override
362
+	public List<String> getInstancesURI(String classURI)
363
+	{
364
+		classURI = SemanticModel.formatURIForSparql(classURI);
365
+		List<String> instances = new ArrayList<String>();
366
+		String select = "?s";
367
+		String where = "?s rdf:type/rdfs:subClassOf* "+classURI+".";
368
+		SparqlSelect q = new SparqlSelect(select, where);
369
+		List<Map<String, String>> qResult = this.processReadQuery(q.toString());
370
+		if(qResult.size() == 0)
371
+		{
372
+			System.out.println("Aucun élément de l'ontologie n'instancie la classe "+classURI);
373
+		}
374
+		for(Map<String, String> answer : qResult)
375
+		{
376
+			instances.add(answer.get("s"));
377
+		}
378
+		return instances;
379
+	}
380
+	
381
+	@Override
382
+	public boolean isOfType(String conceptURI, String typeURI)
383
+	{
384
+		String formattedConceptURI = formatURIForSparql(conceptURI);
385
+		String formattedTypeURI = formatURIForSparql(typeURI);
386
+		SparqlAsk sa = new SparqlAsk(IOT_PREFIXES, formattedConceptURI+" rdf:type/(rdfs:subClassOf|owl:sameAs)* "+formattedTypeURI+".");
387
+		return this.askDataset(sa.toString());
388
+	}
389
+
390
+	@Override
391
+	public String createInstance(String label, String type) {
392
+		long id = new Random().nextLong();
393
+		while(this.URIExists(BASE+id))
394
+		{
395
+			id = new Random().nextLong();
396
+		}
397
+		String individualURI = SemanticModel.formatURIForSparql(BASE+id);
398
+		String typeURI = SemanticModel.formatURIForSparql(type);
399
+		String insert = 
400
+				individualURI+" rdf:type "+typeURI+"; "
401
+				+ "rdfs:label \""+label+"\".";
402
+		SparqlInsertData q = new SparqlInsertData(IOT_PREFIXES, insert);
403
+		this.processWriteQuery(q.toString());
404
+		return BASE+id;
405
+	}
406
+
407
+	@Override
408
+	public void addObjectPropertyToIndividual(String subjectURI,
409
+			String propertyURI, String objectURI) {
410
+		SparqlInsertData q = new SparqlInsertData(IOT_PREFIXES, 
411
+				SemanticModel.formatURIForSparql(subjectURI)+
412
+				" "+SemanticModel.formatURIForSparql(propertyURI)+
413
+				" "+SemanticModel.formatURIForSparql(objectURI)+".");
414
+		this.processWriteQuery(q.toString());
415
+	}
416
+
417
+	@Override
418
+	public void addDataPropertyToIndividual(String subjectURI,
419
+			String propertyURI, String data) {
420
+		SparqlInsertData q = new SparqlInsertData(IOT_PREFIXES, 
421
+				SemanticModel.formatURIForSparql(subjectURI)+
422
+				" "+SemanticModel.formatURIForSparql(propertyURI)+
423
+				" \""+data+"\".");
424
+		this.processWriteQuery(q.toString());
425
+	}
426
+
427
+	@Override
428
+	public void exportModel(String path) 
429
+	{	
430
+		FileWriter out = null;
431
+		try
432
+		{
433
+			out = new FileWriter(path);
434
+			this.model.write(out, "TURTLE");
435
+		} 
436
+		catch (IOException e)
437
+		{
438
+			e.printStackTrace();
439
+		}
440
+	}
441
+
442
+	@Override
443
+	public boolean hasDataPropertyValue(String subjectURI,
444
+			String dataPropertyURI, String dataValue)
445
+	{
446
+		subjectURI = SemanticModel.formatURIForSparql(subjectURI);
447
+		dataPropertyURI = SemanticModel.formatURIForSparql(dataPropertyURI);
448
+		String ask = subjectURI+" "+dataPropertyURI+" \""+dataValue+"\".";
449
+		SparqlAsk q = new SparqlAsk(IOT_PREFIXES, ask);
450
+		return this.askDataset(q.toString());
451
+	}
452
+	
453
+	public List<String> testLanguageTag(String label, String tag)
454
+	{
455
+		List<String> instances = new ArrayList<String>();
456
+		String select = "?s ?l";
457
+		String where;
458
+//		if(tag != null && tag.length() > 0)
459
+//		{
460
+//			where = "?s rdfs:label \""+label+"@"+tag+"\".";
461
+//		}
462
+//		else
463
+		{
464
+//			where = "?s rdfs:label \""+label+"\".";
465
+//			where = "?s rdfs:label ?l. FILTER (str(?l) = \""+label+"\")";
466
+			where = "?s rdfs:label ?l.";
467
+		}
468
+		SparqlSelect q = new SparqlSelect(select, where);
469
+		String query = ""
470
+				+ "SELECT ?s"
471
+				+ "WHERE {?s <http://www.w3.org/2000/01/rdf-schema#label> ?l. FILTER regex(?l, \""+label+"\")}";
472
+		List<Map<String, String>> qResult = this.processReadQuery(query);
473
+		for(Map<String, String> answer : qResult)
474
+		{
475
+			instances.add(answer.get("s"));
476
+		}
477
+		return instances;
478
+	}
479
+
480
+	@Override
481
+	public List<String> getEntityURI(String label) 
482
+	{
483
+		List<String> instances = new ArrayList<String>();
484
+		String query = ""
485
+				+ "SELECT ?s "
486
+				+ "WHERE {?s <http://www.w3.org/2000/01/rdf-schema#label> ?l. FILTER regex(?l, \""+label+"\")}";
487
+		List<Map<String, String>> qResult = this.processReadQuery(query);
488
+		for(Map<String, String> answer : qResult)
489
+		{
490
+			instances.add(answer.get("s"));
491
+		}
492
+		if(instances.size() == 0)
493
+			System.out.println("Il n'y a pas d'entité portant le label "+label);
494
+		return instances;
495
+	}
496
+
497
+	@Override
498
+	public List<String> listLabels(String entityURI)
499
+	{
500
+		entityURI = SemanticModel.formatURIForSparql(entityURI);
501
+		List<String> instances = new ArrayList<String>();
502
+		String query = ""
503
+				+ "SELECT ?l "
504
+				+ "WHERE {"+entityURI+" <http://www.w3.org/2000/01/rdf-schema#label> ?l.}";
505
+		List<Map<String, String>> qResult = this.processReadQuery(query);
506
+		for(Map<String, String> answer : qResult)
507
+		{
508
+			// Labels contain language tags, in our case we won't consider them.
509
+			instances.add(answer.get("l").split("@")[0]);
510
+		}
511
+		if(instances.size() == 0)
512
+			System.out.println("Aucune entité n'est associée à l'entité "+entityURI);
513
+		return instances;
514
+	}
515
+
516
+	@Override
517
+	public List<List<String>> listProperties(String entityURI)
518
+	{
519
+		entityURI = SemanticModel.formatURIForSparql(entityURI);
520
+		List<List<String>> instances = new ArrayList<List<String>>();
521
+		String query = ""
522
+				+ "SELECT ?p ?o "
523
+				+ "WHERE {"+entityURI+" ?p ?o.}";
524
+		List<Map<String, String>> qResult = this.processReadQuery(query);
525
+		for(Map<String, String> answer : qResult)
526
+		{
527
+			ArrayList<String> l = new ArrayList<String>();
528
+			l.add(answer.get("p"));
529
+			l.add(answer.get("o"));
530
+			instances.add(l);
531
+		}
532
+		return instances;
533
+	}
534
+
535
+	@Override
536
+	public boolean hasObjectProperty(String subjectURI, String propertyURI,
537
+			String objectURI)
538
+	{
539
+		subjectURI = SemanticModel.formatURIForSparql(subjectURI);
540
+		propertyURI = SemanticModel.formatURIForSparql(propertyURI);
541
+		objectURI = SemanticModel.formatURIForSparql(objectURI);
542
+		String ask = subjectURI+" "+propertyURI+" "+objectURI+".";
543
+		SparqlAsk q = new SparqlAsk(IOT_PREFIXES, ask);
544
+		return this.askDataset(q.toString());
545
+	}
546
+
547
+	@Override
548
+	public boolean hasSensorDoneIt(String obsURI, String sensorURI)
549
+	{
550
+		obsURI = SemanticModel.formatURIForSparql(obsURI);
551
+		sensorURI = SemanticModel.formatURIForSparql(sensorURI);
552
+		String ask = "?output ssn:isProducedBy "+sensorURI+";"
553
+				+ "ssn:hasValue "+obsURI+".";
554
+		SparqlAsk q = new SparqlAsk(SemanticModel.IOT_PREFIXES, ask);
555
+		return this.askDataset(q.toString());
556
+	}
557
+}

+ 56
- 0
src/main/java/semantic/model/TimestampEntity.java View File

@@ -0,0 +1,56 @@
1
+package semantic.model;
2
+
3
+import java.text.DateFormat;
4
+import java.text.ParseException;
5
+import java.text.SimpleDateFormat;
6
+import java.util.Date;
7
+
8
+
9
+public class TimestampEntity
10
+{
11
+	public String timestamp;
12
+	public Date date;
13
+	public String time;
14
+	
15
+	public TimestampEntity(String timestamp)
16
+	{
17
+		this.timestamp = timestamp;
18
+		DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
19
+		try 
20
+		{
21
+			this.date = df.parse(timestamp);
22
+		}
23
+		catch (ParseException e)
24
+		{
25
+			e.printStackTrace();
26
+		}
27
+	}
28
+	
29
+	public Date getDate()
30
+	{
31
+		return this.date;
32
+	}
33
+	
34
+	public String getDay()
35
+	{
36
+		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
37
+		return formatter.format(this.date);
38
+	}
39
+	
40
+	public String getTime()
41
+	{
42
+		SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
43
+		return formatter.format(this.date);
44
+	}
45
+	
46
+	public int getHour()
47
+	{
48
+		SimpleDateFormat formatter = new SimpleDateFormat("HH");
49
+		return Integer.valueOf(formatter.format(this.date));	
50
+	}
51
+	
52
+	public String getTimeStamp()
53
+	{
54
+		return this.timestamp;
55
+	}
56
+}

+ 55
- 0
src/main/java/semantic/view/JSONEndpoint.java View File

@@ -0,0 +1,55 @@
1
+package semantic.view;
2
+
3
+import java.io.BufferedReader;
4
+import java.io.FileReader;
5
+import java.io.IOException;
6
+import java.io.StringReader;
7
+import java.util.ArrayList;
8
+import java.util.List;
9
+
10
+import javax.json.Json;
11
+import javax.json.stream.JsonParser;
12
+import javax.json.stream.JsonParser.Event;
13
+
14
+import semantic.model.ObservationEntity;
15
+import semantic.model.TimestampEntity;
16
+
17
+public class JSONEndpoint
18
+{
19
+	public static List<ObservationEntity> parseObservations(String path) throws IOException
20
+	{
21
+		  BufferedReader in = new BufferedReader(new FileReader(path));
22
+		  String line;
23
+		  line = in.readLine();
24
+		  // Read observation entities, sorted by day
25
+		  List<ObservationEntity> obsList = new ArrayList<ObservationEntity>();
26
+		  while (line != null)
27
+		  {
28
+			  JsonParser parser = Json.createParser(new StringReader(line));
29
+			  // At this point, event vaut START_OBJECT
30
+			  Event e = parser.next();
31
+			  String timestamp = null;
32
+			  Float value = null;
33
+			  // Each line exactly contains one json object
34
+			  while(e != Event.END_OBJECT)
35
+			  {
36
+				  if(e == Event.KEY_NAME)
37
+				  {
38
+					  timestamp = parser.getString();
39
+				  }
40
+				  else if(e == Event.VALUE_STRING)
41
+				  {
42
+					  if(parser.getString().length() > 0)
43
+					  {
44
+						  value = Float.valueOf(parser.getString());
45
+						  obsList.add(new ObservationEntity(value, new TimestampEntity(timestamp)));
46
+					  }
47
+				  }
48
+				  e = parser.next();
49
+			  }
50
+			  line = in.readLine();
51
+		  }
52
+		  in.close();
53
+		  return obsList;
54
+	}
55
+}

+ 6
- 0
src/main/java/semantic/view/TTLEndpoint.java View File

@@ -0,0 +1,6 @@
1
+package semantic.view;
2
+
3
+public class TTLEndpoint
4
+{
5
+
6
+}

+ 29
- 0
src/test/java/semantic/TestJSONParsing.java View File

@@ -0,0 +1,29 @@
1
+package semantic;
2
+
3
+import java.io.IOException;
4
+import java.util.List;
5
+
6
+import org.junit.Assert;
7
+import org.junit.Test;
8
+
9
+import semantic.model.ObservationEntity;
10
+import semantic.view.JSONEndpoint;
11
+
12
+public class TestJSONParsing
13
+{
14
+	@Test
15
+	public void testParseTemperature() 
16
+	{
17
+		List<ObservationEntity> obslist = null;
18
+		try
19
+		{
20
+			obslist = JSONEndpoint.parseObservations("./src/test/temperature.txt");
21
+		}
22
+		catch (IOException e)
23
+		{
24
+			e.printStackTrace();
25
+		}
26
+		Assert.assertNotNull(obslist);
27
+		Assert.assertNotEquals(0, obslist.size());
28
+	}
29
+}

+ 73
- 0
src/test/java/semantic/TestModelFunctions.java View File

@@ -0,0 +1,73 @@
1
+package semantic;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+import semantic.controler.Controler;
7
+import semantic.model.TimestampEntity;
8
+
9
+public class TestModelFunctions
10
+{
11
+	@Test
12
+	public void testPlaceCreation()
13
+	{
14
+		Controler c = new Controler();
15
+		String jurassicParkURI = c.getCustomModel().createPlace("Jurassic park");
16
+		String placeClassURI = c.getModel().getEntityURI("Lieu").get(0);
17
+		Assert.assertTrue("L'entité créée n'est pas de classe Lieu", c.getModel().isOfType(jurassicParkURI, placeClassURI));
18
+		Assert.assertTrue("Le lieu créé n'a pas de label pour indiquer son nom", c.getModel().listLabels(jurassicParkURI).contains("Jurassic park"));
19
+	}
20
+	
21
+	@Test
22
+	public void testInstantCreation()
23
+	{
24
+		Controler c = new Controler();
25
+		TimestampEntity t = new TimestampEntity("2014-02-13T06:20:00");
26
+		String instantURI = c.getCustomModel().createInstant(t);
27
+		String instantClassURI = c.getModel().getEntityURI("Instant").get(0);
28
+		String propertyURI =  c.getModel().getEntityURI("a pour timestamp").get(0);
29
+		Assert.assertTrue("L'entité créée n'est pas de la classe Instant", c.getModel().isOfType(instantURI, instantClassURI));
30
+		Assert.assertTrue("L'instant créé n'a pas le bon timestamp", c.getModel().hasDataPropertyValue(
31
+				instantURI, propertyURI, "2014-02-13T06:20:00"));
32
+	}
33
+	
34
+	@Test
35
+	public void testInstantRetrieval()
36
+	{
37
+		Controler c = new Controler();
38
+		TimestampEntity t = new TimestampEntity("2014-02-13T06:20:00");
39
+		TimestampEntity t2 = new TimestampEntity("2015-02-13T06:20:00");
40
+		String instantURI = c.getCustomModel().createInstant(t);
41
+		Assert.assertTrue("La recherche d'un instant par timestamp ne retourne rien pour un instant sensé exister", c.getCustomModel().getInstantURI(t).equals(instantURI));
42
+		Assert.assertNull("La recherche d'un instant par timestamp inexistant ne retourne pas un résultat null", c.getCustomModel().getInstantURI(t2));
43
+	}
44
+	
45
+	@Test
46
+	public void testTimestampRetrieval()
47
+	{
48
+		Controler c = new Controler();
49
+		TimestampEntity t = new TimestampEntity("2014-02-13T06:20:00");
50
+		String instantURI = c.getCustomModel().createInstant(t);
51
+		Assert.assertTrue("Le timestamp ne correspond pas", c.getCustomModel().getInstantTimestamp(instantURI).equals("2014-02-13T06:20:00"));
52
+	}
53
+	
54
+	@Test
55
+	public void testObservationCreation()
56
+	{
57
+		Controler c = new Controler();
58
+		TimestampEntity t = new TimestampEntity("2014-02-13T06:20:00");
59
+		String instantURI = c.getCustomModel().createInstant(t);
60
+		String paramURI = c.getModel().getEntityURI("Température").get(0);
61
+		String value = "25.0";
62
+		String obsURI = c.getCustomModel().createObs(value, paramURI, instantURI);
63
+		// Entities relevant to the test
64
+		String obsClassURI = c.getModel().getEntityURI("Observation").get(0);
65
+		String hasDataValueURI = c.getModel().getEntityURI("a pour valeur").get(0);
66
+		String datePropertyURI = c.getModel().getEntityURI("a pour date").get(0);
67
+		String sensorURI = c.getModel().whichSensorDidIt("2014-02-13T06:20:00", paramURI);
68
+		Assert.assertTrue("L'observation n'est pas une instance de la bonne classe", c.getModel().isOfType(obsURI, obsClassURI));
69
+		Assert.assertTrue("L'observation n'a pas la bonne valeur",c.getModel().hasDataPropertyValue(obsURI, hasDataValueURI, value));
70
+		Assert.assertTrue("L'observation n'a pas la bonne date",c.getModel().hasObjectProperty(obsURI, datePropertyURI, instantURI));
71
+		Assert.assertTrue("L'observation n'est pas rattachée au bon capteur", c.getModel().hasSensorDoneIt(obsURI, sensorURI));
72
+	}
73
+}

+ 18
- 0
src/test/java/semantic/TestOntologyInteraction.java View File

@@ -0,0 +1,18 @@
1
+package semantic;
2
+
3
+
4
+import org.junit.Assert;
5
+import org.junit.Test;
6
+
7
+import semantic.model.SemanticModel;
8
+
9
+public class TestOntologyInteraction {
10
+	
11
+	@Test
12
+	public void createSemanticModel()
13
+	{
14
+		SemanticModel sm = new SemanticModel();
15
+		Assert.assertNotNull(sm);
16
+	}
17
+
18
+}

+ 5
- 0
src/test/temperature.txt View File

@@ -0,0 +1,5 @@
1
+{"2014-02-13T06:20:00": "3.0", "2014-02-13T13:50:00": "7.0", "2014-02-13T06:00:00": "2", "2014-02-13T03:00:00": "3", "2014-02-13T13:00:00": "6", "2014-02-13T18:50:00": "4.0", "2014-02-13T13:20:00": "6.0", "2014-02-13T15:00:00": "6", "2014-02-13T08:50:00": "4.0", "2014-02-13T21:50:00": "4.0", "2014-02-13T08:00:00": "3", "2014-02-13T07:50:00": "3.0", "2014-02-13T08:20:00": "4.0", "2014-02-13T21:20:00": "3.0", "2014-02-13T11:50:00": "6.0", "2014-02-13T11:20:00": "6.0", "2014-02-13T17:50:00": "5.0", "2014-02-13T11:00:00": "6", "2014-02-13T05:50:00": "2.0", "2014-02-13T20:50:00": "3.0", "2014-02-13T20:20:00": "4.0", "2014-02-13T16:00:00": "6", "2014-02-13T23:50:00": "2.0", "2014-02-13T21:00:00": "3", "2014-02-13T07:20:00": "3.0", "2014-02-13T03:20:00": "3.0", "2014-02-13T07:00:00": "3", "2014-02-13T15:50:00": "6.0", "2014-02-13T03:50:00": "2.0", "2014-02-13T04:00:00": "2", "2014-02-13T12:00:00": "6", "2014-02-13T04:20:00": "2.0", "2014-02-13T12:20:00": "6.0", "2014-02-13T12:50:00": "6.0", "2014-02-13T22:50:00": "3.0", "2014-02-13T09:00:00": "4", "2014-02-13T09:20:00": "4.0", "2014-02-13T09:50:00": "4.0", "2014-02-13T18:00:00": "5", "2014-02-13T05:20:00": "2.0", "2014-02-13T15:20:00": "6.0", "2014-02-13T00:50:00": "4.0", "2014-02-13T14:50:00": "7.0", "2014-02-13T00:00:00": "4", "2014-02-13T00:20:00": "4.0", "2014-02-13T06:50:00": "3.0", "2014-02-13T22:00:00": "4", "2014-02-13T18:20:00": "5.0", "2014-02-13T02:50:00": "3.0", "2014-02-13T02:20:00": "3.0", "2014-02-13T04:50:00": "2.0", "2014-02-13T02:00:00": "3", "2014-02-13T23:00:00": "3", "2014-02-13T16:50:00": "5.0", "2014-02-13T19:50:00": "4.0", "2014-02-13T19:20:00": "4.0", "2014-02-13T05:00:00": "2", "2014-02-13T19:00:00": "4", "2014-02-13T23:20:00": "3.0", "2014-02-13T14:20:00": "7.0", "2014-02-13T10:20:00": "5.0", "2014-02-13T10:00:00": "4", "2014-02-13T10:50:00": "5.0", "2014-02-13T17:00:00": "5", "2014-02-13T01:00:00": "4", "2014-02-13T17:20:00": "5.0", "2014-02-13T01:20:00": "4.0", "2014-02-13T01:50:00": "4.0", "2014-02-13T22:20:00": "3.0", "2014-02-13T16:20:00": "6.0"}
2
+{"2014-02-14T04:50:00": "1.0", "2014-02-14T09:50:00": "4.0", "2014-02-14T12:20:00": "6.0", "2014-02-14T09:00:00": "3", "2014-02-14T16:20:00": "6.0", "2014-02-14T09:20:00": "3.0", "2014-02-14T19:00:00": "4", "2014-02-14T07:20:00": "2.0", "2014-02-14T06:50:00": "2.0", "2014-02-14T13:20:00": "5.0", "2014-02-14T10:00:00": "4", "2014-02-14T21:50:00": "4.0", "2014-02-14T07:50:00": "2.0", "2014-02-14T19:20:00": "3.0", "2014-02-14T14:50:00": "6.0", "2014-02-14T14:20:00": "6.0", "2014-02-14T04:00:00": "1", "2014-02-14T14:00:00": "6", "2014-02-14T23:00:00": "3", "2014-02-14T22:20:00": "4.0", "2014-02-14T13:00:00": "6", "2014-02-14T06:00:00": "2", "2014-02-14T19:50:00": "4.0", "2014-02-14T08:00:00": "2", "2014-02-14T08:20:00": "2.0", "2014-02-14T08:50:00": "3.0", "2014-02-14T11:20:00": "5.0", "2014-02-14T20:50:00": "3.0", "2014-02-14T05:00:00": "1", "2014-02-14T15:20:00": "6.0", "2014-02-14T05:20:00": "1.0", "2014-02-14T15:00:00": "6", "2014-02-14T07:00:00": "2", "2014-02-14T15:50:00": "6.0", "2014-02-14T21:20:00": "3.0", "2014-02-14T17:00:00": "5", "2014-02-14T22:50:00": "3.0", "2014-02-14T17:20:00": "5.0", "2014-02-14T17:50:00": "5.0", "2014-02-14T04:20:00": "1.0", "2014-02-14T01:50:00": "1.0", "2014-02-14T22:00:00": "4", "2014-02-14T01:00:00": "2", "2014-02-14T06:20:00": "2.0", "2014-02-14T01:20:00": "1.0", "2014-02-14T20:20:00": "4.0", "2014-02-14T02:20:00": "1.0", "2014-02-14T02:00:00": "1", "2014-02-14T16:00:00": "6", "2014-02-14T02:50:00": "1.0", "2014-02-14T10:50:00": "5.0", "2014-02-14T18:20:00": "4.0", "2014-02-14T18:00:00": "4", "2014-02-14T03:50:00": "1.0", "2014-02-14T03:20:00": "1.0", "2014-02-14T23:20:00": "3.0", "2014-02-14T03:00:00": "1", "2014-02-14T12:50:00": "6.0", "2014-02-14T16:50:00": "5.0", "2014-02-14T13:50:00": "6.0", "2014-02-14T11:50:00": "5.0", "2014-02-14T23:50:00": "3.0", "2014-02-14T12:00:00": "6", "2014-02-14T20:00:00": "4", "2014-02-14T00:00:00": "2", "2014-02-14T00:20:00": "2.0", "2014-02-14T00:50:00": "1.0", "2014-02-14T05:50:00": "2.0", "2014-02-14T18:50:00": "4.0"}
3
+{"2014-02-15T06:50:00": "4.0", "2014-02-15T10:20:00": "6.0", "2014-02-15T06:00:00": "4", "2014-02-15T06:20:00": "4.0", "2014-02-15T01:00:00": "3", "2014-02-15T08:20:00": "4.0", "2014-02-15T08:00:00": "4", "2014-02-15T13:50:00": "7.0", "2014-02-15T13:20:00": "7.0", "2014-02-15T01:50:00": "4.0", "2014-02-15T13:00:00": "7", "2014-02-15T04:50:00": "4.0", "2014-02-15T04:20:00": "4.0", "2014-02-15T02:50:00": "4.0", "2014-02-15T04:00:00": "4", "2014-02-15T14:00:00": "7", "2014-02-15T09:00:00": "4", "2014-02-15T03:00:00": "4", "2014-02-15T16:00:00": "9", "2014-02-15T14:50:00": "9.0", "2014-02-15T12:50:00": "7.0", "2014-02-15T23:00:00": "7", "2014-02-15T12:20:00": "7.0", "2014-02-15T10:00:00": "6", "2014-02-15T20:20:00": "8.0", "2014-02-15T00:50:00": "3.0", "2014-02-15T10:50:00": "6.0", "2014-02-15T15:50:00": "9.0", "2014-02-15T08:50:00": "4.0", "2014-02-15T21:50:00": "8.0", "2014-02-15T07:00:00": "4", "2014-02-15T23:50:00": "7.0", "2014-02-15T07:20:00": "4.0", "2014-02-15T07:50:00": "4.0", "2014-02-15T14:20:00": "8.0", "2014-02-15T22:20:00": "8.0", "2014-02-15T11:50:00": "7.0", "2014-02-15T22:00:00": "8", "2014-02-15T17:50:00": "8.0", "2014-02-15T11:00:00": "6", "2014-02-15T16:20:00": "9.0", "2014-02-15T11:20:00": "6.0", "2014-02-15T00:20:00": "3.0", "2014-02-15T00:00:00": "3", "2014-02-15T19:00:00": "8", "2014-02-15T21:00:00": "8", "2014-02-15T03:50:00": "4.0", "2014-02-15T17:00:00": "8", "2014-02-15T22:50:00": "7.0", "2014-02-15T18:00:00": "8", "2014-02-15T18:20:00": "8.0", "2014-02-15T18:50:00": "8.0", "2014-02-15T01:20:00": "4.0", "2014-02-15T15:00:00": "9", "2014-02-15T05:20:00": "4.0", "2014-02-15T15:20:00": "9.0", "2014-02-15T05:00:00": "4", "2014-02-15T20:50:00": "8.0", "2014-02-15T05:50:00": "4.0", "2014-02-15T02:00:00": "4", "2014-02-15T02:20:00": "4.0", "2014-02-15T12:00:00": "7", "2014-02-15T21:20:00": "8.0", "2014-02-15T17:20:00": "8.0", "2014-02-15T16:50:00": "9.0", "2014-02-15T23:20:00": "7.0", "2014-02-15T03:20:00": "4.0"}
4
+{"2014-02-16T03:00:00": "5", "2014-02-16T15:00:00": "5", "2014-02-16T03:20:00": "6.0", "2014-02-16T15:20:00": "5.0", "2014-02-16T15:50:00": "5.0", "2014-02-16T21:20:00": "4.0", "2014-02-16T20:00:00": "5", "2014-02-16T18:00:00": "5", "2014-02-16T18:20:00": "5.0", "2014-02-16T01:50:00": "6.0", "2014-02-16T22:20:00": "4.0", "2014-02-16T02:20:00": "6.0", "2014-02-16T01:20:00": "7.0", "2014-02-16T14:50:00": "5.0", "2014-02-16T01:00:00": "7", "2014-02-16T11:00:00": "6", "2014-02-16T14:00:00": "7", "2014-02-16T14:20:00": "7.0", "2014-02-16T12:50:00": "7.0", "2014-02-16T20:50:00": "4.0", "2014-02-16T08:20:00": "5.0", "2014-02-16T22:00:00": "4", "2014-02-16T05:50:00": "5.0", "2014-02-16T05:20:00": "5.0", "2014-02-16T03:50:00": "6.0", "2014-02-16T05:00:00": "5", "2014-02-16T11:50:00": "7.0", "2014-02-16T23:00:00": "4", "2014-02-16T02:00:00": "6", "2014-02-16T22:50:00": "4.0", "2014-02-16T00:20:00": "7.0", "2014-02-16T17:00:00": "4", "2014-02-16T21:00:00": "4", "2014-02-16T04:20:00": "6.0", "2014-02-16T04:00:00": "6", "2014-02-16T13:50:00": "7.0", "2014-02-16T04:50:00": "6.0", "2014-02-16T19:00:00": "5", "2014-02-16T10:00:00": "6", "2014-02-16T06:00:00": "5", "2014-02-16T10:20:00": "6.0", "2014-02-16T06:20:00": "5.0", "2014-02-16T06:50:00": "6.0", "2014-02-16T18:50:00": "5.0", "2014-02-16T11:20:00": "6.0", "2014-02-16T12:20:00": "7.0", "2014-02-16T07:50:00": "5.0", "2014-02-16T12:00:00": "6", "2014-02-16T23:50:00": "3.0", "2014-02-16T07:00:00": "6", "2014-02-16T07:20:00": "6.0", "2014-02-16T00:00:00": "6", "2014-02-16T09:20:00": "6.0", "2014-02-16T23:20:00": "3.0", "2014-02-16T08:50:00": "5.0", "2014-02-16T09:00:00": "5", "2014-02-16T19:50:00": "5.0", "2014-02-16T20:20:00": "4.0", "2014-02-16T16:50:00": "4.0", "2014-02-16T16:20:00": "5.0", "2014-02-16T10:50:00": "6.0", "2014-02-16T16:00:00": "5", "2014-02-16T21:50:00": "4.0", "2014-02-16T02:50:00": "5.0", "2014-02-16T13:00:00": "6", "2014-02-16T00:50:00": "7.0", "2014-02-16T19:20:00": "5.0", "2014-02-16T13:20:00": "7.0", "2014-02-16T17:20:00": "4.0", "2014-02-16T09:50:00": "6.0", "2014-02-16T17:50:00": "5.0", "2014-02-16T08:00:00": "4"}
5
+{"2014-02-17T01:00:00": "4", "2014-02-17T11:50:00": "7.0", "2014-02-17T22:00:00": "2", "2014-02-17T23:50:00": "1.0", "2014-02-17T21:00:00": "2", "2014-02-17T02:50:00": "3.0", "2014-02-17T19:50:00": "3.0", "2014-02-17T00:00:00": "3", "2014-02-17T16:00:00": "8", "2014-02-17T00:20:00": "3.0", "2014-02-17T16:20:00": "7.0", "2014-02-17T16:50:00": "7.0", "2014-02-17T13:50:00": "7.0", "2014-02-17T18:20:00": "4.0", "2014-02-17T12:50:00": "7.0", "2014-02-17T22:20:00": "1.0", "2014-02-17T22:50:00": "1.0", "2014-02-17T01:20:00": "3.0", "2014-02-17T11:20:00": "7.0", "2014-02-17T04:50:00": "3.0", "2014-02-17T10:50:00": "7.0", "2014-02-17T04:00:00": "3", "2014-02-17T03:20:00": "3.0", "2014-02-17T04:20:00": "3.0", "2014-02-17T23:20:00": "1.0", "2014-02-17T20:20:00": "2.0", "2014-02-17T07:20:00": "3.0", "2014-02-17T20:00:00": "3", "2014-02-17T07:00:00": "3", "2014-02-17T07:50:00": "3.0", "2014-02-17T09:50:00": "5.0", "2014-02-17T06:50:00": "3.0", "2014-02-17T06:20:00": "3.0", "2014-02-17T06:00:00": "3", "2014-02-17T19:20:00": "3.0", "2014-02-17T23:00:00": "1", "2014-02-17T12:00:00": "8", "2014-02-17T20:50:00": "2.0", "2014-02-17T19:00:00": "3", "2014-02-17T10:00:00": "6", "2014-02-17T08:00:00": "3", "2014-02-17T08:20:00": "3.0", "2014-02-17T21:20:00": "2.0", "2014-02-17T21:50:00": "2.0", "2014-02-17T13:00:00": "7", "2014-02-17T05:00:00": "3", "2014-02-17T13:20:00": "8.0", "2014-02-17T05:20:00": "3.0", "2014-02-17T05:50:00": "3.0", "2014-02-17T00:50:00": "3.0", "2014-02-17T09:20:00": "5.0", "2014-02-17T01:50:00": "3.0", "2014-02-17T18:50:00": "3.0", "2014-02-17T03:00:00": "3", "2014-02-17T02:20:00": "3.0", "2014-02-17T14:50:00": "8.0", "2014-02-17T02:00:00": "3", "2014-02-17T18:00:00": "4", "2014-02-17T17:00:00": "6", "2014-02-17T10:20:00": "6.0", "2014-02-17T17:20:00": "6.0", "2014-02-17T09:00:00": "4", "2014-02-17T14:20:00": "7.0", "2014-02-17T11:00:00": "7", "2014-02-17T08:50:00": "4.0", "2014-02-17T14:00:00": "7", "2014-02-17T17:50:00": "5.0", "2014-02-17T15:50:00": "8.0", "2014-02-17T15:20:00": "8.0", "2014-02-17T03:50:00": "3.0", "2014-02-17T15:00:00": "8"}

+ 426
- 0
tp-iss.ttl View File

@@ -0,0 +1,426 @@
1
+@prefix : <http://www.w3.org/2002/07/owl#> .
2
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
3
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
4
+@prefix ssn: <http://purl.oclc.org/NET/ssnx/ssn#> .
5
+@prefix xml: <http://www.w3.org/XML/1998/namespace> .
6
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
7
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
8
+@prefix tp-iss: <http://homepages.laas.fr/nseydoux/ontologies/tp-iss#> .
9
+@base <http://homepages.laas.fr/nseydoux/ontologies/tp-iss> .
10
+
11
+<http://homepages.laas.fr/nseydoux/ontologies/tp-iss> rdf:type owl:Ontology .
12
+
13
+#################################################################
14
+#    Annotation properties
15
+#################################################################
16
+
17
+###  http://purl.oclc.org/NET/ssnx/ssn#observes
18
+ssn:observes rdf:type owl:AnnotationProperty .
19
+
20
+
21
+#################################################################
22
+#    Object Properties
23
+#################################################################
24
+
25
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_0f63feb1_1b41_4716_92bb_1ef70da83f72
26
+tp-iss:OWLObjectProperty_0f63feb1_1b41_4716_92bb_1ef70da83f72 rdf:type owl:ObjectProperty ;
27
+                                                              rdfs:domain tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ;
28
+                                                              rdfs:range tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e ;
29
+                                                              rdfs:label "a pour symptome"@en .
30
+
31
+
32
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_214a72af_4335_4b8a_b251_edcce1785ea7
33
+tp-iss:OWLObjectProperty_214a72af_4335_4b8a_b251_edcce1785ea7 rdf:type owl:ObjectProperty ;
34
+                                                              rdfs:subPropertyOf owl:topObjectProperty ;
35
+                                                              owl:inverseOf tp-iss:OWLObjectProperty_4a511452_e141_4a7e_b156_cf152f19cd2d ;
36
+                                                              rdfs:domain tp-iss:OWLClass_c8a39393_1773_4418_971e_85efde7cf347 ,
37
+                                                                          [ rdf:type owl:Restriction ;
38
+                                                                            owl:onProperty tp-iss:OWLObjectProperty_214a72af_4335_4b8a_b251_edcce1785ea7 ;
39
+                                                                            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
40
+                                                                            owl:onClass tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e
41
+                                                                          ] ;
42
+                                                              rdfs:range tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e ;
43
+                                                              rdfs:label "a pour capitale"@en .
44
+
45
+
46
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_3e84e8b7_9283_4582_b02d_3815a4cf3864
47
+tp-iss:OWLObjectProperty_3e84e8b7_9283_4582_b02d_3815a4cf3864 rdf:type owl:ObjectProperty ;
48
+                                                              rdfs:domain tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e ;
49
+                                                              rdfs:range tp-iss:OWLClass_70366453_b04e_4693_9806_9bb04ff4593c ;
50
+                                                              rdfs:label "a pour date"@en .
51
+
52
+
53
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_4a511452_e141_4a7e_b156_cf152f19cd2d
54
+tp-iss:OWLObjectProperty_4a511452_e141_4a7e_b156_cf152f19cd2d rdf:type owl:ObjectProperty ;
55
+                                                              rdfs:subPropertyOf tp-iss:OWLObjectProperty_6637af56_609a_4059_bf56_f2870d032dbc ;
56
+                                                              rdfs:label "est la capitale de"@fr .
57
+
58
+
59
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_57b19d61_bcdf_40fd_90c7_dd56beb7acb6
60
+tp-iss:OWLObjectProperty_57b19d61_bcdf_40fd_90c7_dd56beb7acb6 rdf:type owl:ObjectProperty ;
61
+                                                              rdfs:domain tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e ;
62
+                                                              rdfs:range tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 ;
63
+                                                              rdfs:label "a pour localisation"@en .
64
+
65
+
66
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_6637af56_609a_4059_bf56_f2870d032dbc
67
+tp-iss:OWLObjectProperty_6637af56_609a_4059_bf56_f2870d032dbc rdf:type owl:ObjectProperty ,
68
+                                                                       owl:TransitiveProperty ;
69
+                                                              rdfs:domain tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 ;
70
+                                                              rdfs:range tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 ;
71
+                                                              rdfs:label "est inclus dans"@en .
72
+
73
+
74
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_6e59efc0_2d2e_4485_a5a2_2ea407080c48
75
+tp-iss:OWLObjectProperty_6e59efc0_2d2e_4485_a5a2_2ea407080c48 rdf:type owl:ObjectProperty ;
76
+                                                              rdfs:domain tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ;
77
+                                                              rdfs:range tp-iss:OWLClass_70366453_b04e_4693_9806_9bb04ff4593c ;
78
+                                                              rdfs:label "débute à"@en .
79
+
80
+
81
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_cf7c18d0_5a3f_4173_897a_754d49d90f25
82
+tp-iss:OWLObjectProperty_cf7c18d0_5a3f_4173_897a_754d49d90f25 rdf:type owl:ObjectProperty ;
83
+                                                              rdfs:domain tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ;
84
+                                                              rdfs:range tp-iss:OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e ;
85
+                                                              rdfs:label "caractérisé par"@en .
86
+
87
+
88
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_f0381af4_a882_4f64_8928_6089116baadc
89
+tp-iss:OWLObjectProperty_f0381af4_a882_4f64_8928_6089116baadc rdf:type owl:ObjectProperty ;
90
+                                                              rdfs:domain tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ;
91
+                                                              rdfs:range tp-iss:OWLClass_70366453_b04e_4693_9806_9bb04ff4593c ;
92
+                                                              rdfs:label "finit à"@en .
93
+
94
+
95
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLObjectProperty_f4ed4114_811e_4c3b_9fda_e5659bf2ec9c
96
+tp-iss:OWLObjectProperty_f4ed4114_811e_4c3b_9fda_e5659bf2ec9c rdf:type owl:ObjectProperty ;
97
+                                                              rdfs:domain tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e ;
98
+                                                              rdfs:range tp-iss:OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e ;
99
+                                                              rdfs:label "mesure"@en .
100
+
101
+
102
+###  http://purl.oclc.org/NET/ssnx/ssn#attachedSystem
103
+ssn:attachedSystem rdf:type owl:ObjectProperty .
104
+
105
+
106
+###  http://purl.oclc.org/NET/ssnx/ssn#onPlatform
107
+ssn:onPlatform rdf:type owl:ObjectProperty .
108
+
109
+
110
+###  http://www.w3.org/2002/07/owl#OWLObjectProperty_c71b5265_ff81_4c91_b30d_a3e858340405
111
+owl:OWLObjectProperty_c71b5265_ff81_4c91_b30d_a3e858340405 rdf:type owl:ObjectProperty ;
112
+                                                           owl:propertyChainAxiom ( ssn:onPlatform
113
+                                                                                    owl:OWLObjectProperty_c71b5265_ff81_4c91_b30d_a3e858340405
114
+                                                                                  ) ,
115
+                                                                                  ( owl:OWLObjectProperty_c71b5265_ff81_4c91_b30d_a3e858340405
116
+                                                                                    tp-iss:OWLObjectProperty_6637af56_609a_4059_bf56_f2870d032dbc
117
+                                                                                  ) ;
118
+                                                           rdfs:label "se situe dans"@en .
119
+
120
+
121
+###  http://www.w3.org/2002/07/owl#OWLObjectProperty_fb806106_4ace_40ff_99be_b78033118b3c
122
+owl:OWLObjectProperty_fb806106_4ace_40ff_99be_b78033118b3c rdf:type owl:ObjectProperty ;
123
+                                                           rdfs:domain ssn:System ;
124
+                                                           rdfs:range ssn:System ;
125
+                                                           owl:propertyChainAxiom ( ssn:onPlatform
126
+                                                                                    ssn:attachedSystem
127
+                                                                                  ) ;
128
+                                                           rdfs:label "est compatible avec"@en .
129
+
130
+
131
+#################################################################
132
+#    Data properties
133
+#################################################################
134
+
135
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLDataProperty_1ba5bda8_e69b_4c0f_930c_ffc2fcf02f10
136
+tp-iss:OWLDataProperty_1ba5bda8_e69b_4c0f_930c_ffc2fcf02f10 rdf:type owl:DatatypeProperty ;
137
+                                                            rdfs:domain tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e ;
138
+                                                            rdfs:range xsd:float ;
139
+                                                            rdfs:label "a pour valeur"@en .
140
+
141
+
142
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLDataProperty_8c1edaf8_176d_4e84_a40f_881f06ca36d5
143
+tp-iss:OWLDataProperty_8c1edaf8_176d_4e84_a40f_881f06ca36d5 rdf:type owl:DatatypeProperty ;
144
+                                                            rdfs:domain tp-iss:OWLClass_70366453_b04e_4693_9806_9bb04ff4593c ;
145
+                                                            rdfs:range xsd:dateTimeStamp ;
146
+                                                            rdfs:label "a pour timestamp"@en .
147
+
148
+
149
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#a_pour_durée
150
+tp-iss:a_pour_durée rdf:type owl:DatatypeProperty .
151
+
152
+
153
+#################################################################
154
+#    Classes
155
+#################################################################
156
+
157
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_1356bdaa_2770_4f7e_b281_2e7a014b3220
158
+tp-iss:OWLClass_1356bdaa_2770_4f7e_b281_2e7a014b3220 rdf:type owl:Class ;
159
+                                                     rdfs:subClassOf tp-iss:OWLClass_93368bc8_4bb5_4d60_acd1_fd650a97dea7 ;
160
+                                                     rdfs:label "Ensoleillement"@en .
161
+
162
+
163
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_3f9c9e2e_1534_4048_9f3e_3131d300ae08
164
+tp-iss:OWLClass_3f9c9e2e_1534_4048_9f3e_3131d300ae08 rdf:type owl:Class ;
165
+                                                     owl:equivalentClass [ owl:intersectionOf ( tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc
166
+                                                                                                [ rdf:type owl:Restriction ;
167
+                                                                                                  owl:onProperty tp-iss:OWLObjectProperty_0f63feb1_1b41_4716_92bb_1ef70da83f72 ;
168
+                                                                                                  owl:someValuesFrom [ owl:intersectionOf ( tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e
169
+                                                                                                                                            [ rdf:type owl:Restriction ;
170
+                                                                                                                                              owl:onProperty tp-iss:OWLObjectProperty_f4ed4114_811e_4c3b_9fda_e5659bf2ec9c ;
171
+                                                                                                                                              owl:hasValue owl:OWLNamedIndividual_2a8dc066_4bd2_454c_a56b_11db9452e7dd
172
+                                                                                                                                            ]
173
+                                                                                                                                            [ rdf:type owl:Restriction ;
174
+                                                                                                                                              owl:onProperty tp-iss:OWLDataProperty_1ba5bda8_e69b_4c0f_930c_ffc2fcf02f10 ;
175
+                                                                                                                                              owl:someValuesFrom [ rdf:type rdfs:Datatype ;
176
+                                                                                                                                                                   owl:onDatatype xsd:float ;
177
+                                                                                                                                                                   owl:withRestrictions ( [ xsd:minExclusive "0.0"^^xsd:float
178
+                                                                                                                                                                                          ]
179
+                                                                                                                                                                                        )
180
+                                                                                                                                                                 ]
181
+                                                                                                                                            ]
182
+                                                                                                                                          ) ;
183
+                                                                                                                       rdf:type owl:Class
184
+                                                                                                                     ]
185
+                                                                                                ]
186
+                                                                                              ) ;
187
+                                                                           rdf:type owl:Class
188
+                                                                         ] ;
189
+                                                     rdfs:subClassOf tp-iss:OWLClass_453350aa_9d45_444a_a509_77b94bbc7bb2 ;
190
+                                                     rdfs:label "Pluie"@en .
191
+
192
+
193
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_453350aa_9d45_444a_a509_77b94bbc7bb2
194
+tp-iss:OWLClass_453350aa_9d45_444a_a509_77b94bbc7bb2 rdf:type owl:Class ;
195
+                                                     rdfs:subClassOf tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ;
196
+                                                     rdfs:label "Mauvais temps"@en .
197
+
198
+
199
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_60a7a81e_a726_4794_a7aa_7c366ca6ce44
200
+tp-iss:OWLClass_60a7a81e_a726_4794_a7aa_7c366ca6ce44 rdf:type owl:Class ;
201
+                                                     rdfs:subClassOf tp-iss:OWLClass_453350aa_9d45_444a_a509_77b94bbc7bb2 ;
202
+                                                     rdfs:label "Brouillard"@en .
203
+
204
+
205
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e
206
+tp-iss:OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e rdf:type owl:Class ;
207
+                                                     rdfs:subClassOf ssn:Property ;
208
+                                                     rdfs:label "Paramètre mesurables"@en .
209
+
210
+
211
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_70366453_b04e_4693_9806_9bb04ff4593c
212
+tp-iss:OWLClass_70366453_b04e_4693_9806_9bb04ff4593c rdf:type owl:Class ;
213
+                                                     rdfs:label "Instant"@en .
214
+
215
+
216
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc
217
+tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc rdf:type owl:Class ;
218
+                                                     rdfs:label "Phénomène"@en .
219
+
220
+
221
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_93368bc8_4bb5_4d60_acd1_fd650a97dea7
222
+tp-iss:OWLClass_93368bc8_4bb5_4d60_acd1_fd650a97dea7 rdf:type owl:Class ;
223
+                                                     rdfs:subClassOf tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ;
224
+                                                     rdfs:label "Beau temps"@en .
225
+
226
+
227
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e
228
+tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e rdf:type owl:Class ;
229
+                                                     rdfs:label "Observation" ,
230
+                                                                "Observation météo"@en .
231
+
232
+
233
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083
234
+tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 rdf:type owl:Class ;
235
+                                                     rdfs:label "Lieu"@en .
236
+
237
+
238
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_c8a39393_1773_4418_971e_85efde7cf347
239
+tp-iss:OWLClass_c8a39393_1773_4418_971e_85efde7cf347 rdf:type owl:Class ;
240
+                                                     rdfs:subClassOf tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 ;
241
+                                                     owl:disjointWith tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e ;
242
+                                                     rdfs:label "Pays"@en .
243
+
244
+
245
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e
246
+tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e rdf:type owl:Class ;
247
+                                                     rdfs:subClassOf tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 ;
248
+                                                     rdfs:label "Ville"@en .
249
+
250
+
251
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLClass_df27e975_e629_44bb_9479_a57bc2f0b95b
252
+tp-iss:OWLClass_df27e975_e629_44bb_9479_a57bc2f0b95b rdf:type owl:Class ;
253
+                                                     rdfs:subClassOf tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083 ;
254
+                                                     rdfs:label "Continent"@en .
255
+
256
+
257
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#Phénomène_court
258
+tp-iss:Phénomène_court rdf:type owl:Class ;
259
+                       owl:equivalentClass [ owl:intersectionOf ( tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc
260
+                                                                  [ rdf:type owl:Restriction ;
261
+                                                                    owl:onProperty tp-iss:a_pour_durée ;
262
+                                                                    owl:someValuesFrom [ rdf:type rdfs:Datatype ;
263
+                                                                                         owl:onDatatype xsd:int ;
264
+                                                                                         owl:withRestrictions ( [ xsd:maxInclusive "15"^^xsd:int
265
+                                                                                                                ]
266
+                                                                                                              )
267
+                                                                                       ]
268
+                                                                  ]
269
+                                                                ) ;
270
+                                             rdf:type owl:Class
271
+                                           ] ;
272
+                       rdfs:subClassOf tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc .
273
+
274
+
275
+###  http://purl.oclc.org/NET/ssnx/ssn#Platform
276
+ssn:Platform rdf:type owl:Class ;
277
+             rdfs:subClassOf [ rdf:type owl:Restriction ;
278
+                               owl:onProperty owl:OWLObjectProperty_c71b5265_ff81_4c91_b30d_a3e858340405 ;
279
+                               owl:someValuesFrom tp-iss:OWLClass_bf3863e3_9c85_4aef_9b6e_396eb5000083
280
+                             ] .
281
+
282
+
283
+###  http://purl.oclc.org/NET/ssnx/ssn#Property
284
+ssn:Property rdf:type owl:Class .
285
+
286
+
287
+###  http://purl.oclc.org/NET/ssnx/ssn#SensingDevice
288
+ssn:SensingDevice rdf:type owl:Class .
289
+
290
+
291
+###  http://purl.oclc.org/NET/ssnx/ssn#System
292
+ssn:System rdf:type owl:Class .
293
+
294
+
295
+###  http://www.w3.org/2002/07/owl#OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce
296
+owl:OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce rdf:type owl:Class ;
297
+                                                  rdfs:label "Paramètre observable"@en .
298
+
299
+
300
+#################################################################
301
+#    Individuals
302
+#################################################################
303
+
304
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_2b887a87_5d83_4d70_b7c9_6f8b1c3e54f0
305
+tp-iss:OWLNamedIndividual_2b887a87_5d83_4d70_b7c9_6f8b1c3e54f0 rdf:type owl:NamedIndividual ,
306
+                                                                        tp-iss:OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e ;
307
+                                                               rdfs:label "Température"@en .
308
+
309
+
310
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_2be00ec6_20f0_4ce1_a370_949a455cb0a1
311
+tp-iss:OWLNamedIndividual_2be00ec6_20f0_4ce1_a370_949a455cb0a1 rdf:type owl:NamedIndividual ,
312
+                                                                        tp-iss:OWLClass_b7dc1540_f585_4aab_aeb8_59265536249e ;
313
+                                                               tp-iss:OWLObjectProperty_3e84e8b7_9283_4582_b02d_3815a4cf3864 tp-iss:OWLNamedIndividual_4f731814_91f0_4d75_a5cf_4a0d3629a308 ;
314
+                                                               tp-iss:OWLObjectProperty_57b19d61_bcdf_40fd_90c7_dd56beb7acb6 tp-iss:OWLNamedIndividual_40c87ce2_4767_4cb0_9cd7_1dda03352a38 ;
315
+                                                               tp-iss:OWLObjectProperty_f4ed4114_811e_4c3b_9fda_e5659bf2ec9c owl:OWLNamedIndividual_2a8dc066_4bd2_454c_a56b_11db9452e7dd ;
316
+                                                               tp-iss:OWLDataProperty_1ba5bda8_e69b_4c0f_930c_ffc2fcf02f10 "3.0"^^xsd:float ;
317
+                                                               rdfs:label "P1"@en .
318
+
319
+
320
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_40c87ce2_4767_4cb0_9cd7_1dda03352a38
321
+tp-iss:OWLNamedIndividual_40c87ce2_4767_4cb0_9cd7_1dda03352a38 rdf:type owl:NamedIndividual ,
322
+                                                                        tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e ,
323
+                                                                        owl:Thing ;
324
+                                                               tp-iss:OWLObjectProperty_6637af56_609a_4059_bf56_f2870d032dbc tp-iss:OWLNamedIndividual_e2cea48d_7da1_41cf_9a6e_167bd3b64a8f ;
325
+                                                               rdfs:label "Toulouse"@en .
326
+
327
+
328
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_4ef6700d_d3ca_437e_96a6_5f531744c9fd
329
+tp-iss:OWLNamedIndividual_4ef6700d_d3ca_437e_96a6_5f531744c9fd rdf:type owl:NamedIndividual ,
330
+                                                                        tp-iss:OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e ;
331
+                                                               rdfs:label "Hygrométrie"@en .
332
+
333
+
334
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_4f731814_91f0_4d75_a5cf_4a0d3629a308
335
+tp-iss:OWLNamedIndividual_4f731814_91f0_4d75_a5cf_4a0d3629a308 rdf:type owl:NamedIndividual ,
336
+                                                                        tp-iss:OWLClass_70366453_b04e_4693_9806_9bb04ff4593c ;
337
+                                                               tp-iss:OWLDataProperty_8c1edaf8_176d_4e84_a40f_881f06ca36d5 "2015-10-11T13:20:00Z"^^xsd:dateTimeStamp ;
338
+                                                               rdfs:label "I1"@en .
339
+
340
+
341
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_779078ef_da9a_47ac_bb61_59a30ffffa85
342
+tp-iss:OWLNamedIndividual_779078ef_da9a_47ac_bb61_59a30ffffa85 rdf:type owl:NamedIndividual ,
343
+                                                                        tp-iss:OWLClass_c8a39393_1773_4418_971e_85efde7cf347 ;
344
+                                                               tp-iss:OWLObjectProperty_214a72af_4335_4b8a_b251_edcce1785ea7 tp-iss:OWLNamedIndividual_b95bbab6_16d9_4238_9ba6_b4c2874a3912 ,
345
+                                                                                                                             tp-iss:OWLNamedIndividual_e51e3974_f657_469e_b7a1_6ebaf4935b6a ;
346
+                                                               rdfs:label "France"@fr .
347
+
348
+
349
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_b95bbab6_16d9_4238_9ba6_b4c2874a3912
350
+tp-iss:OWLNamedIndividual_b95bbab6_16d9_4238_9ba6_b4c2874a3912 rdf:type owl:NamedIndividual ,
351
+                                                                        tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e ;
352
+                                                               rdfs:label "Paris"@fr .
353
+
354
+
355
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_c85bf788_ee5b_4da6_a867_08c79d7380e3
356
+tp-iss:OWLNamedIndividual_c85bf788_ee5b_4da6_a867_08c79d7380e3 rdf:type owl:NamedIndividual ,
357
+                                                                        tp-iss:OWLClass_6d5bb482_3e1e_47a0_be94_995d4df0f35e ;
358
+                                                               rdfs:label "Vitesse du vent"@en .
359
+
360
+
361
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_ddf74788_0035_4c06_bdc7_e519b04c7f99
362
+tp-iss:OWLNamedIndividual_ddf74788_0035_4c06_bdc7_e519b04c7f99 rdf:type owl:NamedIndividual ,
363
+                                                                        tp-iss:OWLClass_75255c9b_fdf8_4c41_9552_a599230329cc ;
364
+                                                               tp-iss:OWLObjectProperty_0f63feb1_1b41_4716_92bb_1ef70da83f72 tp-iss:OWLNamedIndividual_2be00ec6_20f0_4ce1_a370_949a455cb0a1 ;
365
+                                                               rdfs:label "A1"@en .
366
+
367
+
368
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_e2cea48d_7da1_41cf_9a6e_167bd3b64a8f
369
+tp-iss:OWLNamedIndividual_e2cea48d_7da1_41cf_9a6e_167bd3b64a8f rdf:type owl:NamedIndividual ,
370
+                                                                        owl:Thing ;
371
+                                                               rdfs:label "France"@en .
372
+
373
+
374
+###  http://homepages.laas.fr/nseydoux/ontologies/tp-iss#OWLNamedIndividual_e51e3974_f657_469e_b7a1_6ebaf4935b6a
375
+tp-iss:OWLNamedIndividual_e51e3974_f657_469e_b7a1_6ebaf4935b6a rdf:type owl:NamedIndividual ,
376
+                                                                        tp-iss:OWLClass_cc9a247b_da2d_4b1c_90e4_8f9e9e5cac7e ;
377
+                                                               rdfs:label "La ville Lumière"@fr .
378
+
379
+
380
+###  http://www.w3.org/2002/07/owl#OWLNamedIndividual_268609f4_8a6e_4076_a5c9_cfd144dde88e
381
+owl:OWLNamedIndividual_268609f4_8a6e_4076_a5c9_cfd144dde88e rdf:type owl:NamedIndividual ,
382
+                                                                     owl:OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce ;
383
+                                                            rdfs:label "Pression athmosphérique"@en .
384
+
385
+
386
+###  http://www.w3.org/2002/07/owl#OWLNamedIndividual_2a8dc066_4bd2_454c_a56b_11db9452e7dd
387
+owl:OWLNamedIndividual_2a8dc066_4bd2_454c_a56b_11db9452e7dd rdf:type owl:NamedIndividual ,
388
+                                                                     owl:OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce ;
389
+                                                            rdfs:label "Pluviométrie"@en .
390
+
391
+
392
+###  http://www.w3.org/2002/07/owl#OWLNamedIndividual_61229c23_41e4_4ec8_aa17_04ca3dcc42d2
393
+owl:OWLNamedIndividual_61229c23_41e4_4ec8_aa17_04ca3dcc42d2 rdf:type owl:NamedIndividual ,
394
+                                                                     ssn:SensingDevice ;
395
+                                                            ssn:onPlatform owl:OWLNamedIndividual_61237d59_bb40_44ac_bfe3_d9e45ffe04d6 ;
396
+                                                            rdfs:label "Sonde T1"@en .
397
+
398
+
399
+###  http://www.w3.org/2002/07/owl#OWLNamedIndividual_61237d59_bb40_44ac_bfe3_d9e45ffe04d6
400
+owl:OWLNamedIndividual_61237d59_bb40_44ac_bfe3_d9e45ffe04d6 rdf:type owl:NamedIndividual ,
401
+                                                                     ssn:Platform ;
402
+                                                            ssn:attachedSystem owl:OWLNamedIndividual_dbca17ec_b04b_47fd_a523_4698b3d40ba5 ;
403
+                                                            owl:OWLObjectProperty_c71b5265_ff81_4c91_b30d_a3e858340405 tp-iss:OWLNamedIndividual_40c87ce2_4767_4cb0_9cd7_1dda03352a38 ;
404
+                                                            rdfs:label "Platform1"@en .
405
+
406
+
407
+###  http://www.w3.org/2002/07/owl#OWLNamedIndividual_b544466b_449c_4af9_a082_33aa45fcda65
408
+owl:OWLNamedIndividual_b544466b_449c_4af9_a082_33aa45fcda65 rdf:type owl:NamedIndividual ,
409
+                                                                     owl:OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce ;
410
+                                                            rdfs:label "Hygrométrie"@en .
411
+
412
+
413
+###  http://www.w3.org/2002/07/owl#OWLNamedIndividual_babab508_1c69_472e_8f83_56a6d02a4b52
414
+owl:OWLNamedIndividual_babab508_1c69_472e_8f83_56a6d02a4b52 rdf:type owl:NamedIndividual ,
415
+                                                                     owl:OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce ;
416
+                                                            rdfs:label "Vitesse du vent"@en .
417
+
418
+
419
+###  http://www.w3.org/2002/07/owl#OWLNamedIndividual_dbca17ec_b04b_47fd_a523_4698b3d40ba5
420
+owl:OWLNamedIndividual_dbca17ec_b04b_47fd_a523_4698b3d40ba5 rdf:type owl:NamedIndividual ,
421
+                                                                     ssn:SensingDevice ;
422
+                                                            ssn:observes owl:OWLNamedIndividual_2a8dc066_4bd2_454c_a56b_11db9452e7dd ;
423
+                                                            rdfs:label "Sonde_P1"@en .
424
+
425
+
426
+###  Generated by the OWL API (version 4.2.5.20160517-0735) https://github.com/owlcs/owlapi

+ 201
- 0
tp2_sensors.rdf View File

@@ -0,0 +1,201 @@
1
+<?xml version="1.0"?>
2
+<rdf:RDF xmlns="http://www.semanticweb.org/5iss/tp2#"
3
+     xml:base="http://www.semanticweb.org/5iss/tp2"
4
+     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
5
+     xmlns:terms="http://purl.org/dc/terms/"
6
+     xmlns:owl="http://www.w3.org/2002/07/owl#"
7
+     xmlns:ns="http://creativecommons.org/ns#"
8
+     xmlns:xml="http://www.w3.org/XML/1998/namespace"
9
+     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
10
+     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
11
+     xmlns:dc="http://purl.org/dc/elements/1.1/"
12
+     xmlns:ssn="http://purl.oclc.org/NET/ssnx/ssn#">
13
+    <owl:Ontology rdf:about="http://www.semanticweb.org/5iss/tp2">
14
+        <owl:imports rdf:resource="http://purl.oclc.org/NET/ssnx/ssn"/>
15
+        <owl:imports rdf:resource="http://homepages.laas.fr/nseydoux/ontologies/tp-iss"/>
16
+    </owl:Ontology>
17
+    
18
+
19
+
20
+    <!-- 
21
+    ///////////////////////////////////////////////////////////////////////////////////////
22
+    //
23
+    // Data properties
24
+    //
25
+    ///////////////////////////////////////////////////////////////////////////////////////
26
+     -->
27
+
28
+    
29
+
30
+
31
+    <!-- http://www.semanticweb.org/5iss/tp2#OWLDataProperty_7c0f8588_780a_4d6e_abe1_6b493059b9fe -->
32
+
33
+    <owl:DatatypeProperty rdf:about="http://www.semanticweb.org/5iss/tp2#OWLDataProperty_7c0f8588_780a_4d6e_abe1_6b493059b9fe">
34
+        <rdfs:label xml:lang="en">a pour minimum</rdfs:label>
35
+    </owl:DatatypeProperty>
36
+    
37
+
38
+
39
+    <!-- http://www.semanticweb.org/5iss/tp2#OWLDataProperty_83a4c21e_0890_4f57_a7ec_ce2be3515a46 -->
40
+
41
+    <owl:DatatypeProperty rdf:about="http://www.semanticweb.org/5iss/tp2#OWLDataProperty_83a4c21e_0890_4f57_a7ec_ce2be3515a46">
42
+        <rdfs:label xml:lang="en">a pour maximum</rdfs:label>
43
+    </owl:DatatypeProperty>
44
+    
45
+
46
+
47
+    <!-- 
48
+    ///////////////////////////////////////////////////////////////////////////////////////
49
+    //
50
+    // Classes
51
+    //
52
+    ///////////////////////////////////////////////////////////////////////////////////////
53
+     -->
54
+
55
+    
56
+
57
+
58
+    <!-- http://purl.oclc.org/NET/ssnx/ssn#Property -->
59
+
60
+    <rdf:Description rdf:about="http://purl.oclc.org/NET/ssnx/ssn#Property">
61
+        <owl:equivalentClass rdf:resource="http://www.w3.org/2002/07/owl#OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce"/>
62
+    </rdf:Description>
63
+    
64
+
65
+
66
+    <!-- http://www.w3.org/2002/07/owl#OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce -->
67
+
68
+    <owl:Class rdf:about="http://www.w3.org/2002/07/owl#OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce"/>
69
+    
70
+
71
+
72
+    <!-- 
73
+    ///////////////////////////////////////////////////////////////////////////////////////
74
+    //
75
+    // Individuals
76
+    //
77
+    ///////////////////////////////////////////////////////////////////////////////////////
78
+     -->
79
+
80
+    
81
+
82
+
83
+    <!-- http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_0021ac01_ffff_4c2f_825b_f785ca896c45 -->
84
+
85
+    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_0021ac01_ffff_4c2f_825b_f785ca896c45">
86
+        <rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#SensingDevice"/>
87
+        <ssn:hasOperatingRange rdf:resource="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_ea074e3d_0263_4210_8567_730d34fe4991"/>
88
+        <rdfs:label xml:lang="en">TemperatureSensor_3</rdfs:label>
89
+    </owl:NamedIndividual>
90
+    
91
+
92
+
93
+    <!-- http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_03047893_45b5_4b9f_90cb_01eaab27d536 -->
94
+
95
+    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_03047893_45b5_4b9f_90cb_01eaab27d536">
96
+        <rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#SensingDevice"/>
97
+        <ssn:hasOperatingRange rdf:resource="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_76f08a90_4bfe_4c0b_89f8_4a729587a8aa"/>
98
+        <rdfs:label xml:lang="en">TemperatureSensor_1</rdfs:label>
99
+    </owl:NamedIndividual>
100
+    
101
+
102
+
103
+    <!-- http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_148731a7_7d98_4896_8aa5_41423bb1345f -->
104
+
105
+    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_148731a7_7d98_4896_8aa5_41423bb1345f">
106
+        <rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#SensorOutput"/>
107
+        <ssn:isProducedBy rdf:resource="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_0021ac01_ffff_4c2f_825b_f785ca896c45"/>
108
+        <rdfs:label xml:lang="en">Output  T2</rdfs:label>
109
+    </owl:NamedIndividual>
110
+    
111
+
112
+
113
+    <!-- http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_68f0ea2c_e5c8_4940_bfc6_14d61d262d86 -->
114
+
115
+    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_68f0ea2c_e5c8_4940_bfc6_14d61d262d86">
116
+        <rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#SensorOutput"/>
117
+        <ssn:isProducedBy rdf:resource="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_f9d9c0b6_f1b8_419f_bb8f_01ea9e5d783e"/>
118
+        <rdfs:label xml:lang="en">Output T3</rdfs:label>
119
+    </owl:NamedIndividual>
120
+    
121
+
122
+
123
+    <!-- http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_76f08a90_4bfe_4c0b_89f8_4a729587a8aa -->
124
+
125
+    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_76f08a90_4bfe_4c0b_89f8_4a729587a8aa">
126
+        <rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#OperatingRange"/>
127
+        <ssn:inCondition rdf:resource="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_818bcc98_efa7_4501_b5db_ff9122f2e082"/>
128
+        <rdfs:label xml:lang="en">Range B</rdfs:label>
129
+    </owl:NamedIndividual>
130
+    
131
+
132
+
133
+    <!-- http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_818bcc98_efa7_4501_b5db_ff9122f2e082 -->
134
+
135
+    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_818bcc98_efa7_4501_b5db_ff9122f2e082">
136
+        <rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#Condition"/>
137
+        <ssn:forProperty rdf:resource="http://www.semanticweb.org/seydoux/ontologies/2015/11/untitled-ontology-29#OWLNamedIndividual_2b887a87_5d83_4d70_b7c9_6f8b1c3e54f0"/>
138
+        <OWLDataProperty_7c0f8588_780a_4d6e_abe1_6b493059b9fe rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.0</OWLDataProperty_7c0f8588_780a_4d6e_abe1_6b493059b9fe>
139
+        <OWLDataProperty_83a4c21e_0890_4f57_a7ec_ce2be3515a46 rdf:datatype="http://www.w3.org/2001/XMLSchema#float">50.0</OWLDataProperty_83a4c21e_0890_4f57_a7ec_ce2be3515a46>
140
+        <rdfs:comment>Positive temperature range relatively common on earth. Expressed in °C</rdfs:comment>
141
+        <rdfs:label xml:lang="en">Positive earthly temperatures</rdfs:label>
142
+        <rdfs:label>Températures positives</rdfs:label>
143
+    </owl:NamedIndividual>
144
+    
145
+
146
+
147
+    <!-- http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_c4043e50_f8ce_4170_9d5a_794943e46bd9 -->
148
+
149
+    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_c4043e50_f8ce_4170_9d5a_794943e46bd9">
150
+        <rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#Condition"/>
151
+        <ssn:forProperty rdf:resource="http://www.semanticweb.org/seydoux/ontologies/2015/11/untitled-ontology-29#OWLNamedIndividual_2b887a87_5d83_4d70_b7c9_6f8b1c3e54f0"/>
152
+        <OWLDataProperty_7c0f8588_780a_4d6e_abe1_6b493059b9fe rdf:datatype="http://www.w3.org/2001/XMLSchema#float">-30.0</OWLDataProperty_7c0f8588_780a_4d6e_abe1_6b493059b9fe>
153
+        <OWLDataProperty_83a4c21e_0890_4f57_a7ec_ce2be3515a46 rdf:datatype="http://www.w3.org/2001/XMLSchema#float">50.0</OWLDataProperty_83a4c21e_0890_4f57_a7ec_ce2be3515a46>
154
+        <rdfs:comment>Temperatures commonly measured on earth, both positive and negative, expressed in °C.</rdfs:comment>
155
+        <rdfs:label xml:lang="en">Common temperatures</rdfs:label>
156
+    </owl:NamedIndividual>
157
+    
158
+
159
+
160
+    <!-- http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_ea074e3d_0263_4210_8567_730d34fe4991 -->
161
+
162
+    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_ea074e3d_0263_4210_8567_730d34fe4991">
163
+        <rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#OperatingRange"/>
164
+        <ssn:inCondition rdf:resource="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_c4043e50_f8ce_4170_9d5a_794943e46bd9"/>
165
+        <rdfs:label xml:lang="en">Range A</rdfs:label>
166
+    </owl:NamedIndividual>
167
+    
168
+
169
+
170
+    <!-- http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_f9d9c0b6_f1b8_419f_bb8f_01ea9e5d783e -->
171
+
172
+    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_f9d9c0b6_f1b8_419f_bb8f_01ea9e5d783e">
173
+        <rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#SensingDevice"/>
174
+        <ssn:hasOperatingRange rdf:resource="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_76f08a90_4bfe_4c0b_89f8_4a729587a8aa"/>
175
+        <rdfs:label xml:lang="en">TemperatureSensor_2</rdfs:label>
176
+    </owl:NamedIndividual>
177
+    
178
+
179
+
180
+    <!-- http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_fc080a98_fa88_4825_b227_641894457026 -->
181
+
182
+    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_fc080a98_fa88_4825_b227_641894457026">
183
+        <rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#SensorOutput"/>
184
+        <ssn:isProducedBy rdf:resource="http://www.semanticweb.org/5iss/tp2#OWLNamedIndividual_03047893_45b5_4b9f_90cb_01eaab27d536"/>
185
+        <rdfs:label xml:lang="en">Output T1</rdfs:label>
186
+    </owl:NamedIndividual>
187
+    
188
+
189
+
190
+    <!-- http://www.semanticweb.org/seydoux/ontologies/2015/11/untitled-ontology-29#OWLNamedIndividual_2b887a87_5d83_4d70_b7c9_6f8b1c3e54f0 -->
191
+
192
+    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/seydoux/ontologies/2015/11/untitled-ontology-29#OWLNamedIndividual_2b887a87_5d83_4d70_b7c9_6f8b1c3e54f0">
193
+        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#OWLClass_5978d744_0b81_42e3_be10_3d1eebb096ce"/>
194
+        <rdfs:label>Température</rdfs:label>
195
+    </owl:NamedIndividual>
196
+</rdf:RDF>
197
+
198
+
199
+
200
+<!-- Generated by the OWL API (version 4.2.5.20160517-0735) https://github.com/owlcs/owlapi -->
201
+

Loading…
Cancel
Save