2015-05-15 2 views
0

Я пытаюсь получить весь предикат dbpedia (метки свойства). Проверить эту ссылкуПолучение списка всех предикатов dbpedia

http://dbpedia.org/page/Akshay_Kumar

я тусклый, чтобы получить,

dbpedia-owl:abstract 
dbpedia-owl:birthDate 
dcterms:subject 
dc:description 
rdfs:label 
owl:sameAs 
foaf:givenName 

короче, все свойства на левой колонке. Не для этого объекта, а только для всего списка.

Пожалуйста, смотрите, только свойства могут быть retrived с помощью:

select distinct ?property where { 
     ?instance a <http://dbpedia.org/ontology/Person> . 
     ?instance ?property ?obj . } 

или

SELECT * { ?x a rdf:Property } 

, но я хочу с prefix как dbpedia-owl, dc, foaf, rdfs и т.д.

+0

Что ты имеешь в виду: «Я хочу с префиксом, как DBpedia сова, DC, FOAF, RDFS и т.д.» Вы пытаетесь ограничить, какие свойства вы выбрали? Или вы пытаетесь отформатировать их красиво? –

+0

@JoshuaTaylor: Я хочу отформатировать их правильно, должен выглядеть так: 'dbpedia-owl: birthDate dcterms: subject dc: description' – nlper

+0

Имеет ли [запрос SPARQL получить все метки класса с префиксом пространства имен] (http: // stackoverflow .com/q/17939197/1281433) задайте вопрос? Он спрашивает о классах, а не о свойствах, но точка одна и та же; как получить 'dbpedia-owl: foo' вместо' http: // dbpedia.org/ontology/foo'. Он работает для вас, поскольку вы уже знаете, как получить свойства? –

ответ

2

Это основано по модификации my answer - SPARQL query to get all class label with namespace prefix defined.

select distinct ?prettyName ?property where { 

    #-- get distinct properties that are used on Persons 
    { select distinct ?property where { 
     [ a dbpedia-owl:Person ; ?property [] ] 
    } } 

    #-- specify some URIs that are used as 
    #-- prefixes and the prefix name that 
    #-- gets used 
    values (?prefixURI ?prefixName) { 
    (dbpedia-owl: "dbpedia-owl") 
    (dbpprop:  "dbpprop") 
    (foaf:  "foaf") 
    #-- ...more... 
    } 

    #-- only consider those properties that 
    #-- begin with one of the prefixes 
    filter strstarts(str(?property),str(?prefixURI)) 

    #-- generate the pretty name 
    bind(concat(?prefixName,":",strafter(str(?property),str(?prefixURI))) as ?prettyName) 
} 
limit 1000 

SPARQL results

prettyName      property 
------------------------------------------------------- 
dbpprop:hasPhotoCollection  http://dbpedia.org/property/hasPhotoCollection 
dbpprop:subWins     http://dbpedia.org/property/subWins 
foaf:homepage      http://xmlns.com/foaf/0.1/homepage 
dbpedia-owl:wikiPageExternalLink http://dbpedia.org/ontology/wikiPageExternalLink 
... 
Смежные вопросы