How much of the concepts conveyed in natural language is RDF/OWL able to represent? I'm still learning RDF and other semantic technologies, but as I currently understand it, information is typically represented as triples of the form (subject,predicate,object). So I can imagine how the sentence "Bob has a hat" might be represented. However, how would you represent a more complicated sentence like "Bob, over on 42nd street, will have a job at the Mall after the owner approves"? Are there conventions for tags representing nouns/verbs/ownership/causality/tense/etc?
Note, I'm not asking how to automatically convert arbitrary natural language text to RDF (as this currently appears impossible). I'm just trying to understand how RDF might be used to represent the same information that natural language represents.
RDF (Resource Description Framework) is one of the three foundational Semantic Web technologies, the other two being SPARQL and OWL. In particular, RDF is the data model of the Semantic Web. That means that all data in Semantic Web technologies is represented as RDF. If you store Semantic Web data, it's in RDF.
RDF triples allow entities to be queried and linked together. The existing studies use RDF and SPARQL to serialize the content and to execute the queries for searching, respectively. RDFs are massive in size and crucial; therefore it is not easy to extract information for an ordinary user.
Maybe have a look at the Attempto project the goal of which is to define a fragment of English that can be automatically mapped to first-order logic. Part of this effort is a mapping to OWL 2 DL. See e.g. Writing OWL ontologies in ACE.
Your example sentence
Bob, over on 42nd street, will have a job at the Mall after the owner approves
could be rewritten in Attempto Controlled English (ACE) as
If an owner of Mall approves John whose address is "42nd street"
then he is employed by Mall.
(or something similar, depending on what you exactly intend to say.)
This sentence can be automatically mapped to an 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
)
)
)
This mapping implements certain conventions about basic word classes:
Many word classes that ACE supports are not supported by this mapping, e.g. intransitive and ditransitive verbs, intransitive adjectives, and adverbs. The coverage could be extended, e.g. intransitive verbs could map to OWL classes (e.g. "John sleeps." could be taken to mean that the individual John belongs to the class of sleepers). It is less clear how to handle e.g. ditransitive verbs and adverbs.
In general, English is much richer in terms of its building blocks (nouns, different types of adjectives, different types of verbs, ...) than OWL (which has classes, individuals, object and data properties, and (typed) data items such as strings and numbers). And this is just the "word vs entity" level. Things like tense are more complicated as they have many surface representations in English and lack any built-ins on the OWL side.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With