Форумы > Курсовые и дипломные работы > Изучение Libretto

Страницы: 1 2 3 4 5 6 7 8 9 10 11

Поиск
Автор Сообщение
NoSFeRaTu #
16 мая 2011
на сиреневой книжечке вверху правой кнопкой - Close я работаю не через либретто ноутс ну с другими программами я не знаком)
Ilya S. Abdrakhimov #
16 мая 2011
На сайте Ontobox.org обновлен справочник встроенных функций Libretto.
AVM #
16 мая 2011
С онтологией http://libretto... будем разбираться (убивать), но чуть позже. А пока - вот программка на Libretto, позволяющая грохнуть эту онтологию в любой момент и из любого места: prefix l "http://libretto.ontobox.org/"; (l:HasURI, l:Prefixed)/v:deleteForced(); %l:*/v:classes()/v:props()/v:delete(); (%l:Prefix, %l:Function)/v:delete(); %l:*/v:classes()/v:delete(); %l:*/v:delete(); Держите в голове, что, если знать как, проще всего такого рода задачи решаются с помощью скриптиков на Libretto.
AVM #
16 мая 2011
Юрий пишет: v:ontologies()/v:entity()/v:objects() возвращает все объекты в т.ч. классы и еще что-то с непонятными именами. *[v:local()/(not v:contains('_'))] так я получил то что хотел. Хорошо, что срабатывает. Однако нужно учитывать, что такой метод является очень хрупким. Стоит в онтологии случайно оказаться другому объекту без подчеркивания, и все посыплется. Лучше выборки делать не по идентификаторам объектов (которые, как правило, содержат фигню, и не имеют никакого смысла, а суррогатные имена, являясь системными, вообще меняться могут), а опираясь на смысл задачи, например, явно перечисляя классы, объекты которых нужны. Скажем, чтобы удалить все объекты классов С1 и C2 достаточно написать: (C1, C2)/v:delete(); Чтобы выбрать объекты из дефолтной онтологии, у которых свойство prop имеет более одного значения, пишем *[prop/v:size()>1] и т.д. Все лучше делать, не опираясь на внутреннюю структуру имен.
Ilya S. Abdrakhimov #
16 мая 2011
Еще раз для Юрия, по поводу получения значений свойств: кроме имен свойств я хочу отобразить напротив значения этих свойств для этого я ищу способ вернуть значения для каждого свойства, например: &u1/%name/v:value() Если сделать запрос: &u1/name то мне вернется имя, тоесть то что мне надо, но я не знаю как это сделать для списка Функция для вывода значений t-свойств: def printTprops() {     var obj = . ; "Object = "/v:print(); obj/v:local()/v:println() ;     var props = obj/v:tprops();     props as x / "{x/v:local()} = {obj/v:values( x )}"! ; }
AVM #
16 мая 2011
NoSFeRaTu пишет: Есть ли возможность в объекте сделать ссылку на анонимный объект? Ведь имя у анонима каждый раз новое. Если под "ссылкой" понимается присваивание объекта свойству, то пользоваться именами - плохой стиль. Можно ведь присвоить сам объект вместо возни со строками имени (которое, как правильно замечено, может и поменяться). Например, как в следующем примере: class C {n v:int; c C}; C &a {c = C &_{n = 115}}; &a/c/n; 115 Здесь анонимный объект является значением свойства c объекта &a. Если анонимный объект создается где-то в другом месте, его можно передать через переменную: class C {n v:int; c C}; var v = C &_{n = 115}; C &a {c = v}; &a/c/n; 115
Ilya S. Abdrakhimov #
16 мая 2011
а есть ли возможность записать данные возвращаемые запросом в массив-коллкцию? Можно присвоить переменной полученную коллекцию и работать с ней как показано в моем предыдущем сообщении (функция printTprops). С другой стороны можно воспользоваться функциями count и i или функциями head, tail.
Djegorik #
16 мая 2011
Execution error occured in template /app/models/init.ltt. Exception raised was RuntimeException : MVX reports: org.ontobox.box.exception.AlreadyExistsException: An entity with the http://libretto.ontobox.org/ name already exists (trying to create Ontology) Action: CreateOntology http://libretto.ontobox.org/ (Line: 5, column: 48) in builtin function http://ontobox.org/#mvx2box/1 ([4:9]). Как решить эту проблему?
Ilya S. Abdrakhimov #
16 мая 2011
Execution error occured in template /app/models/init.ltt. Exception raised was RuntimeException : MVX reports: org.ontobox.box.exception.AlreadyExistsException: An entity with the http://libretto.ontobox.org/ name already exists (trying to create Ontology) Action: CreateOntology http://libretto.ontobox.org/ (Line: 5, column: 48) in builtin function http://ontobox.org/#mvx2box/1 ([4:9]). Как решить эту проблему? Смотрите сообщение AVM
Djegorik #
16 мая 2011
Execution error occured in template /app/models/init.ltt. Exception raised was RuntimeException : MVX reports: org.ontobox.box.exception.AlreadyExistsException: An entity with the http://libretto.ontobox.org/ name already exists (trying to create Ontology) Action: CreateOntology http://libretto.ontobox.org/ (Line: 5, column: 48) in builtin function http://ontobox.org/#mvx2box/1 ([4:9]). Как решить эту проблему? проблема решилась после удаления http://libretto.ontobox.org/ из MVX файла
NoSFeRaTu #
16 мая 2011
NoSFeRaTu пишет: Есть ли возможность в объекте сделать ссылку на анонимный объект? Ведь имя у анонима каждый раз новое. Если под "ссылкой" понимается присваивание объекта свойству, то пользоваться именами - плохой стиль. Можно ведь присвоить сам объект вместо возни со строками имени (которое, как правильно замечено, может и поменяться). Например, как в следующем примере: class C {n v:int; c C}; C &a {c = C &_{n = 115}}; &a/c/n; 115 Здесь анонимный объект является значением свойства c объекта &a. Если анонимный объект создается где-то в другом месте, его можно передать через переменную: class C {n v:int; c C}; var v = C &_{n = 115}; C &a {c = v}; &a/c/n; 115 А если несколько анонимных объетов создается в другом месте, то как сделать ссылку на них в одном и том же объекте?
Ilya S. Abdrakhimov #
16 мая 2011
А если несколько анонимных объетов создается в другом месте, то как сделать ссылку на них в одном и том же объекте? Можно получить анонимный объект по значениям одного или нескольких свойств. C &_{n = 1}; C &_{n = 2}; C &a { c = C[n==1]; }
NoSFeRaTu #
16 мая 2011
А если несколько анонимных объетов создается в другом месте, то как сделать ссылку на них в одном и том же объекте? Можно получить анонимный объект по значениям одного или нескольких свойств. C &_{n = 1}; C &_{n = 2}; C &a { c = C[n==1]; } Это хорошо, но класс, которому надо отнести эти объекты, совершенно другой, и нужно передать не(!) один, а несколько. Например, как у вас, не только [n==1], но и [n==2]. Когда я пишу: G &a{ c=C[n==1]; #Подскажите как C &_{n = 2}; сюда еще привнести } объект пропадает с поля зрения вообще. Может класс обозначить иначе надо? у меня : class G { c C; }
Ilya S. Abdrakhimov #
16 мая 2011
Это хорошо, но класс, которому надо отнести эти объекты, совершенно другой, и нужно передать не(!) один, а несколько. Например, как у вас, не только [n==1], но и [n==2]. Смотрите Libretto Language Tutorial 4. Objects and Their Modifiers
Ilya S. Abdrakhimov #
16 мая 2011
Обновлен Libretto Notes. Теперь должен быть нормальный экспорт/импорт MVX с онтологией http://libretto.ontobox.org/.

Страницы: 1 2 3 4 5 6 7 8 9 10 11

Форумы > Курсовые и дипломные работы > Изучение Libretto
Чтобы написать сообщение, необходимо войти или зарегистрироваться