Возможно, посмотрите на Attempto project, целью которого является определение фрагмента английского языка, который может быть автоматически сопоставлен с логикой первого порядка. Часть этого усилия - это сопоставление с OWL 2 DL. См. Writing OWL ontologies in ACE.
Ваш пример предложение
Bob, over on 42nd street, will have a job at the Mall after the owner approves
можно переписать в Attempto Controlled английском языке (ACE) в качестве
If an owner of Mall approves John whose address is "42nd street"
then he is employed by Mall.
(или что-то подобное, в зависимости от того, что вы точно собираетесь сказать.)
Это предложение может быть автоматически сопоставлено с OWL2 SubClassOf -axiom
SubClassOf(
ObjectIntersectionOf(
ObjectOneOf(
:Mall
)
ObjectSomeValuesFrom(
:owner
ObjectSomeValuesFrom(
:approve
ObjectIntersectionOf(
ObjectOneOf(
:John
)
DataHasValue(
:address
"42nd street"^^<http://www.w3.org/2001/XMLSchema#string>
)
)
)
)
)
ObjectSomeValuesFrom(
:employ
ObjectOneOf(
:John
)
)
)
Это отображение реализует определенные соглашения об основных классах слов:
- нарицательных сопоставляться именами классов OWL
- имен собственных карты в OWL отдельных имен
- переходных глаголы, переходные прилагательные и of -constructions сопоставить именам свойств OWL: имена свойств данных, если их аргумент является числом или строкой, имена свойств объекта иначе
Многие классы слов, поддерживаемые ACE, не поддерживаются этим отображением, например. непереходные и дестрируемые глаголы, непереходные прилагательные и наречия. Охват может быть расширен, например. непереходные глаголы могут отображаться в классах OWL (например, «John sleeps.» означает, что физическое лицо John относится к классу шпалы). Менее ясно, как обращаться, например. деструктивные глаголы и наречия.
В общем, английский язык гораздо богаче с точки зрения его строительных блоков (существительных, разных типов прилагательных, разных типов глаголов, ...), чем OWL (который имеет классы, индивидуумы, свойства объектов и данных и (напечатанные) элементы данных, такие как строки и числа). И это всего лишь уровень «слово vs сущность». Такие вещи, как напряженность, сложнее, поскольку у них много поверхностных представлений на английском языке и отсутствуют встроенные модули на стороне OWL.
Молодцы. После некоторых исследований, точный вызов APE: ./ape.exe -text «Если владелец p: Mall v: утверждает p: John, чей адрес« 42-я улица », тогда Джон является n: сотрудником p: Mall."-cparaphrase – Cerin
Интересно отметить, что большинство функций, поддерживаемых ACE, явно не поддерживаются RDF/OWL, поскольку они не поддерживают прилагательные, наречия и другие общие части речи. Попытка экспортировать мое предложение в OWL генерирует ошибку, но отлично работает, если я экспортирую ее как структуру представления дискурса (DRS). – Cerin
@ chris-s Я расширил ответ в ответ на ваш второй комментарий. – Kaarel