0

In the below query I want to use ?uri variable which identifies the DBpedia resource to obtain the DBpedia element from DBpedia SPARQL service, but it returns no result as it expects URI within <>.

I also tried <?uri> but again no results had returned. When I write the URI directly, it returns the desired results, but I couldn't manage it by using a variable.

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX lit: <http://purl.org/net/cnyt-literature#>

SELECT distinct ?writer ?play ?character ?uri ?type  WHERE {
    {
        ?writer lit:writerOf ?play .
        ?play lit:character ?character .
        ?character lit:dbpediaUri ?uri
    }

    SERVICE <http://dbpedia.org/sparql> {
        ?uri rdf:type ?type
    }   
}
LIMIT 50

Here is the result of the query with the SERVICE part ommitted :

enter image description here

When I replace the ?uri in the SERVICE part with "http://dbpedia.org/resource/Julius_Caesar", it fetches information from dbpedia but I don't know how do this by using ?uri variable.

Here is my owl file :

<?xml version="1.0"?>
<rdf:RDF xmlns="http://purl.org/net/cnyt-literature#"
     xml:base="http://purl.org/net/cnyt-literature"
     xmlns:literature="http://purl.org/net/cnyt-literature#"
     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://purl.org/net/cnyt-literature"/>
    <!-- 

    //
    // Object Properties
    //

    <!-- http://purl.org/net/cnyt-literature#character -->

    <owl:ObjectProperty rdf:about="http://purl.org/net/cnyt-literature#character">
        <rdfs:domain rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Play"/>
        <rdfs:range rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Human"/>
    </owl:ObjectProperty>

    <!-- http://purl.org/net/cnyt-literature#writerOf -->

    <owl:ObjectProperty rdf:about="http://purl.org/net/cnyt-literature#writerOf">
        <rdfs:domain rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Writer"/>
        <rdfs:range rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Play"/>
    </owl:ObjectProperty>

    <!-- http://www.w3.org/2002/07/owl#sameAs -->

    <owl:ObjectProperty rdf:about="http://www.w3.org/2002/07/owl#sameAs">
        <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
        <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    </owl:ObjectProperty>
    <!-- 

    //
    // Data properties
    //

    <!-- http://purl.org/net/cnyt-literature#dbpediaUri -->

    <owl:DatatypeProperty rdf:about="http://purl.org/net/cnyt-literature#dbpediaUri">
        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
    </owl:DatatypeProperty>

    <!-- http://purl.org/net/cnyt-literature#name -->

    <owl:DatatypeProperty rdf:about="http://purl.org/net/cnyt-literature#name">
        <rdfs:domain rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Human"/>
        <rdfs:domain rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Literary_Work"/>
        <rdfs:domain rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Politician"/>
        <rdfs:domain rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Writer"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty> 

    <!-- http://purl.org/net/cnyt-literature#source -->

    <owl:DatatypeProperty rdf:about="http://purl.org/net/cnyt-literature#source"/>

    <!-- http://purl.org/net/cnyt-literature#wikidataUri -->

    <owl:DatatypeProperty rdf:about="http://purl.org/net/cnyt-literature#wikidataUri"/>

    <!-- http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#uri -->

    <owl:DatatypeProperty rdf:about="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#uri"/>

    <!-- http://www.w3.org/2002/07/owl#sameAs -->

    <owl:DatatypeProperty rdf:about="http://www.w3.org/2002/07/owl#sameAs"/>

    //
    // Classes
    //

    <!-- http://purl.org/net/cnyt-literature#Novel -->

    <owl:Class rdf:about="http://purl.org/net/cnyt-literature#Novel">
        <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Literary_Work"/>
    </owl:Class>
    <!-- http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#ExternalItem -->

    <owl:Class rdf:about="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#ExternalItem"/>

    <!-- http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Human -->

    <owl:Class rdf:about="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Human"/>
    <!-- http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Literary_Work -->

    <owl:Class rdf:about="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Literary_Work"/>

    <!-- http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Play -->

    <owl:Class rdf:about="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Play">
        <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Literary_Work"/>
    </owl:Class>



    <!-- http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Politician -->

    <owl:Class rdf:about="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Politician">
        <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Human"/>
    </owl:Class>

    <!-- http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Writer -->

    <owl:Class rdf:about="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Writer">
        <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Human"/>
    </owl:Class>



    //
    // Individuals
    //

    <!-- http://purl.org/net/cnyt-literature#JackLondon -->

    <owl:NamedIndividual rdf:about="http://purl.org/net/cnyt-literature#JackLondon">
        <rdf:type rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Writer"/>
        <writerOf rdf:resource="http://purl.org/net/cnyt-literature#WhiteFang"/>
        <name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Jack London</name>
    </owl:NamedIndividual>

    <!-- http://purl.org/net/cnyt-literature#JuliusCaesar -->

    <owl:NamedIndividual rdf:about="http://purl.org/net/cnyt-literature#JuliusCaesar">
        <rdf:type rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Politician"/>
        <dbpediaUri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://dbpedia.org/resource/Julius_Caesar</dbpediaUri>
        <wikidataUri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://www.wikidata.org/wiki/Q1048</wikidataUri>
        <owl:sameAs rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://dbpedia.org/resource/Julius_Caesar</owl:sameAs>
        <owl:sameAs rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://www.wikidata.org/wiki/Q1048</owl:sameAs>
    </owl:NamedIndividual>

    <!-- http://purl.org/net/cnyt-literature#JuliusCaesarDbpedia -->

    <owl:NamedIndividual rdf:about="http://purl.org/net/cnyt-literature#JuliusCaesarDbpedia">
        <rdf:type rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#ExternalItem"/>
        <source rdf:datatype="http://www.w3.org/2001/XMLSchema#string">dbpedia</source>
        <literature1:uri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://dbpedia.org/page/Julius_Caesar</literature1:uri>
    </owl:NamedIndividual>


    <!-- http://purl.org/net/cnyt-literature#JuliusCaesarPlayDbpedia -->

    <owl:NamedIndividual rdf:about="http://purl.org/net/cnyt-literature#JuliusCaesarPlayDbpedia">
        <rdf:type rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#ExternalItem"/>
        <source rdf:datatype="http://www.w3.org/2001/XMLSchema#string">dbpedia</source>
        <literature1:uri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://dbpedia.org/resource/Julius_Caesar_(play)</literature1:uri>
    </owl:NamedIndividual>
    <!-- http://purl.org/net/cnyt-literature#JuliusCaesarPlayWikidata -->

    <owl:NamedIndividual rdf:about="http://purl.org/net/cnyt-literature#JuliusCaesarPlayWikidata">
        <rdf:type rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#ExternalItem"/>
        <source rdf:datatype="http://www.w3.org/2001/XMLSchema#string">wikidata</source>
        <literature1:uri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://www.wikidata.org/wiki/Q215750</literature1:uri>
    </owl:NamedIndividual>

    <!-- http://purl.org/net/cnyt-literature#JuliusCaesarWikidata -->

    <owl:NamedIndividual rdf:about="http://purl.org/net/cnyt-literature#JuliusCaesarWikidata">
        <rdf:type rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#ExternalItem"/>
        <source rdf:datatype="http://www.w3.org/2001/XMLSchema#string">wikidata</source>
        <literature1:uri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://www.wikidata.org/wiki/Q1048</literature1:uri>
    </owl:NamedIndividual>
    <!-- http://purl.org/net/cnyt-literature#WhiteFang -->

    <owl:NamedIndividual rdf:about="http://purl.org/net/cnyt-literature#WhiteFang">
        <rdf:type rdf:resource="http://purl.org/net/cnyt-literature#Novel"/>
    </owl:NamedIndividual>



    <!-- http://purl.org/net/cnyt-literature#WilliamShakespeareDbpedia -->

    <owl:NamedIndividual rdf:about="http://purl.org/net/cnyt-literature#WilliamShakespeareDbpedia">
        <rdf:type rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#ExternalItem"/>
        <source rdf:datatype="http://www.w3.org/2001/XMLSchema#string">dbpedia</source>
        <literature1:uri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">dbpedia.org/page/William_Shakespeare</literature1:uri>
    </owl:NamedIndividual>

    <!-- http://purl.org/net/cnyt-literature#WilliamShakespeareWikidata -->

    <owl:NamedIndividual rdf:about="http://purl.org/net/cnyt-literature#WilliamShakespeareWikidata">
        <rdf:type rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#ExternalItem"/>
        <source rdf:datatype="http://www.w3.org/2001/XMLSchema#string">wikidata</source>
        <literature1:uri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://www.wikidata.org/wiki/Q692</literature1:uri>
    </owl:NamedIndividual>


    <!-- http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#JuliusCaesarPlay -->

    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#JuliusCaesarPlay">
        <rdf:type rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Play"/>
        <character rdf:resource="http://purl.org/net/cnyt-literature#JuliusCaesar"/>
        <dbpediaUri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://dbpedia.org/page/Julius_Caesar_(play)</dbpediaUri>
        <wikidataUri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://www.wikidata.org/wiki/Q1048</wikidataUri>
        <owl:sameAs rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://dbpedia.org/page/Julius_Caesar_(play)</owl:sameAs>
        <owl:sameAs rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://www.wikidata.org/wiki/Q1048</owl:sameAs>
    </owl:NamedIndividual>



    <!-- http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#WilliamShakespeare -->

    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#WilliamShakespeare">
        <rdf:type rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#Writer"/>
        <writerOf rdf:resource="http://www.semanticweb.org/cnytync/ontologies/2017/6/literature#JuliusCaesarPlay"/>
        <dbpediaUri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://dbpedia.org/page/William_Shakespeare</dbpediaUri>
        <wikidataUri rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://www.wikidata.org/wiki/Q692</wikidataUri>
        <owl:sameAs rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://dbpedia.org/page/William_Shakespeare</owl:sameAs>
        <owl:sameAs rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://www.wikidata.org/wiki/Q692</owl:sameAs>
    </owl:NamedIndividual>
</rdf:RDF>



<!-- Generated by the OWL API (version 4.2.6.20160910-2108) https://github.com/owlcs/owlapi -->
Stanislav Kralin
  • 11,070
  • 4
  • 35
  • 58
cuneyttyler
  • 1,255
  • 2
  • 17
  • 27
  • In this question and your previous, you're blurring the lines between your ontology (the vocabulary used in your descriptions) and your instance data (the descriptions themselves). Here, your query includes several extra `PREFIX` definitions (you only need `lit:` and `rdf:`). Immediate issues include: your data (as shown in your other question) includes no `lit:dbpediaUri` predicate; the URIs that are there are typed as literals, not as URIs; they may not be complete URIs (missing `http://`); and they may not identify the entity `/resource/` but their description `/page/`… – TallTed Jul 25 '17 at 14:27
  • I updated my question. I added dbpediaUri property as a string variable. Now it points to the uri, say, http://dbpedia.org/resource/Julius_Caesar directly. I also added the result of the query when I ommited the SERVICE part. – cuneyttyler Jul 25 '17 at 14:50
  • I hope you need something like `?character lit:dbpediaUri ?uri . BIND (IRI(?uri) AS ?real_uri) }` ... `{?real_uri rdf:type ?type .` – Stanislav Kralin Jul 25 '17 at 15:48
  • That's great! It worked. Thank you. – cuneyttyler Jul 25 '17 at 20:07
  • You are welcome! However, this design is bad (as e. g. TallTed has pointed out). These identifiers should be URIs, not literals. Respectively, properties should be object properties, not data properties. – Stanislav Kralin Jul 26 '17 at 04:46
  • I will take this into account, my another question is how can I apply this SERVICE query to wikidata? I tried using wd:Q1080 as in the dbpedia uri example. Again I am having this as a string, but I need to convert this into a format where it is processed as SPARQL keyword(or similar to a keyword). How can I achieve this? – cuneyttyler Jul 26 '17 at 11:03

0 Answers0