Search code examples
logicsemanticssemantic-webfirst-order-logic

Describe a film (entity and attribute) using the first order logic


Good morning, I want to understand how can I describe something using the first order logic.

For example I want to describe what is a film (an entity) and what is an attribute (for example actor: Clooney) for the film. How can I describe that using the first order logic?

******* UPDATE ********

What I need to explain in first logic order is:

ENTITY: an element, an abstraction or an object that can be described with a set of properties or attributes. So I think that I must says that the entity has got a set of attributes with their respective values. An Entity describes an element, an abstraction or an object.

ATTRIBUTE: an attribute has always got a value and it always associated to an entity. It describes a specific feature/property of the entity.

DOCUMENT: a pure text description (pure text it not contains any html tags). Every document describes only ONE entity through its attribute.


Solution

  • To state that an object has a certain property you would use a single place predicate. For example, to state that x is a film you could write Film(x). If you want to attribute some value to an object you can use two (or more) place predicate. Using your example you could say that Clooney starred in a film as Starred(clooney, x).

    There are certain conventions that people use. For example, predicates start with capital letters (Actor, Film, FatherOf) and constants start with a lower case letter (x, clooney, batman). Constants denote objects and predicates say something about the objects. In case of predicates with more than one argument the first argument is usually the subject about which you are making the statement. That way you can naturally read the logical formula as a sentence in normal language. For example, FatherOf(x, y) would read as "x is the father of y".

    Answer for the update:

    I am not sure whether you can do that in first order logic. You could describe an Entity as something that has certain properties by formula such as

    \forall x (Entity(x) ==> Object(x) | Element(x) | Abstraction(x))
    

    This is a bit more difficult for the Attribute. In first order logic an attribute ascribes some quality to an object or relates it to another object. You could probably use a three place predicate as in:

    \forall attribute (\exists object (\exists value (Has(object, attribute, value))))
    

    As to the document, that would be just a conjunction of such statements. For example, the description of George Clooney could be the following:

    Entity(clooney) & Has(clooney, starred, gravity) & Has(clooney, bornIn, lexington) & ...