基于对齐本体的sparql查询

基于对齐本体的sparql查询,sparql,rdf,semantic-web,owl,apache-jena,Sparql,Rdf,Semantic Web,Owl,Apache Jena,嗨,我有两个本体,另一个本体是它们的对齐。 现在我想在对齐本体上运行一些sparql查询,以从这两个本体中获取数据。但是我不知道前缀是sparql应该是什么? 以及我如何访问属性 我的第一个本体的一部分如下所示: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE rdf:RDF [ <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" > <!

嗨,我有两个本体,另一个本体是它们的对齐。 现在我想在对齐本体上运行一些sparql查询,以从这两个本体中获取数据。但是我不知道前缀是sparql应该是什么? 以及我如何访问属性

我的第一个本体的一部分如下所示:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rdf:RDF [
      <!ENTITY xsd      "http://www.w3.org/2001/XMLSchema#" >
  <!ENTITY rdf      "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
  <!ENTITY rdfs     "http://www.w3.org/2000/01/rdf-schema#" >
  <!ENTITY dc       "http://purl.org/dc/elements/1.1/" > 
  <!ENTITY owl      "http://www.w3.org/2002/07/owl#" > ]>

  <rdf:RDF
  xmlns="http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology1.owl#"
  xml:base="http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology1.owl#"
  xmlns:rdf ="&rdf;"
  xmlns:xsd ="&xsd;"
  xmlns:rdfs    ="&rdfs;"
  xmlns:owl ="&owl;"
  xmlns:dc  ="&dc;">

<owl:Ontology rdf:about="http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology1.owl">
<dc:creator>Jérôme Euzenat</dc:creator>
<dc:description>Example for Alignment API advanced turorial</dc:description>
<dc:date>2009-07-06</dc:date>
<dc:date>2014-12-06</dc:date>
<rdfs:label>First ontology</rdfs:label>
<dc:title>ontology1.owl: a fake list of students</dc:title>
<dc:identifier  rdf:datatype="&xsd;anyURI">http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology1.owl</dc:identifier>
</owl:Ontology>
<owl:Class rdf:about="#Participante">
<rdfs:label xml:lang="es">Participante</rdfs:label>
</owl:Class>

<owl:Class rdf:about="#Estudiante">
<rdfs:subClassOf rdf:resource="#Participante" />
<rdfs:label xml:lang="es">Estudiante</rdfs:label>
</owl:Class>

<owl:Class rdf:about="#Tutor">
<rdfs:subClassOf rdf:resource="#Participante" />
<rdfs:label xml:lang="es">Professor</rdfs:label>
</owl:Class>

<owl:Class rdf:about="#TutorEstudiante">
<rdfs:subClassOf rdf:resource="#Estudiante" />
<rdfs:subClassOf rdf:resource="#Tutor" />
<rdfs:label xml:lang="es">Professor</rdfs:label>
</owl:Class>

<owl:DatatypeProperty rdf:about="#lastname">
<rdfs:domain rdf:resource="#Participante" />
<rdfs:range rdf:resource="&xsd;string" />
<rdfs:label xml:lang="es">appelido</rdfs:label>
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#firstname">
<rdfs:domain rdf:resource="#Participante" />
<rdfs:range rdf:resource="&xsd;string" />
<rdfs:label xml:lang="es">nombre</rdfs:label>
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#gender">
<rdfs:domain rdf:resource="#Participante" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#affiliation">
<rdfs:domain rdf:resource="#Participante" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#city">
<rdfs:domain rdf:resource="#Participante" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#country">
<rdfs:domain rdf:resource="#Participante" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#">
<rdfs:domain rdf:resource="#Participante" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#year">
<rdfs:domain rdf:resource="#Estudiante" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#topic">
<rdfs:domain rdf:resource="#Participante" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#supervisor">
<rdfs:domain rdf:resource="#Estudiante" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<Estudiante rdf:about="#Fitzgerald">
<lastname>Fitzgerald</lastname>
<firstname>Ella</firstname>
<gender>Female</gender>
<affiliation>Vanilla University of Technology</affiliation>
<city>Vanilla</city>
<country>AT</country>
<year>1</year>
<topic>Semantic Process Mining</topic>
<supervisor>Prof. Giancarlo Cetriolo</supervisor>
</Estudiante>

<Estudiante rdf:about="#Blackey">
<lastname>Blackey</lastname>
<firstname>Art</firstname>
<gender>Male</gender>
<affiliation>University of Albatra</affiliation>
<city>Albatra</city>
<country>ES</country>
<year>1</year>
<topic>Semantic Web applications</topic>
<supervisor>Paola Pomodoro</supervisor>
<supervisor>Pierluiggi Pomodoro</supervisor>
</Estudiante>
我可以使用ontology1.owl上的SPARQL查询获取数据

但我不知道如何编写SPARQL查询来从对齐本体获取数据!
有人能举个例子吗?

???我不明白这个问题。您想在哪个本体上运行哪个SPARQL查询?在“对齐本体”上,您已经对这两个本体进行了相同的SPARQL查询吗?如果是,您需要一个SPARQL引擎/triple store/API来允许OWL导入,否则它显然无法工作。还不清楚您使用的是哪种API。我只是更新了我的问题,我只想使用sparql示例从对齐本体获取数据,因为使用以前的查询我无法获取任何数据!从文档中可以看出,Jena支持OWL导入()。什么不起作用还不清楚。您的代码显示了如何在ontology1上运行SPARQL查询。如果在对齐本体上运行它会发生什么,即加载本体并运行SPARQL查询?什么对哪个查询不起作用?我完全按照我在ontology1上运行的查询,在对齐时,它什么也不返回。我不知道期望我在本体论1上运行的查询是正确的,运行对齐是否有结果?或者我应该编辑我的查询?使用reasoner,我发现路线有47个实例,但我不知道如何获取它们?嗯,下次如果你告诉我们你正在做路线API的教程,那会更有帮助-有些人可能已经这样做了:此外,你读过红色标记的行了吗?有人提到耶拿在解决进口问题时遇到了一些问题。这可能已经过时了,但即使是有问题的信息也会有贡献。。。???我不明白这个问题。您想在哪个本体上运行哪个SPARQL查询?在“对齐本体”上,您已经对这两个本体进行了相同的SPARQL查询吗?如果是,您需要一个SPARQL引擎/triple store/API来允许OWL导入,否则它显然无法工作。还不清楚您使用的是哪种API。我只是更新了我的问题,我只想使用sparql示例从对齐本体获取数据,因为使用以前的查询我无法获取任何数据!从文档中可以看出,Jena支持OWL导入()。什么不起作用还不清楚。您的代码显示了如何在ontology1上运行SPARQL查询。如果在对齐本体上运行它会发生什么,即加载本体并运行SPARQL查询?什么对哪个查询不起作用?我完全按照我在ontology1上运行的查询,在对齐时,它什么也不返回。我不知道期望我在本体论1上运行的查询是正确的,运行对齐是否有结果?或者我应该编辑我的查询?使用reasoner,我发现路线有47个实例,但我不知道如何获取它们?嗯,下次如果你告诉我们你正在做路线API的教程,那会更有帮助-有些人可能已经这样做了:此外,你读过红色标记的行了吗?有人提到耶拿在解决进口问题时遇到了一些问题。这可能已经过时了,但即使是有问题的信息也会有所贡献。。。
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX aa:     <http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology1.owl#>

SELECT ?fn ?ln ?t ?s
WHERE {
  ?student rdf:type aa:Estudiante .
  ?student aa:firstname  ?fn .
  ?student aa:lastname  ?ln .
OPTIONAL   {   ?student aa:affiliation ?t . }
OPTIONAL   {   ?student aa:supervisor ?s . }
      }
<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE rdf:RDF [
      <!ENTITY xsd      "http://www.w3.org/2001/XMLSchema#" >
      <!ENTITY rdf      "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
      <!ENTITY rdfs     "http://www.w3.org/2000/01/rdf-schema#" >
      <!ENTITY dc       "http://purl.org/dc/elements/1.1/" > 
      <!ENTITY owl      "http://www.w3.org/2002/07/owl#" > ]>

      <rdf:RDF
 xmlns="http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology2.owl#"
xml:base="http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology2.owl#"
    xmlns:rdf   ="&rdf;"
    xmlns:xsd   ="&xsd;"
    xmlns:rdfs  ="&rdfs;"
    xmlns:owl   ="&owl;"
    xmlns:dc    ="&dc;">

    <owl:Ontology rdf:about="http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology2.owl">
<dc:creator>Jérôme Euzenat</dc:creator>
<dc:description>Example for Alignment API advanced turorial</dc:description>
<dc:date>2009-07-06</dc:date>
<dc:date>2014-12-05</dc:date>
<rdfs:label>Second ontology</rdfs:label>
<dc:title>ontology2.owl: another fake list of students</dc:title>
<dc:identifier         rdf:datatype="&xsd;anyURI">http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology2.owl</dc:identifier>
</owl:Ontology>

<owl:Class rdf:about="#Student">
<rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Person" />
<rdfs:label xml:lang="en">Student</rdfs:label>
</owl:Class>

<owl:Class rdf:about="#Teacher">
<rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Person" />
<owl:disjointWith rdf:resource="#Student" />
<rdfs:label xml:lang="en">Staff</rdfs:label>
</owl:Class>

<owl:DatatypeProperty rdf:about="#name">
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#first-name">
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#gender">
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#institution">
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#city-of-study">
<rdfs:domain rdf:resource="#Student" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#country-of-study">
<rdfs:domain rdf:resource="#Student" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#year-in-phd">
<rdfs:domain rdf:resource="#Student" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#topics-of-interest">
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:about="#phd-advisor">
<rdfs:domain rdf:resource="#Student" />
<rdfs:range rdf:resource="&xsd;string" />
</owl:DatatypeProperty>

<Student rdf:about="#dkral">
<name>Krall</name>
<first-name>Diana</first-name>
<gender>Female</gender>
<institution>Royal University of Worchester sauce</institution>
<city-of-study>Worchester sauce</city-of-study>
<country-of-study>GB</country-of-study>
<year-in-phd>1</year-in-phd>
<topics-of-interest>OWL and SKOS: Exploring the relationship between       formal and informal knowledge representation</topics-of-interest>
<phd-advisor>Dr. A. Verdura</phd-advisor>
<phd-advisor>C. Fragola</phd-advisor>
</Student>
<rdf:RDF
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema#">

<owl:Ontology rdf:about="">
<rdfs:comment>Matched ontologies</rdfs:comment>
<rdfs:comment>Generated by      fr.inrialpes.exmo.align.renderer.OWLAxiomsRendererVisitor</rdfs:comment>
<rdfs:comment>method: fr.inrialpes.exmo.align.ObjectAlignment#toObject</rdfs:comment>
<owl:imports rdf:resource="http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology1.owl"/>
<owl:imports rdf:resource="http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology2.owl"/>
 </owl:Ontology> 
 <owl:DatatypeProperty     rdf:about="http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology1.owl#  supervisor">
     <owl:equivalentProperty      rdf:resource="http://alignapi.gforge.inria.fr/tutorial/tutorial4/ontology2.o       wl#phd-advisor"/>
       </owl:DatatypeProperty>
OntModel model = (OntModel)ModelFactory.createOntologyModel( OntModelSpec.OWL_DL_MEM_RULE_INF, null );
    // Load ontology 1
    //OntModelSpec.OWL_MEM_RDFS_INF or no arguments to see the difference...
    model.read( "file:Ontologies/ontology1.owl" );
    // Query in ontology 1
    displayQueryAnswer( model, QueryFactory.read( "file:Ontologies/query.sparql" ) );
   // Execute the query and obtain results
    QueryExecution qe = QueryExecutionFactory.create( query, model );
    ResultSet results = qe.execSelect();
    // Output query results 
    ResultSetFormatter.out(System.out, results, query);
    if ( qe != null ) qe.close();
    }