The ontology data that you provided is not well formed XML, let alone
RDF/XML.  It looks like, however, that you're aiming for something
like:


<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
    xmlns:owl="http://www.w3.org/2002/07/owl#";
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#";
    xmlns="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#";
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#";>
  <owl:Ontology
rdf:about="http://www.semanticweb.org/darius/ontologies/2013/6/rooms"/>
  <owl:Class 
rdf:about="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Gender"/>
  <owl:Class 
rdf:about="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Person"/>
  <owl:Class 
rdf:about="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#City"/>
  <owl:NamedIndividual
rdf:about="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#London";>
    <rdf:type 
rdf:resource="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#City"/>
    <owl:topObjectProperty>
      <owl:NamedIndividual
rdf:about="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Male";>
        <rdf:type
rdf:resource="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Gender"/>
      </owl:NamedIndividual>
    </owl:topObjectProperty>
  </owl:NamedIndividual>
  <owl:NamedIndividual
rdf:about="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Ana";>
    <rdf:type 
rdf:resource="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Person"/>
  </owl:NamedIndividual>
  <owl:NamedIndividual
rdf:about="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Ivan";>
    <rdf:type 
rdf:resource="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Person"/>
    <owl:topObjectProperty
rdf:resource="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Male"/>
  </owl:NamedIndividual>
</rdf:RDF>


or, in the more readable Turtle syntax:


@prefix :        <http://www.semanticweb.org/darius/ontologies/2013/6/rooms#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

:Gender
      a       owl:Class .

<http://www.semanticweb.org/darius/ontologies/2013/6/rooms>
      a       owl:Ontology .

:Male
      a       :Gender , owl:NamedIndividual .

:London
      a       owl:NamedIndividual , :City ;
      owl:topObjectProperty
              :Male .

:Ana  a       owl:NamedIndividual , :Person .

:Ivan
      a       owl:NamedIndividual , :Person ;
      owl:topObjectProperty
              :Male .

:Person
      a       owl:Class .

:City
      a       owl:Class .


Given that ontology, you can use a query like this:


prefix rooms: <http://www.semanticweb.org/darius/ontologies/2013/6/rooms#>
prefix owl: <http://www.w3.org/2002/07/owl#>

select ?person ?personProperty ?city ?cityProperty ?gender where {

  values (?person ?city) {
    (rooms:Ivan rooms:London)
  }

  ?person a rooms:Person ;
          ?personProperty ?gender .
  ?gender a rooms:Gender .
  ?city a rooms:City ;
        ?cityProperty ?gender .
}


and get results like:


$ arq --data data.rdf --query query.sparql
------------------------------------------------------------------------------------------
| person     | personProperty        | city         | cityProperty
     | gender     |
==========================================================================================
| rooms:Ivan | owl:topObjectProperty | rooms:London |
owl:topObjectProperty | rooms:Male |
------------------------------------------------------------------------------------------


which looks like it should at least get you started toward what you're
trying to achieve.

//JT


On Mon, Aug 19, 2013 at 10:16 AM, Darius Miliauskas
<[email protected]> wrote:
> Dear Arthur,
>
> Thanks for the prompt answer, I will try. Here, is the ontology as RDF/XML
> file:
>
>
> <?xml version="1.0"?>
>
> <!DOCTYPE rdf:RDF [
>     <!ENTITY owl "http://www.w3.org/2002/07/owl#"; >
>     <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#"; >
>     <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#"; >
>     <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#"; >
> ]>
>
> <rdf:RDF xmlns="http://www.semanticweb.org/darius/ontologies/2013/6/rooms#";
>      xml:base="http://www.semanticweb.org/darius/ontologies/2013/6/rooms";
>      xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#";
>      xmlns:owl="http://www.w3.org/2002/07/owl#";
>      xmlns:xsd="http://www.w3.org/2001/XMLSchema#";
>      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";>
>     <owl:Ontology rdf:about="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms"/>
>
>   <!--
>
> ///////////////////////////////////////////////////////////////////////////////////////
>     //
>     // Classes
>     //
>
> ///////////////////////////////////////////////////////////////////////////////////////
>      -->
>
>     <!-- http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Person-->
>
>     <owl:Class rdf:about="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Person"/>
>
>
>     <!-- http://www.semanticweb.org/darius/ontologies/2013/6/rooms#City -->
>
>     <owl:Class rdf:about="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#City"/>
>
>
>     <!-- http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Gender-->
>
>     <owl:Class rdf:about="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Gender"/>
>
> ///////////////////////////////////////////////////////////////////////////////////////
>     //
>     // Individuals
>     //
>
> ///////////////////////////////////////////////////////////////////////////////////////
>      -->
>
> <!-- http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Ivan -->
>
>     <owl:NamedIndividual rdf:about="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Ivan";>
>
>         <rdf:type rdf:resource="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Person"/>
>         <owl:topObjectProperty rdf:resource="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Male"/>
>
>
> <!-- http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Ana -->
>
>     <owl:NamedIndividual rdf:about="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Ana";>
>
>         <rdf:type rdf:resource="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Person"/>
>
>
>  <!-- http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Male -->
>
>     <owl:NamedIndividual rdf:about="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Male";>
>
>         <rdf:type rdf:resource="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Gender"/>
>
>
> <!-- http://www.semanticweb.org/darius/ontologies/2013/6/rooms#London -->
>
>     <owl:NamedIndividual rdf:about="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#London";>
>
>         <rdf:type rdf:resource="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#City"/>
>         <owl:topObjectProperty rdf:resource="
> http://www.semanticweb.org/darius/ontologies/2013/6/rooms#Male"/>
>
>
> 2013/8/19 Arthur Vaïsse-Lesteven <[email protected]>
>
>> There is missing information about object properties. And the link between
>> Ivan and London isn't clear.
>>
>> Assuming you are requesting a query to create a triple of type (Ivan, a
>> relation, London) you could try something like this:
>>
>> INSERT{ ?person isRelatedTo ?city}
>> WHERE{
>> ?person a Person.
>> ?person name "Ivan"^^xsd:String.
>> ?city a City.
>> ?city name "London"^^xsd:String.
>> }
>>
>>
>> where "isRelatedTo" is an object properties of your choice.
>> This query will create a triple for each city with a name of London and
>> every Person with a name equal to "Ivan".
>>
>> I hope this will help you. For more information about SPARQL queries I
>> suggest you to read the current W3C Recommendation (
>> http://www.w3.org/TR/sparql11-query/ )
>>
>> It would be much easier to help you with your minimal ontology include in
>> the mail.
>>
>> VAÏSSE-LESTEVEN Arthur
>>
>> >Dear Sir or Madam,
>> >
>> >let's say I have an ontology, to make things clear and simple it looks
>> like
>> >this one:
>> >
>> >a) three classes, every one has two individuals:
>> >Person: Ivan and Ana;
>> >City: London and Paris;
>> >Gender: Male and Female.
>> >
>> >b) Ivan from the class "Person" is related to Male from the class
>> "Gender";
>> >London from the class "City" is related to Male from the class "Gender".
>> >
>> >How to write the SPARQL query to find/connect Ivan from the class "Person"
>> >to London from the class "City"?
>> >
>> >In SQL it would look something the following way (between, it could be
>> >wrong):
>> >SELECT London FROM City WHERE  Ivan=Male AND London=Male;
>> >
>> >
>> >Sincerely Yours,
>> >
>> >Darius Miliauskas
>>



-- 
Joshua Taylor, http://www.cs.rpi.edu/~tayloj/

Reply via email to