2013-10-28 12 views

cevap

10

Sormak için aşağıdaki gibi bir sorgu kullanabilirsiniz Stephen King'in alt sınıfları olmayan bir örneği olan Stephen King'in de bir örneği olduğu sınıflar için. Bu, “en spesifik sınıflar” düşüncesiyle iyi uyumlu görünmektedir. Ancak, (bildiğim kadarıyla), DBpedia SPARQL son noktasına bağlı hiçbir mantık yürütmediğinden, çıkarılabilecek, ancak açık olmayan alt sınıf ilişkileri olabilir. verilerde mevcut.

select distinct ?type where { 
    dbpedia:Stephen_King a ?type . 
    filter not exists { 
    ?subtype ^a dbpedia:Stephen_King ; 
      rdfs:subClassOf ?type . 
    } 
} 

Aslında SPARQL results

, her sınıf bir rdfs:subClassOf kendisi olduğundan, size ?subtype ve ?type aynıdır davayı dışlamak için bu sorguya başka satır eklemek isteyebilirsiniz:

select distinct ?type where { 
    dbpedia:Stephen_King a ?type . 
    filter not exists { 
    ?subtype ^a dbpedia:Stephen_King ; 
      rdfs:subClassOf ?type . 
    filter (?subtype != ?type) 
    } 
} 

SPARQL results

Gerçekten bir sonuç dizesi l istiyorsan

select 
    (concat(?person, " =\n", group_concat(?type; separator=" AND\n")) as ?sentence) 
where { 
    values ?person { dbpedia:Stephen_King } 
    ?type ^a ?person . 
    filter not exists { 
    ?subtype ^a ?person ; 
      rdfs:subClassOf ?type . 
    filter (?subtype != ?type) 
    } 
} 
group by ?person 

SPARQL results

http://dbpedia.org/resource/Stephen_King = 
http://dbpedia.org/class/yago/AuthorsOfBooksAboutWritingFiction AND 
http://dbpedia.org/ontology/Writer AND 
http://schema.org/Person AND 
http://xmlns.com/foaf/0.1/Person AND 
http://dbpedia.org/class/yago/AmericanSchoolteachers AND 
http://dbpedia.org/class/yago/LivingPeople AND 
http://dbpedia.org/class/yago/PeopleFromBangor,Maine AND 
http://dbpedia.org/class/yago/PeopleFromPortland,Maine AND 
http://dbpedia.org/class/yago/PeopleFromSarasota,Florida AND 
http://dbpedia.org/class/yago/PeopleSelf-identifyingAsAlcoholics AND 
http://umbel.org/umbel/rc/Artist AND 
http://umbel.org/umbel/rc/Writer AND 
http://dbpedia.org/class/yago/20th-centuryNovelists AND 
http://dbpedia.org/class/yago/21st-centuryNovelists AND 
http://dbpedia.org/class/yago/AmericanHorrorWriters AND 
http://dbpedia.org/class/yago/AmericanNovelists AND 
http://dbpedia.org/class/yago/AmericanShortStoryWriters AND 
http://dbpedia.org/class/yago/CthulhuMythosWriters AND 
http://dbpedia.org/class/yago/HorrorWriters AND 
http://dbpedia.org/class/yago/WritersFromMaine AND 
http://dbpedia.org/class/yago/PeopleFromDurham,Maine AND 
http://dbpedia.org/class/yago/PeopleFromLisbon,Maine AND 
http://dbpedia.org/class/yago/PostmodernWriters 
: ike bu slaytlar gösterilen bir, sen (bir çeşit) güzel bir şey arayan almak için dbpedia:Stephen_King için bir değişken bağlamak ve sonra bazı gruplama ve dize birleştirme kullanmak values kullanabilirsiniz
İlgili konular