2014-10-31 1 views
1

У меня есть к данным, как следующее:Как фильтровать "???" знак с помощью sparql?

<rdf:Description rdf:about="http://ru.dbpedia.org/resource/??????????????_??????????"> 
    <owl:sameAs rdf:resource="http://dbpedia.org/resource/Actuator"/> 
</rdf:Description> 

<rdf:Description rdf:about="http://sv.dbpedia.org/resource/Ställdon"> 
    <owl:sameAs rdf:resource="http://dbpedia.org/resource/Actuator"/> 
</rdf:Description> 

<rdf:Description rdf:about="http://tr.dbpedia.org/resource/Aktüatör"> 
    <owl:sameAs rdf:resource="http://dbpedia.org/resource/Actuator"/> 
</rdf:Description> 

<rdf:Description rdf:about="http://uk.dbpedia.org/resource/??????????_????????"> 
    <owl:sameAs rdf:resource="http://dbpedia.org/resource/Actuator"/> 
</rdf:Description> 

<rdf:Description rdf:about="http://zh.dbpedia.org/resource/???"> 
    <owl:sameAs rdf:resource="http://dbpedia.org/resource/Actuator"/> 

Я хочу, чтобы фильтровать данные ?????????? _ ????????. Как отфильтровать эти данные?

Ниже приводится запрос

CONSTRUCT { 
    <http://earthquake.linkeddata.it/resource/Actuator> ?p ?o. 
    ?s2 ?p2 <http://earthquake.linkeddata.it/resource/Actuator> 
} WHERE { 
    { 
     <http://dbpedia.org/resource/Actuator> ?p ?o 
    } UNION { 
     ?s2 ?p2 <http://dbpedia.org/resource/Actuator> 
    } 
    FILTER regex(str(?s2),"http://dbpedia.org/resource/Actuator$","i") 
} 
+2

Я ожидаю, что те не вопросительные знаки, но символы в IRIs, что ваш браузер/терминал/и т.д., отображается неправильно. Но мы не можем помочь вам добавить фильтр, если вы не покажете нам тот запрос, который вы использовали. Можете ли вы включить свой запрос? –

+0

Как я уже говорил, похоже, что это только вопрос IRI, содержащий вещи, которые ваша система не отображает правильно. Вы можете отфильтровать все, что не начинается с 'http: // dbpedia.org /'; вы бы хотели устранить «http: // sv.dbpedia.org/resource/Ställdon' тоже? –

+0

Да, я хочу только Привод вернет reuslt –

ответ

2

Как насчет somethign так:.

construct { 
    <http://earthquake.linkeddata.it/resource/Actuator> ?p1 ?o1. 
    ?s2 ?p2 <http://earthquake.linkeddata.it/resource/Actuator> 
} 
where { 
{ 
    dbpedia:Actuator ?p1 ?o1 
    #-- Either ?o1 must be a non-IRI, or it must be an IRI that doesn't start 
    #-- with http://XX.dbpedia.org/ (i.e., a localized resource). 
    filter(!isIRI(?o1) || !regex(str(?o1),"http://[a-z]+.dbpedia.org/")) 
} 
union 
{ 
    ?s2 ?p2 dbpedia:Actuator 
    filter strstarts(str(?s2), "http://dbpedia.org/") 
} 
}