簡體   English   中英

通過特定語言的標簽檢索DBpedia本體類?

[英]Retrieving DBpedia ontology classes by label in a particular language?

我有從http://wiki.dbpedia.org/Downloads39下載的DBPedia本體。 在這種本體中,例如,我有這種情況:

<owl:Class rdf:about="http://dbpedia.org/ontology/BasketballLeague">
        <rdfs:label xml:lang="el">Ομοσπονδία Καλαθοσφαίρισης</rdfs:label><rdfs:label xml:lang="fr">ligue de basketball</rdfs:label><rdfs:label xml:lang="en">basketball league</rdfs:label><rdfs:label xml:lang="it">lega di pallacanestro</rdfs:label><rdfs:label xml:lang="ja">バスケットボールリーグ</rdfs:label><rdfs:comment xml:lang="en">a group of sports teams that compete against each other in Basketball</rdfs:comment><rdfs:subClassOf rdf:resource="http://dbpedia.org/ontology/SportsLeague"/>
</owl:Class>

現在,我想使用耶拿(Jena)來閱讀該本體,並檢索以法語為對象“貓頭鷹籃球”的貓頭鷹類,在這種情況下,我不知道如何使用耶拿圖書館設置法語。

從DBPedia本體論看來,xml:lang =“ fr”是一個謂詞,但是我已經嘗試了以下代碼:

String inputFileName = "C:\\dbpedia_3.9.owl";
// Create an empty in-memory ontology model 
OntDocumentManager mgr = new OntDocumentManager();
OntModelSpec s = new OntModelSpec( OntModelSpec.RDFS_MEM );
s.setDocumentManager( mgr );
OntModel m = ModelFactory.createOntologyModel( s, null );
// use the FileManager to open the ontology from the filesystem
InputStream in = FileManager.get().open(inputFileName);
if (in == null) {
    throw new IllegalArgumentException( "File: " + inputFileName + " not found"); 
}
// read the ontology file
m.read( in, "" );

StmtIterator stmti = m.listStatements();
            while (stmti.hasNext()){
                Statement statement = stmti.nextStatement();
                System.out.println (statement.getPredicate());
            }

但我只得到:

http://www.w3.org/2000/01/rdf-schema#label

我沒有在謂語中獲得有關語言的信息。 為什么? 我如何檢索此信息和owl類? 我在這里做錯了什么?

您需要閱讀RDF中的文字及其在RDF / XML中的編碼方式。 您顯示的本體代碼段是RDF / XML(並非為人類可讀),而xml:lang不是屬性。 xml:lang屬性用於指定具有語言標簽的文字的語言。

2.7語言:xml:lang

RDF / XML允許使用2.12 XML 1.0 [XML]的語言標識所定義的xml:lang屬性,以允許標識內容語言。 xml:lang屬性可用於任何node元素或property元素,以指示所包含的內容采用給定的語言。 包括XML文字的類型文字不受此屬性的影響。 當前存在的最特定的范圍內語言(如果有)應用於屬性元素字符串文字內容或屬性屬性值。 xml:lang =“”格式表示缺少語言標識符。

示例8中顯示了一些為RDF屬性標記內容語言的示例:

示例8:xml:lang的完整示例( example08.rdf輸出example08.nt

 <?xml version="1.0" encoding="utf-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"> <dc:title>RDF/XML Syntax Specification (Revised)</dc:title> <dc:title xml:lang="en">RDF/XML Syntax Specification (Revised)</dc:title> <dc:title xml:lang="en-US">RDF/XML Syntax Specification (Revised)</dc:title> </rdf:Description> <rdf:Description rdf:about="http://example.org/buecher/baum" xml:lang="de"> <dc:title>Der Baum</dc:title> <dc:description>Das Buch ist außergewöhnlich</dc:description> <dc:title xml:lang="en">The Tree</dc:title> </rdf:Description> </rdf:RDF> 

如果查看上面鏈接的example08.nt,您會看到三元組包括:

<http://www.w3.org/TR/rdf-syntax-grammar> <http://purl.org/dc/elements/1.1/title> "RDF/XML Syntax Specification (Revised)" .
<http://www.w3.org/TR/rdf-syntax-grammar> <http://purl.org/dc/elements/1.1/title> "RDF/XML Syntax Specification (Revised)"@en .
<http://www.w3.org/TR/rdf-syntax-grammar> <http://purl.org/dc/elements/1.1/title> "RDF/XML Syntax Specification (Revised)"@en-us .

<http://example.org/buecher/baum> <http://purl.org/dc/elements/1.1/title> "Der Baum"@de .
<http://example.org/buecher/baum> <http://purl.org/dc/elements/1.1/title> "The Tree"@en .

資源具有dc:title屬性的多個值。 xml:lang不是屬性,而是用於指定文字的一部分。

DBpedia數據中也是如此。 屬性rdfs:label有多個值,並且RDF / XML序列化中的xml:lang屬性用於指示其語言。 DBpedia目前無法使用,但如果您訪問http://dbpedia.org/ontology/BasketballLeague並滾動到頁面底部,則可以下載各種格式的數據。 如果以TTL / N3格式下載,則會看到類似以下內容:

dbpedia-owl:BasketballLeague rdfs:label "basketball league"@en ,
                                        "Ομοσπονδία Καλαθοσφαίρισης""@el ,
                                        "ligue de basketball"@fr, 
                                        ... 

你需要讓與的getObject謂詞的對象,無論它是否是一個文字與isLiteral,而當它使用使用getLanguage獲得的語言標記(如果有)。 相關類的Javadocs描述了您需要的所有方法。 我已經在本段前面鏈接到文字類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM