Requête sparql sur une ontologie
bonjour,
je veux faire un requête sparql qui affiche les individus d'une classe (la liste des module affecter à chaque professeur
voici le contenu d'une ontologie créée en protégé
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| <?xml version="1.0"?>
<rdf:RDF xmlns="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#"
xml:base="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20"
xmlns:untitled-ontology-20="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20"/>
<!-- <a href="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#affecter_à" target="_blank">http://www.semanticweb.org/pc/ontolo...-20#affecter_à</a> -->
<owl:ObjectProperty rdf:about="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#affecter_à">
<rdfs:domain rdf:resource="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#professeur"/>
<rdfs:range rdf:resource="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#module"/>
</owl:ObjectProperty>
<!-- <a href="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#codemodule" target="_blank">http://www.semanticweb.org/pc/ontolo...-20#codemodule</a> -->
<owl:DatatypeProperty rdf:about="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#codemodule">
<rdfs:domain rdf:resource="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#module"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<!-- <a href="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#firstname" target="_blank">http://www.semanticweb.org/pc/ontolo...y-20#firstname</a> -->
<owl:DatatypeProperty rdf:about="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#firstname">
<rdfs:domain rdf:resource="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#personne"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<!-- <a href="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#module" target="_blank">http://www.semanticweb.org/pc/ontolo...logy-20#module</a> -->
<owl:Class rdf:about="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#module"/>
<!-- <a href="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#personne" target="_blank">http://www.semanticweb.org/pc/ontolo...gy-20#personne</a> -->
<owl:Class rdf:about="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#personne"/>
<!-- <a href="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#professeur" target="_blank">http://www.semanticweb.org/pc/ontolo...-20#professeur</a> -->
<owl:Class rdf:about="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#professeur">
<rdfs:subClassOf rdf:resource="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#personne"/>
</owl:Class>
<!-- <a href="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#carla" target="_blank">http://www.semanticweb.org/pc/ontolo...ology-20#carla</a> -->
<owl:NamedIndividual rdf:about="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#carla">
<rdf:type rdf:resource="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#professeur"/>
<affecter_à rdf:resource="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#mathe105"/>
<firstname>carla</firstname>
</owl:NamedIndividual>
<!-- <a href="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#jack" target="_blank">http://www.semanticweb.org/pc/ontolo...tology-20#jack</a> -->
<owl:NamedIndividual rdf:about="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#jack">
<rdf:type rdf:resource="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#professeur"/>
<firstname>jack</firstname>
</owl:NamedIndividual>
<!-- <a href="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#mathe105" target="_blank">http://www.semanticweb.org/pc/ontolo...gy-20#mathe105</a> -->
<owl:NamedIndividual rdf:about="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#mathe105">
<rdf:type rdf:resource="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#module"/>
<affecter_à rdf:resource="http://www.semanticweb.org/pc/ontologies/2019/1/untitled-ontology-20#jack"/>
<codemodule>mathe105</codemodule>
</owl:NamedIndividual>
</rdf:RDF> |
cette ontologie contient deux classe:personne ,module
une sous classe de personne appelée: professeur,
une relation: affecter à entre le module et le professeur,
le code java que le fait:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| public class J {
static final String inputFileName = "C:/TEST.owl";
public static void main(String[] args) {
Model model = ModelFactory.createDefaultModel();
InputStream in = FileManager.get().open(inputFileName);
if (in == null) {
throw new IllegalArgumentException( "File: " + inputFileName + " not found");
}
model.read( in, "", "RDF/XML" );
String queryString =
"PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " +
"PREFIX owl: <http://www.w3.org/2002/07/owl#> " +
"SELECT ?professeur" +
"WHERE {" +
"?x rdf:affecter_à ?module"+
" }";
Query query = QueryFactory.create(queryString);
QueryExecution qe = QueryExecutionFactory.create(query, model);
ResultSet results = qe.execSelect();
ResultSetFormatter.out(System.out, results, query);
qe.close();
}
} |