- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Sat, 1 Oct 2022 09:52:06 -0400
- To: Martynas Jusevičius <martynas@atomgraph.com>, semantic-web@w3.org
On 10/1/22 08:57, Martynas Jusevičius wrote:
> On Sat, Oct 1, 2022 at 2:28 PM Nicolas Chauvat
> <nicolas.chauvat@logilab.fr> wrote:
>
>> Would you treat my other example, the complex number, in the same way and use
>> two predicates realPart and imaginaryPart ?
>>
>> What would you think of something like this ?
>>
>> :me :positionInPlan9 (2, -3)^:complexPosition
>> :marty :driveTo ("1985-10-26", "09:00", "EST")^:timeDateTZ
>>
> :me :positionInPlan9 [ a :complexPosition; :first 2, :second -3 ].
> :marty :driveTo [ :date "1985-10-26", :time "09:00", :tz "EST" ] .
>
> Same thing, and no need for new standards.
Along these lines, I wrote a long message describing several ways of
representing information in RDF graphs. This response nicely illustrates one
of the points I am trying to make so I'm using it as, perhaps, a TL;DR for my
message.
RDF graphs have two ways of representing information about the world.
They have literals, whose meaning comes from a formal or informal description
their datatype IRI. Some datatypes have their descriptions determined from
information in the RDF recommendations. The descriptions of other datatypes
are determined by means outside the RDF recommendations.
They have triples, whose meaning comes from the RDF recommendations. The
intended meaning of triples is derived from the intended meaning of their
subjects, predicates, and objects. For non-literal subjects, predicates, and
objects this intended meaning is left unspecified.
For important IRI nodes it is good practice to provide documents that can be
accessed using the IRI that provide the intended meaning of the node including
both RDF triples that provide part of the intended meaning and text that
described the intended meaning. (These documents can often be considered to
define the IRI but they really don't, as abiding by the information in the
document is not mandatory.) This can be done for all IRI nodes, including
datatype IRIs.
In this way systems that use RDF can take an RDF graph and, if they choose,
merge other triples into the graph to include part of the intended meaning of
IRI nodes in the graph. Humans can use these documents to help them
understand the intended meaning of IRI nodes.
This leads to two different ways to represent entities in the world and make
them relatively easy for others to use.
One can use a datatype for the entities, say chess:position, ideally creating
a document containing information about chess positions represented at
chess:position literals and making it available at chess:position; and create
RDF graphs containing literals like "e5"^^chess:position. The document will
be rather sparse as far as RDF content does, probably only containing one triple
chess:position rdf:type rdfs:Datatype
but including text that describes this datatype, for example stating the
permissable literal values.
One can use a class for the entities, say chess:Position, ideally creating a
document at chess:Position that provides information about chess positions
represented as instances of chess:Position and making this document available
at chess:Position; and create RDF graphs stating membership in
chess:Position. The document will likely have more than one triple, probably
containing at least
chess:Position rdf:type rdfs:Class .
chess:rank rdfs:domain chess:Position .
chess:rank rdfs:range xsd:integer .
chess:file rdfs:domain chess:Position .
chess:file rdfs:ange xsd:string .
The advantage of the datatype route is that it provides a notion of equality
that cannot be represented in RDF for the class route. The advantage of the
latter is that it provides more flexibility, being able to represent chess
positions whose precise location is not known. The latter route also makes it
possible to add more information about chess positions, integrated with the
chess:Position class. A disadvantage of the datatype route is that a
particular RDF system mignt not implement the chess:position datatype.
It is actually possible to have both and connect them via the triple
chess:Position rdfs:subClassOf chess:position .
but I don't think that this produces much in the way of benefits in any
existing RDF system.
What does not work as well in general is using containers or collections to
represent entities that are not containers or collections. Even if subclasses
and subproperties are used to provide special containers or collections the
facilities in RDF are inadequate to describe how the representation works
resulting in intended meaning documents that have little or no RDF content and
provide little benefit in RDF systems.
What works least well is using containers or collections without subclasses
and subproperties. Just thinking about (or, more likely, only discussing in a
small group) representing something using collections does not actually
represent that thing using collections, at least as far as the RDF community
as a whole is concerned. To have uptake of a representation scheme requires
using agreed-on methods, and for RDF this means using new vocabulary and
creating defining documents.
peter
As yet another aside, thinking back on the development of OWL, it might have
been better to use neither containers or collections to represent OWL syntax
in triples, instead defining classes and properties for the various bits of
OWL syntax. I'm not sure whether this was even considered back then.
Received on Saturday, 1 October 2022 13:52:22 UTC