/* * Copyright (C) 2004 Map Bureau - http://www.mapbureau.com * * This package is Free Software released under the BSD license. * * See license.html at the top of this package for the full license terms. * */ /* compile("file://../lib/geometry2d/1.1/revision2.fb","file://../lib/geometry2d/1.1/revision2.fbl"); excludeNonTopicalNamespaces = true; compile("file://../lib/geometry2d/1.1/revision2.rdf","file://../lib/geometry2d/1.1/revision2.fbl"); */ install('discovery1'); discovery1:discovery(); installDependencies('geom2d'); //startPersisting(); //setHomeAndTopic('geom2d'); //setHome('geom2d'); namespace('geom2d').dc:title = "RDF Geometry Vocabulary, 2D Section"; namespace('geom2d').dc:creator = "Chris Goad cg@mapbureau.com"; namespace('geom2d').dc:date = "2004-10-27"; namespace('geom2d')..rdfs:seeAlso = resource("http://fabl.net/lib/geometry/1.1/"); addComment(namespace('geom'),"See also http://fabl.net/lib/geometry/1.1/revision2.html"); class("geom2d:Shape"); endClass(); geom2d:Shape .. rdfs:subClassOf = geom:Shape; geom2d:Shape . rdfs:comment = "A geom:Shape with geom:minDimension >= 2"; class("geom2d:Point"); var double geom:x; var double geom:y; endClass(); geom2d:Point .. rdfs:subClassOf = geom:Point; geom2d:Point .. rdfs:subClassOf = geom2d:Shape; class("geom2d:Transformation"); endClass(); geom2d:Transformation .. rdfs:subClassOf = geom:Transformation; geom2d:Transformation . rdfs:comment = "The class of all functions with geom2d:Point as domain and range"; class("geom2d:Matrix"); var double geom2d:a; var double geom2d:b; var double geom2d:c; var double geom2d:d; var double geom2d:e; var double geom2d:f; endClass(); geom2d:Matrix .. rdfs:subClassOf = geom2d:Transformation; geom2d:Matrix .. rdfs:comment = "Corresponds to the matrix transform definition in SVG"; class("geom2d:Group"); var SeqOf(geom2d:Shape) geom:elements; endClass(); geom2d:Group .. rdfs:subClassOf = geom:Group; geom2d:Group .. rdfs:subClassOf = geom2d:Shape; class("geom2d:Curve"); endClass(); geom2d:Curve .. rdfs:subClassOf = geom2d:Shape; geom2d:Curve .. rdfs:subClassOf = geom:Curve; class("geom2d:Line"); var double geom2d:u; var double geom2d:v; var double geom2d:w; endClass(); geom2d:Line.rdfs:comment = "The set of points (x,y) satisfying the equation u*x + v*y + w = 0"; class("geom2d:Ray"); var geom2d:Point geom:end0; var geom2d:Point geom:direction; endClass(); geom2d:Ray.rdfs:comment = "The set of points (x,y) of the form end0 + t*direction, for t >= 0"; class("geom2d:CurveSegment"); var geom2d:Point geom:end0; var geom2d:Point geom:end1; endClass(); geom2d:CurveSegment .. rdfs:subClassOf = geom2d:Curve; geom2d:CurveSegment .. rdfs:subClassOf = geom:CurveSegment; class("geom2d:ClosedCurve"); endClass(); geom2d:ClosedCurve .. rdfs:subClassOf = geom2d:Curve; geom2d:ClosedCurve .. rdfs:subClassOf = geom:ClosedCurve; class("geom2d:FilledCurve"); var geom2d:ClosedCurve geom:boundary; endClass(); geom2d:FilledCurve .. rdfs:subClassOf = geom2d:Shape; geom2d:FilledCurve . rdfs:comment = "The interior of a non-self-intersecting ClosedCurve"; class("geom2d:LineSegment"); var geom2d:Point geom:end0; var geom2d:Point geom:end1; endClass(); geom2d:LineSegment .. rdfs:subClassOf = geom2d:CurveSegment; geom2d:LineSegment .. rdfs:subClassOf = geom:LineSegment; class("geom2d:Polyline"); restrict geom:points {cardinality 1;allValuesFrom SeqOf(geom2d:Point)} endClass(); geom2d:Polyline .. rdfs:subClassOf = geom2d:Curve; geom2d:Polyline .. rdfs:subClassOf = geom:Polyline; class("geom2d:Polygon"); restrict geom:boundary {cardinality 1;allValuesFrom geom2d:Polyline} endClass(); geom2d:Polygon.. rdfs:subClassOf = geom2d:FilledCurve; geom2d:Polygon . rdfs:comment = "A FilledCurve whose boundary is a Polyline"; class("geom2d:SVGPath"); var string geom2d:pathData; endClass(); geom2d:SVGPath . rdfs:comment = "A curve defined using the SVG path syntax"; class("geom2d:Box"); var double geom:xmin; var double geom:xmax; var double geom:ymin; var double geom:ymax; endClass(); geom2d:Box .. rdfs:subClassOf = geom2d:Shape; geom2d:Box .. rdfs:subClassOf = geom:Box; geom2d:Box .. rdfs:subClassOf = geom2d:Shape; geom2d:Box .. rdfs:subClassOf = geom:Box; class("geom2d:Circle"); var geom2d:Point geom:center; var double geom:radius; endClass(); var FunctionalProperty geom2d:boundingBox; geom2d:boundingBox . rdfs:range = geom2d:Box;