2013-07-22 70 views
0

在下面的代碼中,我試圖理解類表達式是如何最終獲得的,但並沒有真正理解這一點。DL查詢解析器

ShortFormProvider shortFormProvider = new SimpleShortFormProvider(); 
     ManchesterOWLSyntaxEditorParser parser = new ManchesterOWLSyntaxEditorParser(schema.getFactory(), query); 
     parser.setDefaultOntology(schema.getSchema()); 
     Set<OWLOntology> importsClosure = schema.getSchema().getImportsClosure(); 
     BidirectionalShortFormProvider bidiShortFormProvider = new BidirectionalShortFormProviderAdapter(schema.getSchema().getOWLOntologyManager(),importsClosure, shortFormProvider); 
     OWLEntityChecker entityChecker = new ShortFormEntityChecker(bidiShortFormProvider); 
     parser.setOWLEntityChecker(entityChecker);  
     OWLClassExpression classExpression; 
     classExpression = parser.parseClassExpression(); 

我卡主要是對shortformproviderbidirectionalshortform提供商。他們的功能是什麼?有人能幫助我理解這一點嗎?

回答

1

ShortFormProviderBidirectionalShortFormProvider是幫助您處理URI的縮寫(shotforms)的對象。例如http://www.example.org/Cat具有Cat縮寫形式。這些縮寫形式可以在不使用URI前綴的情況下以緊湊的方式來表達OWL表達式。

根據文檔:

ShortFormProvider: 的縮寫形式提供者產生實體的渲染。這些渲染是通常可用於顯示和序列化目的的字符串。給定的實體對於給定的短格式提供者只有一個簡寫形式。但是,簡短表單可能會映射到給定短格式提供程序的多個實體。換句話說,對於給定的短格式提供者,從實體到短格式的映射是功能性的,但不是反函數的,即內射映射。

BidirectionalShortFormProvider: 的縮寫形式提供,其能夠實體和它們的短形式之間轉換的來回的。

+0

因此,如果我明白了,解析使用BidirectionalShortFormProvider將DL Query中的每個實體轉換爲基於本體中的類(包括IMPORT Closure)的完整IRI – Noor

+0

正是它所做的 – loopasam