Составление предложения с пассивным временем в GF без "быть"
Я использовал Phrase для создания предложения "Слушать комедию, организованную BBC".
mkPhr (mkVP(
(mkV2 (mkV ("Play")))
(mkNP
aSg_Det
(mkCN
(mkCN (mkN ("comedy")))
(mkSC (passiveVP
(mkV2 ("host"))
(mkNP (mkN ("BBC"))))))))
Но я получаю результат "Включи фильм для BBC". Я проверил библиотеки GF, но похоже, что нет способа изменить VP на NP, чтобы избежать "быть".
Ребята, позвольте мне научить меня, как избавиться от этого, или есть ли способ в GF добавить два или более предложений во фразу.
Спасибо ~
1 ответ
Как сказал aschepler, "размещено на BBC" - это причастная фраза, а не пассивный залог. В модуле Extend есть несколько функций для создания причастий из VP:
PastPartAP : VPSlash -> AP ; -- lost (opportunity) ; (opportunity) lost in space
PastPartAgentAP : VPSlash -> NP -> AP ; -- (opportunity) lost by the company
Итак, мы можем использовать
PastPartAgentAP
для создания причастия "размещено на BBC". Если вы откроете
ExtendEng
в вашем файле GF вы можете использовать все его функции, как вы уже делаете это с SyntaxEng и ParadigmsEng. (См. Также этот ответ.)
Вот пример, который вы можете скопировать и вставить в файл с именем
Comedy.gf
и поиграйте с ним в оболочке GF.
resource Comedy = open SyntaxEng, ParadigmsEng, ExtendEng in {
oper
-- Some lexicon
comedy_N : N = mkN "comedy" ;
host_V2 : V2 = mkV2 "host" ;
play_V2 : V2 = mkV2 "play" ;
BBC_PN : PN = mkPN "BBC" ;
-- Intermediate phrases
hosted_by_BBC : AP =
PastPartAgentAP (mkVPSlash host_V2) (mkNP BBC_PN) ;
comedy_hosted_by_BBC : NP =
mkNP a_Det (mkCN comedy_N hosted_by_BBC) ;
-- The final phrase
play_comedy_hosted_by_BBC : Utt =
mkUtt (mkImp (mkVP play_V2 comedy_hosted_by_BBC)) ;
}
При открытии Comedy.gf в оболочке GF с флагом
-retain
, вы можете проверить лексику и промежуточные результаты с помощью команды
cc
. Например:
> cc -table comedy_hosted_by_BBC
s . NCase Nom => a comedy hosted by BBC
s . NCase Gen => a comedy's hosted by BBC
s . NPAcc => a comedy hosted by BBC
s . NPNomPoss => a comedy hosted by BBC
a . AgP3Sg Neutr
> cc -one play_comedy_hosted_by_BBC
play a comedy hosted by BBC