1

私はこのrdfファイルを持っています:

<!DOCTYPE rdf:RDF [
    <!ENTITY db "http://dbpedia.org/ontology/" >
    <!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://dbpedia.org/ontology/"
     xml:base="http://dbpedia.org/ontology/"
     xmlns:db="http://dbpedia.org/ontology/"
     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:ObjectProperty rdf:about="&db;actingHeadteacher">
        <rdfs:label xml:lang="el">διευθυντής σχολείου</rdfs:label>
        <rdfs:label xml:lang="en">acting headteacher</rdfs:label>
    </owl:ObjectProperty>
</rdf:RDF>

また、Literal オブジェクトを lang 値でフィルタリングしたいと考えています。例えば:

from rdflib import Graph
from rdflib.namespace import RDFS
filetype = util.guess_format(rdf_file)
g = Graph()
g.parse(rdf_file, format = filetype)
for s,p,o in g.triples((None, RDFS.label, None)):
    print(repr(o))  # rdflib.term.Literal('acting headteacher', lang='en')
                    # rdflib.term.Literal('διευθυντής σχολείου', lang='el')

lang='en' の場合のみ o を照会したい

4

2 に答える 2