Skip to content

Lack of a standard rules language #27

@dbooth-boston

Description

@dbooth-boston

Inference is fundamental to the value proposition of RDF, and almost every application needs to perform some kind of application-specific inference. ("Inference" is used broadly herein to mean any rule or procedure that produces new assertions from existing assertions -- not just conventional inference engines or rules languages.) But paradoxically, we still do not have a standard RDF rules language. (See also Sean Palmer's apt observations about N3 rules.[14]) Furthermore, applications often need to perform custom "inferences" (or data transformations) that are not convenient to express in available (non-standard) rules languages, such as RDF data transformations that are needed when merging data from independently developed sources having different data models and vocabularies. And merging independently developed data is the most fundamental use case of the Semantic Web. . . .

[One] possibility might be to standardize a sufficiently powerful rules language.

However, see also some excellent cautionary comments from Jesus Barras(Neo4J) and MarkLogic on inference: "No one likes rules engines --> horrible to debug / performance . . . Reasoning with ontology languages quickly gets intractable/undecidable" and "Inference is expensive. When considering it, you should: 1) run it over as small a dataset as possible 2) use only the rules you need 3) consider alternatives."[15]

Work activity addressing this issue

Standardize N3 Logic

"We have worked with N3 for years now and there are several reasons why I believe
that it should be standardized"
https://lists.w3.org/Archives/Public/semantic-web/2018Nov/0063.html

"I have [launched] a community group"
https://www.w3.org/community/n3-dev/
https://lists.w3.org/Archives/Public/semantic-web/2018Nov/0252.html

"Seems useful to tighten up N3... but any lessons learned, positive or
negative, or things to re-use, from the half-decade W3C put into the RIF
work?"
https://lists.w3.org/Archives/Public/semantic-web/2018Nov/0254.html

See discussion on the n3-dev mailing list.

Other proposed ideas

IDEA: Embed RDF in a programming language

"One possibility for addressing this need might be to embed
RDF in a full-fledged programming language, so that complex
inference rules can be expressed using the full power and
convenience of that programming language."
https://lists.w3.org/Archives/Public/semantic-web/2018Nov/0036.html

IDEA: Bind custom inference rules to functions

"Another possibility might be to provide a convenient, standard way to bind custom
inference rules to functions defined in a programming language"
https://lists.w3.org/Archives/Public/semantic-web/2018Nov/0036.html

IDEA: Update RIF

"re-open a working group on RIF to make it capable of expressing SPARQL constructs, and resolve the datatype and built-in discrepancies with other W3C specs."
https://lists.w3.org/Archives/Public/semantic-web/2018Nov/0176.html

IDEA: SPARQL-Generate extensions

"SPARQL-Generate (SG) . . . introduces many improvements to SPARQL (while keeping the core syntax as SPARQL) so that you can pretty do all the Extract-Tranform from
heterogeneous data to RDF graphs, all in SPARQL."
https://ci.mines-stetienne.fr/sparql-generate/
https://lists.w3.org/Archives/Public/semantic-web/2018Nov/0302.html

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions