• Font boosting в мобильных браузерах
    0
    Этот код исправляет глюк с Font boosting или же отключает Font boosting вообще?
  • Технологии Semantic Web
    0
    Индивидуал — это объект.
  • Технологии Semantic Web
    0
    Мне не всегда легко понять то, что вы имеете в виду. Но я снова попробую :-)

    Возможно, вы хотите сделать утверждение не об отдельных элементах класса, а о самом классе. Хотите присвоить классу некоторый атрибут.

    В OWL это сделать можно, но только в OWL-Full, где класс может рассматриваться и как собственно класс, и как индивидуал.

    Пример:

    #мяч1 относится к классу БелыйМяч (здесь БелыйМяч выступает в роли класса)
    :ball1 rdf:type :WhiteBall.
    
    #Класс БелыйМяч имеет свойство «вероятность» со значением «0.5» (БелыйМяч выступает в роли индивидуала)
    :WhiteBall :probability "0.5". 

    Единственная проблема — OWL-Full является неразрешимым, т.е. в нем не будет гарантированно работать логический вывод. Но если вам он не требуется, то можете, как вариант, использовать OWL-Full.
  • Технологии Semantic Web
    0
    Вы не очень аккуратно формулируете задачу. Во-первых, черных шаров не может быть в среднем больше, их просто больше или меньше во сколько-то раз. Во-вторых, белых шаров не может больше в Пи раз, т.к. Пи — иррациональное число. В-третьих, неверно использован термин «группа».

    Но, насколько я понял, имелось в виду следующее: экспериментальным путем установлено, что белых шаров в n раз больше чем черных, причем цвета конкретных шаров неизвестны. Нужно отразить в онтологии это условие.

    Если так, то отлично. В (1) и (2) я выразил это условие при n = 1 (белых шаров столько же сколько и черных, т.е. половина). Аналогичным образом можно выразить это условие и для других n.

    P.S. Другое дело, что, как я говорил выше, онтологии не очень подходят для моделирования подобного рода условий. Это почти то же самое, что вычислять с помощью онтологии давление нефтяных пластов или подъемную силу самолета. Может быть теоретически это и возможно, но очень неудобно. У онтологий своя, специфическая область применения. И помимо онтологий есть множество других, более подходящих для той или иной задачи инструментов моделирования.
  • Технологии Semantic Web
    0
    Условие «половина объектов данной группы — белого цвета» мы выразили (1) и (2), без всякого «обращения к знаниям об объектах группы». Аксиомы из этих пунктов говорят ровно то, что вам нужно: если шаров конечное число, то половина из них — белые.

    Другое дело, это знание обычно нам нужно не само по себе, а для того, чтобы автоматически выводить новые факты относительно конкретных объектов. Например, у нас есть информация о 20 шарах. Про шары №1-10 мы знаем, что они черные, про шары №11-19 мы знаем, что они белые, а цвет 20-го шара неизвестен. И если мы точно знаем что всего шаров — 20, то мы можем автоматически сделать вывод, что этот 20-й шар — белый. Но чтобы сделать этот вывод, мы должны быть уверены, что других шаров нет. Вот это знание о том, что шаров всего 20 мы и выразили в аксиомах из пункта (3).

    Если же выводить новые факты относительно конкретных объектов вам не нужно, то вам достаточно (1) и (2).
  • Технологии Semantic Web
    0
    del
  • Технологии Semantic Web
    +1
    Я могу еще раз повторить, что я снимаю шляпу перед Вашим трудом? Спасибо Вам за ответ. Действительно белое пятно в образовании, которое надо закрывать. Поэтому ошибки в терминах.
    Марк, еще раз спасибо за теплый отзыв. Постараюсь ответить по порядку в меру своих сил.

    Однако, я столкнулся с ограничениями OWL. И это ограничение пока не разрешили ни наши сотрудники, ни сторонние помощники. Терзает меня чувство, что OWL — промежуточный этап в понимании онтологического моделирования. Задача же была такая: как описывать группы объектов? например: половина объектов данной группы белого цвета. Или распределение по значениям параметра «высота» такое: и далее ссылка на распределение.

    1.
    OWL не предназначен для подобного рода утверждений. OWL описывает концептуальные модели, а не произвольные научные теории.

    Пример: OWL-онтология определяет, что мать-одиночка — это женщина без мужа с тремя и более детьми. А также, что ей причитается пособие. Но не определяет формулу для вычисления этого пособия.

    Для описания произвольных теорий существуют более выразительные формализмы, например Semantic Web Rule Language или просто логика первого порядка.

    «Ограниченность» OWL — это не баг, а фича. Благодаря своей «ограниченности» OWL обладает свойством разрешимости. Т.е. машина может автоматически осуществлять логический вывод.

    2.
    Тем не менее, условие «половина объектов данной группы — белого цвета» в OWL смоделировать можно.

    Я могу ошибиться в деталях, но идея примерно такая:

    1. Класс шаров разбивается на два непересекающихся подкласса: белые и небелые.
      EquivalentClasses(
        :Ball
        ObjectUnionOf( :WhiteBall :NonwhiteBall  )
        )

      DisjointClasses( :WhiteBall :NonwhiteBall )

    2. Каждый белый шар связан свойством r с одним черным шаром и наоборот.
      InverseFunctionalObjectProperty(:r)

      SubClassOf( 
         :WhiteBall
         ObjectExactCardinality( 1 :r :NonwhiteBall )
       )

      SubClassOf( 
         :NonwhiteBall
         ObjectExactCardinality( 1 :r :WhiteBall )
       )
      Отсюда видно, что если число шаров конечно, то количество белых, действительно, составляет ровно половину.

    3. Для того, чтобы это работало на практике, нужно определить класс шаров, явно перечислив его элементы. А также, указать, что все шары отличны друг от друга.
      EquivalentClasses(
        :Ball
        ObjectOneOf( :ball1 :ball2 :ball3 :ball4 :ball5 :ball6)
      )

      DifferentIndividuals( :ball1 :ball2 )
      DifferentIndividuals( :ball1 :ball3 )
      ...

      Без этого, грубо говоря, будет непонятно, сколько всего шаров, и от какого количества считать половину.

    Возможно, «распределение по скоростям» можно смоделировать похожим образом. Но еще раз повторю, даже если OWL справляется с решением этой задачи, предназначен он для решения других задач.
  • Технологии Semantic Web
    +1
    Марк, спасибо за комментарии!

    Но в этом вот комментарии вы не совсем правы.

    1.
    Причина в том, что в OWL рассматриваются только триплеты. Но в реальности надо иметь возможность строить более сложные конструкции (тапплы).
    В OWL вообще нет понятия триплета, есть только аксиомы (триплет — это понятие RDF). А аксиомы могут связывать любое количество сущностей. Например аксиома о том, что класс «мать-одиночка» эквивалентен пересечению трех классов: класса «женщина», класса «не имеющий мужа» и класса «имеющий больше трех детей».

    2.
    солнце воздух и вода — укрепляют организм. Моделирования этого тезиса в OWL сводится к трем тезисам. Однако, в реальности — это один тезис.
    Не совсем понял, что вы имеете в виду.

    Если солнце, воздух и вода укрепляют организм по отдельности и независимо друг от друга, то это и нужно выразить с помощью трех отдельных аксиом. Если очень грубо, то что-то типа: 1. «солнце» относится к классу «укрепляющая субстанция», 2. «воздух» относится к классу «укрепляющая субстанция» и 3. «вода» относится к классу «укрепляющая субстанция».

    Если организм укрепляет смесь, то надо для этой смеси определить отдельную сущность. Эта сущность будет относиться к классу «укрепляющая субстанция» и находится в отношении часть-целое к «солнцу», «воздуху» и «воде» соответственно.

    В любом случае, не вижу никаких проблем с тем, чтобы это выразить на OWL.
  • Технологии Semantic Web
    0
    Михаил, спасибо за замечание. Действительно, я выбрал несколько необычный формат, поэтому нужно было более подробно пояснить его выбор.

    Слайды сами по себе никак не связаны с последовательностью изложения — вопрос в том, что на них содержится. Традиционно, слайды используют как дополнительный материал к устному выступлению докладчика. Разумеется, такие слайды в отрыве от устной речи связанного изложения не содержат. Но слайды из данного курса полностью самостоятельны. Они уже содержат последовательное изложение без всякого докладчика.

    Если какие-то конкретные моменты кажутся непонятными — скажите, буду рад их доработать.
  • Технологии Semantic Web
    +1
    Спасибо за идею! Про SlideWiki я, конечно, знаю. Особенно приятно, что ее ведущий разработчик — наш человек, Дарья Тарасова. Но сделать курс на SlideWiki, я, действительно, не догадался. Попробую перенести его туда. Единственная проблема, «Хабр» поддерживает слайды только со SlideShare.
  • Грабли, на которые не стоит наступать
    +2
    Считаю нужным добавить, что два года спустя Джоэл все-же признал, что переписывание кода с нуля в некоторых случаях бывает оправдано:
    … Наконец, с .NET поставляются замечательные библиотеки классов. Было переработано все — от доступа к данным и веб-разработки до GUI, поэтому создалось редкостное единообразие, сверху до низу. <...> Да, я согласен: .NET нарушает закон «никогда не переписывай с чистого листа». Microsoft это сошло с рук по двум причинам. Во-первых, у них был лучший в мире конструктор языков, человек, которому имы обязаны 90% прироста эффективности разработки программ за последние 20 лет, Андерс Гейльзберг, давший нам Turbo Pascal (спасибо!), Delphi (спасибо!), WFC (отлично!) и теперь .NET (сногсшибательно). ВО-вторых, они посадили за эту работу тьму инженеров на целых три года, в какой-то мере ослабив на это время свое участие в конкурентной борьбе. Запомните: если Microsoft может что-то себе позволить, это не значит, что то же самое можете вы.

    Джоэл Спольски. Джоэл о программировании, 2006. Глава 44. Наша стратегия .NET. Стр. 321-322.

    Оригинал: Joel Spolsky. Our .NET Strategy, 11 April 2002.

    Оригинальный текст
    … Finally, the class libraries that ship with .NET are great. The fact that everything, from data access to web development to GUI development, was redesigned means that there is incredible consistency from top to bottom. <...> OK, I admit it — .NET violated the Never Rewrite From Scratch rule. Microsoft got away with it because they had two things. First, they had the world's best language designer, the man who was responsible for 90% of the productivity gains in software development in the last 20 years: Anders Hejlsberg, who gave us Turbo Pascal (thank you!), Delphi (thank you!), WFC (nice try!) and now .NET (smacked the ball outta the park). Second, they put about a zillion engineers on it for about three years, during a period where much of their competition was more-or-less stalled. Remember, just because Microsoft can do something, doesn't mean you can.


  • λ-исчисление. Часть первая: история и теория
    0
    Полнота и существование алгоритма, который решает истинно утверждение или нет, это одно и то же.
    Это совершенно точно неверно. Об этом говорит, хотя бы, существование, с одной стороны, теоремы о полноте исчисления предикатов (Гёдель), и, с другой стороны, доказательство неразрешимости исчисления предикатов (Тьюринг и Чёрч).

    Если для любого утверждения существует доказательство истинности или ложности, то элементарный переборный алгоритм его найдет.
    Честно говоря, точно не помню, в чем тут дело, но, по-моему, это объясняется тем, что исчисление предикатов содержит бесконечное число сигнатур.
  • λ-исчисление. Часть первая: история и теория
    0
    Да, именно так. В логике второго порядка можно квантифицировать не только переменные, но и предикаты.

    Вообще, в «обычной» математике логика второго порядка используется не очень часто, но иногда в ней возникает потребность. Например она используется при формулировке аксиомы математической индукции, которая выглядит примерно так: для любого предиката, если этот предикат истинен для 0, а также если из его истинности для n следует его истинность для n+1, то тогда он истинен для любого числа.
  • λ-исчисление. Часть первая: история и теория
    0
    Суть её в том, что вот есть у нас некий формальный язык, на котором можно написать какое-либо утверждение. Существует ли алгоритм, за конечное число шагов определяющий его истинность или ложность? Ответ был найден двумя великими учёными того времени Алонзо Чёрчем и Аланом Тьюрингом.


    Вообще-то за несколько лет до Тьюринга и Черча был Гедель со своими теоремами о неполноте.


    Вы в данном случае не совсем правы. Проблема разрешимости (Чёрч и Тьюринг) и проблема полноты (Гёдель) — это совсем разные проблемы. Полнота формальной системы означает только сам факт того, что для любого утверждения из данной системы существует доказательство его истинности или ложности. А разрешимость — наличие алгоритма, способного такое доказательство построить.

    Так, например, исчисление предикатов является полным, но не является разрешимым. Т.е. для любого утверждения есть доказательство его истинности или ложности, но принципиально не существует алгоритма, способного для любого утверждения это доказательство построить.
  • Font boosting в мобильных браузерах
    0
    После reflow — возможно и фича. Но после reflow и изменения цвета (!) для inline-block'ов — это, уже, скорее всего, баг.
  • Нужно ли с наступлением Нового года обновлять дату в подвале сайта?
    +6
    Я для больших статей меньше литературы использую, чем ты для небольшой заметки.

    А какие из источников Вы считаете лишними:

    ГОСТ, статья ГК — первичные источники;

    Мильчин — одно из наиболее авторитетных справочных изданий в области русскоязычной типографики;

    Heath — первый, кто поднял данную тему на Хабре.

    В принципе, можно, конечно, ограничиться работой Мильчина (там уже содержится вся необходимая информация), но, на сколько я знаю, она доступна только в бумажном виде.
  • Нужно ли с наступлением Нового года обновлять дату в подвале сайта?
    +4
    Не совсем. Данная конструкция выведет текущую дату, а статья, как раз, посвящена тому, что нужна не текущая дата, а дата публикации последнего материала. В принципе, вывод этой даты действительно можно автоматизировать, но для этого потребуется уже запрос к базе данных, или что-то в этом роде.
  • Нужно ли с наступлением Нового года обновлять дату в подвале сайта?
    +18
    Пользуясь случаем, поздравляю всех с наступающим (или даже наступившим) Новом Годом. Сделаем Хабр в новом году еще полезнее и интереснее!
  • Декодирование изображений из мозга человека
    +1
    Вот еще подробный популярный обзор на Ленте.ру:

    Загляни в мои сны: ученые оказались как никогда близки к чтению сновидений // Lenta.ru, 25.10.2012
  • JavaScript: от начала до конца
    +4
    Не поспоришь. Но это был совсем хардкор и экзотика.
    Да, существовали и экзотические решения. Но была и ASP — абсолютно мейнстримовая технология, занимавшая до трети рынка. Кстати, во многом похожая на PHP.

    Никогда до NodeJS не видел вакансии серверный JavaScript разработчик. А сейчас регулярно вижу.
    Вакансий было полно, просто они назывались по другому: не «серверный JavaScript-разработчик», а просто «ASP-разработчик». А ASP-разработчики (до ASP.NET), как правило, использовали либо VBScript (чуть чаще), либо JScript (чуть реже).

    Но, я, конечно, нисколько не отрицаю, что Node.js вдохнул в серверный JavaScript новую жизнь и перевел его на новый уровень.
  • JavaScript: от начала до конца
    +10
    Гугл разродился браузером. И ускорил JavaScript до нельзя, подарив всему миру V8. Из которого в свою очередь родился NodeJS (by Ryan Dahl). Так JS попал и на сервер.

    Не совсем так… JavaScript попал на сервер практически с самого рождения серверного программирования. Один из самых первых серверов, Netscape Enterprise Server, уже в 1996 году в качестве серверного языка использовал JavaScript.

    В противоположенном лагере была популярна технология ASP, где в качестве скритовых языков использовались VBScript и JScript. Так что и Windows уже лет 15 прямо «из коробки» поддерживает серверный JavaScript.

    Это только мейнстрим. Кроме него было еще несколько десятков менее популярных реализаций.
  • Эффект Осборна и несколько других фатальных ошибок управления
    +2
    Билл Гейтс, Стив Балмер и Пол Аллен, основавшие Microsoft

    Тут присутствует небольшая неточность: Стив Балмер не являлся основателем Microsoft, хотя и был одним из первых наемных сотрудников.
  • Придут ли на смену статически типизированным языкам языки с динамической типизацией?
    +1
    На эту тему есть известная статья Брюса Эккеля, написанная как раз в то же самое время:

    Bruce Eckel. «Strong Typing vs. Strong Testing» (archive), 02.05.2003.

     
    Русский перевод из сборника Джоэла Спольски «Лучшие примеры разработки ПО»:

    Брюс Эккель. «Сильная типизация против сильного тестирования» // «Лучшие примеры разработки ПО», 2007
  • О том, как работают JavaScript таймеры
    +3
    Четыре года назад уже был перевод этой статьи от sunnybear: «Как работают таймеры в JavaScript».

    Правда, там на Хабре выложена только первая часть перевода, а у Вас — полностью.
  • Microdata & the microdata DOM API
    +5
    Использование Microdata поисковиками:

    Google

    Использует для:

    — Отображения более детальной информации в поисковых сниппетах;

    — Добавления контактных данных в Google.Places с последующим отображением на Google.Maps.

    Поддерживаемые типы данных:

    Люди;

    Организации;

    Обзорыоценки в обзорах);

    События;

    Товары;

    Софт (используют schema.org);

    Кулинарные рецепты;

    — «Хлебные крошки» в навигации web-страницы.

     
    Яндекс

    Использует для:

    — Отображения более детальной информации в поисковых сниппетах;

    — Добавление контактной информации в справочник организаций (→ Яндекс.Карты);

    — Добавления статей в Яндекс.Словари;

    — Добавление информации о Картинках и Видео.

    Поддерживаемые типы данных (все через schema.org):

    Информация об организации;

    Словарная статья;

    Описание картинки и Описание видео.

     
    P.S. Это использование только Microdata. Есть еще поддержка микроформатов и RDFa/OWL (например, для разметки профилей в сервисе «Яндекс.Поиск по блогам»)
  • Пишем LR(0)-анализатор. Простыми словами о сложном
    +6
    Не нашел простого и внятного описания данного алгоритма на русском языке.

    Ну, почему, на русском есть книги. Например:


    Возможно, также, есть в этих книгах, но их сейчас нет под рукой и точно я не уверен:



    За статью спасибо, многим пригодится.
  • Комментарий из публикации, перенесённой в черновики.
  • Генератор текста на основе триграмм (python)
    +3
    Кстати, у Яндекса есть статья о том, как они с этим борются:

    «Поиск неестественных текстов», Евгений Гречников, Глеб Гусев, Андрей Кустарев, Андрей Райгородский.
  • О стартапах, валидации и искусстве (т.е. арт)
    +1
    Ага, это там ещё у Тёмки был прикол про фронтпэйдж, юмористы блин =)
    Что за прикол?


    В самом начале кода главной страницы сайта Студии стоит поддельный META-тег «generator», говорящий о том, что страница, якобы, сверстана в WYSIWYG HTML-редакторе Microsoft FrontPage (который пользовался дурной славой программы для «быдло-верстальщиков»):
    <meta name="GENERATOR" content="Microsoft FrontPage 1.0">

    А в самом конце кода — комментарий:
    <!-- А ты знаешь, сколько идиотов пишут мне письма, что наверху написано про FrontPage? -->


    P.S. Интересно, какова вероятность того, что мы оба почти одновременно заглянули в этот топик 2-х летней давности :-)
  • Программирование в таблицах — новая концепция записи условных (и не только) конструкций
    +2
    Перенесите топик в один из тематических блогов.

    Тогда топик попадет на главную и его увидит гораздо больше хабралюдей, чего статья, конечно же, достойна.
  • Семантическое будущее Веба — SemanticFuture.Net
    +1
    Хабрапарсер поломал ссылку, содержащую в адресе слово «JavaScript».

    Привожу исправленный вариант (для этого, заменил в слове «JavaScript» букву «S» на «%83»): Самой W3C (http://www.w3.org/2009/sparql/wiki/Feature:Java%53criptFunctions).
  • Семантическое будущее Веба — SemanticFuture.Net
    +1
    Тем кто минусует, еще раз обращу внимание: большинство тегов <br> генерируются автоматически самим движком MediaWiki.

    С этим ничего нельзя поделать…

    Поэтому, эти теги присутствуют в HTML-коде, например:

    главной страницы русской и английской Википедии;

    главной страницы wiki Mozilla;

    и, о ужас, даже в wiki Самой W3C!
  • Семантическое будущее Веба — SemanticFuture.Net
    0
    Вы имеете в виду то, что он находится на домене 1-го уровня «.net», созвучному русскому слову «нет»?

    Ну так, этот домен имеет какой-то отрицающий смысл только для русскоязычных адресов, таких как narkotikam.net («наркотикам нет!») или popravkam.net («поправкам [в конституцию РФ] нет!»).

    А для английских адресов, каким является «SemanticFuture», использование домена «.net» не несет подобного смысла.

    Тем более, домен «.net» традиционно используется для ресурсов, посвященных сетевым технологиям, к которым и относится «SemanticFuture.net». Вы же не считаете пессимистическими адреса: «php.net» или «asp.net» :-)

    Или же Вы, под «пессимистичностью», имели в виду что-то другое?
  • Семантическое будущее Веба — SemanticFuture.Net
    +1
    Нет, почему? На сайте применяются семантические технологии и средства, в том числе и Semantic MediaWiki.

    В частности, информация об авторах, статьях, программном обеспечении автоматически представляется в формате RDF и становится доступной для запросов SPARQL.

    Вы сами можете проверить, например, открыв сайт в Firefox с каким нибудь семантическим плагином, скажем, Semantic Radar.

    OpenLink Virtuoso в Semantic MediaWiki проекта не задействован, но на форуме обсуждается вопрос их совместного использования.
  • Семантическое будущее Веба — SemanticFuture.Net
    +2
    К сожалению, ограничения wiki-разметки не позволяют в полной мере использовать CSS и семантическую верстку.

    Подобные несемантические конструкции встречаются почти на всех других wiki-сайтах.

    Например в Википедии, даже в статье «CSS» встречаются конструкции типа:
    [http://www.w3.org/TR/CSS1 Level 1 (Recommendation)]<br/>[http://www.w3.org/TR/CSS2/ Level 2 (Recommendation)]<br/>[http://www.w3.org/TR/CSS21/ Level 2 Revision 1 (Candidate Recommendation)].

    Несемантическте конструкции приходится использовать даже в wiki Мозиллы!

    P.S. Ну и не стоит забывать, что проект, все-таки, посвящен семантичсекому вебу, а не семантической верстке — а это дружественные, но все-таки, разные вещи.
  • «Фотография на паспорт»
    0
    Поправьте, пожалуйста:

    Должность «Chairman of the Joint Chiefs of Staff» (w) переводится не как «Председатель комитета объединенных начальников штабов», а как «Председатель объединённого комитета начальников штабов» (w).

    Т.е. объединенные там не начальники, а комитеты :-)
  • Обновление Хабра
    +1
    Это всемогущая стрелка. С помощью этой стрелки можно поднять карму даже себе
  • В чём разница между Богом и Ларри Эллисоном
    +1
    Заметка во многом — «копипаст» статьи с CEO.ru: 12.09.2008 // Эллисон Ларри / Персона.

    Может быть лучше преобразовать ее в топик-ссылку?

    Поправьте меня, если я ошибаюсь.
  • Электронные выборы в европарламент в скриншотах
    0
    На сколько я понимаю, там была выбрана Центристская партия.

    В Википедии сказано, что она поддерживает малый бизнес.
  • 10 приемов, разрушающих хрупкую красоту кода
    0
    Вы оба правы:

    В некоторых случаях лучше использовать свойства.

    В некоторых — явные методы (например, как правильно заметил sse, при наличие сильных побочных эффектов при доступе к данным).

    Плохо только, когда язык вообще не предоставляет возможности использовать свойства, даже там, где они оправданы. Вот это уже очень некрасиво и об этом, как раз, я и пишу в статье.